/* SYKA Payroll Pro — application styles. Everything is scoped under .syka-root. */
.syka-root {
	--navy: #0B1B3F; --navy-2: #13285A; --blue: #2563EB; --blue-2: #1D4ED8; --cyan: #06B6D4;
	--ink: #0F1B33; --ink-2: #44506A; --muted: #6B7690; --line: #E3E8F1; --line-2: #EEF2F8;
	--bg: #F3F6FB; --surface: #FFFFFF; --surface-2: #F8FAFD;
	--ok: #0E9F6E; --ok-bg: #E7F7F0; --warn: #B45309; --warn-bg: #FFF4E0; --bad: #DC2626; --bad-bg: #FDECEC; --info-bg: #EAF1FF;
	--grad: linear-gradient(135deg, #2563EB 0%, #06B6D4 100%);
	--r-sm: 8px; --r: 12px; --r-lg: 18px;
	--sh-1: 0 1px 2px rgba(11, 27, 63, .06); --sh-2: 0 6px 24px -10px rgba(11, 27, 63, .22);
	--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, "Noto Sans", "Helvetica Neue", Arial, "Nirmala UI", "Noto Sans Telugu", "Noto Sans Devanagari", "Noto Sans Tamil", "Noto Sans Kannada", "Noto Sans Malayalam", sans-serif;
	--side: 248px;
	font-family: var(--font); color: var(--ink); font-size: 14px; line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.syka-root[data-theme="dark"] {
	--ink: #E6ECF7; --ink-2: #B7C2D8; --muted: #8F9BB5; --line: #24324F; --line-2: #1B2741;
	--bg: #0A1430; --surface: #101C3A; --surface-2: #0D1834; --info-bg: #13285A;
	--ok-bg: #0C2E26; --warn-bg: #33250C; --bad-bg: #3A1418;
	--sh-1: 0 1px 2px rgba(0, 0, 0, .3); --sh-2: 0 10px 30px -12px rgba(0, 0, 0, .6);
}
.syka-root *, .syka-root *::before, .syka-root *::after { box-sizing: border-box; }
.syka-root button, .syka-root input, .syka-root select, .syka-root textarea { font: inherit; color: inherit; }
.syka-root a { color: var(--blue); }
.syka-root :focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }
.syka-root .num, .syka-root td.money, .syka-root .money { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .syka-root * { animation: none !important; transition: none !important; } }

/* WordPress admin integration */
body.syka-app-page #wpcontent { padding-left: 0; }
body.syka-app-page #wpbody-content { padding-bottom: 0; }
body.syka-app-page #wpfooter, body.syka-app-page .update-nag, body.syka-app-page .notice:not(.syka-notice) { display: none; }
body.syka-app-page.syka-focus #adminmenumain { display: none; }
body.syka-app-page.syka-focus #wpcontent, body.syka-app-page.syka-focus #wpfooter { margin-left: 0; }
.syka-boot { display: grid; place-items: center; min-height: 60vh; color: #6B7690; gap: 12px; align-content: center; }
.syka-boot__logo, .syka-logo-mark { width: 40px; height: 40px; border-radius: 12px; background: var(--grad, linear-gradient(135deg, #2563EB, #06B6D4)); position: relative; display: inline-block; }
.syka-boot__logo { animation: syka-pulse 1.2s ease-in-out infinite; }
.syka-logo-mark::after, .syka-boot__logo::after { content: ""; position: absolute; inset: 11px 11px 15px; border: 3px solid #fff; border-top-color: transparent; border-radius: 50%; }
@keyframes syka-pulse { 50% { opacity: .5; transform: scale(.94); } }

/* Shell */
.sk-app { display: grid; grid-template-columns: var(--side) 1fr; min-height: calc(100vh - 32px); background: var(--bg); }
.sk-app.is-collapsed { --side: 72px; }
.sk-side { background: var(--navy); color: #C9D4EC; display: flex; flex-direction: column; position: sticky; top: 32px; height: calc(100vh - 32px); overflow-y: auto; transition: width .2s; }
.sk-brand { display: flex; align-items: center; gap: 10px; padding: 18px 18px 14px; color: #fff; text-decoration: none; }
.sk-brand .syka-logo-mark { width: 34px; height: 34px; border-radius: 10px; flex: none; }
.sk-brand .syka-logo-mark::after { inset: 9px 9px 12px; border-width: 2.5px; }
.sk-brand b { font-size: 15px; letter-spacing: -.01em; display: block; }
.sk-brand small { color: #7F91B8; font-size: 11.5px; }
.sk-nav { padding: 6px 10px 16px; display: grid; gap: 2px; }
.sk-nav__group { color: #6E81AB; font-size: 11.5px; padding: 14px 10px 4px; }
.sk-nav a { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 9px; color: #C9D4EC; text-decoration: none; font-weight: 500; }
.sk-nav a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.sk-nav a.is-active { background: rgba(37, 99, 235, .28); color: #fff; box-shadow: inset 3px 0 0 var(--cyan); }
.sk-nav svg { width: 18px; height: 18px; flex: none; opacity: .9; }
.sk-nav .sk-count { margin-left: auto; background: var(--cyan); color: var(--navy); font-size: 11px; font-weight: 700; border-radius: 99px; padding: 0 7px; line-height: 18px; }
.is-collapsed .sk-brand span, .is-collapsed .sk-nav__group, .is-collapsed .sk-nav a span, .is-collapsed .sk-nav .sk-count, .is-collapsed .sk-side__foot span { display: none; }
.is-collapsed .sk-nav a { justify-content: center; }
.sk-side__foot { margin-top: auto; padding: 12px 18px; font-size: 12px; color: #6E81AB; border-top: 1px solid rgba(255, 255, 255, .06); }
.sk-main { min-width: 0; display: flex; flex-direction: column; }
.sk-top { position: sticky; top: 32px; z-index: 20; display: flex; align-items: center; gap: 12px; padding: 12px 24px; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.sk-top__search { position: relative; flex: 1; max-width: 460px; }
.sk-top__search input { width: 100%; height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px 0 36px; background: var(--surface); }
.sk-top__search svg { position: absolute; left: 11px; top: 10px; width: 17px; color: var(--muted); }
.sk-top__results { position: absolute; top: 44px; left: 0; right: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-2); padding: 6px; z-index: 30; }
.sk-top__results a { display: flex; justify-content: space-between; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--ink); }
.sk-top__results a:hover, .sk-top__results a.is-hl { background: var(--info-bg); }
.sk-top__results small { color: var(--muted); }
.sk-top__actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.sk-iconbtn { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; position: relative; color: var(--ink-2); }
.sk-iconbtn:hover { border-color: var(--blue); color: var(--blue); }
.sk-iconbtn svg { width: 18px; height: 18px; }
.sk-dot { position: absolute; top: 6px; right: 6px; min-width: 16px; height: 16px; border-radius: 9px; background: var(--bad); color: #fff; font-size: 10px; font-weight: 700; display: grid; place-items: center; padding: 0 4px; }
.sk-user { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: var(--surface); border-radius: 10px; padding: 4px 10px 4px 4px; cursor: pointer; }
.sk-user img { width: 30px; height: 30px; border-radius: 8px; }
.sk-pop { position: absolute; right: 0; top: 46px; width: 340px; max-height: 70vh; overflow: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-2); z-index: 40; }
.sk-pop__head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.sk-pop__item { padding: 10px 14px; border-bottom: 1px solid var(--line-2); cursor: pointer; }
.sk-pop__item.is-unread { background: var(--info-bg); }
.sk-pop__item small { color: var(--muted); display: block; }
.sk-content { padding: 22px 24px 48px; max-width: 1440px; width: 100%; }
.sk-crumbs { font-size: 12.5px; color: var(--muted); margin-bottom: 4px; }
.sk-crumbs a { color: var(--muted); text-decoration: none; }
.sk-pagehead { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.sk-pagehead h1 { font-size: 24px; line-height: 1.2; margin: 0; letter-spacing: -.02em; font-weight: 700; }
.sk-pagehead p { margin: 4px 0 0; color: var(--muted); }
.sk-pagehead__actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }

/* Buttons & forms */
.sk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s, border-color .15s; }
.sk-btn:hover { border-color: var(--blue); color: var(--blue); }
.sk-btn svg { width: 16px; height: 16px; }
.sk-btn--primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.sk-btn--primary:hover { background: var(--blue-2); color: #fff; }
.sk-btn--danger { color: var(--bad); }
.sk-btn--danger.sk-btn--solid { background: var(--bad); border-color: var(--bad); color: #fff; }
.sk-btn--ghost { border-color: transparent; background: transparent; }
.sk-btn--sm { height: 30px; padding: 0 10px; font-size: 13px; }
.sk-btn[disabled], .sk-btn.is-busy { opacity: .55; cursor: not-allowed; pointer-events: none; }
.sk-btn.is-busy::before { content: ""; width: 13px; height: 13px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: sk-spin .7s linear infinite; }
@keyframes sk-spin { to { transform: rotate(360deg); } }
.sk-field { display: grid; gap: 5px; min-width: 0; }
.sk-field > span { font-weight: 600; font-size: 13px; color: var(--ink-2); }
.sk-field > span i { color: var(--bad); font-style: normal; }
.sk-field small { color: var(--muted); font-size: 12px; }
.sk-input, .sk-root-select { height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 0 11px; background: var(--surface); width: 100%; min-width: 0; }
textarea.sk-input { height: auto; min-height: 76px; padding: 9px 11px; resize: vertical; }
.sk-input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); outline: none; }
.sk-field.has-error .sk-input { border-color: var(--bad); }
.sk-field .sk-err { color: var(--bad); font-size: 12px; }
.sk-check { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.sk-check input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--blue); }
.sk-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.sk-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sk-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sk-span-2 { grid-column: span 2; }
.sk-formsec { padding: 18px 0; border-top: 1px solid var(--line); }
.sk-formsec:first-child { border-top: 0; padding-top: 0; }
.sk-formsec h3 { margin: 0 0 12px; font-size: 15px; }

/* Surfaces */
.sk-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); }
.sk-card__head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line-2); }
.sk-card__head h2, .sk-card__head h3 { margin: 0; font-size: 15px; font-weight: 700; }
.sk-card__head .sk-right { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.sk-card__body { padding: 16px 18px; }
.sk-stack { display: grid; gap: 16px; }
.sk-cols { display: grid; gap: 16px; grid-template-columns: 2fr 1fr; align-items: start; }
.sk-cols--half { grid-template-columns: 1fr 1fr; }
.sk-muted { color: var(--muted); }
.sk-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.sk-sep { height: 1px; background: var(--line); margin: 12px 0; }

/* KPI strip — numbers read like a ledger */
.sk-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.sk-kpi { padding: 16px 18px; border-right: 1px solid var(--line-2); min-width: 0; }
.sk-kpi:last-child { border-right: 0; }
.sk-kpi span { color: var(--muted); font-size: 12.5px; }
.sk-kpi b { display: block; font-size: 24px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-top: 2px; }
.sk-kpi small { color: var(--muted); }
.sk-kpi .up { color: var(--ok); } .sk-kpi .down { color: var(--bad); }

/* Payroll lifecycle rail (signature element) */
.sk-rail { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; position: relative; margin: 6px 0 2px; }
.sk-rail__step { position: relative; padding-top: 22px; font-size: 12.5px; color: var(--muted); text-align: left; }
.sk-rail__step::before { content: ""; position: absolute; top: 8px; left: 0; right: 0; height: 4px; background: var(--line); }
.sk-rail__step::after { content: ""; position: absolute; top: 3px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 3px solid var(--line); }
.sk-rail__step.is-done { color: var(--ink-2); }
.sk-rail__step.is-done::before { background: var(--blue); }
.sk-rail__step.is-done::after { border-color: var(--blue); background: var(--blue); }
.sk-rail__step.is-current { color: var(--ink); font-weight: 700; }
.sk-rail__step.is-current::before { background: linear-gradient(90deg, var(--blue), var(--line) 60%); }
.sk-rail__step.is-current::after { border-color: var(--cyan); box-shadow: 0 0 0 5px rgba(6, 182, 212, .18); }
.sk-rail__step.is-paid::before, .sk-rail__step.is-paid::after { background: var(--cyan); border-color: var(--cyan); }
.sk-hero { background: var(--navy); color: #DCE6FA; border-radius: var(--r-lg); padding: 20px 22px; display: grid; gap: 14px; position: relative; overflow: hidden; }
.sk-hero::after { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(6, 182, 212, .28), transparent 65%); pointer-events: none; }
.sk-hero h2 { margin: 0; color: #fff; font-size: 18px; }
.sk-hero .sk-rail__step { color: #8EA1C9; }
.sk-hero .sk-rail__step.is-current, .sk-hero .sk-rail__step.is-done { color: #fff; }
.sk-hero .sk-rail__step::before { background: rgba(255, 255, 255, .14); }
.sk-hero .sk-rail__step::after { background: var(--navy); border-color: rgba(255, 255, 255, .25); }
.sk-hero .sk-rail__step.is-done::before { background: var(--blue); }
.sk-hero .sk-rail__step.is-done::after { background: var(--blue); border-color: var(--blue); }
.sk-hero__figures { display: flex; gap: 32px; flex-wrap: wrap; position: relative; z-index: 1; }
.sk-hero__figures div span { font-size: 12.5px; color: #8EA1C9; display: block; }
.sk-hero__figures div b { font-size: 26px; color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.sk-hero__figures div.is-net b { color: #67E8F9; }
.sk-hero .sk-btn { position: relative; z-index: 1; }

/* Badges */
.sk-badge { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px; border-radius: 99px; font-size: 12px; font-weight: 600; background: var(--line-2); color: var(--ink-2); white-space: nowrap; }
.sk-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .7; }
.sk-badge--ok { background: var(--ok-bg); color: var(--ok); }
.sk-badge--warn { background: var(--warn-bg); color: var(--warn); }
.sk-badge--bad { background: var(--bad-bg); color: var(--bad); }
.sk-badge--info { background: var(--info-bg); color: var(--blue); }
.sk-badge--cyan { background: rgba(6, 182, 212, .14); color: #0891B2; }

/* Tables */
.sk-tablewrap { overflow-x: auto; }
.sk-table { width: 100%; border-collapse: collapse; }
.sk-table th { text-align: left; font-size: 12.5px; font-weight: 600; color: var(--muted); padding: 10px 14px; border-bottom: 1px solid var(--line); white-space: nowrap; background: var(--surface-2); position: sticky; top: 0; }
.sk-table th.is-sortable { cursor: pointer; }
.sk-table th.is-sortable:hover { color: var(--blue); }
.sk-table td { padding: 11px 14px; border-bottom: 1px solid var(--line-2); vertical-align: middle; }
.sk-table tr:last-child td { border-bottom: 0; }
.sk-table tbody tr:hover td { background: var(--surface-2); }
.sk-table tr.is-click { cursor: pointer; }
.sk-table td.money, .sk-table th.money, .sk-table td.r, .sk-table th.r { text-align: right; }
.sk-table tfoot td { font-weight: 700; border-top: 1px solid var(--line); background: var(--surface-2); }
.sk-table .sk-person { display: flex; align-items: center; gap: 10px; }
.sk-avatar { width: 32px; height: 32px; border-radius: 9px; background: var(--info-bg); color: var(--blue); display: grid; place-items: center; font-weight: 700; font-size: 12.5px; flex: none; overflow: hidden; }
.sk-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sk-avatar--lg { width: 64px; height: 64px; border-radius: 16px; font-size: 22px; }
.sk-pager { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--line-2); color: var(--muted); font-size: 13px; }
.sk-pager .sk-right { margin-left: auto; display: flex; gap: 6px; }
.sk-toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line-2); }
.sk-toolbar .sk-input { width: auto; min-width: 150px; height: 34px; }
.sk-bulk { background: var(--info-bg); color: var(--blue); font-weight: 600; }

/* Tabs */
.sk-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin-bottom: 16px; overflow-x: auto; }
.sk-tabs button { border: 0; background: none; padding: 10px 14px; cursor: pointer; color: var(--muted); font-weight: 600; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.sk-tabs button.is-active { color: var(--blue); border-bottom-color: var(--blue); }
.sk-tabs button .sk-count { background: var(--line-2); color: var(--ink-2); border-radius: 99px; padding: 0 7px; font-size: 11px; margin-left: 4px; }

/* Lists, empty, skeleton */
.sk-list { display: grid; }
.sk-list__item { display: flex; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line-2); }
.sk-list__item:last-child { border-bottom: 0; }
.sk-list__item .sk-right { margin-left: auto; text-align: right; }
.sk-empty { text-align: center; padding: 42px 18px; color: var(--muted); }
.sk-empty svg { width: 54px; height: 54px; color: var(--blue); opacity: .55; margin-bottom: 8px; }
.sk-empty h3 { color: var(--ink); margin: 0 0 4px; font-size: 16px; }
.sk-empty p { margin: 0 auto 14px; max-width: 420px; }
.sk-skel { background: linear-gradient(90deg, var(--line-2), var(--line), var(--line-2)); background-size: 200% 100%; animation: sk-shimmer 1.2s infinite; border-radius: 8px; height: 14px; }
@keyframes sk-shimmer { to { background-position: -200% 0; } }
.sk-skeleton { display: grid; gap: 12px; padding: 18px; }
.sk-alert { display: flex; gap: 10px; padding: 12px 14px; border-radius: var(--r); background: var(--info-bg); color: var(--ink-2); align-items: flex-start; }
.sk-alert--warn { background: var(--warn-bg); }
.sk-alert--bad { background: var(--bad-bg); }
.sk-alert--ok { background: var(--ok-bg); }
.sk-alert b { color: var(--ink); }
.sk-alert ul { margin: 4px 0 0; padding-left: 18px; }
.sk-progress { height: 8px; border-radius: 99px; background: var(--line-2); overflow: hidden; }
.sk-progress > i { display: block; height: 100%; background: var(--grad); border-radius: 99px; transition: width .4s; }
.sk-checklist .sk-list__item svg { width: 20px; height: 20px; flex: none; }
.sk-checklist .is-ok svg { color: var(--ok); } .sk-checklist .is-no svg { color: var(--warn); } .sk-checklist .is-error svg { color: var(--bad); }

/* Modal, drawer, toast */
.sk-overlay { position: fixed; inset: 0; background: rgba(8, 17, 40, .5); z-index: 100000; display: grid; place-items: center; padding: 20px; animation: sk-fade .15s; }
@keyframes sk-fade { from { opacity: 0; } }
.sk-modal { background: var(--surface); color: var(--ink); border-radius: var(--r-lg); box-shadow: var(--sh-2); width: min(560px, 100%); max-height: 90vh; display: flex; flex-direction: column; animation: sk-rise .18s ease-out; }
.sk-modal--wide { width: min(900px, 100%); }
@keyframes sk-rise { from { transform: translateY(8px); opacity: 0; } }
.sk-modal__head { display: flex; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.sk-modal__head h2 { margin: 0; font-size: 17px; }
.sk-modal__head button { margin-left: auto; }
.sk-modal__body { padding: 18px 20px; overflow-y: auto; }
.sk-modal__foot { display: flex; gap: 8px; justify-content: flex-end; padding: 14px 20px; border-top: 1px solid var(--line); }
.sk-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(620px, 100%); background: var(--surface); color: var(--ink); z-index: 100001; box-shadow: var(--sh-2); display: flex; flex-direction: column; animation: sk-slide .2s ease-out; }
@keyframes sk-slide { from { transform: translateX(30px); opacity: 0; } }
.sk-toasts { position: fixed; bottom: 20px; right: 20px; z-index: 100002; display: grid; gap: 8px; }
.sk-toast { background: var(--navy); color: #fff; padding: 11px 16px; border-radius: 11px; box-shadow: var(--sh-2); max-width: 380px; display: flex; gap: 10px; align-items: flex-start; animation: sk-rise .2s; border-left: 4px solid var(--cyan); }
.sk-toast--error { border-left-color: #F87171; }
.sk-toast--warn { border-left-color: #FBBF24; }

/* Charts */
.sk-chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.sk-chart .axis text { fill: var(--muted); font-size: 11px; }
.sk-chart .grid line { stroke: var(--line-2); }
.sk-chart .bar { transition: opacity .15s; }
.sk-chart .bar:hover { opacity: .8; }
.sk-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--ink-2); margin-top: 8px; }
.sk-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.sk-tip { position: fixed; pointer-events: none; background: var(--navy); color: #fff; font-size: 12px; padding: 6px 9px; border-radius: 7px; z-index: 100003; white-space: nowrap; font-variant-numeric: tabular-nums; }
.sk-donut { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.sk-donut svg { width: 150px; flex: none; }
.sk-donut ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; flex: 1; min-width: 160px; }
.sk-donut li { display: flex; gap: 8px; align-items: center; }
.sk-donut li b { margin-left: auto; font-variant-numeric: tabular-nums; }

/* Attendance calendar */
.sk-cal { overflow: auto; max-height: 70vh; }
.sk-cal table { border-collapse: separate; border-spacing: 0; font-size: 12px; }
.sk-cal th, .sk-cal td { border-bottom: 1px solid var(--line-2); border-right: 1px solid var(--line-2); padding: 0; text-align: center; min-width: 30px; height: 34px; }
.sk-cal th { background: var(--surface-2); color: var(--muted); font-weight: 600; position: sticky; top: 0; z-index: 2; }
.sk-cal th.is-off { color: #94A3B8; background: var(--line-2); }
.sk-cal td.sk-cal__name, .sk-cal th.sk-cal__name { position: sticky; left: 0; z-index: 3; background: var(--surface); text-align: left; padding: 0 12px; min-width: 190px; white-space: nowrap; }
.sk-cal th.sk-cal__name { z-index: 4; background: var(--surface-2); }
.sk-cell { width: 100%; height: 33px; border: 0; background: transparent; cursor: pointer; font-weight: 700; font-size: 11.5px; }
.sk-cell:disabled { cursor: not-allowed; opacity: .45; }
.sk-cell[data-s="present"] { color: var(--ok); } .sk-cell[data-s="absent"] { background: var(--bad-bg); color: var(--bad); }
.sk-cell[data-s="half_day"] { background: var(--warn-bg); color: var(--warn); } .sk-cell[data-s="leave"], .sk-cell[data-s="lv"] { background: var(--info-bg); color: var(--blue); }
.sk-cell[data-s="holiday"], .sk-cell[data-s="weekly_off"] { color: #94A3B8; } .sk-cell[data-s="on_duty"] { color: #0891B2; }
.sk-cell.is-dirty { box-shadow: inset 0 0 0 2px var(--cyan); }
.sk-cell.is-pending { box-shadow: inset 0 -3px 0 var(--warn); }

/* Steps (wizard) */
.sk-steps { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.sk-steps li { list-style: none; display: flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 99px; background: var(--surface); border: 1px solid var(--line); color: var(--muted); font-weight: 600; font-size: 13px; }
.sk-steps li b { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--line-2); font-size: 12px; }
.sk-steps li.is-current { border-color: var(--blue); color: var(--blue); } .sk-steps li.is-current b { background: var(--blue); color: #fff; }
.sk-steps li.is-done { color: var(--ink-2); } .sk-steps li.is-done b { background: var(--ok); color: #fff; }
.sk-steps { padding: 0; margin-top: 0; }

/* Detail definitions */
.sk-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px 22px; margin: 0; }
.sk-dl div dt { color: var(--muted); font-size: 12.5px; }
.sk-dl div dd { margin: 2px 0 0; font-weight: 600; word-break: break-word; }
.sk-reveal { border: 0; background: none; color: var(--blue); cursor: pointer; padding: 0 0 0 6px; font-size: 12px; }
.sk-timeline { display: grid; gap: 0; }
.sk-timeline > div { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding: 8px 0; position: relative; }
.sk-timeline time { color: var(--muted); font-size: 12.5px; }
.sk-lines { width: 100%; border-collapse: collapse; }
.sk-lines td { padding: 7px 0; border-bottom: 1px dashed var(--line); vertical-align: top; }
.sk-lines td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 12px; }
.sk-lines small { color: var(--muted); display: block; font-size: 11.5px; }
.sk-lines tr.total td { border-bottom: 0; border-top: 1.5px solid var(--ink); font-weight: 700; }
.sk-payslip-frame { width: 100%; min-height: 70vh; border: 1px solid var(--line); border-radius: var(--r); background: #fff; }

/* Login (portal) */
.syka-login { display: grid; place-items: center; padding: 40px 16px; }
.syka-login__card { width: min(420px, 100%); background: #fff; border: 1px solid #E3E8F1; border-radius: 18px; padding: 28px; box-shadow: 0 6px 24px -10px rgba(11, 27, 63, .22); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.syka-login__brand { display: flex; align-items: center; gap: 10px; font-size: 18px; color: #0B1B3F; margin-bottom: 6px; }
.syka-login input[type="text"], .syka-login input[type="password"] { width: 100%; height: 40px; border: 1px solid #E3E8F1; border-radius: 9px; padding: 0 10px; }
.syka-login input[type="submit"] { background: #2563EB; color: #fff; border: 0; height: 40px; border-radius: 9px; padding: 0 18px; font-weight: 600; cursor: pointer; }
.syka-muted { color: #6B7690; }

/* Portal (front-end) */
.syka-portal { max-width: 1100px; margin: 0 auto; }
.syka-portal .sk-app { grid-template-columns: 1fr; min-height: 0; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.syka-portal .sk-side { position: static; height: auto; flex-direction: row; align-items: center; overflow-x: auto; }
.syka-portal .sk-nav { display: flex; padding: 6px 10px; }
.syka-portal .sk-nav__group, .syka-portal .sk-side__foot { display: none; }
.syka-portal .sk-top { position: static; }
.syka-portal .sk-brand small { display: none; }

/* Print */
@media print {
	body.syka-app-page #adminmenumain, body.syka-app-page #wpadminbar, .sk-side, .sk-top, .sk-pagehead__actions, .sk-toolbar, .sk-pager, .sk-noprint { display: none !important; }
	.sk-app { display: block; background: #fff; }
	body.syka-app-page #wpcontent { margin: 0; }
	.sk-card { box-shadow: none; border-color: #ccc; }
}

/* Responsive */
@media (max-width: 1100px) { .sk-cols { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
	.sk-app, .sk-app.is-collapsed { grid-template-columns: 1fr; }
	.sk-side { position: fixed; z-index: 99990; left: 0; top: 0; height: 100vh; width: 260px; transform: translateX(-100%); transition: transform .2s; }
	.sk-app.is-mobile-open .sk-side { transform: none; }
	.sk-top { top: 0; padding: 10px 14px; }
	.sk-content { padding: 16px 14px 40px; }
	.sk-grid--2, .sk-grid--3, .sk-cols--half { grid-template-columns: 1fr; }
	.sk-span-2 { grid-column: auto; }
	.sk-user > span:not(.sk-avatar) { display: none; }
	.sk-rail { grid-template-columns: repeat(3, 1fr); row-gap: 10px; }
	.sk-table--stack thead { display: none; }
	.sk-table--stack tr { display: block; border-bottom: 1px solid var(--line); padding: 8px 0; }
	.sk-table--stack td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 4px 14px; text-align: right; }
	.sk-table--stack td::before { content: attr(data-label); color: var(--muted); font-weight: 600; text-align: left; }
	.sk-table--stack td.money { text-align: right; }
	.syka-portal .sk-side { position: static; transform: none; width: auto; height: auto; }
}
@media (min-width: 861px) { .sk-mobile-only { display: none !important; } }

/* Utilities & fixes */
.syka-root [hidden] { display: none !important; }
.sk-content:focus { outline: none; }
.sk-hero .sk-btn:not(.sk-btn--primary) { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .28); color: #fff; }
.sk-hero .sk-btn:not(.sk-btn--primary):hover { background: rgba(255, 255, 255, .16); }
.sk-hero .sk-badge { background: rgba(255, 255, 255, .12); color: #fff; }
.sk-hero .sk-badge--ok { color: #6EE7B7; } .sk-hero .sk-badge--warn { color: #FCD34D; } .sk-hero .sk-badge--bad { color: #FCA5A5; } .sk-hero .sk-badge--cyan, .sk-hero .sk-badge--info { color: #67E8F9; }
.sk-cols > *, .sk-grid > *, .sk-main { min-width: 0; }
.syka-root ol.sk-steps, .syka-root .sk-steps { margin-left: 0; padding-left: 0; }
.sk-cols > .sk-stack > .sk-card .sk-kpis { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }

/* Theme isolation for the front-end portal */
.syka-root input.sk-input, .syka-root select.sk-input, .syka-root textarea.sk-input { font-size: 14px; line-height: 1.4; padding-top: 0; padding-bottom: 0; margin: 0; max-width: none; box-shadow: none; }
.syka-root textarea.sk-input { padding-top: 9px; padding-bottom: 9px; }
.syka-root select.sk-input { padding-right: 28px; }
.syka-root h1, .syka-root h2, .syka-root h3 { font-family: var(--font); letter-spacing: -.01em; }
.syka-root p { font-size: inherit; }
.syka-portal { width: min(1120px, calc(100vw - 32px)) !important; max-width: none !important; margin-left: calc(50% - min(560px, 50vw - 16px)) !important; margin-right: 0 !important; }
.syka-portal .sk-brand b { color: #fff; }
@media (max-width: 860px) { .syka-portal .sk-brand span { display: none; } .syka-portal .sk-top .sk-iconbtn:first-child { display: none; } }
.sk-card__foot { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 18px 16px; }
.sk-grid { align-items: start; }
.syka-root h1, .syka-root h2, .syka-root h3, .syka-root h4, .syka-root label, .syka-root td, .syka-root th { color: inherit; }
.sk-card, .sk-modal, .sk-drawer, .sk-pop { color: var(--ink); }
.sk-hero h2 { color: #fff; }

/* ------------------------------------------------------------------
   Form controls: always our colours, never WordPress-admin or theme ones.
   (WP admin paints inputs white; in dark mode our light text vanished.)
   ------------------------------------------------------------------ */
.syka-root { color-scheme: light; }
.syka-root[data-theme="dark"] { color-scheme: dark; }
.syka-root input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]):not([type="submit"]),
.syka-root select,
.syka-root textarea {
	background-color: var(--surface) !important;
	color: var(--ink) !important;
	-webkit-text-fill-color: var(--ink);
	border: 1px solid var(--line-strong, #C9D2E3) !important;
	border-radius: 9px;
	box-shadow: none;
	opacity: 1;
}
.syka-root[data-theme="dark"] { --line-strong: #34456B; }
.syka-root input::placeholder, .syka-root textarea::placeholder { color: var(--muted) !important; -webkit-text-fill-color: var(--muted); opacity: 1; }
.syka-root input:focus, .syka-root select:focus, .syka-root textarea:focus { border-color: var(--blue) !important; box-shadow: 0 0 0 3px rgba(37, 99, 235, .2) !important; outline: none; }
.syka-root input:disabled, .syka-root select:disabled, .syka-root textarea:disabled { background-color: var(--line-2) !important; color: var(--ink-2) !important; -webkit-text-fill-color: var(--ink-2); }
.syka-root select option, .syka-root select optgroup { background-color: var(--surface); color: var(--ink); }
.syka-root input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--surface) inset !important; -webkit-text-fill-color: var(--ink) !important; }
.syka-root .sk-field > span { color: var(--ink-2) !important; font-weight: 600; }
.syka-root .sk-field small { color: var(--muted) !important; }
.syka-root .sk-check, .syka-root .sk-check span { color: var(--ink) !important; }
.syka-root .sk-field.has-error input, .syka-root .sk-field.has-error select, .syka-root .sk-field.has-error textarea { border-color: var(--bad) !important; }
.sk-top__search input { padding-left: 36px !important; }

/* Export menu */
.sk-export { position: relative; display: inline-block; }
.sk-caret { font-size: 10px; opacity: .7; margin-left: 2px; }
.sk-export__menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 50; min-width: 240px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-2); padding: 6px; }
.sk-export__item { display: grid; gap: 1px; width: 100%; text-align: left; border: 0; background: transparent; padding: 8px 10px; border-radius: 8px; cursor: pointer; color: var(--ink); }
.sk-export__item small { color: var(--muted); font-size: 12px; }
.sk-export__item:hover, .sk-export__item:focus-visible { background: var(--info-bg); outline: none; }
.sk-trunc { display: inline-block; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* 1.2.0 — statutory files dialog */
.syka-root .sk-issues { border: 1px solid var(--line); border-radius: var(--r); padding: 8px 12px; background: var(--surface); }
.syka-root .sk-issues summary { cursor: pointer; font-weight: 600; display: flex; gap: 8px; align-items: center; }
.syka-root .sk-issues ul { margin: 8px 0 0; padding-left: 18px; max-height: 220px; overflow: auto; font-size: 13px; }
.syka-root .sk-issues li { margin: 2px 0; }
.syka-root .sk-modal .sk-kpi b { font-size: 18px; }
.syka-root .sk-syscheck { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.syka-root .sk-syscheck li { display: grid; grid-template-columns: 84px 1fr; gap: 10px; align-items: start; }
.syka-root .sk-toolbar__actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 600px) {
	.syka-root .sk-toolbar .sk-input { flex: 1 1 140px; min-width: 0; }
	.syka-root .sk-toolbar__actions { margin-left: 0; width: 100%; }
	.syka-root .sk-toolbar__actions > * { flex: 1 1 auto; }
}
/* Portal: below 1152px follow the theme's content width instead of breaking out (theme containers are often off-centre). */
@media (max-width: 1151px) {
	.syka-portal { width: auto !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
}
.syka-root .sk-stack > *, .syka-root .sk-card, .syka-root .sk-card__body { min-width: 0; }
.syka-root .sk-syscheck li > :first-child { justify-self: start; align-self: start; }

/* 1.2.1 — phone layout polish */
.syka-root .sk-pcal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.syka-root .sk-pcal__wd { font-size: 12px; text-align: center; }
.syka-root .sk-pcal__day { border: 1px solid var(--line); border-radius: 10px; padding: 6px; min-height: 62px; background: var(--surface); min-width: 0; overflow: hidden; }
.syka-root .sk-pcal__day.is-off { background: var(--line-2); }
.syka-root .sk-pcal__status { font-size: 11.5px; margin-top: 2px; }
.syka-root .sk-pcal__code { display: none; margin-top: 4px; font-size: 11px; font-weight: 700; line-height: 18px; min-width: 22px; padding: 0 4px; border-radius: 6px; text-align: center; background: var(--warn-bg); color: var(--ink); }
.syka-root .sk-pcal__code.is-ok { background: var(--ok-bg, #DCFCE7); }
.syka-root .sk-pcal__code.is-bad { background: var(--bad-bg, #FEE2E2); }
.syka-root .sk-outcome { display: flex; gap: 6px; flex-wrap: nowrap; }
.syka-root .sk-outcome > * { min-width: 0; }
@media (max-width: 860px) {
	/* Top bar: keep every control tappable; the search box gives way first. */
	.sk-top { gap: 8px; }
	.sk-top__search { min-width: 0; }
	.sk-top__actions { gap: 6px; }
	.sk-top__actions > * { flex-shrink: 0; }
	.sk-user { padding: 3px; }
	.sk-focusbtn { display: none !important; } /* WordPress already hides its menu on small screens */
	/* Stacked tables: a "block" cell (e.g. form controls) gets the full row width under its label. */
	.sk-table--stack td.is-block { display: block; text-align: left; padding-top: 8px; }
	.sk-table--stack td.is-block::before { display: block; margin-bottom: 6px; }
	.syka-root .sk-outcome { display: grid; grid-template-columns: 1fr 1fr; }
	.syka-root .sk-outcome .sk-input { width: 100%; height: 38px !important; }
	/* Employee portal: all sections visible as a grid instead of a hidden scrolling strip. */
	.syka-portal .sk-side { overflow: visible; }
	.syka-portal .sk-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; width: 100%; padding: 8px; }
	.syka-portal .sk-nav a { flex-direction: column; justify-content: center; gap: 4px; padding: 8px 2px; font-size: 11.5px; text-align: center; min-width: 0; }
	.syka-portal .sk-nav a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
}
@media (max-width: 600px) {
	.syka-root .sk-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.syka-root .sk-kpi { padding: 12px 14px; }
	.syka-root .sk-kpi b { font-size: 20px; }
	.syka-root .sk-pcal { gap: 4px; }
	.syka-root .sk-pcal__day { min-height: 48px; padding: 4px; border-radius: 8px; text-align: center; }
	.syka-root .sk-pcal__status, .syka-root .sk-pcal__time { display: none; }
	.syka-root .sk-pcal__code { display: inline-block; }
	.syka-root .sk-modal .sk-kpi b { font-size: 16px; }
}
.sk-scrim { display: none; }
@media (max-width: 860px) {
	/* Mobile menu: sits below the WordPress toolbar and dims the page; tap outside or Esc closes it. */
	body.admin-bar .sk-side { top: 46px; height: calc(100vh - 46px); }
	.sk-app.is-mobile-open .sk-scrim { display: block; position: fixed; inset: 0; z-index: 99980; background: rgba(11, 27, 63, .45); }
	.sk-side { overflow-y: auto; }
}
@media (min-width: 783px) and (max-width: 860px) {
	body.admin-bar .sk-side { top: 32px; height: calc(100vh - 32px); }
}

/* 1.3.0 — self check-in card */
.syka-root .sk-checkin { padding: 18px; display: grid; gap: 12px; border-left: 4px solid var(--blue); }
.syka-root .sk-checkin[hidden] { display: none; }
.syka-root .sk-checkin__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.syka-root .sk-checkin h2 { margin: 0; font-size: 18px; }
.syka-root .sk-checkin h2 .sk-muted { font-weight: 500; font-size: 14px; }
.syka-root .sk-checkin__status { margin: 4px 0 0; font-size: 20px; letter-spacing: -.01em; }
.syka-root .sk-checkin__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--ink-2); }
.syka-root .sk-checkin__meta > span { display: inline-flex; align-items: center; gap: 6px; }
.syka-root .sk-checkin__meta svg { width: 16px; height: 16px; color: var(--blue); flex: none; }
.syka-root .sk-checkin__actions { display: flex; gap: 10px; }
.syka-root .sk-checkin__btn { min-height: 48px; padding: 0 28px; font-size: 16px; }
.syka-root .sk-checkin__code { max-width: 220px; }
.syka-root .sk-checkin__code input { font-size: 20px; letter-spacing: .3em; text-align: center; height: 46px; }
.syka-root .sk-checkin__progress:empty, .syka-root .sk-checkin__last:empty { display: none; }
.syka-root .sk-checkin__progress { margin: 0; color: var(--ink-2); font-size: 13.5px; }
.syka-root .sk-checkin__privacy, .syka-root .sk-checkin__last { margin: 0; font-size: 12.5px; }
.syka-root .sk-checkin__error p { margin: 0 0 4px; }
.syka-root .sk-link { background: none; border: 0; padding: 0; color: var(--blue); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
@media (max-width: 600px) {
	.syka-root .sk-checkin__actions .sk-btn { width: 100%; justify-content: center; }
	.syka-root .sk-checkin__code { max-width: none; }
	.syka-root .sk-checkin__status { font-size: 18px; }
}
/* Kiosk (rotating office code) */
.syka-root .sk-kiosk { display: grid; place-items: center; gap: 18px; text-align: center; padding: 32px 16px; min-height: 70vh; }
.syka-root .sk-kiosk svg.sk-qr { width: min(70vmin, 420px); height: auto; background: #fff; padding: 14px; border-radius: 16px; box-shadow: var(--sh-2); }
.syka-root .sk-kiosk__code { font-size: clamp(40px, 10vw, 84px); font-weight: 800; letter-spacing: .18em; font-variant-numeric: tabular-nums; }
.syka-root .sk-kiosk__bar { width: min(420px, 80vw); height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.syka-root .sk-kiosk__bar > i { display: block; height: 100%; background: var(--blue); transition: width 1s linear; }
.syka-root:fullscreen, .syka-root .sk-kiosk:fullscreen { background: var(--bg); }
.syka-root .sk-checkin__error { align-items: flex-start; }
.syka-root .sk-checkin__error > svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--bad); }
.syka-root .sk-checkin__error .sk-link { display: inline; text-align: left; }

/* ---- 1.4.0 selfie check-in, faces, work updates ---- */
.syka-root .sk-modal--selfie { max-width: 440px; }
.syka-root .sk-selfie { display: grid; gap: 10px; justify-items: center; }
.syka-root .sk-selfie__frame { position: relative; width: min(100%, 340px); aspect-ratio: 1; border-radius: var(--r-lg); overflow: hidden; background: #0b1220; }
.syka-root .sk-selfie__video, .syka-root .sk-selfie__shot { width: 100%; height: 100%; object-fit: cover; display: block; }
.syka-root .sk-selfie__video { transform: scaleX(-1); }
.syka-root .sk-selfie__video[hidden], .syka-root .sk-selfie__shot[hidden] { display: none; }
.syka-root .sk-selfie__oval { position: absolute; inset: 12% 22% 10%; border: 3px dashed rgba(255,255,255,.75); border-radius: 50%; pointer-events: none; }
.syka-root .sk-selfie__status { margin: 0; text-align: center; font-weight: 600; color: var(--ink); }
.syka-root .sk-selfie__status.is-bad { color: var(--bad); }
.syka-root .sk-selfie__tip { margin: 0; text-align: center; font-size: 12.5px; }
.syka-root .sk-consent { margin: 0; padding: 12px 14px; border-left: 3px solid var(--blue); background: var(--surface-2); border-radius: var(--r-sm); color: var(--ink); }
.syka-root .sk-checkin__summary textarea { min-height: 72px; resize: vertical; }
.syka-root .sk-facepair { display: flex; gap: 8px; align-items: center; }
.syka-root .sk-facepair img, .syka-root .sk-facepair .sk-facepair__none { width: 56px; height: 56px; border-radius: var(--r-sm); object-fit: cover; background: var(--surface-2); border: 1px solid var(--line); display: grid; place-items: center; font-size: 11px; color: var(--muted); text-align: center; }
.syka-root .sk-facepair img { cursor: zoom-in; }
.syka-root .sk-facebig { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.syka-root .sk-facebig figure { margin: 0; }
.syka-root .sk-facebig img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r); background: var(--surface-2); }
.syka-root .sk-facebig figcaption { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.syka-root .sk-update { white-space: pre-wrap; max-width: 46ch; color: var(--ink); }
@media (max-width: 600px) {
	.syka-root .sk-modal--selfie .sk-modal__foot { flex-wrap: wrap; }
	.syka-root .sk-modal--selfie .sk-modal__foot .sk-btn { flex: 1 1 auto; }
}
.sk-span-3 { grid-column: 1 / -1; }

/* ---- 1.5.0 ID proof ---- */
.syka-root .sk-idnum { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; letter-spacing: .04em; color: var(--ink); background: var(--surface-2); padding: 2px 6px; border-radius: var(--r-sm); }
.syka-root .sk-idproof__file { color: var(--ink-2); word-break: break-all; }
.syka-root .sk-field[hidden] { display: none; }

/* ---- 1.6.0 employee app (installed / app shell) ---- */
body.syka-app-shell { margin: 0; min-height: 100vh; background: #F4F6FB; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); -webkit-tap-highlight-color: transparent; }
body.syka-app-shell:has(.syka-root[data-theme="dark"]) { background: #0B1220; }
body.syka-app-shell .syka-portal { width: 100% !important; max-width: none !important; margin: 0 !important; }
body.syka-app-shell .syka-portal .sk-app { border: 0; border-radius: 0; min-height: 100vh; }
body.syka-app-shell .syka-login { min-height: 100vh; box-sizing: border-box; }
.syka-app-login label { display: block; font-size: 14px; font-weight: 600; color: #0B1B3F; margin-bottom: 6px; }
.syka-app-login input[type="text"], .syka-app-login input[type="password"] { box-sizing: border-box; font-size: 16px; }
.syka-app-login__remember label { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.syka-app-login button[type="submit"] { width: 100%; background: #2563EB; color: #fff; border: 0; height: 44px; border-radius: 10px; font-size: 15px; font-weight: 600; cursor: pointer; }
.syka-app-login__error { background: #FEF2F2; color: #B91C1C; border-radius: 9px; padding: 10px 12px; font-size: 14px; }
.syka-root .sk-install { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.syka-root .sk-install img { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.syka-root .sk-install__text { flex: 1; min-width: 0; color: var(--ink); font-size: 13.5px; line-height: 1.4; }
.syka-root .sk-install__text b { display: block; font-size: 14.5px; }
.syka-root .sk-install__share { display: inline-block; width: 16px; height: 16px; vertical-align: -3px; }
@media (max-width: 480px) { .syka-root .sk-install { flex-wrap: wrap; } .syka-root .sk-install .sk-row { width: 100%; justify-content: flex-end; } }

/* ---- 1.6.1 searchable employee picker ---- */
.syka-root .sk-pick { position: relative; display: grid; gap: 6px; }
.syka-root .sk-pick__box { position: relative; }
.syka-root .sk-pick__input { width: 100%; padding-right: 34px; }
.syka-root .sk-pick__clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--muted); width: 26px; height: 26px; border-radius: 6px; display: grid; place-items: center; cursor: pointer; }
.syka-root .sk-pick__clear:hover { background: var(--surface-2); color: var(--ink); }
.syka-root .sk-pick__clear svg { width: 14px; height: 14px; }
.syka-root .sk-pick__list { position: absolute; z-index: 60; top: 100%; left: 0; right: 0; margin: 4px 0 0; padding: 4px; list-style: none; max-height: 280px; overflow-y: auto; background: var(--surface); border: 1px solid var(--line-strong, var(--line)); border-radius: var(--r); box-shadow: var(--sh-2); }
.syka-root .sk-pick__list[hidden] { display: none; }
.syka-root .sk-pick__opt { display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; border-radius: var(--r-sm); cursor: pointer; color: var(--ink); }
.syka-root .sk-pick__opt small { color: var(--muted); font-size: 12px; }
.syka-root .sk-pick__opt:hover, .syka-root .sk-pick__opt[aria-selected="true"] { background: var(--info-bg); }
.syka-root .sk-pick__empty, .syka-root .sk-pick__more { padding: 8px 10px; color: var(--muted); font-size: 12.5px; }
.syka-root .sk-pick__more { border-top: 1px solid var(--line); margin-top: 4px; }
.syka-root .sk-pick__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.syka-root .sk-pick__chips:empty { display: none; }
.syka-root .sk-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 4px 3px 10px; border-radius: 999px; background: var(--info-bg); color: var(--ink); font-size: 12.5px; }
.syka-root .sk-chip button { border: 0; background: transparent; color: inherit; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.syka-root .sk-chip svg { width: 12px; height: 12px; }

/* ---- 1.8.0 sign-in security (portal / app forms) ---- */
.syka-login .syka-math label, .syka-app-login .syka-math label { display: block; font-size: 14px; font-weight: 600; color: #0B1B3F; margin-bottom: 6px; }
.syka-login .syka-math input { width: 100%; height: 40px; border: 1px solid #E3E8F1; border-radius: 9px; padding: 0 10px; font-size: 16px; box-sizing: border-box; }
.syka-login .syka-2fa label { display: block; font-weight: 600; color: #0B1B3F; margin-bottom: 6px; }
.syka-login .syka-2fa #syka_code { width: 100%; height: 48px; font-size: 24px; letter-spacing: .25em; text-align: center; border: 1px solid #E3E8F1; border-radius: 10px; box-sizing: border-box; }
.syka-login .syka-2fa .button-primary, .syka-login .syka-2fa button[type=submit] { width: 100%; height: 44px; border: 0; border-radius: 10px; background: #2563EB; color: #fff; font-weight: 600; font-size: 15px; cursor: pointer; }
.syka-login .syka-2fa-note { color: #475569; font-size: 14px; line-height: 1.5; }
.syka-login .syka-2fa-error { background: #FEF2F2; color: #B91C1C; border-radius: 9px; padding: 10px 12px; font-size: 14px; }
.syka-login .syka-2fa-links { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13.5px; color: #475569; }
.syka-login .syka-2fa-links .button-link { background: none; border: 0; padding: 0; color: #2563EB; text-decoration: underline; cursor: pointer; font: inherit; }
.syka-login .forgetmenot label { display: flex; gap: 8px; align-items: center; font-weight: 400; }

/* 1.8.0 sign-in security settings */
.syka-root .sk-subhead { margin: 8px 0 0; font-size: 14px; font-weight: 650; color: var(--ink); }
.syka-root [data-provider][hidden] { display: none; }
.syka-root .sk-backup-codes { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--ink); }
