:root{--bg:#f2efe7;--surface:#fff;--surface-2:#fbf9f3;--hairline:#e4dfd2;--sand:#f6ecd9;--sand-strong:#e6d3ae;--sand-text:#7d5b22;--t1:#23303a;--t2:#54626d;--t3:#78848e;--accent:#3368a0;--accent-ink:#27527e;--accent-soft:#e3ebf4;--accent-2:#66a3bf;--ok:#2e6357;--ok-soft:#c8dfdb;--warn:#9a6f2e;--warn-soft:#f6ecd9;--alert:#9e2f2a;--alert-soft:#f9e3e1;--info:#377089;--info-soft:#e6f0f4;--plum:#7a8fb0;--sidebar-w:224px;--rail-w:68px;--pad:22px;--r-lg:18px;--r-md:14px;--r-sm:10px;--shadow:0 1px 3px #23303a12;--shadow-lift:0 4px 16px #23303a1a;--font:ui-sans-serif, -apple-system, "Segoe UI", Inter, "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--t1);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.5}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}.shell{grid-template-columns:var(--sidebar-w) 1fr;align-items:start;gap:16px;min-height:100vh;padding:16px;display:grid}.sidebar{gap:12px;display:grid;position:sticky;top:16px}.brand{background:var(--surface);border-radius:var(--r-lg);padding:18px var(--pad);box-shadow:var(--shadow);font-size:15px;font-weight:650}.brand-row{align-items:center;gap:10px;display:flex}.brand-mark{flex:none;width:52px;height:auto;margin-top:1px}.brand-sub{background:var(--ok-soft);color:var(--ok);border-radius:var(--r-sm);margin-top:12px;padding:8px 12px;font-size:12px;font-weight:600}.entity-pill{outline-offset:3px;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.entity-pill:disabled{cursor:default;opacity:.8}.nav{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:10px}.nav-item{border-radius:var(--r-sm);color:var(--t2);cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-weight:550;display:flex}.nav-item:hover{background:var(--bg);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:650}.nav-item .bullet{opacity:.5;background:currentColor;border-radius:50%;width:7px;height:7px}.nav-item.active .bullet{opacity:1}.nav-label{letter-spacing:.09em;text-transform:uppercase;color:var(--t3);padding:14px 12px 6px;font-size:10.5px;font-weight:700}.main{gap:14px;min-width:0;display:grid}.topbar{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:14px var(--pad);justify-content:space-between;align-items:center;gap:16px;display:flex}.notice{background:var(--sand);border-radius:var(--r-lg);padding:14px var(--pad);color:var(--sand-text);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--pad)}.card-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-head h2{margin:0;font-size:16px;font-weight:650}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:28px;font-weight:680}.muted{color:var(--t2)}.faint{color:var(--t3)}.small{font-size:12px}.btn{cursor:pointer;background:var(--accent);color:#fff;border:0;border-radius:999px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:650}.btn:hover{background:var(--accent-ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{color:var(--accent-ink);background:0 0;padding:8px 12px}.btn.ghost:hover{background:var(--accent-soft)}.input,.textarea,.select{width:100%;color:var(--t1);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);outline:none;padding:11px 14px;font-family:inherit;font-size:14px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background:#fff}.textarea{resize:vertical;min-height:52px}label.field{color:var(--t2);gap:6px;font-size:12px;font-weight:600;display:grid}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:650;display:inline-flex}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--sand-text)}.badge.alert{background:var(--alert-soft);color:var(--alert)}.badge.esc{background:var(--accent-soft);color:var(--accent-ink)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.neutral{background:var(--bg);color:var(--t2)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.stat{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);padding:16px 18px}.stat .n{letter-spacing:-.02em;font-size:26px;font-weight:680}.stat .l{color:var(--t2);margin-top:2px;font-size:12px}.chat{grid-template-rows:1fr auto;gap:14px;min-height:60vh;display:grid}.thread{align-content:start;gap:14px;display:grid}.msg{gap:8px;max-width:780px;display:grid}.msg.user{justify-self:end}.bubble{border-radius:var(--r-md);white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 16px}.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.msg.bot .bubble{background:var(--surface);box-shadow:var(--shadow);border-bottom-left-radius:4px}.cites{gap:6px;display:grid}.cite{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-sm);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.cite .t{font-weight:600}.guard{background:var(--warn-soft);border-radius:var(--r-sm);color:var(--sand-text);padding:9px 12px;font-size:12px}.composer{align-items:flex-end;gap:10px;display:flex}.empty{color:var(--t2);place-items:start;gap:10px;padding:8px 0;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface);border:1px solid var(--hairline);cursor:pointer;color:var(--t1);border-radius:999px;padding:8px 14px;font-size:12.5px}.chip:hover{border-color:var(--accent);color:var(--accent-ink)}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--t3);border-bottom:1px solid var(--hairline);padding:8px 10px;font-size:11px;font-weight:700}.table td{border-bottom:1px solid var(--hairline);vertical-align:top;padding:11px 10px}.table tr:last-child td{border-bottom:0}.scroll-x{overflow-x:auto}.payroll-grid{max-height:70vh;overflow:auto}.payroll-grid .table{border-collapse:separate;border-spacing:0}.payroll-grid .table th,.payroll-grid .table td{box-shadow:inset 0 -1px 0 var(--hairline);white-space:nowrap;border-bottom:0}.payroll-grid thead th{z-index:2;background:var(--surface,#fff);position:sticky;top:0}.payroll-grid .freeze-1{z-index:1;position:sticky;left:0}.payroll-grid .freeze-2{z-index:1;position:sticky;left:108px}.payroll-grid td.freeze-1,.payroll-grid td.freeze-2{background:var(--surface,#fff)}.payroll-grid thead th.freeze-1,.payroll-grid thead th.freeze-2{z-index:3}.payroll-grid .freeze-1{min-width:108px;max-width:108px}.payroll-grid .freeze-2{min-width:200px;box-shadow:inset -1px -1px 0 var(--hairline)}.payroll-grid th .sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;margin:0;padding:0;display:inline-flex}.payroll-grid th .sort:hover{color:var(--accent-ink)}.payroll-grid th[aria-sort=ascending] .sort,.payroll-grid th[aria-sort=descending] .sort{color:var(--accent)}.payroll-grid th .arrow{opacity:.75;font-size:9px}.payroll-grid .wash{color:#1a1a1a;border-radius:4px;min-width:58px;padding:1px 5px;display:inline-block}.payroll-card,.period-list,.period-list>*,.period-body{min-width:0}.period-list{gap:8px;display:grid}.period-line{text-align:left;width:100%;font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--hairline);cursor:pointer;border-radius:8px;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.period-line:hover{border-color:var(--accent-2)}.period-line[aria-expanded=true]{border-color:var(--accent-2);border-bottom-right-radius:0;border-bottom-left-radius:0}.period-line .caret{width:10px;color:var(--t3);flex:none}.period-line .what{font-weight:600}.period-line .counts{color:var(--t2);margin-left:auto;font-size:12px}.period-body{border:1px solid var(--accent-2);border-top:0;border-radius:0 0 8px 8px;padding:10px 12px 12px}.summary{background:var(--surface-2);border:1px solid var(--hairline);border-radius:8px;min-width:0;margin-bottom:10px;padding:10px 12px}.summary-head{flex-wrap:wrap;align-items:flex-end;gap:16px;min-width:0;display:flex}.summary-figures{flex-wrap:wrap;gap:20px;min-width:0;margin:0;display:flex}.summary-figure{min-width:0}.summary-figure dt{margin:0 0 2px}.summary-figure dd{font-variant-numeric:tabular-nums;color:var(--t1);margin:0;font-size:15px}.summary-head .btn{margin-left:auto}.summary-tables{border-top:1px solid var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px 20px;min-width:0;margin-top:14px;padding-top:12px;display:grid}.summary-tables>.summary-span{grid-column:1/-1}.summary-title{color:var(--t1);margin:0 0 2px;font-size:13px;font-weight:600}.summary-tables section{min-width:0;overflow-x:auto}.summary-table{background:var(--surface);margin-top:6px;font-size:13px}.summary-table td,.summary-table th{font-variant-numeric:tabular-nums}.summary-table tfoot th{border-top:1px solid var(--hairline);background:var(--surface-2)}.summary-tables>.summary-span:not(:has(th:nth-child(3))) .summary-table{max-width:420px}@media (max-width:1100px){.summary-tables{grid-template-columns:minmax(0,1fr)}.summary-tables>.summary-span{grid-column:auto}}@media print{.summary-head .btn{display:none}.summary{background:0 0}}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static}}.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:100%;max-width:380px;padding:28px}.login-card h1{font-size:21px}.drawer-scrim{z-index:50;background:#23303a4d;justify-content:flex-end;animation:.16s ease-out drawer-fade;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);flex-direction:column;width:min(760px,100%);height:100%;animation:.22s cubic-bezier(.2,.8,.3,1) drawer-in;display:flex;box-shadow:-18px 0 48px #23303a2e}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{transform:translate(28px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.drawer-scrim,.drawer{animation:none}}.drawer-head{border-bottom:1px solid var(--hairline);flex:none;justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 24px 16px;display:flex}.drawer-body{flex:auto;padding:20px 24px 28px;overflow-y:auto}.drawer-foot{border-top:1px solid var(--hairline);background:var(--surface-2);flex:none;padding:12px 24px}.doc-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--t1);font-size:14px;line-height:1.65}.doc-body mark{background:var(--sand);color:inherit;box-shadow:inset 0 -1px 0 var(--sand-strong);border-radius:3px;padding:1px 0}.linklike{font:inherit;color:var(--accent-ink);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.linklike:hover{text-decoration:underline}.preview-bar{border-radius:var(--r-lg);background:var(--sand);border:1px solid var(--sand-strong);color:var(--sand-text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:11px 16px;font-size:13px;display:flex}.preview-bar strong{font-weight:700}fieldset.field{border:1px solid var(--hairline);border-radius:var(--r-lg);gap:8px;min-width:0;margin:0;padding:12px 14px;display:grid}fieldset.field>legend{color:var(--t2);padding:0 6px;font-size:12px;font-weight:700}.taglist{gap:9px;margin:6px 0 2px;display:grid}label.checkrow{color:var(--t1);cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;font-weight:500;display:flex}label.checkrow input[type=checkbox]{flex:none;margin:0}.checkrow .hint{flex-basis:100%;margin-left:22px;font-weight:400}.scroll-x .table{min-width:640px}.card,.scroll-x{min-width:0}.shell.railed{grid-template-columns:var(--rail-w) 1fr}.shell.railed .rail-hide{display:none}.shell.railed .brand{text-align:center;padding:12px 0}.shell.railed .brand-row{flex-direction:column;justify-content:center;gap:0}.shell.railed .brand-mark{width:36px}.shell.railed .nav{padding:8px 6px}.shell.railed .nav-item{justify-content:center;padding:11px 0}.nav-icon{opacity:.75;flex:none;width:18px;height:18px}.nav-item.active .nav-icon{opacity:1}.rail-toggle{border-radius:var(--r-sm);width:28px;height:28px;color:var(--t3);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.rail-toggle:hover{background:var(--bg);color:var(--t2)}.shell.railed .rail-toggle{margin:8px auto 0}@media (max-width:860px){.shell.railed{grid-template-columns:1fr}.shell.railed .rail-hide{display:revert}.shell.railed .nav-item{justify-content:flex-start;padding:9px 12px}.shell.railed .brand{padding:18px var(--pad);text-align:left}.shell.railed .brand-row{flex-direction:row;justify-content:flex-start;gap:10px}.shell.railed .brand-mark{width:52px}.rail-toggle{display:none}}.readonly-field{color:var(--t2);gap:6px;font-size:12px;font-weight:600;display:grid}.readonly-value{color:var(--t1);padding:9px 0;font-size:14px;font-weight:500}.md{white-space:normal}.md-p{margin:0 0 10px}.md>:last-child{margin-bottom:0}.md-h{color:var(--t1);margin:14px 0 6px;font-weight:650}.md>.md-h:first-child{margin-top:0}.md-list{margin:0 0 10px;padding-left:20px}.md-list li{margin:3px 0}.md code{background:var(--bg);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.92em}.rail-foot{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:2px;padding:8px 6px;display:flex}.rail-who{color:var(--t3);cursor:default;justify-content:center;align-items:center;padding:11px 0;display:flex;position:relative}.rail-dot{background:var(--warn);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:14px}.rail-signout{cursor:pointer;background:0 0;border:0;width:100%}@media (max-width:860px){.rail-foot{padding:8px 6px 12px}.rail-signout,.rail-who{justify-content:flex-start;padding:9px 12px}.rail-dot{margin-left:8px;position:static}}.payslip{--slip-band:#2d5470;--slip-key:#d6e6f2;--slip-ink:#1f4e79;--slip-row:#f0f0f0;--slip-total:#7f7f7f;--slip-net:#dbeaf5}.payslip-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.payslip-title{letter-spacing:.01em;text-transform:uppercase;color:#8a8a8a;margin:0;font-size:26px;font-weight:700}.payslip-disclaimer{max-width:44ch;color:var(--t2);margin:6px 0 0;font-size:10.5px;font-style:italic;line-height:1.45}.payslip-logo{object-fit:contain;width:auto;height:52px}.payslip-wordmark{color:var(--slip-ink);text-align:right;max-width:22ch;font-size:15px;font-weight:700}.payslip table{border-collapse:collapse;width:100%}.payslip td{border:1px solid #cfd8de;padding:5px 9px;font-size:12px}.payslip-meta td{background:#fff}.payslip-meta .k{background:var(--slip-key);color:var(--slip-ink);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;width:1%;font-size:10.5px;font-weight:700}.payslip-meta .unit{color:var(--t3);font-size:10.5px}.payslip-lines .k{background:var(--slip-row);width:48%}.payslip-lines .hours{text-align:center;color:var(--t2);width:22%}.payslip-lines .amt{text-align:right}.payslip-lines .note{vertical-align:middle;white-space:pre-wrap;height:30px;font-size:11px;font-style:italic}.payslip-lines .gap td{border:0;height:10px;padding:0}.payslip-band td{background:var(--slip-band);color:#fff;text-transform:uppercase;letter-spacing:.08em;text-align:center;border-color:var(--slip-band);font-size:11.5px;font-weight:700}.payslip-sub td{color:var(--slip-ink);text-transform:uppercase;letter-spacing:.06em;border:0;padding:14px 0 5px;font-size:11.5px;font-weight:700}.payslip-totals{margin-top:14px}.payslip-totals td{text-align:center}.payslip-totalhead td{background:var(--slip-total);color:#fff;text-transform:uppercase;letter-spacing:.08em;border-color:var(--slip-total);font-size:11.5px;font-weight:700}.payslip-loyalty{width:60%;margin-top:16px}.payslip-loyalty td{font-size:12px;font-style:italic}.payslip-loyalty .payslip-totalhead td{font-style:normal}.payslip-loyalty .amt{text-align:right}@media (max-width:640px){.payslip-loyalty{width:100%}}.payslip-netpay{margin-top:10px}.payslip-netpay td{background:var(--slip-net);color:var(--slip-ink);text-transform:uppercase;padding:9px 12px;font-size:17px;font-weight:750}.payslip-netpay .amt{text-align:right}.payslip-netpay .cur{color:var(--t2);margin-right:10px;font-size:11px;font-weight:650}.payslip-foot{color:var(--t3);margin:12px 0 0;font-size:10px;font-style:italic}@media print{.no-print,.sidebar,.app-nav,.topbar,nav,header{display:none!important}body{background:#fff}.card{box-shadow:none;background:#fff;border:0;padding:0}.payslip table,.payslip tr{break-inside:avoid}.payslip [class],.payslip td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.payslip{box-shadow:none;border:0;padding:0}}.letter{--letter-ink:#1f4e79;page:letter;box-sizing:border-box;aspect-ratio:210/297;background:#fff var(--letterhead,none) top left / 100% 100% no-repeat;color:#1c2530;flex-direction:column;width:100%;max-width:794px;margin:0 auto;padding:7% 9% 11%;font-family:Georgia,Times New Roman,serif;font-size:13.5px;line-height:1.55;display:flex;position:relative}.letter p{margin:0 0 12px}.letter-head{justify-content:flex-start;margin-bottom:30px;display:flex}.letter-logo{object-fit:contain;width:auto;height:56px}.letter-wordmark{color:var(--letter-ink);font-size:18px;font-weight:700}.letter-date{margin-bottom:18px}.letter-title{text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--letter-ink);margin:4px 0 20px;font-size:16px}.letter-table{border-collapse:collapse;background:#fff;min-width:60%;margin:2px auto 16px}.letter-table td{border:1px solid #cfd8de;padding:6px 14px}.letter-table td:first-child{background:#eef4f9;font-weight:600}.letter-table .amt{text-align:right}.letter-sign{margin-top:22px}.letter-signer{color:var(--letter-ink);font-weight:700}.letter-ref{color:#54626d;margin-top:10px;font-size:12px}.letter-foot{color:#54626d;text-align:left;margin-top:auto;padding-top:18px;font-family:system-ui,sans-serif;font-size:10.5px}.letter-foot p{margin:0;font-style:italic}.letter-draft{text-transform:uppercase;letter-spacing:.08em;color:var(--alert);border:1px solid var(--alert);background:var(--alert-soft);border-radius:4px;padding:2px 8px;font-family:system-ui,sans-serif;font-size:11px;font-weight:700;position:absolute;top:12px;left:50%;transform:translate(-50%)}.letter-prepare{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:16px;display:grid}@media (max-width:1100px){.letter-prepare{grid-template-columns:1fr}}@media (max-width:640px){.letter{padding:8% 7% 14%;font-size:12.5px}}@page letter{size:A4;margin:0}@media print{.letter{aspect-ratio:auto;width:210mm;max-width:none;height:297mm;box-shadow:none;background:#fff var(--letterhead,none) top left / 100% 100% no-repeat;border-radius:0;margin:0;padding:20mm 19mm 24mm;font-size:11pt;overflow:hidden}.letter,.letter [class],.letter td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.letter-draft{display:none}}
