:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg-alt:#f6f7f9;--surface:#fff;--text:#101828;--text-2:#475467;--text-3:#667085;--accent:#2a4fe0;--button-bg:#000;--button-fg:#fff;--border-input:#737c8c;--border-deco:#e4e7ec;--ok:#067647;--danger:#b42318;--warn:#b54708;--clock-in:#0a7333;--clock-out:#b52417;--accent-tint:#eef3ff;--accent-tint-2:#dbe5ff;--ok-tint:#ecfdf3;--warn-tint:#fffaeb;--danger-tint:#fef3f2;--on-fill:#fff;--on-danger:#fff;--on-accent:#fff;--paper:#fff;--ink:#101828;--ink-2:#667085;--scrim:#10182873;--cat-0:#3b63f6;--cat-1:#f79009;--cat-2:#12b76a;--cat-3:#7a5af8;--cat-4:#ee46bc;--cat-5:#06aed4;--font:-apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--radius-button:12px;--radius-card:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--shadow-card:0 1px 3px #10182814, 0 1px 2px #1018280a;--motion:.16s}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f17;--bg-alt:#121826;--surface:#121826;--text:#eef1f6;--text-2:#b4bdcc;--text-3:#8b96a8;--accent:#8ea6ff;--button-bg:#fff;--button-fg:#000;--border-input:#6e7b92;--border-deco:#232c3e;--ok:#47cd89;--danger:#f97066;--warn:#fdb022;--accent-tint:#172447;--accent-tint-2:#1d2f5e;--ok-tint:#0c2a1c;--warn-tint:#2d1f05;--danger-tint:#2f1210;--scrim:#0009;--on-danger:#0b0f17;--on-accent:#0b0f17;--shadow-card:0 0 0 1px var(--border-deco)}@media (prefers-reduced-motion:reduce){:root{--motion:0s}}:root{--brand-50:var(--accent-tint);--brand-100:var(--accent-tint-2);--brand-500:var(--accent);--brand-600:var(--accent);--brand-700:var(--accent);--focus-ring:var(--accent);--surface-2:var(--bg-alt);--border:var(--border-deco);--border-strong:var(--border-input);--ok-bg:var(--ok-tint);--warn-bg:var(--warn-tint);--danger-bg:var(--danger-tint);--info:var(--accent);--info-bg:var(--accent-tint);--radius-sm:8px;--radius:var(--radius-button);--radius-lg:var(--radius-card);--shadow-sm:var(--shadow-card);--shadow:var(--shadow-card);--shadow-lg:0 16px 40px -12px var(--scrim);--sidebar:264px;font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}::selection{background:var(--brand-100)}h1{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.6rem;font-weight:650;line-height:1.25}h2{letter-spacing:-.01em;margin:0 0 .75rem;font-size:1.05rem;font-weight:620;line-height:1.35}h1+p,h2+p,.lead{color:var(--text-2);max-width:60ch;margin-top:0}small,.muted{color:var(--text-3)}code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.05em .35em;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}a{color:var(--brand-600)}.shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--bg-alt);border-right:1px solid var(--border);flex-direction:column;gap:1.25rem;height:100vh;padding:1.25rem .9rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:.65rem;padding:.25rem .5rem;display:flex}.brand-name{letter-spacing:-.01em;font-weight:680}.brand-tenant{color:var(--text-3);font-size:.78rem;font-weight:450;display:block}.nav-group{gap:2px;display:grid}.nav-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:0 .6rem .3rem;font-size:.72rem;font-weight:600}.nav-item{all:unset;box-sizing:border-box;border-radius:var(--radius-sm);width:100%;color:var(--text-2);cursor:pointer;transition:background var(--motion) ease, color var(--motion) ease;align-items:center;gap:.6rem;padding:.5rem .6rem;font-weight:500;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item[aria-current=page]{color:var(--text);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.nav-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.nav-dot{opacity:.35;background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.nav-item[aria-current=page] .nav-dot{opacity:1}.sidebar-foot{border-top:1px solid var(--border);gap:.5rem;margin-top:auto;padding:.75rem .5rem 0;display:grid}.who{color:var(--text-3);font-size:.82rem}.content{min-width:0}main.page{align-content:start;gap:1.25rem;max-width:1180px;margin:0 auto;padding:2rem 2.25rem 4rem;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:.25rem;display:flex}.app-foot,footer.version{color:var(--text-3);max-width:1180px;margin:0 auto;padding:0 2.25rem 2rem;font-size:.8rem}main.page>div{align-content:start;gap:1.25rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-content:start;gap:.9rem;padding:1.25rem 1.4rem;display:grid}form.card{max-width:44rem}.card>h2{margin-bottom:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;display:grid}.kpis{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;display:grid}.kpi{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--motion) ease, box-shadow var(--motion) ease, transform var(--motion) ease;gap:.35rem;padding:1rem 1.15rem;display:grid}.kpi:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.kpi:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.kpi-label{color:var(--text-2);font-size:.82rem;font-weight:520}.kpi-value{letter-spacing:-.03em;font-size:1.9rem;font-weight:680;line-height:1.1}.kpi-hint{color:var(--text-3);font-size:.78rem}.kpi.attention .kpi-value{color:var(--warn)}.kpi.alarm .kpi-value{color:var(--danger)}.kpi.calm .kpi-value{color:var(--ok)}.topbar{z-index:10;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--bg);border-bottom:1px solid var(--border-deco);display:flex;position:sticky;top:0}.topbar-tenant{color:var(--text);margin-right:auto;font-weight:600}.account{align-items:center;gap:var(--space-3);display:flex}.header-controls{align-items:center;gap:var(--space-2);display:flex}.icon-button{width:44px;color:var(--text);padding:0}.lang-switch{border:1px solid var(--border-input);border-radius:var(--radius-button);display:inline-flex;overflow:hidden}.lang-switch .lang-option{min-width:44px;color:var(--text-2);background:0 0;border:0;border-radius:0;font-size:14px}.lang-switch .lang-option[aria-pressed=true]{background:var(--text);color:var(--bg)}.auth-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}button,.btn{font:inherit;border-radius:var(--radius-button);cursor:pointer;border:1px solid var(--border-input);background:var(--surface);min-height:44px;color:var(--text);transition:opacity var(--motion) ease, background var(--motion) ease, color var(--motion) ease;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:16px;font-weight:500;line-height:1.2;display:inline-flex}button:hover{opacity:.85}button:active{opacity:.75}button[type=submit],.btn-primary{background:var(--button-bg);border-color:var(--button-bg);color:var(--button-fg)}.btn-secondary,button.btn-secondary{background:var(--surface);border-color:var(--border-input);color:var(--text)}.btn-danger,button.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn-ghost{color:var(--accent);background:0 0;border-color:#0000}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}td.actions{margin:0}td.actions button{padding:.35rem .65rem;font-size:.82rem}label{color:var(--text-2);gap:.35rem;font-size:.86rem;font-weight:540;display:grid}label.inline,label.row{color:var(--text);align-items:center;gap:.55rem;font-weight:500;display:flex}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:2.5rem;transition:border-color var(--motion) ease, box-shadow var(--motion) ease;padding:.55rem .7rem;font-size:.95rem}input:hover,select:hover{border-color:var(--text-3)}input:focus,select:focus,textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none}input[type=checkbox]{width:1.05rem;height:1.05rem;min-height:0;accent-color:var(--brand-600);padding:0}fieldset{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:.9rem;padding:.75rem .9rem;display:flex}legend{color:var(--text-2);padding:0 .3rem;font-size:.82rem;font-weight:560}.filters{flex-wrap:wrap;align-items:end;gap:.9rem;display:flex}table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);font-size:.9rem;overflow:hidden}.card table{box-shadow:none}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--border);padding:.65rem .9rem;font-size:.74rem;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:top;padding:.7rem .9rem}tbody th[scope=row]{text-transform:none;letter-spacing:normal;color:var(--text);background:var(--surface);vertical-align:top;font-size:.9rem;font-weight:560}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-2)}td small{display:block}.badge{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .55rem;font-size:.76rem;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#0000}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:#0000}.badge.danger{background:var(--danger-bg);color:var(--danger);border-color:#0000}.badge.info{background:var(--info-bg);color:var(--info);border-color:#0000}[role=alert]{border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);margin:0;padding:.75rem 1rem;font-weight:520}.notice{border-radius:var(--radius);background:var(--info-bg);color:var(--info);padding:.75rem 1rem}.warning{color:var(--warn);font-weight:600}.correction{color:var(--info)}.negative{color:var(--danger);font-weight:600}.corrected s{color:var(--text-3)}.empty{text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-2);place-items:center;gap:.4rem;padding:2.5rem 1.5rem;display:grid}.empty strong{color:var(--text);font-size:1rem}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-2), var(--border), var(--surface-2));background-size:200% 100%;min-height:1rem;animation:1.2s ease-in-out infinite shimmer}.skeleton.kpi-skel{border-radius:var(--radius-lg);height:96px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}ul:not(.list){color:var(--text-2);margin:0;padding-left:1.1rem}ul:not(.list) li{padding:.15rem 0}.auth{background:radial-gradient(1200px 600px at 10% -10%, var(--brand-100), transparent 60%), radial-gradient(900px 500px at 110% 110%, var(--brand-50), transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow-lg);border-radius:18px;gap:1.1rem;padding:2rem;display:grid}.auth-card .brand{margin-bottom:.25rem;padding:0}.auth-card form{gap:.9rem;display:grid}.auth-card button[type=submit]{width:100%;padding:.7rem}.pin-letter{background:var(--paper);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:38rem;padding:2.25rem}.letter-pin{letter-spacing:.3em;font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:700}.totp-key{word-break:break-all;font-family:ui-monospace,monospace;font-size:1.05rem}@media print{.no-print,.sidebar{display:none!important}.shell{display:block}.pin-letter{box-shadow:none;border:none}}.menu-toggle{display:none}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{z-index:20;width:min(300px,86vw);transition:transform var(--motion) ease;box-shadow:var(--shadow-lg);position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.shell.menu-open .sidebar{transform:none}.menu-toggle{display:inline-flex}main.page{padding:1.25rem 1rem 3rem}.app-foot,footer.version{padding:0 1rem 2rem}table{white-space:nowrap;display:block;overflow-x:auto}}.search{min-width:260px}.mono{font-variant-numeric:tabular-nums;color:var(--text-2);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86rem}.person{align-items:center;gap:.7rem;display:inline-flex}.person h2{margin:0}.avatar{background:var(--brand-50);width:32px;height:32px;color:var(--brand-700);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:.78rem;font-weight:650;display:grid}.avatar.lg{width:44px;height:44px;font-size:.95rem}tr.row-link{cursor:pointer}tr.row-link:focus-visible td{outline:2px solid var(--focus-ring);outline-offset:-2px}tr.row-link.selected td{background:var(--brand-50)}.detail{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);gap:1rem;padding:1.25rem;display:grid}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.detail .card{box-shadow:none}.danger-text{color:var(--danger)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.stats{grid-template-columns:repeat(3,1fr);gap:.75rem;margin:0;display:grid}.stats div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem}.stats dt{color:var(--text-3);font-size:.75rem;font-weight:560}.stats dd{font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.15rem;font-weight:650}.ledger{gap:.3rem;margin:0;padding:0;font-size:.86rem;list-style:none;display:grid}.ledger li{border-bottom:1px solid var(--border);padding:.4rem 0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skeleton.table-skel{border-radius:var(--radius-lg);height:320px}.card form,form.card,.auth-form{gap:.9rem;display:grid}form>button,.card>button{justify-self:start}form>button+button{margin-left:0}form:has(>button+button){grid-auto-flow:row}.card form>button[type=submit]~button{justify-self:start}.button-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.history{color:var(--text-2);gap:.35rem;margin:0;padding:0;font-size:.86rem;list-style:none;display:grid}.history li{flex-wrap:wrap;gap:.6rem;display:flex}.history time{color:var(--text);font-variant-numeric:tabular-nums;font-weight:560}.current{color:var(--text);font-size:.95rem}.current strong{font-weight:650}.month-pick input{min-width:12rem}.eyebrow{text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);font-size:.74rem;font-weight:650}.readiness{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem 1.5rem;padding:1.5rem 1.6rem;display:grid;position:relative;overflow:hidden}.readiness:before{content:"";background:var(--text-3);width:4px;position:absolute;inset:0 auto 0 0}.readiness.ready:before{background:var(--ok)}.readiness.blocked:before{background:var(--danger)}.readiness.waiting:before{background:var(--warn)}.readiness-icon{font-variant-numeric:tabular-nums;background:var(--surface-2);width:56px;height:56px;color:var(--text-2);border-radius:16px;place-items:center;font-size:1.5rem;font-weight:720;display:grid}.readiness.ready .readiness-icon{background:var(--ok-bg);color:var(--ok)}.readiness.blocked .readiness-icon{background:var(--danger-bg);color:var(--danger)}.readiness.waiting .readiness-icon{background:var(--warn-bg);color:var(--warn)}.readiness-body{gap:.3rem;min-width:0;display:grid}.readiness-body h2{letter-spacing:-.02em;margin:0;font-size:1.35rem}.readiness-body p{color:var(--text-2);max-width:62ch;margin:0}.readiness-action{justify-items:end;gap:.4rem;display:grid}.btn-lg{border-radius:var(--radius);padding:.75rem 1.25rem;font-size:.98rem}.facts{flex-wrap:wrap;gap:.5rem 1.75rem;margin:.6rem 0 0;display:flex}.facts dt{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.facts dd{font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-weight:600}.skeleton.readiness-skel{border-radius:var(--radius-lg);height:150px}.notice.success{background:var(--ok-bg);color:var(--ok)}.notice.success code{border-color:color-mix(in srgb, var(--ok) 30%, transparent);color:inherit;background:0 0}.checklist{counter-reset:none;gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.checklist li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:.7rem .85rem;display:grid}.check-num{background:var(--danger-bg);width:26px;height:26px;color:var(--danger);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.check-text{color:var(--text);font-weight:500}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card-head h2{margin:0 0 .2rem}.card-head p{max-width:70ch;margin:0}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.segmented{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}.segmented button{box-shadow:none;color:var(--text-2);background:0 0;border:none;border-radius:7px;padding:.4rem .85rem}.segmented button:hover{background:var(--surface)}.segmented button[aria-checked=true],.segmented button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}table.mapping td{vertical-align:middle}table.mapping td strong{font-weight:580;display:block}table.mapping td small.mono{color:var(--text-3);font-size:.74rem}.cell-input{width:100%;max-width:13rem;min-height:2.15rem;padding:.35rem .55rem}input.cell-input{max-width:7rem}tr.row-missing td{background:color-mix(in srgb, var(--danger-bg) 55%, transparent)}tr.row-missing:hover td{background:var(--danger-bg)}.form-foot{flex-wrap:wrap;align-items:end;gap:.9rem;padding-top:.25rem;display:flex}.form-foot .grow{flex:18rem}.small{font-size:.82rem}details summary{cursor:pointer;color:var(--text-2);padding:.25rem 0;font-weight:560}details[open] summary{margin-bottom:.5rem}@media (width<=720px){.readiness{grid-template-columns:1fr}.readiness-action{justify-items:stretch}.checklist li{grid-template-columns:auto 1fr}.checklist li button{grid-column:2;justify-self:start}}.inline-card{max-width:none}.input-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.input-row input{max-width:9rem}.checklist.warn .check-num{background:var(--warn-bg);color:var(--warn)}.readiness-action small{text-align:right;max-width:16rem}.stepper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:.25rem;padding:3px;display:inline-flex}.stepper button{padding:.35rem .6rem;font-size:1.05rem;line-height:1}.stepper-label{text-align:center;font-variant-numeric:tabular-nums;text-transform:capitalize;min-width:9.5rem;font-weight:620}.people-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.person-card{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;transition:border-color var(--motion) ease, box-shadow var(--motion) ease, transform var(--motion) ease;align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.person-card:hover{border-color:var(--brand-500);box-shadow:var(--shadow);transform:translateY(-1px)}.person-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.person-card strong{font-weight:600;display:block}.person-card small{display:block}.person-bar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 2rem;padding:1.1rem 1.35rem;display:flex}.person-bar h2{margin:0}.metrics{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.metrics div{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);min-width:6.5rem;padding:.5rem .8rem}.metrics dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.7rem;font-weight:650}.metrics dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.2rem;font-weight:680}.metrics .pos dd{color:var(--ok)}.metrics .neg dd{color:var(--danger)}.metrics .warn{background:var(--warn-bg);border-color:#0000}.metrics .warn dd{color:var(--warn)}.days-card{padding:.9rem 1rem}.strip-legend{width:15rem;color:var(--text-3);font-variant-numeric:tabular-nums;justify-content:space-between;margin-left:4.5rem;font-size:.7rem;display:flex}.days{margin:0;padding:0;list-style:none;display:grid}.day{border-top:1px solid var(--border);grid-template-columns:3.75rem 1fr auto auto;align-items:center;gap:.4rem 1rem;padding:.65rem .4rem;display:grid}.day:first-child{border-top:none}.day:hover{background:var(--surface-2)}.day.weekend .day-date{color:var(--text-3)}.day.today .day-num{background:var(--brand-600);color:var(--on-accent)}.day.has-warning{box-shadow:inset 3px 0 0 var(--warn)}.day-date{justify-items:center;gap:.1rem;display:grid}.day-num{font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:2rem;height:2rem;font-weight:680;display:grid}.day-wd{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-size:.72rem}.day-main{gap:.45rem;min-width:0;display:grid}.strip{width:15rem;height:14px;display:block}.strip-track{fill:var(--surface-2);stroke:var(--border);stroke-width:.5px}.strip-tick{stroke:var(--border-strong);stroke-width:.5px}.strip-bar{fill:var(--brand-500)}.strip-bar.open{fill:var(--warn)}.chips{flex-wrap:wrap;gap:.3rem;display:flex}.chip{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.76rem;font-weight:540;display:inline-flex}.chip.stamp-clockIn,.chip.stamp-clockOut{background:var(--brand-50);color:var(--brand-700);border-color:#0000}.chip.struck{color:var(--text-3);text-decoration:line-through}.chip.correction{background:var(--info-bg);color:var(--info);border-color:#0000}.chip.holiday{background:var(--ok-bg);color:var(--ok);border-color:#0000}.chip.absence{background:color-mix(in srgb, var(--brand-50) 60%, var(--surface-2));color:var(--text)}.chip.surcharge{border-style:dashed}.chip.warn{background:var(--warn-bg);color:var(--warn);border-color:#0000;font-weight:600}.day-figs{gap:.9rem;display:flex}.fig{font-variant-numeric:tabular-nums;justify-items:end;min-width:3.4rem;font-weight:620;display:grid}.fig small{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-size:.66rem;font-weight:600}.fig.pos{color:var(--ok)}.fig.neg{color:var(--danger)}.day-edit{opacity:0;transition:opacity var(--motion) ease}.day:hover .day-edit,.day-edit:focus-visible{opacity:1}@media (hover:none){.day-edit{opacity:1}}.drawer-backdrop{z-index:40;background:var(--scrim);animation:fade var(--motion) ease;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);width:min(460px,100vw);height:100%;box-shadow:var(--shadow-lg);animation:slide var(--motion) ease;align-content:start;gap:1rem;padding:1.4rem 1.5rem;display:grid;overflow-y:auto}.drawer form{gap:.9rem;display:grid}.drawer-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.drawer-head h2{margin:.15rem 0 0}textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical;padding:.55rem .7rem;font-size:.95rem}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide{0%{opacity:.6;transform:translate(24px)}to{opacity:1;transform:none}}@media (width<=760px){.day{grid-template-columns:3rem 1fr}.day-figs,.day-edit{grid-column:2;justify-self:start}.strip{width:100%}.strip-legend{display:none}}.day.future .day-main,.day.future .day-figs{opacity:.55}main.page>div.drawer-backdrop{gap:0;display:flex}.segmented .count{background:var(--brand-600);min-width:1.3rem;color:var(--on-accent);border-radius:999px;margin-left:.4rem;padding:0 .35rem;font-size:.72rem;font-weight:700;line-height:1.3rem}.requests{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.request{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:auto 1fr auto;align-items:start;gap:.9rem;padding:1rem 1.1rem;display:grid}.request-body{gap:.3rem;min-width:0;display:grid}.request-title{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.request-title strong{font-weight:640}.request-when{font-variant-numeric:tabular-nums;font-weight:560}.request-note{color:var(--text-2);margin:.1rem 0 0;font-style:italic}.request-actions{align-items:center;gap:.4rem;display:flex}.reject-form{border-radius:var(--radius);background:var(--danger-bg);gap:.6rem;margin-top:.5rem;padding:.75rem;display:grid}.legend{color:var(--text-2);flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.legend li{align-items:center;gap:.4rem;display:inline-flex}.swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.cal-scroll{overflow-x:auto}table.cal{border-collapse:separate;border-spacing:2px;box-shadow:none;background:0 0;border:none;width:auto;min-width:100%;font-size:.78rem}table.cal th,table.cal td{background:0 0;border:none;padding:0}table.cal thead th{text-align:center;color:var(--text-3);min-width:1.6rem;padding:.2rem 0;font-size:.7rem}table.cal thead th.now span{background:var(--brand-600);width:1.4rem;height:1.4rem;color:var(--on-accent);border-radius:50%;place-items:center;display:inline-grid}table.cal .cal-name{text-align:left;white-space:nowrap;color:var(--text);text-transform:none;letter-spacing:0;background:var(--surface);z-index:1;padding:0 .75rem 0 0;font-size:.85rem;font-weight:560;position:sticky;left:0}table.cal td{background:var(--surface-2);border-radius:4px;height:1.6rem}table.cal td.wknd,table.cal th.wknd{opacity:.55}table.cal tbody tr:hover td{background:var(--border)}table.cal tbody tr:hover td.on{filter:brightness(.95)}.cat-0{background:var(--cat-0)!important}.cat-1{background:var(--cat-1)!important}.cat-2{background:var(--cat-2)!important}.cat-3{background:var(--cat-3)!important}.cat-4{background:var(--cat-4)!important}.cat-5{background:var(--cat-5)!important}.cat-n{background:var(--text-3)!important}table.cal td.half{background-image:linear-gradient(135deg, transparent 50%, var(--surface) 50%)!important}@media (width<=720px){.request{grid-template-columns:auto 1fr}.request-actions{grid-column:2}}.checklist.months li.done .check-num{background:var(--ok-bg);color:var(--ok)}.checklist.months li.open .check-num{background:var(--warn-bg);color:var(--warn)}.checklist .check-text small{color:var(--text-3);font-size:.8rem;font-weight:450;display:block}.reopen-card{border-color:color-mix(in srgb, var(--danger) 30%, var(--border))}.timeline{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.timeline li{grid-template-columns:auto 1fr;gap:.75rem;display:grid;position:relative}.timeline .dot{background:var(--text-3);width:12px;height:12px;box-shadow:0 0 0 4px var(--surface-2);border-radius:50%;margin-top:.3rem}.timeline li.closed .dot{background:var(--ok)}.timeline li.reopened .dot{background:var(--warn)}.timeline p{margin:.2rem 0 0}.settings-form{gap:1.25rem;padding-bottom:5rem;display:grid}.settings-group{gap:0;padding-top:1rem;padding-bottom:.4rem}.settings-group>h2{margin-bottom:.4rem}.setting{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding:.85rem 0;display:flex}.setting:first-of-type{border-top:none}.setting.changed{box-shadow:inset 3px 0 0 var(--brand-500);margin-left:-.75rem;padding-left:.75rem}.setting-text{gap:.2rem;max-width:34rem;display:grid}.setting-label{flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:580;display:inline-flex}.setting-text small{color:var(--text-3)}.setting-control input:not([type=checkbox]){max-width:10rem}.switch{width:44px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-track{background:var(--border-strong);transition:background var(--motion) ease;pointer-events:none;border-radius:999px;position:absolute;inset:0}.switch-track:after{content:"";background:var(--on-fill);width:20px;height:20px;box-shadow:var(--shadow);transition:transform var(--motion) ease;border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{background:var(--brand-600)}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}.switch input:disabled+.switch-track{opacity:.5}.lang-chips{flex-wrap:wrap;gap:.3rem;display:flex}.lang{box-shadow:none;border-radius:999px;padding:.3rem .6rem;font-size:.8rem}.lang.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-700)}.unit-input{align-items:center;gap:.4rem;display:inline-flex}.unit-input input{width:7rem}.changes{gap:.15rem;margin:.3rem 0 0;padding:0;font-size:.84rem;list-style:none;display:grid}.save-bar{z-index:15;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--brand-500);box-shadow:var(--shadow-lg);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem .9rem;display:flex;position:sticky;bottom:1rem}.save-bar input{flex:16rem}.save-count{color:var(--brand-700);font-weight:640}.brand-logo{border:1px solid var(--border-deco);background:var(--paper);border-radius:22%;flex:none;width:36px;height:36px}.auth-card .brand-logo{width:40px;height:40px}.facts-list{gap:.25rem;margin:0;padding-left:1.1rem;font-size:.86rem;display:grid}table.report th.proj{background:var(--surface);text-transform:none;letter-spacing:0;color:var(--text);vertical-align:top;font-size:.9rem}table.report th.proj small{color:var(--text-3);font-weight:450;display:block}table.report .num{text-align:right;font-variant-numeric:tabular-nums}table.report tr.subtotal td{background:var(--surface-2);font-weight:650}table.report tbody+tbody tr:first-child>*{border-top:2px solid var(--border)}.kpi.static{cursor:default}.kpi.static:hover{box-shadow:var(--shadow-sm);border-color:var(--border);transform:none}svg.trend{width:100%;height:auto;display:block}svg.trend .bar{fill:var(--brand-500)}svg.trend .bar.hidden{fill:var(--border-strong)}svg.trend .bar-value{fill:var(--text-2);font-size:10px;font-weight:600}svg.trend .bar-label{fill:var(--text-3);font-size:9.5px}.buckets{margin:0;padding:0;list-style:none;display:grid}.buckets li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;display:flex}.buckets li:first-child{border-top:none}.bucket-figs{font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;display:inline-flex}.bucket-figs .badge{white-space:nowrap}.buckets li>span:first-child{min-width:0}.steps{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.steps li{border:1px solid var(--border);background:var(--surface);color:var(--text-3);border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .85rem .45rem .45rem;font-size:.88rem;font-weight:560;display:inline-flex}.steps .step-num{background:var(--surface-2);border-radius:50%;place-items:center;width:24px;height:24px;font-size:.78rem;font-weight:700;display:grid}.steps li.current{border-color:var(--brand-500);color:var(--text)}.steps li.current .step-num{background:var(--brand-600);color:var(--on-accent)}.steps li.done{color:var(--ok)}.steps li.done .step-num{background:var(--ok-bg);color:var(--ok)}table .num{text-align:right}.confirm-box{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);gap:.6rem;padding:.9rem 1rem;display:grid}.confirm-box button{justify-self:start}.letters{gap:1.25rem;display:grid}.letters-cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.reminder-letter h2{margin:1.2rem 0 .8rem;font-size:1.1rem}.reminder-letter p{margin:.2rem 0;line-height:1.5}.letter-to{font-weight:650}.receipt{justify-content:space-between;gap:2rem;margin-top:3rem;font-size:.9rem;display:flex}.letter-hash{color:var(--ink-2);word-break:break-all;font-size:.68rem;margin-top:1.5rem!important}@media print{.reminder-letter{break-after:page}}.reminder-letter p,.reminder-letter h2{color:var(--ink)}.app-access{margin-top:1rem}.app-access .invite{border:1px dashed var(--border);background:var(--surface-2);border-radius:12px;margin:.75rem 0;padding:1rem 1.25rem}.app-access .invite-code{letter-spacing:.18em;-webkit-user-select:all;user-select:all;margin:.25rem 0 .75rem;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700}.app-access .invite-steps{gap:.25rem;margin:.75rem 0 0;padding-left:1.2rem;display:grid}.device-list{gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.device-list li{border:1px solid var(--border);border-radius:10px;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.device-list .device-icon{opacity:.7;font-size:1.25rem}.device-list .device-meta{flex:1;min-width:0;display:grid}.app-access .inline-field{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.5rem 0 .75rem;display:flex}.planner-scroll{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.planner-grid{border:0;min-width:860px;margin:0}.planner-grid th[scope=row]{white-space:nowrap;text-transform:none;letter-spacing:normal;color:var(--text);background:var(--surface);font-size:.9rem;font-weight:560}.planner-grid .cell{min-width:104px;padding:.4rem;display:table-cell}.planner-grid .cell>*+*{margin-top:.3rem}.planner-grid .away{background:var(--surface-2)}.away-label{color:var(--text-3);font-size:.78rem;font-style:italic;display:block}.chip{text-align:left;font-variant-numeric:tabular-nums;background:var(--brand-50);border:1px solid var(--brand-100);width:100%;min-height:44px;color:var(--text);border-radius:var(--radius-sm);cursor:grab;display:block}.chip-warn{background:var(--warn-bg);border-color:var(--warn)}.chip-flag{color:var(--warn);font-weight:650}.planner-grid .add{width:100%;min-height:32px;color:var(--text-3);padding:0;display:block}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius-sm);gap:0;padding:2px;display:inline-flex}.segmented label{cursor:pointer;min-height:40px;color:var(--text-2);border-radius:4px;align-items:center;gap:.35rem;padding:0 .8rem;font-weight:540;display:inline-flex}.segmented label.active{background:var(--brand-50);color:var(--brand-700)}.segmented input{accent-color:var(--brand-600)}.palette{margin:.75rem 0}.palette-title{margin:0 0 .25rem;font-size:.95rem}.palette-list{flex-wrap:wrap;gap:.5rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.palette-item{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:grab;align-items:center;gap:.4rem;min-height:44px;padding:0 .8rem;display:inline-flex}.planner-grid.month{table-layout:fixed;min-width:2400px}.planner-grid.month thead th:first-child{width:160px}.planner-grid.month .cell{min-width:64px;padding:.25rem}.planner-grid.month .chip{white-space:normal;overflow-wrap:anywhere;padding:.2rem .3rem;font-size:.75rem;line-height:1.25}.pva-matched{background:var(--ok-bg);color:var(--ok)}.pva-missed{background:var(--danger-bg);color:var(--danger)}.pva-unplanned{background:var(--warn-bg);color:var(--warn)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.pairing-code .code{letter-spacing:.15em;margin:.25rem 0;font:600 2rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.sheet{width:100%;max-width:min(30rem,100vw - 2rem);color:var(--text);background:0 0;border:0;padding:0}.sheet::backdrop{background:var(--scrim)}.sheet-panel{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--border);gap:.9rem;padding:1.4rem;display:grid}.sheet-panel h2{margin:0;font-size:1.1rem;line-height:1.35}.sheet-body{color:var(--text-2);font-size:.92rem}.sheet-reason{gap:.35rem;display:grid}.sheet-reason textarea{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);resize:vertical;padding:.55rem .65rem}.sheet-reason small{color:var(--text-3);font-size:.8rem}.sheet-actions{justify-content:flex-end}.sheet-actions button{min-width:6.5rem;min-height:44px}.pin-letters{gap:1.5rem;display:grid}@media print{.pin-letters .pin-letter{break-after:page}}.password-field{gap:var(--space-2);display:grid}.password-input{gap:var(--space-2);align-items:stretch;display:flex}.password-input input{flex:1;min-width:0}.password-input .btn-ghost{white-space:nowrap;min-height:44px}.password-rules{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.password-rules .rule{align-items:center;gap:var(--space-2);color:var(--text-2);min-height:24px;display:flex}.password-rules .rule svg{flex:none}.password-rules .rule-ok{color:var(--ok)}.password-rules .rule-fail{color:var(--danger)}.password-strength{align-items:center;gap:var(--space-2);color:var(--text-2);font-size:.875rem;display:flex}.password-strength meter{width:8rem;height:.5rem}.totp-setup{gap:var(--space-4);max-width:40rem;display:grid}.totp-pair{gap:var(--space-5);flex-wrap:wrap;align-items:center;display:flex}.qr-code{border-radius:var(--radius-button);border:1px solid var(--border-deco)}.totp-key{gap:var(--space-2);justify-items:start;display:grid}.totp-key code{font-family:var(--font-mono);letter-spacing:.08em;-webkit-user-select:all;user-select:all;word-break:break-all;font-size:1.125rem}.otp-input{font-family:var(--font-mono);letter-spacing:.3em;font-variant-numeric:tabular-nums;max-width:12ch;font-size:1.5rem}.recovery-codes{columns:2;gap:var(--space-5);margin:0;padding-left:1.5rem}.recovery-codes code{font-family:var(--font-mono);font-size:1rem}.totp-setup .actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.totp-setup .check{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.field-error{color:var(--danger);margin:0}@media print{.totp-setup .actions,.totp-setup .check,.totp-setup .btn-primary{display:none}}.action-page{gap:var(--space-4);display:grid}.action-page h1{margin:0;font-size:1.5rem}.action-page form{gap:var(--space-4);display:grid}.action-page a.btn-primary{min-height:44px;padding:0 var(--space-5);justify-self:start;align-items:center;text-decoration:none;display:inline-flex}
