@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-standard-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-standard-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-standard-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f4f7fa;--paper-sunk:#e9eef4;--paper-band:#dfe7ef;--paper-raised:#fafcfd;--rule:#d2dde8;--rule-mid:#b3c5d6;--rule-strong:#7e9ab4;--ink:#14263a;--ink-2:#3a5169;--ink-3:#566b80;--ink-inverse:#f4f7fa;--binding:#1a3350;--binding-deep:#12253b;--binding-hi:#25466b;--binding-ink:#e7eef6;--binding-ink-2:#a9bfd6;--stitch:#4d6f93;--brand:#f4b66a;--brand-ink:#14263a;--action:#1f5fa8;--action-hover:#184c88;--action-wash:#dce8f5;--red:#b3261e;--red-wash:#f6e2de;--amber:#8a5300;--amber-wash:#f8ecd4;--amber-rule:#d9b066;--pencil:#4f46b8;--pencil-wash:#e6e5f6;--series-1:#2b72b8;--series-2:#b8741a;--series-3:#7a4fb8;--series-4:#c2457a;--font:"Archivo Variable", "Archivo", "Segoe UI", system-ui, sans-serif;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.375rem;--fs-xl:1.875rem;--fs-2xl:2.5rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--row:36px;--radius:3px;--sidebar-w:248px;--shadow-sheet:0 1px 0 #14263a0f, 0 8px 24px -12px #14263a38;--shadow-lift:0 2px 4px #14263a14, 0 14px 32px -10px #14263a4d;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-base);color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums lining-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4{text-wrap:balance;color:var(--ink);margin:0;line-height:1.15}p{text-wrap:pretty;margin:0}a{color:var(--action);text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}::selection{color:var(--ink);background:#c3d6ea}:focus-visible{outline:2px solid var(--pencil);outline-offset:2px;border-radius:2px}input,textarea{caret-color:var(--action)}*{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-mid);border:2px solid var(--paper);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--rule-strong)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.caps{text-transform:uppercase;letter-spacing:.06em;font-weight:650;font-stretch:72%;font-size:var(--fs-xs);color:var(--ink-2)}.num{font-variant-numeric:tabular-nums lining-nums;text-align:right;white-space:nowrap}.neg{color:var(--red)}.muted{color:var(--ink-3)}.btn{justify-content:center;align-items:center;gap:var(--s-2);height:36px;padding:0 var(--s-4);border-radius:var(--radius);font-weight:600;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out), color .16s var(--ease-out);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn svg{flex:none;width:16px;height:16px}.btn .tick{color:currentColor}.btn-primary{background:var(--action);color:var(--ink-inverse)}.btn-primary:hover:not(:disabled){background:var(--action-hover)}.btn-secondary{background:var(--paper-raised);border-color:var(--rule-mid);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:var(--rule-strong);background:#fff}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--paper-band);color:var(--ink)}.btn-danger{color:var(--red);background:0 0;border-color:#e2b7b1}.btn-danger:hover:not(:disabled){background:var(--red-wash)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:30px;padding:0 var(--s-3)}.icon-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--paper-band);color:var(--ink)}.icon-btn svg{width:16px;height:16px}.field{gap:6px;display:grid}.field>label,.field>.label{text-transform:uppercase;letter-spacing:.06em;font-weight:650;font-stretch:72%;font-size:var(--fs-xs);color:var(--ink-2)}.input,.select,.textarea{background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);width:100%;min-height:38px;color:var(--ink);padding:7px 10px;transition:border-color .14s,box-shadow .14s}.textarea{resize:vertical;min-height:84px}.input::placeholder,.textarea::placeholder{color:#6b7e90}.input:hover,.select:hover,.textarea:hover{border-color:var(--rule-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--pencil);box-shadow:0 0 0 3px var(--pencil-wash);outline:none}.input[aria-invalid=true]{border-color:var(--red)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233a5169' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.field-hint{font-size:var(--fs-xs);color:var(--ink-3)}.field-error{font-size:var(--fs-sm);color:var(--red)}.stamp{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:2px;align-items:center;gap:5px;height:22px;padding:0 8px;font-size:.6875rem;font-weight:650;font-stretch:75%;display:inline-flex}.stamp svg{width:12px;height:12px}.stamp-ok{color:var(--action)}.stamp-pending{color:var(--pencil)}.stamp-draft{color:var(--ink-3);border-style:dashed}.stamp-alert{color:var(--red)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);background:var(--binding);min-height:100vh;display:grid}.binding{background:var(--binding);height:100vh;color:var(--binding-ink);padding:var(--s-5) 0 var(--s-4);z-index:20;flex-direction:column;display:flex;position:sticky;top:0}.brand{padding:0 var(--s-5);margin-bottom:var(--s-8);color:var(--binding-ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{background:var(--brand);width:32px;height:32px;color:var(--brand-ink);font-family:var(--font);border-radius:3px;flex:none;place-items:center;font-size:1.25rem;font-weight:800;line-height:1;display:inline-grid}.brand-word{letter-spacing:-.01em;font-size:1.3125rem;font-weight:750;line-height:1}.nav{gap:2px;padding-right:0;display:grid}.nav-section{margin:var(--s-6) var(--s-5) var(--s-2);letter-spacing:.12em;text-transform:uppercase;color:var(--binding-ink-2);font-size:.6875rem;font-weight:650;font-stretch:72%}.nav-link{height:42px;margin-left:var(--s-3);padding:0 var(--s-4) 0 var(--s-3);color:var(--binding-ink-2);font-weight:560;font-size:var(--fs-base);transition:background-color .16s var(--ease-out), color .16s var(--ease-out);border-radius:4px 0 0 4px;align-items:center;gap:12px;text-decoration:none;display:flex;position:relative}.nav-link svg{flex:none;width:18px;height:18px}.nav-link:hover{background:var(--binding-hi);color:var(--binding-ink)}.nav-link[aria-current=page]{background:var(--paper);color:var(--ink);font-weight:650}.nav-link[aria-current=page]:before,.nav-link[aria-current=page]:after{content:"";pointer-events:none;background:0 0;width:10px;height:10px;position:absolute;right:0}.nav-link[aria-current=page]:before{box-shadow:4px 4px 0 4px var(--paper);border-bottom-right-radius:10px;top:-10px}.nav-link[aria-current=page]:after{box-shadow:4px -4px 0 4px var(--paper);border-top-right-radius:10px;bottom:-10px}.nav-link[aria-current=page] svg{color:var(--action)}.nav-link:focus-visible{outline-offset:-2px;outline-color:#9ec9ff}.binding-foot{padding:var(--s-4) var(--s-5) 0;border-top:1px solid var(--binding-hi);gap:var(--s-3);margin-top:auto;display:grid}.who{align-items:center;gap:10px;min-width:0;display:flex}.who-text{min-width:0;line-height:1.25;display:grid}.who-text strong{font-weight:620;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.who-text span{font-size:var(--fs-xs);color:var(--binding-ink-2)}.signout{border:1px solid var(--binding-hi);border-radius:var(--radius);height:32px;color:var(--binding-ink-2);font-size:var(--fs-sm);cursor:pointer;background:0 0;justify-self:start;align-items:center;gap:8px;padding:0 10px;font-weight:560;display:inline-flex}.signout:hover{color:var(--binding-ink);border-color:var(--stitch);background:var(--binding-hi)}.signout svg{width:15px;height:15px}.avatar{background:var(--paper-band);width:32px;height:32px;color:var(--ink);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;font-stretch:80%;display:inline-grid}.avatar-sm{width:24px;height:24px;font-size:.625rem}.binding .avatar{background:var(--binding-hi);color:var(--binding-ink);box-shadow:inset 0 0 0 1px var(--stitch)}.sheet{background:var(--paper);border-radius:10px 0 0 10px;min-width:0;min-height:100vh;box-shadow:-6px 0 18px -10px #00000073}.sheet-inner{padding:var(--s-6) var(--s-8) var(--s-12)}.topbar{display:none}.page-head{gap:var(--s-4) var(--s-6);padding-bottom:var(--s-4);border-bottom:3px double var(--rule-strong);margin-bottom:var(--s-6);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.page-title-row{align-items:center;gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.page-title{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:720}.page-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.folio{border:1px solid var(--rule-strong);background:var(--paper-raised);border-radius:2px;grid-auto-flow:column;display:grid}.folio>div{padding:5px 12px 6px;line-height:1.2;display:grid}.folio>div+div{border-left:1px solid var(--rule-mid)}.folio dt{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.625rem;font-weight:650;font-stretch:72%}.folio dd{font-weight:620;font-size:var(--fs-sm);white-space:nowrap;margin:0}.toolbar{align-items:center;gap:var(--s-3);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.toolbar-spacer{flex:1}.tabs{border-bottom:1px solid var(--rule-strong);align-items:flex-end;gap:2px;padding:0;display:inline-flex}.tab{height:34px;padding:0 var(--s-4);background:var(--paper-band);color:var(--ink-2);font-weight:650;font-stretch:80%;font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-bottom:0;border-radius:4px 4px 0 0;transition:background-color .14s,color .14s;position:relative}.tab:hover{color:var(--ink);background:#d3dfeb}.tab[aria-selected=true]{background:var(--paper);border-color:var(--rule-strong);color:var(--ink);height:37px;margin-bottom:-1px}.tab .count{color:var(--ink-3);margin-left:6px;font-weight:600;font-stretch:100%}.stepper{border:1px solid var(--rule-mid);border-radius:var(--radius);background:var(--paper-raised);align-items:center;height:36px;display:inline-flex}.stepper button{width:34px;height:100%;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.stepper button:hover:not(:disabled){background:var(--paper-band);color:var(--ink)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper svg{width:16px;height:16px}.stepper-label{min-width:13.5rem;padding:0 var(--s-3);text-align:center;font-weight:600;font-size:var(--fs-sm);border-inline:1px solid var(--rule);white-space:nowrap;line-height:34px}@media (max-width:960px){.app{grid-template-columns:1fr}.topbar{z-index:30;height:56px;padding:0 var(--s-4);background:var(--binding);color:var(--binding-ink);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .brand{margin:0;padding:0}.topbar .brand-mark{width:28px;height:28px;font-size:1.0625rem}.topbar .brand-word{font-size:1.125rem}.menu-btn{border:1px solid var(--binding-hi);border-radius:var(--radius);width:40px;height:40px;color:var(--binding-ink);cursor:pointer;background:0 0;place-items:center;display:grid}.binding{width:min(300px,86vw);height:auto;transition:transform .28s var(--ease-out);box-shadow:var(--shadow-lift);position:fixed;inset:56px auto 0 0;transform:translate(-102%)}.binding .brand{display:none}.binding[data-open=false]{visibility:hidden;box-shadow:none;transition:transform .28s var(--ease-out), visibility 0s linear .28s}.binding[data-open=true]{transform:none}.scrim{z-index:15;background:#0a162666;position:fixed;inset:56px 0 0}.sheet{box-shadow:none;border-radius:0}.sheet-inner{padding:var(--s-5) var(--s-4) var(--s-10)}.page-head{grid-template-columns:1fr;align-items:start}.page-actions{justify-content:flex-start}.page-title{font-size:var(--fs-lg)}.stepper-label{flex:1;min-width:0}.stepper{flex:100%}}.loading{min-height:160px;padding:var(--s-6);color:var(--ink-3);place-items:center;display:grid}.loading-full{background:var(--paper);min-height:100vh}.loading-dots{font-size:var(--fs-sm);letter-spacing:.02em}@media (prefers-reduced-motion:no-preference){.loading-dots{animation:1.4s ease-in-out infinite loading-pulse}}@keyframes loading-pulse{50%{opacity:.45}}.section{margin-top:var(--s-10)}.section:first-child{margin-top:0}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.section-title{font-size:var(--fs-md);letter-spacing:-.005em;font-weight:700}.section-note{color:var(--ink-3);font-size:var(--fs-sm)}.grid-2{gap:var(--s-10);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;display:grid}.grid-2>.section{margin-top:0}@media (max-width:1180px){.grid-2{grid-template-columns:minmax(0,1fr)}.grid-2>.section+.section{margin-top:var(--s-10)}}.totals{grid-template-columns:repeat(var(--cols,5), minmax(0, 1fr));border-top:1px solid var(--rule-strong);border-bottom:3px double var(--ink-2);margin:0;display:grid}.totals>div{grid-template-rows:auto 1fr auto;min-width:0;display:grid}.totals>div+div{border-left:1px solid var(--rule-strong)}.totals dt{padding:8px var(--s-3);background:var(--paper-band);border-bottom:1px solid var(--rule-strong);font-weight:650;font-stretch:72%;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.totals dd{padding:8px var(--s-3) 0;font-size:var(--fs-lg);letter-spacing:-.01em;text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:650;line-height:1.2}.totals dd small{font-size:var(--fs-sm);letter-spacing:0;color:var(--ink-3);margin-left:4px;font-weight:500}.totals .foot{padding:2px var(--s-3) 9px;font-size:var(--fs-xs);color:var(--ink-3);text-align:right}.totals .foot.neg{color:var(--red);font-weight:600}.posted{animation:post .42s var(--ease-out) both}@keyframes post{0%{opacity:.2;filter:blur(2px);transform:translateY(-5px)}to{opacity:1;filter:none;transform:none}}@media (max-width:760px){.totals{grid-template-columns:minmax(0,1fr)}.totals>div{padding:8px var(--s-3);grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:baseline}.totals>div+div{border-left:0;border-top:1px solid var(--rule)}.totals dt{text-align:left;background:0 0;border:0;padding:0}.totals dd{font-size:var(--fs-md);padding:0}.totals .foot{text-align:left;grid-column:1/-1;padding:0}}.ledger-wrap{border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);background:var(--paper-raised);overflow-x:auto}.ledger{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.ledger th,.ledger td{height:var(--row);padding:0 var(--s-3);border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}.ledger thead th{background:var(--paper-band);border-bottom:1px solid var(--rule-strong);height:34px;font-weight:650;font-stretch:72%;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;position:sticky;top:0}.ledger thead th .sub{letter-spacing:0;text-transform:none;color:var(--ink-3);font-weight:500;font-stretch:100%;line-height:1.1;display:block}.ledger th.num,.ledger td.num{text-align:right}.ledger .col-rule{border-left:1px solid var(--rule-strong)}.ledger .weekend{background:#d2dde847}.ledger thead .weekend{background:#d6e1ec}.ledger tbody tr{transition:background-color .12s}.ledger tbody tr:hover{background:#ebf1f7}.ledger .group-row td{background:var(--paper-sunk);color:var(--ink);border-bottom-color:var(--rule-mid);font-weight:650}.ledger td.neg,.ledger .group-row td.neg{color:var(--red)}.ledger .child td:first-child{padding-left:var(--s-8)}.ledger .sub-row td{color:var(--ink-2);height:32px}.ledger .sub-row td:first-child{padding-left:calc(var(--s-8) + var(--s-5))}.ledger tfoot td{border-bottom:3px double var(--ink-2);border-top:1px solid var(--rule-strong);height:40px;font-weight:700}@media (max-width:760px){.ledger td,.ledger th{white-space:nowrap}.ledger td:first-child .cell-main,.ledger td:first-child>.stack{min-width:170px}.ledger td:first-child .stack strong,.ledger td:first-child .stack .cell-sub{text-overflow:ellipsis;max-width:190px;display:block;overflow:hidden}.ledger-wrap{background:linear-gradient(to right, var(--paper-raised) 30%, #fafcfd00) left / 28px 100% no-repeat local, linear-gradient(to left, var(--paper-raised) 30%, #fafcfd00) right / 28px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #14263a38, transparent) left / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #14263a38, transparent) right / 12px 100% no-repeat scroll, var(--paper-raised)}}.ledger .zero{color:#6d8093}.cell-main{align-items:center;gap:var(--s-2);min-width:0;display:flex}.cell-main strong{font-weight:620}.cell-sub{color:var(--ink-3);font-size:var(--fs-xs)}.stack{padding-block:6px;line-height:1.25;display:grid}.swatch{border-radius:2px;flex:none;width:10px;height:10px}.expander{width:22px;height:22px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:2px;place-items:center;margin-left:-4px;display:inline-grid}.expander:hover{background:var(--paper-band);color:var(--ink)}.expander svg{width:14px;height:14px;transition:transform .2s var(--ease-out)}.expander[aria-expanded=true] svg{transform:rotate(90deg)}.mag{align-items:center;gap:var(--s-2);min-width:120px;display:flex}.mag-track{background:repeating-linear-gradient(to right, var(--rule) 0 1px, transparent 1px 10%);border-radius:1px;flex:1;height:8px;position:relative}.mag-fill{border-radius:0 3px 3px 0;position:absolute;inset:1px auto 1px 0}.mag-target{background:var(--ink);width:2px;position:absolute;top:-3px;bottom:-3px}.mag-label{text-align:right;min-width:3.2em;font-size:var(--fs-xs);color:var(--ink-2)}.chart{padding:var(--s-4) var(--s-2) var(--s-2) 0;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);background:var(--paper-raised);position:relative}.legend{gap:var(--s-2) var(--s-5);font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.tick{width:18px;height:18px;color:var(--action);flex:none}.tick path{stroke-dasharray:30;stroke-dashoffset:0}.tick.draw path{animation:tick-draw .52s var(--ease-out) both}@keyframes tick-draw{0%{stroke-dashoffset:30px}}.rating{gap:2px;display:inline-flex}.rating i{border:1px solid var(--rule-strong);border-radius:1px;width:12px;height:12px}.rating i.on{background:var(--action);border-color:var(--action)}.empty{justify-items:start;gap:var(--s-2);padding:var(--s-8) var(--s-6);color:var(--ink-2);background:repeating-linear-gradient(to bottom, transparent 0 35px, var(--rule) 35px 36px);display:grid}.empty strong{color:var(--ink);font-size:var(--fs-md)}.login{min-height:100vh;padding:var(--s-10) var(--s-4);background:var(--binding-deep);background-image:radial-gradient(120% 90% at 30% 10%, #20406a 0%, var(--binding-deep) 62%);place-items:center;display:grid}.pad{background:var(--paper);width:min(460px,100%);box-shadow:var(--shadow-lift);animation:pad-in .62s var(--ease-out) both;border-radius:4px;overflow:hidden}@keyframes pad-in{0%{opacity:0;transform:translateY(14px)}}.pad-tape{background:var(--binding);height:22px}.pad-form{padding:var(--s-8) var(--s-10) var(--s-6)}.brand.login-brand{margin-bottom:var(--s-10);color:var(--ink);padding:0}.login-title{font-size:var(--fs-2xl);letter-spacing:-.03em;font-weight:750}.login-sub{margin-top:var(--s-2);color:var(--ink-2);max-width:34ch}.login-fields{gap:var(--s-5);margin-top:var(--s-8);display:grid}.ruled-field{gap:2px;display:grid}.ruled-field label{font-weight:650;font-stretch:72%;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.ruled-input{border:0;border-bottom:1.5px solid var(--rule-strong);width:100%;height:42px;font-size:var(--fs-md);color:var(--ink);background:0 0;border-radius:0;padding:0 2px;transition:border-color .16s,background-color .16s}.ruled-input::placeholder{color:#7a8da0}.ruled-input:hover{border-bottom-color:var(--ink-3)}.ruled-input:focus{border-bottom:2px solid var(--pencil);background:linear-gradient(to top, var(--pencil-wash), transparent 70%);outline:none}.ruled-input[aria-invalid=true]{border-bottom-color:var(--red)}.ruled-pw{align-items:center;display:flex}.ruled-pw .ruled-input{flex:1}.ruled-pw .icon-btn{margin-left:-34px}.login-error{padding:var(--s-2) var(--s-3);background:var(--red-wash);color:var(--red);border-radius:var(--radius);font-size:var(--fs-sm)}.login-submit{height:44px;font-size:var(--fs-base)}.modal-head code,.cell-sub code{color:var(--ink);background:var(--paper-band);border-radius:2px;padding:1px 5px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.95em}@media (max-width:560px){.pad-form{padding:var(--s-6) var(--s-5)}.login-brand{margin-bottom:var(--s-6)}.login-title{font-size:var(--fs-xl)}}.drawer-root{z-index:50;position:fixed;inset:0}.drawer-backdrop{background:#0a162661;animation:.2s ease-out both fade;position:absolute;inset:0}.drawer{background:var(--paper);width:min(520px,100%);box-shadow:var(--shadow-lift);border-left:3px double var(--rule-strong);animation:slide-in .32s var(--ease-out) both;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}@keyframes fade{0%{opacity:0}}.drawer-head{justify-content:space-between;align-items:flex-start;gap:var(--s-4);padding:var(--s-5) var(--s-6) var(--s-4);border-bottom:1px solid var(--rule-strong);background:var(--paper-band);display:flex}.drawer-head h2{font-size:var(--fs-md);font-weight:700;line-height:1.3}.drawer-body{padding:var(--s-5) var(--s-6) var(--s-8);flex:1;overflow-y:auto}.drawer-wide{width:min(1040px,100%)}.drawer-wide .drawer-body{flex-direction:column;padding:0;display:flex;overflow:hidden}.task-split{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;display:grid}.task-split>.task-details{min-height:0;padding:var(--s-5) var(--s-6) var(--s-8);overflow-y:auto}.task-chat{border-left:3px double var(--rule-strong);flex-direction:column;min-height:0;display:flex}.task-chat-head{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--rule);background:var(--paper-band);color:var(--ink-2);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:650}.task-chat .chat{flex:1}.task-split.is-tabs{flex-direction:column;display:flex}.task-split.is-tabs>.tabs{margin:var(--s-3) var(--s-5) 0}.task-split.is-tabs>.task-details,.task-split.is-tabs>.task-chat{border-left:0;flex:1}.task-split>.task-details[hidden]{display:none}.drawer-foot{justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-6);border-top:3px double var(--rule-strong);background:var(--paper-raised);display:flex}.form-stack{gap:var(--s-5);display:grid}.form-row{gap:var(--s-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:520px){.form-row{grid-template-columns:1fr}}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:8px;padding:0}.detail-grid{border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);background:var(--paper-raised);grid-template-columns:1fr 1fr;margin:0;display:grid}.detail-grid>div{padding:var(--s-2) var(--s-3) var(--s-3);border-bottom:1px solid var(--rule)}.detail-grid>div:nth-child(2n){border-left:1px solid var(--rule-mid)}.detail-grid>div:nth-last-child(-n+2){border-bottom:0}.detail-grid dd{margin:2px 0 0;font-weight:560}.subtasks{border-top:1px solid var(--rule-strong);gap:0;display:grid}.subtasks legend{margin-bottom:6px}.subtask{align-items:center;gap:var(--s-3);border-bottom:1px solid var(--rule);cursor:pointer;min-height:40px;display:flex;position:relative}.subtask-row{align-items:center;gap:var(--s-2);border-bottom:1px solid var(--rule);display:flex}.subtask-row .subtask{border-bottom:0;flex:1}.subtask-add{gap:var(--s-2);padding-top:var(--s-2);display:flex}.subtask-add .input{flex:1}.subtask input{opacity:0;width:1px;height:1px;position:absolute}.subtask-box{border:1.5px solid var(--rule-strong);background:var(--paper-raised);border-radius:2px;place-items:center;width:20px;height:20px;display:grid}.subtask input:focus-visible+.subtask-box{outline:2px solid var(--pencil);outline-offset:2px}.subtask.is-done{color:var(--ink-3)}.subtask input:disabled~*{cursor:default}.subtask .tick{width:16px;height:16px}.rating-choices{gap:4px;display:flex}.rating-choice{border:1px solid var(--rule-strong);background:var(--paper-raised);cursor:pointer;border-radius:2px;width:40px;height:40px;font-weight:700}.rating-choice.on{background:var(--action);border-color:var(--action);color:var(--ink-inverse)}.rating-choice:hover:not(.on){background:var(--action-wash)}.confirm{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--red);flex-wrap:wrap;font-weight:600;display:flex}.notice{margin-bottom:var(--s-3);padding:var(--s-2) var(--s-3);border-top:1px solid var(--rule-mid);border-bottom:1px solid var(--rule-mid);background:var(--paper-sunk);font-size:var(--fs-sm);color:var(--ink-2)}.notice-alert{background:var(--red-wash);color:var(--red);border-color:#e2b7b1}.team-sheet{gap:var(--s-6);grid-template-columns:290px minmax(0,1fr);align-items:start;display:grid}.people-index{top:var(--s-4);border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);position:sticky}.people-head{padding:9px var(--s-3);background:var(--paper-band);border-bottom:1px solid var(--rule-strong)}.people-index ul{margin:0;padding:0;list-style:none}.person-tab{align-items:center;gap:var(--s-2);width:100%;padding:6px var(--s-3);border:0;border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;transition:background-color .12s;display:grid}.person-tab:hover{background:#ebf1f7}.person-tab[aria-current=true]{background:var(--action-wash);box-shadow:inset 0 -1px 0 var(--rule-strong), inset 0 1px 0 var(--rule-strong)}.person-tab .stack{min-width:0}.person-tab strong,.person-tab .cell-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-meta{font-size:var(--fs-sm);justify-items:end;gap:2px;font-weight:620;display:grid}.person-meta .stamp{height:18px;padding:0 5px;font-size:.625rem}.team-sheet>*,.week-sheet{min-width:0}@media (max-width:1100px){.team-sheet{grid-template-columns:minmax(0,1fr)}.people-index{position:static}.people-index ul{display:flex;overflow-x:auto}.people-index li{border-right:1px solid var(--rule);flex:0 0 250px}}.sheet-bar{align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.sheet-note{margin-top:var(--s-3)}.row-link{font-weight:600;font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:3px;text-decoration:none;display:inline-flex}.row-link:hover{text-decoration:underline}.review-list{border-top:1px solid var(--rule-strong);background:var(--paper-raised);margin:0;padding:0;list-style:none}.review{padding:var(--s-3) var(--s-4) var(--s-4);border-bottom:1px solid var(--rule);gap:6px;display:grid}.review-top{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.review p{max-width:68ch;color:var(--ink-2);font-size:var(--fs-sm)}.search{display:block;position:relative}.search svg{width:15px;height:15px;color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search .input{width:240px;padding-left:32px}.select.filter{width:auto;min-width:160px}@media (max-width:960px){.search,.search .input,.select.filter{flex:100%;width:100%}}.board{border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);grid-template-columns:repeat(4,minmax(250px,1fr));gap:0;min-height:60vh;display:grid;overflow-x:auto}@media (max-width:960px){.board{scroll-snap-type:x mandatory;grid-template-columns:repeat(4,86%);min-height:0}.board-col{scroll-snap-align:start}}.board-col{flex-direction:column;min-width:0;transition:background-color .16s;display:flex}.board-col+.board-col{border-left:1px solid var(--rule-strong)}.board-col[data-over=true]{background:var(--action-wash)}.board-col-head{justify-content:space-between;align-items:baseline;gap:var(--s-2);padding:9px var(--s-3);background:var(--paper-band);border-bottom:1px solid var(--rule-strong);display:flex}.board-col-head h2{font-weight:700;font-stretch:72%;font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.board-col-head span{font-size:var(--fs-xs)}.board-col-body{align-content:start;gap:var(--s-2);padding:var(--s-3);display:grid}.board-empty{padding:var(--s-6) var(--s-2);text-align:center;font-size:var(--fs-sm);color:var(--ink-3);border:1px dashed var(--rule-mid);border-radius:var(--radius)}.task-card{text-align:left;width:100%;padding:var(--s-2) var(--s-3) var(--s-3);border:1px solid var(--rule-mid);cursor:pointer;transition:box-shadow .18s var(--ease-out), transform .18s var(--ease-out), border-color .18s;background:#fff;border-radius:2px;gap:6px;display:grid;box-shadow:0 1px 2px #14263a0f}.task-card:hover{border-color:var(--rule-strong);box-shadow:var(--shadow-sheet);transform:translateY(-1px)}.task-card[draggable=true]{cursor:grab}.task-card[draggable=true]:active{cursor:grabbing}.task-card-title{color:var(--ink);text-wrap:balance;font-size:var(--fs-sm);font-weight:620;line-height:1.35}.task-card-top{justify-content:space-between;align-items:center;display:flex}.task-id{font-weight:650;font-stretch:80%;font-size:var(--fs-xs);letter-spacing:.03em;color:var(--ink-3)}.priority-high{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1.5px solid var(--ink);border-radius:2px;padding:0 5px;font-size:.6875rem;font-weight:750;font-stretch:75%}.task-card-foot{align-items:center;gap:var(--s-3);border-top:1px solid var(--rule);margin-top:4px;padding-top:6px;display:flex}.meta{font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.meta svg{width:13px;height:13px}.meta.neg{color:var(--red);font-weight:620}.clickable{cursor:pointer}.row-button{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0;font-weight:560}.row-button:hover{text-underline-offset:3px;text-decoration:underline}.row-button .task-id{margin-right:6px}.matrix th.matrix-role{text-align:center}.matrix th.matrix-act{text-align:center;background:var(--paper-sunk);width:30px;padding:0;font-stretch:100%;position:static}.matrix thead tr:first-child th{border-bottom:1px solid var(--rule-mid)}.matrix-cell{width:30px;text-align:center!important;padding:0!important}.matrix-cell .tick{vertical-align:middle}.matrix-toggle{width:100%;height:var(--row);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.matrix-toggle:hover{background:var(--action-wash)}.empty-tall{padding-block:var(--s-12);align-content:center;min-height:320px}.login-help{font-size:var(--fs-sm);margin:0}.matrix-scope{text-align:center;padding-block:4px}.select-sm{min-height:28px;font-size:var(--fs-sm);padding-block:2px}.qr{border-radius:var(--radius);background:#fff;display:block}.audit-filters{gap:var(--s-3);margin-bottom:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:end;display:grid}.audit-entity{gap:var(--s-1);grid-template-columns:1fr 1fr;display:grid}.audit-filter-actions{gap:var(--s-2);display:flex}.audit-table code{font-size:var(--fs-sm)}.audit-detail td,.error-detail{padding:var(--s-3) var(--s-4);background:var(--paper-sunk)}.audit-meta{gap:var(--s-2) var(--s-4);margin:0 0 var(--s-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.audit-meta .wide{grid-column:1/-1}.audit-meta dt{font-size:var(--fs-xs,.75rem);color:var(--ink-3,var(--ink-2));text-transform:uppercase;letter-spacing:.04em}.audit-meta dd{overflow-wrap:anywhere;margin:0}.audit-json{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.audit-detail pre,.error-detail pre{margin:var(--s-1) 0 0;padding:var(--s-2) var(--s-3);border:1px solid var(--rule);background:var(--paper-raised);max-height:320px;font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto}.index-toggle{padding:var(--s-2) var(--s-3)}.team-description{margin-bottom:var(--s-3)}.crash{gap:var(--s-2);max-width:40rem;padding:var(--s-5) var(--s-6);background:var(--paper-raised);border:1px solid var(--rule);border-left:3px solid var(--red);border-radius:var(--radius);display:grid}.crash-page{margin:var(--s-6) 0}.crash-app{margin:var(--s-10) auto}.crash-dialog{padding:var(--s-3) var(--s-4)}.crash-title{align-items:center;gap:var(--s-2);color:var(--ink);font-weight:700;display:flex}.crash-title svg{width:18px;height:18px;color:var(--red)}.crash-ref{font-size:var(--fs-sm);-webkit-user-select:all;user-select:all}.crash-actions{gap:var(--s-2);margin-top:var(--s-2);display:flex}.modal-root{z-index:60;padding:var(--s-6) var(--s-4);place-items:center;display:grid;position:fixed;inset:0}.modal-backdrop{background:#0a162675;animation:.18s ease-out both fade;position:absolute;inset:0}.modal{background:var(--paper);width:100%;max-height:calc(100vh - 48px);box-shadow:var(--shadow-lift);animation:modal-in .26s var(--ease-out) both;border-radius:4px;flex-direction:column;display:flex;position:relative;overflow:hidden}.modal-sm{max-width:460px}.modal-md{max-width:600px}.modal-lg{max-width:780px}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.985)}}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--s-4);padding:var(--s-5) var(--s-6) var(--s-4);background:var(--paper-band);border-bottom:3px double var(--rule-strong);display:flex}.modal-head h2{font-size:var(--fs-md);font-weight:700}.modal-head-text{gap:2px;min-width:0;display:grid}.modal-body{padding:var(--s-5) var(--s-6) var(--s-6);flex:1;overflow-y:auto}.modal-body p{color:var(--ink-2);max-width:60ch}.modal-foot{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-6);border-top:1px solid var(--rule-strong);background:var(--paper-raised);flex-wrap:wrap;display:flex}.modal-error{text-align:right;max-width:40ch}@media (max-width:560px){.modal-root{align-items:end;padding:0}.modal{border-radius:0;height:100%;max-height:100vh}.modal-head,.modal-body,.modal-foot{padding-inline:var(--s-4)}}.picker{gap:6px;display:grid}.check{font-weight:600;font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:10px;display:inline-flex;position:relative}.check input{opacity:0;width:1px;height:1px;position:absolute}.check-box{border:1.5px solid var(--rule-strong);background:#fff;border-radius:2px;place-items:center;width:18px;height:18px;display:grid}.check input:checked+.check-box{background:var(--action);border-color:var(--action)}.check input:checked+.check-box:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:9px;height:5px;margin-top:-2px;transform:rotate(-45deg)}.check input:focus-visible+.check-box{outline:2px solid var(--pencil);outline-offset:2px}.link-btn{margin-left:var(--s-2);color:var(--action);font-weight:600;font-size:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.inline-edit{text-align:left;color:var(--ink);cursor:text;background:0 0;border:1px dashed #0000;border-radius:2px;margin-left:-4px;padding:2px 4px;font-weight:600}.inline-edit:hover{border-color:var(--rule-strong);background:#fff}.inline-input{max-width:420px;min-height:30px;padding:3px 8px}.select-compact{width:auto;min-height:32px;padding-block:4px}.input-mono,code.key{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--fs-sm)}code.key{color:var(--ink)}.is-inactive td{color:var(--ink-3)}.index-add{gap:var(--s-2);padding:var(--s-3);border-top:1px solid var(--rule-mid);display:flex}.index-add .input{min-width:0}.inline-add{align-items:center;gap:var(--s-2);flex-wrap:wrap;padding-block:6px;display:flex}.inline-add .input{max-width:360px;min-height:32px;padding-block:4px}.add-row td{background:var(--paper-sunk)}.inline-add .combo{flex:0 360px}.team-add{margin-top:var(--s-2)}.company-bar{gap:var(--s-4)}.company-name{font-size:var(--fs-md);font-weight:700}.color-field{align-items:center;gap:var(--s-2);display:inline-flex}.color-field input[type=color]{border:1px solid var(--rule-mid);border-radius:var(--radius);cursor:pointer;background:#fff;width:34px;height:28px;padding:2px}.settings-add .input{max-width:240px}.check-quiet{font-weight:500}.index-add{flex-wrap:wrap}.index-add .input{flex:1 1 0}.index-add .btn{order:1}.index-add .select{flex:100%;order:2}.type-field{align-items:center;gap:var(--s-2);display:inline-flex}.type-note svg{vertical-align:-2px;margin-right:4px}.type-note a,.type-companies a{color:var(--action);font-weight:600}.type-companies{align-items:center;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.chip-list{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chip-link{border:1px solid var(--rule-mid);background:var(--paper-raised);font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;text-decoration:none;display:inline-flex}.chip-link:hover{border-color:var(--action)}.move-summary{gap:var(--s-2);margin:0;padding-left:1.2em;display:grid}.import-counts{gap:var(--s-2) var(--s-4);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.import-counts dt{font-size:var(--fs-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.import-counts dd{font-size:var(--fs-md);margin:0;font-weight:700}.import-skipped ul{margin:var(--s-2) 0 0;font-size:var(--fs-sm);padding-left:1.2em}@media (max-width:560px){.import-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.menu{display:inline-flex;position:relative}.menu-caret{opacity:.7;margin-right:-4px}.menu-list{z-index:50;background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);min-width:15rem;box-shadow:var(--shadow-lift);padding:4px;display:grid;position:absolute;top:calc(100% + 4px)}.menu-end{right:0}.menu-start{left:0}.menu-heading{text-transform:uppercase;letter-spacing:.06em;font-weight:650;font-stretch:72%;font-size:var(--fs-xs);color:var(--ink-3);padding:8px 10px 4px}.menu-heading:not(:first-child){border-top:1px solid var(--rule);margin-top:4px}.menu-item{justify-content:space-between;align-items:baseline;gap:var(--s-4);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:7px 10px;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--action-wash);outline:none}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-hint{font-size:var(--fs-xs);color:var(--ink-3)}.import-template{align-items:center;gap:6px;margin-left:0;display:inline-flex}.import-template svg{width:14px;height:14px}.roles-panel{margin-bottom:var(--s-6)}.roles-table{max-width:44rem}.roles-actions{white-space:nowrap}.roles-actions .icon-btn:disabled{opacity:.3;cursor:not-allowed}.matrix-title{margin-bottom:var(--s-2)}.combo{position:relative}.combo-input{padding-right:30px}.combo-caret{width:14px;height:14px;color:var(--ink-2);pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.combo-list{z-index:40;background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);max-height:15rem;box-shadow:var(--shadow-lift);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combo-option{align-items:center;gap:var(--s-2);padding:6px var(--s-2);border-radius:var(--radius);font-size:var(--fs-sm);cursor:pointer;display:flex}.combo-option[aria-selected=true]{background:var(--action-wash)}.combo-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}mark.match{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--action);text-decoration-color:var(--action);text-underline-offset:2px;background:0 0;font-weight:700}.combo-meta{font-size:var(--fs-xs);color:var(--ink-3);flex:none}.combo-create{color:var(--action);font-weight:600}.combo-empty{padding:6px var(--s-2);font-size:var(--fs-sm);color:var(--ink-3)}.combo-person{flex-direction:column;flex:1;min-width:0;display:flex}.combo-person .combo-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combo-option.is-picked .combo-name{font-weight:600}.combo-more{padding:6px var(--s-2);border-top:1px solid var(--rule);font-size:var(--fs-xs);color:var(--ink-3)}.combo.combo-filter{width:220px}.combo-filter .combo-list{min-width:300px;right:auto}@media (max-width:960px){.combo.combo-filter{flex:100%;width:100%}.combo-filter .combo-list{min-width:0;right:0}}.gantt-toolbar{margin-bottom:var(--s-2)}.gantt-hint{margin-bottom:var(--s-3)}.gantt-legend{gap:var(--s-2) var(--s-4);font-size:var(--fs-xs);color:var(--ink-2);flex-wrap:wrap;display:inline-flex}.gantt-legend>span{align-items:center;gap:6px;display:inline-flex}.lg{border:1px solid var(--ink-3);background:var(--paper-band);border-radius:2px;width:18px;height:10px;display:inline-block}.lg-review{border-style:dashed}.lg-done{opacity:.45}.lg-late{border-color:var(--red);background:repeating-linear-gradient(45deg, var(--red) 0 1.5px, transparent 1.5px 5px)}.gantt{--gantt-label:280px;--weekend:#d2dde873;border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);overscroll-behavior-x:contain;max-height:72vh;position:relative;overflow:auto}.gantt-inner{min-width:100%}.gantt-row{display:flex}.gantt-label{z-index:3;flex:0 0 var(--gantt-label);min-width:0;height:40px;padding:0 var(--s-3);background:var(--paper-raised);border-right:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);align-items:center;display:flex;position:sticky;left:0}.gantt-task-link{min-width:0;padding:0 0 0 var(--s-6);font-size:var(--fs-sm);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:8px;display:flex}.gantt-task-link:hover .gantt-task-title{text-underline-offset:3px;text-decoration:underline}.gantt-task-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-task-link .task-id{flex:none}.gantt-head{z-index:5;position:sticky;top:0}.gantt-corner{z-index:6;background:var(--paper-band);border-bottom:1px solid var(--rule-strong);height:52px}.gantt-scale{background:var(--paper-band);border-bottom:1px solid var(--rule-strong);height:52px;position:relative}.gantt-monthrow span,.gantt-days span{white-space:nowrap;align-items:center;display:flex;position:absolute;overflow:hidden}.gantt-monthrow span{border-left:1px solid var(--rule-strong);height:24px;font-weight:700;font-stretch:72%;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);padding-left:8px;top:0}.gantt-days span{border-left:1px solid var(--rule);font-variant-numeric:tabular-nums;height:28px;color:var(--ink-2);justify-content:center;gap:3px;font-size:11px;top:24px}.gantt-days b{color:var(--ink-3);font-weight:500}.gantt-day.is-weekend{background:var(--weekend)}.gantt-day.is-today{color:var(--action);box-shadow:inset 0 -3px 0 var(--action);font-weight:700}.gantt-week{padding-left:6px;border-left-color:var(--rule-strong)!important;justify-content:flex-start!important}.gantt-today-flag{z-index:1;background:var(--action);color:var(--ink-inverse);letter-spacing:.04em;text-transform:uppercase;border-radius:2px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:3px;transform:translate(-50%)}.gantt-track{border-bottom:1px solid var(--rule);background-image:linear-gradient(to right, transparent calc(var(--day) * 5), var(--weekend) calc(var(--day) * 5)), linear-gradient(to right, var(--rule-mid) 1px, transparent 1px), linear-gradient(to right, #d2dde8b3 1px, transparent 1px);background-size:var(--week) 100%, var(--week) 100%, var(--day) 100%;flex:none;height:40px;position:relative}.zoom-months .gantt-track{background-image:linear-gradient(to right, transparent calc(var(--day) * 5), var(--weekend) calc(var(--day) * 5)), linear-gradient(to right, var(--rule-mid) 1px, transparent 1px);background-size:var(--week) 100%, var(--week) 100%}.gantt-group .gantt-label,.gantt-group .gantt-track{background-color:var(--paper-sunk);border-bottom-color:var(--rule-mid);height:36px}.gantt-group .gantt-label{font-size:var(--fs-sm)}.gantt-today{z-index:1;background:var(--action);opacity:.5;pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:-1px}.gantt-bar{z-index:2;border:1.5px solid var(--bar);background:color-mix(in srgb, var(--bar) 16%, #fff);text-align:left;cursor:pointer;touch-action:none;height:24px;transition:box-shadow .16s var(--ease-out);border-radius:3px;align-items:center;padding:0;display:flex;position:absolute;top:8px}.gantt-bar.is-movable{cursor:grab}.gantt-bar:hover{box-shadow:0 2px 8px -2px #14263a59}.gantt-bar:focus-visible{outline:2px solid var(--pencil);outline-offset:2px}.gantt-bar.is-dragging{z-index:4;cursor:grabbing;box-shadow:var(--shadow-lift)}.gantt-progress{width:var(--progress);background:var(--bar);border-radius:0 0 0 2px;max-width:100%;height:4px;position:absolute;bottom:0;left:0}.gantt-bar-label{left:calc(var(--gantt-label) + 6px);min-width:0;max-width:100%;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;align-items:center;gap:4px;padding:0 10px 2px;font-size:12px;font-weight:600;display:flex;position:sticky;overflow:hidden}.gantt-bar-label .tick{width:14px;height:14px;color:var(--ink-2)}.gantt-bar.status-review{border-style:dashed}.gantt-bar.status-done{background:color-mix(in srgb, var(--bar) 8%, #fff);border-color:color-mix(in srgb, var(--bar) 45%, #fff)}.gantt-bar.status-done .gantt-bar-label{color:var(--ink-3)}.gantt-bar.status-done .gantt-progress{opacity:.45}.gantt-handle{z-index:2;cursor:ew-resize;width:9px;position:absolute;top:0;bottom:0}.gantt-handle:after{content:"";border-left:1px solid var(--bar);border-right:1px solid var(--bar);opacity:0;width:3px;transition:opacity .12s;position:absolute;top:6px;bottom:6px;left:3px}.gantt-bar:hover .gantt-handle:after,.gantt-bar.is-dragging .gantt-handle:after{opacity:.8}.gantt-handle-start{left:0}.gantt-handle-end{right:0}.gantt-outside-label{z-index:1;color:var(--ink-2);white-space:nowrap;pointer-events:none;font-size:12px;position:absolute;top:12px}.gantt-late{z-index:1;border:1px solid var(--red);background:repeating-linear-gradient(45deg,#b3261e8c 0 1.5px,#0000 1.5px 6px);border-left:0;border-radius:0 3px 3px 0;justify-content:flex-end;align-items:center;height:16px;display:flex;position:absolute;top:12px}.gantt-late-text{color:var(--red);margin-right:6px;font-weight:700}.gantt-drag-tip{z-index:6;background:var(--ink);color:var(--ink-inverse);white-space:nowrap;pointer-events:none;border-radius:2px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;top:-4px;transform:translateY(-100%)}.gantt-drag-tip svg{width:12px;height:12px}@media (max-width:760px){.gantt{--gantt-label:150px;max-height:none}.gantt-task-link{padding-left:0}.gantt-task-link .task-id,.gantt-legend{display:none}}.nav-badge{background:var(--brand);min-width:22px;height:20px;color:var(--brand-ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:10px;margin-left:auto;padding:0 6px;font-size:.6875rem;font-weight:750;line-height:20px}.topbar-actions{display:none}@media (max-width:960px){.topbar-actions{align-items:center;gap:var(--s-2);display:inline-flex}.bell-btn{text-decoration:none;position:relative}.bell-count{background:var(--brand);min-width:18px;height:18px;color:var(--brand-ink);text-align:center;border-radius:9px;padding:0 4px;font-size:.625rem;font-weight:750;line-height:18px;position:absolute;top:-6px;right:-6px}}.inbox{border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);margin:0;padding:0;list-style:none}.inbox-day{padding:8px var(--s-4);background:var(--paper-band);border-bottom:1px solid var(--rule-strong);font-weight:700;font-stretch:72%;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);justify-content:space-between;display:flex}.inbox-item{border-bottom:1px solid var(--rule);align-items:stretch;transition:background-color .12s;display:flex}.inbox-item:hover{background:#ebf1f7}.inbox-item.is-superseded .inbox-text strong,.inbox-item.is-superseded .inbox-body{color:var(--ink-3)}.inbox-item.is-superseded .inbox-text strong{font-weight:500}.inbox-main{align-items:start;gap:var(--s-3);min-width:0;padding:var(--s-3) var(--s-2) var(--s-3) var(--s-4);text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;grid-template-columns:8px 34px minmax(0,1fr) auto;display:grid}.inbox-main:focus-visible{outline-offset:-2px}.inbox-dot{border-radius:50%;width:8px;height:8px;margin-top:13px}.is-unread .inbox-dot{background:var(--action)}.inbox-icon{border:1px solid var(--rule-mid);background:var(--paper);width:34px;height:34px;color:var(--ink-2);border-radius:3px;place-items:center;display:grid}.inbox-icon svg{width:17px;height:17px}.is-unread .inbox-icon{border-color:var(--rule-strong);color:var(--action);background:var(--action-wash)}.inbox-text{gap:2px;min-width:0;display:grid}.inbox-text strong{font-weight:560;line-height:1.35}.is-unread .inbox-text strong{font-weight:700}.inbox-body{font-size:var(--fs-sm);color:var(--ink-2);max-width:90ch}.inbox-meta{font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.inbox-time{font-size:var(--fs-sm);color:var(--ink-3);padding-top:2px}.inbox-actions{padding:0 var(--s-3) 0 var(--s-1);opacity:.45;align-items:center;gap:2px;transition:opacity .12s;display:flex}.inbox-item:hover .inbox-actions,.inbox-actions:focus-within{opacity:1}@media (max-width:560px){.inbox-main{padding-left:var(--s-3);grid-template-columns:8px minmax(0,1fr) auto}.inbox-icon{display:none}.inbox-actions{opacity:1;padding-inline:2px var(--s-2);flex-direction:column;justify-content:center}}.routing th.matrix-role{min-width:92px}.routing-cell{width:92px}.routing-cell .check{justify-content:center}.routing-cell .tick{vertical-align:middle}@media (max-width:760px){.tabs{scrollbar-width:none;max-width:100%;overflow:auto hidden}.tab{flex:none}}.ledger tfoot td.muted{font-weight:500}.load-more{padding:var(--s-4) 0;justify-content:center;display:flex}.table-toolbar{align-items:center;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.table-search .input{width:280px;padding-right:34px}.table-search .input::-webkit-search-cancel-button{display:none}.search-clear{width:26px;height:26px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.search-clear svg{width:14px;height:14px;position:static;transform:none}.table-count{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.ledger thead th.sort-th{padding:0}.sort-btn{width:100%;height:34px;padding:0 var(--s-3);font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;display:flex}.num .sort-btn,th.num .sort-btn{justify-content:flex-end}.sort-btn svg{opacity:.35;flex:none;width:12px;height:12px}.sort-btn:hover{color:var(--ink);background:#d3dfeb}.sort-btn:hover svg,.sort-btn.is-active svg{opacity:1}.sort-btn.is-active{color:var(--ink)}.sort-btn:focus-visible{outline-offset:-2px}.pagination{align-items:center;gap:var(--s-2) var(--s-5);padding:var(--s-3) 0 0;font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.pagination-size{align-items:center;gap:var(--s-2);display:inline-flex}.pagination-range{color:var(--ink-3)}.pagination-pages{align-items:center;gap:2px;margin-left:auto;display:inline-flex}.page-btn{border-radius:var(--radius);min-width:32px;height:32px;font-weight:600;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 8px}.page-btn:hover{background:var(--paper-band);color:var(--ink)}.page-btn.is-current{border-color:var(--rule-strong);background:var(--paper-raised);color:var(--ink)}.pagination-gap{color:var(--ink-3);padding:0 4px}.index-search{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--rule-mid)}.index-search .input{padding-block:4px;width:100%;min-height:34px;padding-left:32px}@media (max-width:760px){.table-search,.table-search .input{width:100%}.table-search{flex:100%}.pagination-pages{margin-left:0}}.rot-90{transform:rotate(90deg)}.index-empty{padding:var(--s-3);font-size:var(--fs-sm)}.sub-row.is-match td:first-child{color:var(--ink);font-weight:700}.who-link{margin:0 calc(var(--s-2) * -1);padding:6px var(--s-2);border-radius:var(--radius);color:inherit;text-decoration:none;transition:background-color .14s}.who-link:hover,.who-link[aria-current=page]{background:var(--binding-hi)}.who-icon{width:16px;height:16px;color:var(--binding-ink-2);flex:none;margin-left:auto}.who-link:focus-visible{outline-color:#9ec9ff}.account-grid{gap:var(--s-10);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}@media (max-width:1100px){.account-grid{grid-template-columns:minmax(0,1fr)}}.profile-grid{grid-template-columns:1fr 1fr}.password-form{max-width:520px}.pw-field{display:block;position:relative}.pw-field .input{padding-right:40px}.pw-field .icon-btn{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.strength{align-items:center;gap:var(--s-3);margin-top:calc(var(--s-3) * -1);display:flex}.strength-bar{grid-template-columns:repeat(4,1fr);gap:3px;width:160px;display:grid}.strength-bar i{background:var(--rule);border-radius:1px;height:6px}.strength-bar.s-1 i.on{background:var(--red)}.strength-bar.s-2 i.on{background:#b8741a}.strength-bar.s-3 i.on,.strength-bar.s-4 i.on{background:var(--action)}.strength-label{font-size:var(--fs-xs);color:var(--ink-3)}.pw-rules{margin:calc(var(--s-2) * -1) 0 0;font-size:var(--fs-sm);color:var(--ink-3);gap:4px;padding:0;list-style:none;display:grid}.pw-rules li{align-items:center;gap:8px;display:flex}.pw-rules svg{flex:none;width:14px;height:14px}.pw-rules li.is-met{color:var(--ink)}.pw-rules li.is-met svg{color:var(--action)}.form-actions{gap:var(--s-2);display:flex}.tf-off{justify-items:start;gap:var(--s-4);padding:var(--s-5);border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);display:grid}.tf-off p{max-width:70ch;color:var(--ink-2)}.tf-label{width:220px}.steps{gap:var(--s-2) var(--s-5);margin:var(--s-2) 0 0;font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.steps li{align-items:center;gap:8px;display:inline-flex}.step-no{border:1.5px solid var(--rule-strong);width:22px;height:22px;font-size:var(--fs-xs);background:var(--paper-raised);border-radius:50%;place-items:center;font-weight:700;display:inline-grid}.step-no svg{width:12px;height:12px}.steps li.is-current{color:var(--ink);font-weight:650}.steps li.is-current .step-no{border-color:var(--action);background:var(--action);color:var(--ink-inverse)}.steps li.is-done .step-no{border-color:var(--action);color:var(--action)}.tf-scan{gap:var(--s-5);grid-template-columns:180px minmax(0,1fr);align-items:start;display:grid}@media (max-width:560px){.tf-scan{grid-template-columns:minmax(0,1fr)}}.qr-placeholder{width:180px;height:180px;padding:var(--s-4);border:2px dashed var(--rule-strong);border-radius:var(--radius);background:repeating-linear-gradient(0deg, transparent 0 17px, var(--rule) 17px 18px), repeating-linear-gradient(90deg, transparent 0 17px, var(--rule) 17px 18px), var(--paper-raised);text-align:center;font-size:var(--fs-xs);color:var(--ink-3);place-content:center;gap:6px;display:grid}.qr-placeholder>span{background:var(--paper-raised);padding:2px 4px}.tf-scan-text{gap:var(--s-4);display:grid}.secret-row{align-items:center;gap:var(--s-2);display:flex}.secret,.uri,.code-grid code,.code-input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.secret{border:1px solid var(--rule-mid);border-radius:var(--radius);background:var(--paper-raised);font-size:var(--fs-md);letter-spacing:.04em;color:var(--ink);overflow-wrap:anywhere;padding:6px 10px}.uri{margin-top:var(--s-2);padding:var(--s-2);background:var(--paper-band);border-radius:var(--radius);font-size:var(--fs-xs);overflow-wrap:anywhere;color:var(--ink-2);display:block}.code-input{letter-spacing:.2em;max-width:220px;font-size:1.5rem}.ruled-input.code-input{max-width:none}.backup-codes{gap:var(--s-4);justify-items:start;display:grid}.backup-codes p{color:var(--ink-2)}.code-grid{counter-reset:code;border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--paper-raised);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;width:100%;margin:0;padding:0;list-style:none;display:grid}.code-grid li{align-items:center;gap:var(--s-3);padding:8px var(--s-3);border-bottom:1px solid var(--rule);counter-increment:code;display:flex}.code-grid li:nth-child(odd){border-right:1px solid var(--rule-mid)}.code-grid li:before{content:counter(code);width:1.5em;font-size:var(--fs-xs);color:var(--ink-3);text-align:right}.code-grid code{font-size:var(--fs-md);letter-spacing:.06em;color:var(--ink)}.login-alt{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.login-alt .link-btn{margin-left:0}.login-sub svg{vertical-align:-2px;color:var(--action)}input::-ms-reveal{display:none}input::-ms-clear{display:none}.row-actions{white-space:nowrap}.temp-pw{height:18px;margin-left:8px;font-size:.625rem}.notice svg{vertical-align:-3px}.timesheet-toolbar{flex-wrap:wrap}.timesheet-stepper{position:relative}.stepper .stepper-pick{gap:var(--s-2);width:auto;font-weight:600;font-size:var(--fs-sm);color:var(--ink);justify-content:center;display:inline-flex}.timesheet-picker{z-index:30;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.timesheet-saved{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.timesheet-table tbody tr.is-clickable{cursor:pointer}.timesheet-table td{vertical-align:top;padding-block:9px}.timesheet-table .nowrap{white-space:nowrap}.timesheet-company{align-items:center;gap:var(--s-2);display:inline-flex}.timesheet-name{min-width:7.5rem}.timesheet-subtasks{min-width:8.5rem;max-width:16rem;color:var(--ink-2)}.timesheet-details{min-width:11rem;max-width:22rem;color:var(--ink-2)}.timesheet-details>div{-webkit-line-clamp:2;white-space:pre-line;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.row-open{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.row-open:focus-visible{outline:2px solid var(--pencil);outline-offset:2px}.coverage{align-items:center;gap:var(--s-2) var(--s-4);margin-bottom:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--paper-raised);border:1px solid var(--rule);border-left:3px solid var(--amber-rule);border-radius:var(--radius);flex-wrap:wrap;display:flex}.coverage-icon{width:16px;height:16px;color:var(--ink-3);flex:none}.coverage-text p{font-size:var(--fs-sm);line-height:1.3}.coverage-text p+p{font-size:var(--fs-xs)}.coverage-gap-total{color:var(--amber)}.coverage-bar{flex:140px;gap:2px;min-width:140px;height:16px;display:flex}.coverage-seg{border-radius:2px;min-width:2px}.coverage-seg.is-logged{background:var(--series-1);opacity:.7}.coverage-seg.is-gap{background:var(--amber-wash);box-shadow:inset 0 0 0 1px var(--amber-rule)}.coverage-gaps{flex-wrap:wrap;gap:6px;display:flex}.coverage-chip{border:1px solid var(--amber-rule);border-radius:var(--radius);background:var(--amber-wash);color:var(--amber);font-size:var(--fs-xs);align-items:center;gap:4px;padding:3px 8px;font-weight:650;display:inline-flex}button.coverage-chip{cursor:pointer}button.coverage-chip:hover{border-color:var(--amber)}.coverage-chip svg{width:12px;height:12px}.coverage-chip span{opacity:.8;font-weight:400}.coverage-overlap{border-radius:var(--radius);background:var(--red-wash);color:var(--red);font-size:var(--fs-xs);align-items:center;gap:4px;padding:3px 8px;font-weight:650;display:inline-flex}.coverage-overlap svg{width:12px;height:12px}.coverage-hide{font-size:var(--fs-xs);color:var(--ink-3);margin-left:auto}.entry-duration{align-items:baseline;gap:var(--s-3);font-size:var(--fs-sm);display:flex}.entry-duration strong{font-size:var(--fs-lg);color:var(--ink);font-weight:700}.entry-form{gap:var(--s-4);display:grid}.entry-times{gap:var(--s-3);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);display:grid}.entry-pair{gap:var(--s-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (max-width:620px){.entry-times,.entry-pair{grid-template-columns:minmax(0,1fr)}}.entry-label-row{justify-content:space-between;align-items:baseline;gap:var(--s-3);font-size:var(--fs-xs);display:flex}.entry-label-row label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-weight:650;font-stretch:72%}.entry-split{gap:var(--s-2);padding:var(--s-3);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);display:grid}.modal-body .entry-split-note{font-size:var(--fs-sm);color:var(--ink-3)}.btn-danger-text{color:var(--red)}.btn-danger-text:hover:not(:disabled){background:var(--red-wash);color:var(--red)}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--rule-mid);background:var(--action-wash);max-width:100%;color:var(--ink);font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:2px;padding:2px 2px 2px 10px;display:inline-flex}.chip button{width:22px;height:22px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.chip button:hover{background:var(--paper-band);color:var(--red)}.chip svg{width:13px;height:13px}.saved-wording{position:relative}.saved-toggle{font-size:var(--fs-xs);align-items:center;gap:4px;margin:0;text-decoration:none;display:inline-flex}.saved-toggle svg{width:13px;height:13px}.saved-pop{z-index:40;gap:var(--s-2);width:min(26rem,80vw);padding:var(--s-2);background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);box-shadow:var(--shadow-lift);display:grid;position:absolute;top:calc(100% + 4px);right:0}.saved-pop ul{max-height:16rem;margin:0;padding:0;list-style:none;overflow-y:auto}.saved-pop li{font-size:var(--fs-sm)}.saved-pop li.muted{padding:var(--s-2)}.saved-pop li button{width:100%;padding:6px var(--s-2);border-radius:var(--radius);color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0}.saved-pop li button:hover,.saved-pop li button:focus-visible{background:var(--action-wash);outline:none}.split{gap:var(--s-3);display:grid}.split-track{border-radius:var(--radius);touch-action:none;height:30px;display:flex;position:relative;overflow:hidden}.split-slice{color:#fff;min-width:2px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;place-items:center;font-weight:650;display:grid;overflow:hidden}.split-slice+.split-slice{border-left:2px solid var(--paper-raised)}.split-handle{cursor:ew-resize;background:0 0;border:0;width:14px;margin-left:-7px;padding:0;position:absolute;top:0;bottom:0}.split-handle:after{content:"";background:#ffffffd9;border-radius:2px;width:4px;position:absolute;top:6px;bottom:6px;left:5px}.split-handle:focus-visible{outline:2px solid var(--pencil)}.split-rows{gap:4px;margin:0;padding:0;list-style:none;display:grid}.split-row{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);grid-template-columns:10px minmax(0,1fr) auto 5.5rem 3rem auto;display:grid}.split-swatch{border-radius:2px;width:10px;height:10px}.split-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.split-range{color:var(--ink-2)}.split-minutes{min-height:30px;padding:3px 8px}.split-pct{color:var(--ink-3)}.split-move{display:inline-flex}.split-move .icon-btn{width:26px;height:26px}@media (max-width:620px){.split-row{grid-template-columns:10px minmax(0,1fr) 5rem auto}.split-range,.split-pct{display:none}}.team-grid th.team-grid-person,.team-grid td.team-grid-person{z-index:1;background:var(--paper-raised);text-align:left;min-width:11rem;font-weight:400;position:sticky;left:0}.team-grid thead th.team-grid-person{background:var(--paper-band)}.team-grid tbody th.team-grid-person{padding-block:6px}.team-grid tbody th.team-grid-person strong,.team-grid tbody th.team-grid-person .cell-sub{display:block}.team-grid .team-grid-week{white-space:nowrap;min-width:5.25rem}.team-grid .team-grid-cell{padding:3px}.grid-week{border-radius:var(--radius);width:100%;min-height:30px;font:inherit;font-size:var(--fs-xs);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:5px;padding:0 6px;display:inline-flex}button.grid-week:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}.grid-week svg{flex:none;width:13px;height:13px}.grid-week.is-approved{background:var(--action-wash);color:var(--action)}.grid-week.is-submitted{background:var(--pencil-wash);color:var(--pencil);font-weight:650}.grid-week.is-returned{background:var(--red-wash);color:var(--red);font-weight:650}.grid-week.is-draft{border:1px dashed var(--rule-mid);color:var(--ink-3)}.team-grid-legend{gap:var(--s-2) var(--s-5);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.team-grid-legend>span{align-items:center;gap:6px;display:inline-flex}.team-grid-legend .grid-week{cursor:default;width:auto;min-height:22px}@media (max-width:620px){.timesheet-wrap{background:0 0;border:0;overflow:visible}.timesheet-table{display:block}.timesheet-table thead{display:none}.timesheet-table tbody{gap:var(--s-2);display:grid}.timesheet-table tbody tr{padding:var(--s-3);background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"date date date date""start end company dur""client client client client""task task task task""subtasks subtasks subtasks subtasks""details details details details";align-items:baseline;column-gap:0;display:grid}.timesheet-table tbody td{text-align:left;white-space:normal;border:0;min-width:0;max-width:none;height:auto;padding:1px 0}.timesheet-table .ts-date{margin-bottom:var(--s-1);font-size:var(--fs-xs);color:var(--ink-2);grid-area:date;font-weight:650}.timesheet-table .ts-start{grid-area:start;font-weight:650}.timesheet-table .ts-end{grid-area:end;font-weight:650}.timesheet-table .ts-end:before{content:" – "}.timesheet-table .ts-company{padding-left:var(--s-2);grid-area:company}.timesheet-table .ts-dur{padding-left:var(--s-2);text-align:right;grid-area:dur;font-weight:700}.timesheet-table .ts-client{margin-top:var(--s-1);grid-area:client;font-weight:600}.timesheet-table .ts-task{grid-area:task}.timesheet-table .ts-subtasks{grid-area:subtasks}.timesheet-table .ts-details{margin-top:var(--s-1);grid-area:details}.timesheet-table .ts-details>div{-webkit-line-clamp:3}.timesheet-table .ts-client:empty,.timesheet-table .ts-task:empty,.timesheet-table .ts-subtasks:empty{display:none}.timesheet-table .ts-details:has(>div:empty){display:none}.timesheet-table tfoot{margin-top:var(--s-3);display:block}.timesheet-table tfoot tr{gap:var(--s-1) var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--rule-strong);border-bottom:3px double var(--ink-2);flex-wrap:wrap;display:flex}.timesheet-table tfoot td{text-align:left;border:0;height:auto;padding:0}}.datepicker{width:17.5rem;padding:var(--s-3);background:var(--paper-raised);border:1px solid var(--rule-mid);border-radius:var(--radius);box-shadow:var(--shadow-lift)}.datepicker-head{margin-bottom:var(--s-2);justify-content:space-between;align-items:center;display:flex}.datepicker-title{border-radius:var(--radius);color:var(--ink);font-weight:700;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;padding:4px 8px}.datepicker-title:hover{background:var(--paper-band)}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-weekday{text-align:center;font-size:var(--fs-xs);color:var(--ink-3);padding:4px 0;font-weight:650}.datepicker-day{border-radius:var(--radius);height:34px;color:var(--ink);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;position:relative}.datepicker-day:hover:not(:disabled){background:var(--paper-band)}.datepicker-day.is-outside{color:var(--ink-3)}.datepicker-day.is-today{box-shadow:inset 0 0 0 1px var(--action)}.datepicker-day[aria-current=date]{background:var(--action);color:var(--ink-inverse)}.datepicker-day:disabled{opacity:.35;cursor:not-allowed}.datepicker-day.is-logged:after,.datepicker-dot{content:"";background:var(--series-2);border-radius:50%;width:4px;height:4px;display:inline-block}.datepicker-day.is-logged:after{margin-left:-2px;position:absolute;bottom:4px;left:50%}.datepicker-day[aria-current=date].is-logged:after{background:var(--ink-inverse)}.datepicker-months{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.datepicker-months button{border-radius:var(--radius);height:38px;color:var(--ink);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0}.datepicker-months button:hover:not(:disabled){background:var(--paper-band)}.datepicker-months button[aria-current=true]{background:var(--action);color:var(--ink-inverse)}.datepicker-months button:disabled{opacity:.35;cursor:not-allowed}.datepicker-foot{margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--rule);font-size:var(--fs-xs);justify-content:space-between;align-items:center;display:flex}.datepicker-foot .muted{align-items:center;gap:6px;display:inline-flex}.preferences-form{max-width:28rem}.timesheet-views{margin-bottom:var(--s-4)}.timesheet-back{margin:calc(var(--s-2) * -1) 0 var(--s-3);font-size:var(--fs-sm)}.timesheet-back .link-btn{align-items:center;gap:4px;margin-left:0;text-decoration:none;display:inline-flex}.timesheet-back svg{width:14px;height:14px}.weekbar{margin-bottom:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--paper-raised);border:1px solid var(--rule);border-left:3px solid var(--rule-strong);border-radius:var(--radius)}.weekbar-submitted{border-left-color:var(--pencil)}.weekbar-approved{border-left-color:var(--series-1)}.weekbar-returned{border-left-color:var(--red)}.weekbar-main{align-items:center;gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.weekbar-text{min-width:0;font-size:var(--fs-sm);flex:18rem}.weekbar-text p+p{margin-top:2px}.weekbar-lock{margin-left:var(--s-2);align-items:center;gap:4px;display:inline-flex}.weekbar-lock svg{width:12px;height:12px}.weekbar-note{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);border-left:2px solid var(--red);background:var(--red-wash);color:var(--ink);white-space:pre-line}.weekbar-actions{gap:var(--s-2);display:flex}.weekbar .notice{margin:var(--s-2) 0 0}.week-chips{gap:var(--s-2);margin:0 0 var(--s-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.week-chip{align-items:center;gap:var(--s-2);border:1px solid var(--rule-mid);border-radius:var(--radius);background:var(--paper-raised);color:var(--ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;padding:5px 10px;display:inline-flex}.week-chip:hover{border-color:var(--rule-strong)}.week-chip-range{font-weight:600}.row-lock{vertical-align:-1px;width:12px;height:12px;color:var(--ink-3);margin-left:6px}.team-weeks td{vertical-align:middle}.team-weeks .row-open{text-align:left}.team-weeks .col-check{width:36px;padding-right:0}.team-weeks .col-check .check{cursor:pointer}.notice-list{margin:var(--s-1) 0;padding-left:var(--s-4)}.notice-summary p{margin:0}.import-steps{padding:var(--s-3) var(--s-4);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);font-size:var(--fs-sm)}.import-steps ol{margin:var(--s-2) 0;gap:4px;padding-left:1.25rem;display:grid}.cal{height:calc(100vh - 220px);min-height:560px;padding:var(--s-3);background:var(--paper-raised);border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);font-size:var(--fs-sm);transition:opacity .12s}.cal.is-loading{opacity:.75}.cal .rbc-toolbar{gap:var(--s-2);margin-bottom:var(--s-3)}.cal .rbc-toolbar button{font:inherit;font-size:var(--fs-sm);color:var(--ink);background:var(--paper);border-color:var(--rule-mid);border-radius:var(--radius);cursor:pointer;padding:5px 12px}.cal .rbc-toolbar button:hover,.cal .rbc-toolbar button:focus{background:var(--paper-sunk)}.cal .rbc-toolbar button:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}.cal .rbc-toolbar button.rbc-active,.cal .rbc-toolbar button.rbc-active:hover{background:var(--action-wash);border-color:var(--action);color:var(--action);box-shadow:none}.cal .rbc-toolbar-label{font-weight:700;font-size:var(--fs-md)}.cal .rbc-month-view,.cal .rbc-time-view,.cal .rbc-agenda-view table.rbc-agenda-table{border-color:var(--rule-mid);border-radius:var(--radius)}.cal .rbc-header{font-weight:650;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--paper-band);border-color:var(--rule-mid);padding:6px 4px}.cal .rbc-month-row+.rbc-month-row,.cal .rbc-day-bg+.rbc-day-bg,.cal .rbc-time-content>*+*>*,.cal .rbc-timeslot-group,.cal .rbc-time-header-content,.cal .rbc-time-content{border-color:var(--rule)}.cal .rbc-off-range-bg{background:var(--paper-sunk)}.cal .rbc-off-range{color:var(--ink-3)}.cal .rbc-today{background:var(--action-wash)}.cal .rbc-date-cell{font-size:var(--fs-xs);padding:3px 6px}.cal .rbc-date-cell.rbc-now{color:var(--action);font-weight:700}.cal .rbc-current-time-indicator{background:var(--red)}.cal .rbc-label{font-size:var(--fs-xs);color:var(--ink-3)}.cal .rbc-show-more{color:var(--action);background:0 0;font-weight:600}.cal .rbc-event,.cal .rbc-day-slot .rbc-background-event{border-radius:var(--radius);font-size:var(--fs-xs);border:1px solid #0000;padding:1px 6px;line-height:1.35}.cal .rbc-event:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}.cal .rbc-event.rbc-selected{filter:brightness(.92)}.cal-event{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.cal-event svg{flex:none;width:12px;height:12px}.cal-src-tasks{--cal-bg:var(--paper-sunk);--cal-ink:var(--ink);--cal-rule:var(--rule-mid)}.cal-src-tasks.is-overdue{--cal-bg:var(--red-wash);--cal-ink:var(--red);--cal-rule:#e2b7b1}.cal-src-reviews{--cal-bg:var(--pencil-wash);--cal-ink:var(--pencil);--cal-rule:var(--pencil-wash)}.cal-src-timesheet{--cal-bg:var(--amber-wash);--cal-ink:var(--amber);--cal-rule:var(--amber-rule)}.cal-src-birthdays{--cal-bg:#fdeaf3;--cal-ink:#9b2c62;--cal-rule:#f2c4da}.cal-src-events{--cal-bg:#2f6fb3;--cal-ink:#fff;--cal-rule:#2f6fb3}.cal-cat-blue{--cal-bg:#2f6fb3;--cal-rule:#2f6fb3}.cal-cat-green{--cal-bg:#2e7d4f;--cal-rule:#2e7d4f}.cal-cat-amber{--cal-bg:#a86512;--cal-rule:#a86512}.cal-cat-red{--cal-bg:#b3261e;--cal-rule:#b3261e}.cal-cat-purple{--cal-bg:#6b4fbb;--cal-rule:#6b4fbb}.cal-cat-grey{--cal-bg:#5f6b7a;--cal-rule:#5f6b7a}.cal .rbc-event[class*=cal-src-]{background:var(--cal-bg);color:var(--cal-ink);border-color:var(--cal-rule)}.cal .rbc-agenda-view .rbc-agenda-event-cell{font-weight:600}.cal-colours{border:0;margin:0;padding:0}.cal-colours legend{margin-bottom:6px}.cal-swatches{gap:var(--s-2);display:flex}.cal-swatch{background:var(--cal-bg);cursor:pointer;border-radius:50%;width:26px;height:26px;position:relative}.cal-swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.cal-swatch:has(input:checked){outline:2px solid var(--ink);outline-offset:2px}.cal-swatch:has(input:focus-visible){outline:2px solid var(--pencil);outline-offset:2px}.modal-question{font-weight:600}.cal .rbc-addons-dnd .rbc-addons-dnd-resizable{width:100%}.cal .rbc-addons-dnd-dragged-event{opacity:.4}.cal .rbc-slot-selection{background:var(--action-wash);color:var(--action);border:1px solid var(--action)}.cal-legend{gap:var(--s-2) var(--s-5);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.cal-legend-item{align-items:center;gap:6px;display:inline-flex}.cal-legend-swatch{background:var(--cal-bg);border:1px solid var(--cal-rule);border-radius:3px;width:12px;height:12px}@media (max-width:620px){.cal{height:calc(100dvh - 240px);min-height:480px;padding:var(--s-2)}.cal .rbc-toolbar{flex-direction:column;align-items:stretch}.cal .rbc-toolbar .rbc-btn-group{display:flex}.cal .rbc-toolbar .rbc-btn-group button{flex:1}.cal .rbc-agenda-view table.rbc-agenda-table{table-layout:fixed;width:100%}.cal .rbc-agenda-view .rbc-agenda-date-cell,.cal .rbc-agenda-view .rbc-agenda-time-cell,.cal .rbc-agenda-view table.rbc-agenda-table thead th:nth-child(-n+2){white-space:normal;width:27%}.cal .rbc-agenda-view .rbc-agenda-event-cell{white-space:normal;overflow-wrap:anywhere}}.message-count{color:var(--ink-3);font-size:var(--fs-xs);vertical-align:middle;flex:none;align-items:center;gap:3px;font-weight:600;display:inline-flex}.message-count svg{width:12px;height:12px}.chat{background:var(--paper-sunk);flex-direction:column;height:100%;min-height:0;display:flex}.chat-list{min-height:0;padding:var(--s-4) var(--s-4) var(--s-2);flex-direction:column;flex:1;gap:2px;margin:0;list-style:none;display:flex;overflow-y:auto}.chat-empty{color:var(--ink-3);font-size:var(--fs-sm);text-align:center;margin:auto}.chat-day{margin:var(--s-3) 0 var(--s-2);justify-content:center;display:flex}.chat-day span{background:var(--paper-raised);border:1px solid var(--rule);color:var(--ink-2);font-size:var(--fs-xs);border-radius:999px;padding:2px 10px;font-weight:600}.chat-msg{border-radius:var(--radius);flex-direction:column;align-items:flex-start;max-width:85%;margin-top:6px;display:flex}.chat-msg.is-mine{align-self:flex-end;align-items:flex-end}.chat-author{font-size:var(--fs-xs);color:var(--pencil);margin:0 0 2px 10px;font-weight:650}.chat-bubble{background:var(--paper-raised);border:1px solid var(--rule);border-radius:3px 10px 10px;min-width:96px;padding:6px 10px 4px;position:relative;box-shadow:0 1px #0a16260a}.chat-msg.is-mine .chat-bubble{background:var(--action-wash);border-color:var(--rule-mid);border-top-left-radius:10px;border-top-right-radius:3px}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);color:var(--ink);margin:0;line-height:1.45}.chat-deleted{color:var(--ink-3);font-style:italic}.chat-meta{text-align:right;color:var(--ink-3);margin-top:2px;font-size:11px;display:block}.chat-quote,.chat-replying{border:0;border-left:3px solid var(--pencil);text-align:left;width:100%;font:inherit;cursor:pointer;background:#0a16260d;border-radius:4px;flex-direction:column;align-items:flex-start;gap:1px;margin:0 0 4px;padding:4px 8px;display:flex}.chat-quote:hover{background:#0a162617}.chat-quote:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}.chat-quote-name{font-size:var(--fs-xs);color:var(--pencil);font-weight:650}.chat-quote-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--fs-xs);color:var(--ink-2);overflow:hidden}.chat-actions{align-items:center;gap:var(--s-3);font-size:var(--fs-xs);margin:2px 6px 0;display:flex}.chat-actions .link-btn{font-size:var(--fs-xs);color:var(--ink-3);align-items:center;gap:3px;display:inline-flex}.chat-actions .link-btn:hover{color:var(--ink)}.chat-actions svg{width:13px;height:13px}.chat-actions .chat-danger:hover,.chat-confirm+.link-btn+.chat-danger{color:var(--red)}.chat-confirm{color:var(--ink-2);font-weight:600}.chat-like{border:1px solid var(--rule);background:var(--paper-raised);color:var(--ink-3);font:inherit;font-size:var(--fs-xs);cursor:pointer;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;display:inline-flex}.chat-like:hover:not(:disabled){color:var(--ink);border-color:var(--rule-mid)}.chat-like.is-on{color:var(--action);border-color:var(--action);background:var(--action-wash)}.chat-like:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}.chat-msg.is-flash .chat-bubble{animation:1.6s ease-out chat-flash}@keyframes chat-flash{0%,35%{box-shadow:0 0 0 3px var(--amber-rule)}}.chat-edit{gap:6px;min-width:min(360px,60vw);display:grid}.chat-edit textarea{resize:vertical}.chat-edit-actions{justify-content:flex-end;gap:var(--s-2);display:flex}.chat-compose{padding:var(--s-3) var(--s-4);border-top:1px solid var(--rule-strong);background:var(--paper-raised);gap:6px;display:grid}.chat-replying{cursor:default;margin:0;padding-right:32px;position:relative}.chat-replying .icon-btn{position:absolute;top:2px;right:2px}.chat-compose-row{align-items:flex-end;gap:var(--s-2);display:flex}.chat-compose-row textarea{resize:none;flex:1;max-height:9.5em}.chat-readonly{padding:var(--s-3) var(--s-4);border-top:1px solid var(--rule-strong);color:var(--ink-3);font-size:var(--fs-sm);margin:0}@media (prefers-reduced-motion:reduce){.chat-msg.is-flash .chat-bubble{box-shadow:0 0 0 3px var(--amber-rule);animation:none}}.toasts{right:var(--s-5);bottom:var(--s-5);z-index:70;gap:var(--s-2);width:min(360px, calc(100vw - 2 * var(--s-4)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{background:var(--paper-raised);border:1px solid var(--rule-strong);border-left:3px solid var(--action);border-radius:var(--radius);box-shadow:var(--shadow-lift);pointer-events:auto;animation:toast-in .22s var(--ease-out) both;align-items:flex-start;gap:2px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.toast-main{align-items:flex-start;gap:var(--s-3);min-width:0;padding:var(--s-3) 0 var(--s-3) var(--s-3);text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;display:flex}.toast-main:focus-visible{outline:2px solid var(--pencil);outline-offset:-2px}.toast-icon{width:16px;height:16px;color:var(--action);flex:none;margin-top:2px}.toast-text{gap:2px;min-width:0;display:grid}.toast-text strong{font-size:var(--fs-sm);overflow-wrap:anywhere;font-weight:650}.toast-text span{-webkit-line-clamp:2;font-size:var(--fs-xs);color:var(--ink-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.toast-close{flex:none;margin:4px 4px 0 0}@media (max-width:620px){.toasts{right:var(--s-4);left:var(--s-4);bottom:var(--s-4);width:auto}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.browser-settings{margin-bottom:var(--s-6)}.browser-permission{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.billing-period{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.field-inline{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2);font-weight:600;display:inline-flex}.field-inline .input{width:auto}.billing-period-label{font-size:var(--fs-sm)}.billing-unapproved{margin-bottom:var(--s-4)}.billing-unapproved summary{align-items:center;gap:var(--s-2);cursor:pointer;font-weight:600;display:flex}.billing-unapproved summary svg{width:16px;height:16px;color:var(--amber)}.billing-unapproved ul{margin:var(--s-2) 0 0;padding-left:var(--s-5);font-size:var(--fs-sm)}.billing-tools{gap:var(--s-3);margin:var(--s-4) 0 var(--s-3);flex-wrap:wrap;display:flex}.billing-tools .search{flex:1;min-width:220px;max-width:420px}.billing-tools .select{width:auto}.col-tick{text-align:center;width:40px}.billing-tick{justify-content:center}.check input:indeterminate+.check-box{background:var(--action);border-color:var(--action)}.check input:indeterminate+.check-box:after{content:"";border-top:2px solid #fff;width:9px}.billing-expand{align-items:center;gap:var(--s-2);font-weight:600;display:inline-flex}.billing-expand svg{width:16px;height:16px;color:var(--ink-3)}.billing-changed{margin-right:var(--s-2);background:var(--amber-wash);border:1px solid var(--amber-rule);color:var(--amber);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;padding:0 6px;font-weight:650;display:inline-block}.billing-group>td{vertical-align:middle}.billing-group .row-button{padding-top:0;padding-bottom:0}.billing-group.is-open>td{background:var(--paper-band)}.billing-detail>td{padding:0 0 var(--s-3) var(--s-6);background:var(--paper-sunk)}.billing-entries{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.billing-entries th{padding:var(--s-2);text-align:left;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);font-weight:650}.billing-entries td{padding:var(--s-2);border-bottom:1px solid var(--rule);vertical-align:top}.billing-entries .num{text-align:right}.billing-entries tr.is-changed>td{background:var(--amber-wash)}.billing-details{white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px;color:var(--ink-2)}.hours-tables{gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;display:grid}.hours-table-wrap{background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);min-width:0;overflow:hidden}.hours-table-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-2);display:flex}.hours-table-head h3{font-size:var(--fs-sm);margin:0;font-weight:700}.hours-table-head .link-btn{font-size:var(--fs-sm)}.hours-empty{padding:0 var(--s-3) var(--s-3);font-size:var(--fs-sm);margin:0}.hours-table th[scope=row]{font-weight:600}.hours-group.is-open>*{background:var(--paper-band)}.hours-expand{align-items:center;gap:var(--s-2);text-align:left;width:100%;padding-top:0;padding-bottom:0;font-weight:650;display:flex}.hours-expand svg{width:16px;height:16px;color:var(--ink-3);flex:none}.hours-task>td:first-child{padding-left:calc(var(--s-3) + 16px + var(--s-2));color:var(--ink-2)}.hours-table td.num{white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}.hours-table tfoot th,.hours-table tfoot td{border-bottom:0;border-top:1px solid var(--rule-strong);height:40px;font-weight:700}.hours-panel{margin-top:var(--s-5)}.hours-panel-toggle{align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);font-size:var(--fs-md);font-weight:700;display:inline-flex}.hours-panel-toggle svg{width:18px;height:18px;color:var(--ink-3)}.hours-toolbar{gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.hours-range{gap:var(--s-3);flex-wrap:wrap;display:flex}.hours-who .select{width:auto;max-width:260px}.hours-section .totals{margin-bottom:var(--s-5)}.hours-people{margin-top:var(--s-5)}.hours-subtitle{margin:0 0 var(--s-2);font-size:var(--fs-sm);font-weight:700}.hours-people .ledger td.num{white-space:nowrap;width:1%}.hours-charts{gap:var(--s-5);margin-bottom:var(--s-5);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}@media (max-width:1000px){.hours-charts{grid-template-columns:minmax(0,1fr)}}.hours-tops{gap:var(--s-4);align-content:start;display:grid}.chart{min-width:0;padding:var(--s-3);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);margin:0}.chart-title{align-items:baseline;gap:var(--s-1) var(--s-2);margin-bottom:var(--s-2);font-size:var(--fs-sm);flex-wrap:wrap;font-weight:700;display:flex}.chart-title .muted{font-weight:500}.chart-key{align-items:center;gap:var(--s-1);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500;display:inline-flex}.chart-key-line{border-top:2px dashed var(--ink-2);width:18px;display:inline-block}.chart-box{width:100%;min-height:200px}.chart-box svg{display:block}.chart-grid line{stroke:var(--rule);stroke-width:1px}.chart-grid text,.chart-axis{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.chart-bar{fill:var(--series-1)}.chart-bar:hover{fill:var(--ink-2)}.chart-average{stroke:var(--ink-2);stroke-width:1.5px;stroke-dasharray:5 4}.chart-numbers{margin-top:var(--s-2);font-size:var(--fs-sm)}.chart-numbers summary{cursor:pointer;color:var(--ink-2)}.chart-numbers .ledger{margin-top:var(--s-2)}.chart-empty{font-size:var(--fs-sm);margin:0}.top-list{font-size:var(--fs-sm);gap:6px;margin:0;padding:0;list-style:none;display:grid}.top-list li{align-items:center;gap:var(--s-2);grid-template-columns:minmax(0,11rem) minmax(40px,1fr) auto;display:grid}.top-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-track{height:10px}.top-bar{height:100%;width:calc(var(--share,0) * 100%);background:var(--series-1);border-radius:1px;min-width:2px;display:block}.top-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.2em}
