:root{--ground:#f4f6f1;--surface:#fff;--sunk:#ebefec;--paper:#f8faf7;--ink:#17201d;--muted:#626d69;--line:#dfe5df;--accent:#1f6d51;--accent-soft:#e1f1e8;--ok:#1f6d51;--ok-soft:#e1f1e8;--warn:#9c5a15;--warn-soft:#fff0d9;--bad:#a53a31;--bad-soft:#f8e3e0;--info:#2c5f6f;--info-soft:#e0edf0;--todo-soft:#ebefec;--mark:#ffe45c;--bar:#14241e;--bar-hover:#213a30;--bar-ink:#c8d4cf;--bar-ink-strong:#f4f7f4;--bar-muted:#8fa199;--brand:#f0b84a;--brand-glow:#f0b84a2e;--scrim:#14241e73;--shadow-pop:0 6px 18px #0000002e;--shadow-modal:0 10px 28px #0003;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif:Georgia, "Times New Roman", serif;--mono:"SFMono-Regular", Consolas, ui-monospace, monospace;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-lg:17px;--text-xl:21px;--text-num:26px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:var(--text-md);line-height:1.6}h1,h2,h3{margin:0;font-weight:700}h1{font-family:var(--serif);font-weight:400;font-size:var(--text-xl);line-height:1.3}h2{font-size:var(--text-lg);line-height:1.4}h3{font-size:var(--text-md);line-height:1.6}p{margin:0}a{color:var(--accent)}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono);white-space:nowrap;font-size:.93em}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.93em}.sub{color:var(--muted);font-size:var(--text-sm);line-height:1.5;display:block}.debug{color:var(--muted);font-family:var(--mono);font-size:var(--text-xs);word-break:break-all;line-height:1.4;display:block}.muted{color:var(--muted)}.spacer{flex:1}.btn,.app-bar-back,.tab,.filter,.select,.menu-option,.menu-search,.dropdown button,.field input,.modal textarea,table.table tbody tr.clickable td{transition:color .12s,background-color .12s,border-color .12s}@media (prefers-reduced-motion:reduce){.btn,.app-bar-back,.tab,.filter,.select,.menu-option,.menu-search,.dropdown button,.field input,.modal textarea,table.table tbody tr.clickable td{transition:none}}.app-bar{z-index:10;background:var(--bar);border-bottom:1px solid var(--bar);align-items:flex-end;gap:2px;padding:8px 12px 0;display:flex;position:sticky;top:0;overflow-x:auto}.app-bar-back{border:1px solid var(--bar-muted);min-height:26px;color:var(--bar-ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;background:0 0;border-radius:4px;align-self:center;margin:0 6px 6px 0;padding:4px 8px}.app-bar-back:hover:not(:disabled){border-color:var(--bar-ink-strong);color:var(--bar-ink-strong)}.app-bar-back:disabled{opacity:.5;cursor:not-allowed}.app-bar-brand{color:var(--bar-ink-strong);white-space:nowrap;align-items:center;gap:8px;padding:6px 12px 6px 2px;font-weight:700;display:flex}.tab{color:var(--bar-ink);white-space:nowrap;border-radius:4px 4px 0 0;padding:6px 12px;text-decoration:none}.tab:hover{background:var(--bar-hover);color:var(--bar-ink-strong)}.tab.on{background:var(--bar-hover);color:var(--bar-ink-strong);box-shadow:inset 0 -2px 0 var(--brand);font-weight:700}.tab b{font-family:var(--mono);color:var(--brand);font-weight:600}.app-bar-who{color:var(--bar-muted);font-size:var(--text-sm);white-space:nowrap;margin-left:auto;padding:6px 4px;line-height:1.5}.app-bar-who button{color:var(--bar-ink-strong);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.app-bar :focus-visible{outline-color:var(--brand)}.brand-mark{width:22px;height:22px;display:block}.brand-mark.large{width:32px;height:32px}.brand-mark-tile{fill:var(--brand)}.brand-mark-ink{fill:var(--bar)}.brand-mark-line{stroke:var(--brand)}.page{flex-direction:column;gap:16px;max-width:1280px;margin-inline:auto;padding:16px;display:flex}.card{border:1px solid var(--line);background:var(--surface);border-radius:8px}.card-body{flex-direction:column;gap:12px;padding:12px;display:flex}.state{color:var(--muted);padding:24px 12px}.error-box{border:1px solid var(--bad);background:var(--bad-soft);color:var(--bad);border-radius:8px;flex-direction:column;gap:4px;padding:8px 12px;display:flex}.error-box .debug{color:var(--bad);opacity:.8}.chip{font-size:var(--text-xs);white-space:nowrap;border-radius:4px;padding:4px 8px;font-weight:800;line-height:1;display:inline-block}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.plain{background:var(--todo-soft);color:var(--muted)}.chips{flex-wrap:wrap;gap:4px;display:flex}.job{font-family:var(--mono);font-size:var(--text-xs);border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:4px;padding:2px 6px;line-height:1.4;display:inline-block}.job.guess{border-style:dashed;border-color:var(--warn);color:var(--warn)}.job.none{color:var(--muted);border-style:dashed}.jobs{flex-wrap:wrap;gap:4px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter{border:1px solid var(--line);min-height:26px;font-size:var(--text-sm);background:var(--surface);cursor:pointer;border-radius:999px;padding:4px 12px}.filter:hover{border-color:var(--ink)}.filter.on{border-color:var(--ink);font-weight:700}.filter b{font-family:var(--mono);font-weight:600}.btn{min-height:34px;font-size:var(--text-md);border:1px solid var(--line);color:var(--ink);background:var(--surface);white-space:nowrap;cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:4px 12px;font-weight:800;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.btn.danger{background:var(--bad);border-color:var(--bad);color:var(--surface)}.btn.primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(.94)}.btn.danger:hover:not(:disabled){border-color:var(--bad);filter:brightness(.94)}.btn.ghost{color:var(--muted);font-weight:600}.btn.small{min-height:26px;font-size:var(--text-sm);padding:2px 8px;font-weight:600}.scroll{overflow-x:auto}table.table{border-collapse:collapse;width:100%}table.table th,table.table td{text-align:left;border-top:1px solid var(--line);vertical-align:top;padding:8px 12px}table.table th.num,table.table td.num{text-align:right}table.table th{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--paper);white-space:nowrap;border-top:0;font-weight:700;line-height:1.4}table.table tbody tr.clickable{cursor:pointer}table.table tbody tr.clickable:hover td{background:var(--sunk)}table.table tr.on td{background:var(--accent-soft)}.kv{flex-direction:column;min-width:0;display:flex}.kv-label{font-size:var(--text-xs);color:var(--muted);line-height:1.4}.kv-value{font-family:var(--mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kv-value.text{font-family:var(--sans);font-weight:600}.edited{background:var(--mark);border-radius:4px}.flags{flex-direction:column;gap:6px;display:flex}.flag{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.flag.bad{border-color:var(--bad)}.flag.warn{border-color:var(--warn)}.flag.ok{border-color:var(--ok)}.flag-title{font-weight:700}.flag-detail{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.select{border:1px solid var(--line);background:var(--surface);min-height:26px;font-family:var(--mono);font-size:var(--text-xs);white-space:nowrap;cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:2px 6px;display:inline-flex}.select:after{content:"▾";color:var(--muted);font-family:var(--sans);font-size:var(--text-xs)}.select:disabled{cursor:not-allowed;opacity:.5}.select.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.select.empty{color:var(--muted);border-style:dashed}.select.edited{background:var(--mark)}.menu{z-index:40;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-pop);border-radius:8px;flex-direction:column;gap:2px;width:340px;max-width:calc(100vw - 16px);max-height:360px;padding:6px;display:flex;position:fixed;overflow-y:auto}.menu-group{font-size:var(--text-xs);letter-spacing:.05em;color:var(--muted);padding:6px 6px 2px;line-height:1.4}.menu-option{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;width:100%;min-height:26px;padding:4px 6px;display:grid}.menu-option:hover,.menu-option.on{background:var(--accent-soft)}.menu-why{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}.menu-search{border:1px solid var(--line);min-height:34px;font-size:var(--text-md);background:var(--surface);border-radius:4px;width:100%;padding:6px 8px}.menu-hint{color:var(--muted);font-size:var(--text-sm);padding:6px;line-height:1.5}.dropdown{z-index:30;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-pop);border-radius:8px;flex-direction:column;min-width:260px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px)}.dropdown button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 12px}.dropdown button:hover{background:var(--accent-soft)}.overlay{z-index:50;background:var(--scrim);justify-content:center;align-items:flex-start;padding:8vh 12px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--line);width:min(600px,100%);box-shadow:var(--shadow-modal);border-radius:8px;flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--line);padding:12px;font-weight:700}.modal-body{flex-direction:column;gap:12px;padding:12px;display:flex}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px;display:flex}.modal textarea{border:1px solid var(--line);background:var(--surface);resize:vertical;border-radius:4px;width:100%;min-height:80px;padding:8px}.diff{font-size:var(--text-sm);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 16px minmax(0,1fr);align-items:baseline;gap:6px 8px;line-height:1.5;display:grid}.diff-field{color:var(--muted)}.diff-from{font-family:var(--mono);color:var(--muted);text-decoration:line-through}.diff-to{font-family:var(--mono);overflow-wrap:anywhere;font-weight:600}.toast{z-index:60;background:var(--ink);color:var(--ground);font-size:var(--text-sm);box-shadow:var(--shadow-pop);border-radius:8px;max-width:calc(100vw - 32px);padding:8px 12px;line-height:1.5;position:fixed;bottom:16px;left:16px}.field{flex-direction:column;gap:4px;display:flex}.field label{font-size:var(--text-xs);color:var(--muted);line-height:1.4}.field input{border:1px solid var(--line);background:var(--surface);border-radius:4px;min-height:34px;padding:8px 12px}.field input:focus,.modal textarea:focus,.menu-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.field input.bad{border-color:var(--bad)}.field-error{color:var(--bad);font-size:var(--text-sm);line-height:1.5}.stat{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:2px;padding:12px;display:flex}.stat-label{font-size:var(--text-xs);color:var(--muted);line-height:1.4}.stat-value{font-family:var(--mono);font-size:var(--text-num);font-variant-numeric:tabular-nums;line-height:1.2}@media (width<=520px){.page{padding:12px}.diff{font-size:var(--text-xs);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 16px minmax(0,1fr)}}.remarks{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.remarks-head{flex-direction:column;gap:2px;display:flex}.remarks-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.remark{background:var(--sunk);border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.remark.ai{background:var(--info-soft)}.remark-who{font-size:var(--text-xs);color:var(--muted);line-height:1.4}.remark-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.remark-working{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.remarks textarea{border:1px solid var(--line);background:var(--surface);resize:vertical;border-radius:4px;width:100%;min-height:72px;padding:8px}.remarks textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.remarks-actions{justify-content:flex-end;display:flex}.login-page{background:radial-gradient(circle at 15% 10%, var(--brand-glow), transparent 28%), var(--bar);min-height:100vh;padding:12vh 0 24px}.login{max-width:380px;margin:0 auto;padding:0 16px}.login .btn{justify-content:center}table.queue{min-width:860px}.queue-tabs{border-bottom:1px solid var(--line);padding-bottom:12px}table.queue-contract{min-width:900px}table.queue-stc{min-width:1120px}table.queue-recorded{min-width:900px}.row-link{color:var(--ink);font-weight:600;text-decoration:none}.row-link:hover{text-decoration:underline}.review{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow:hidden}.review-head{background:var(--sunk);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:8px 12px;display:flex}.review-head .mono{font-weight:600}.review-panes{grid-template-columns:minmax(0,5fr) minmax(0,8fr);display:grid}.review-pdf{background:var(--sunk);border-right:1px solid var(--line);flex-direction:column;gap:8px;min-height:520px;padding:12px;display:flex}.review-pdf-tools{font-size:var(--text-xs);color:var(--muted);align-items:center;gap:6px;line-height:1.4;display:flex}.review-pdf iframe{border:1px solid var(--line);background:var(--paper);border-radius:4px;flex:1;width:100%;min-height:70vh}.review-pdf-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:4px;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.review-detail{flex-direction:column;gap:12px;min-width:0;padding:12px;display:flex}.head-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;display:grid}.review-whole{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:8px;display:flex}table.lines{min-width:720px}.editable-cell{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%;display:inline-flex}.editable-row{align-items:center;gap:4px;min-width:0;display:inline-flex}.editable{border:0;border-bottom:1px dashed var(--muted);min-height:26px;color:inherit;font:inherit;text-align:inherit;cursor:text;background:0 0;border-radius:4px;padding:2px 4px}.editable:hover{border-bottom-color:var(--ink)}.editable.edited{background:var(--mark);border-bottom-color:#0000}.editable.bad{border-bottom-color:var(--bad);color:var(--bad)}.edit-input{border:1px solid var(--line);background:var(--surface);width:100%;max-width:160px;min-height:26px;font-family:var(--mono);border-radius:4px;padding:2px 6px}.edit-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.edit-input.bad{border-color:var(--bad)}.edit-error{color:var(--bad);font-size:var(--text-sm);white-space:normal;text-align:left;line-height:1.5}.kv .editable{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.93em}.num .editable-cell{align-items:flex-end}.split-panel{border:1px solid var(--line);background:var(--sunk);border-radius:8px;flex-direction:column;gap:8px;padding:8px 12px;display:flex}.split-title{font-weight:700}.split-part{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.split-part .edit-input{max-width:88px}.split-amount{flex-direction:column;min-width:120px;display:flex}.split-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.checks{flex-direction:column;gap:4px;display:flex}.check{font-size:var(--text-sm);font-variant-numeric:tabular-nums;line-height:1.5}.check.ok{color:var(--ok)}.check.bad{color:var(--bad)}.check .btn{margin-left:8px}pre.service-lines{background:var(--sunk);border:1px solid var(--line);font-family:var(--mono);font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:8px 12px;line-height:1.5}.zoho-note{font-size:var(--text-sm);color:var(--muted);line-height:1.5}.review-bar{border-top:1px solid var(--line);background:var(--sunk);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex;position:relative}.review-bar-menu{position:relative}.review-bar-note{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.review-bar-note.bad{color:var(--bad)}@media (width<=900px){.review-panes{grid-template-columns:1fr}.review-pdf{border-right:0;border-bottom:1px solid var(--line);min-height:0}.review-pdf iframe{min-height:60vh}.head-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.channel-block{flex-direction:column;gap:8px;min-width:0;display:flex}table.channel-fields{min-width:520px}table.channel-differs{min-width:620px}.channel-adopt{width:132px}.channel-adopt input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.channel-adopt input:disabled{cursor:not-allowed}.channel-pick{border:1px solid var(--line);background:var(--surface);max-width:200px;min-height:26px;font-family:var(--mono);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:.93em}.channel-pick:hover{border-color:var(--ink)}.channel-pick.edited{background:var(--mark)}.channel-bar-note{color:var(--muted);font-size:var(--text-sm);flex-basis:100%;line-height:1.5}@media (width<=900px){.channel-pick{max-width:100%}}table.queue-bank{min-width:1020px}table.entered-bank{min-width:1080px}table.bank-fields{min-width:420px}.chip.bank-in{background:var(--info-soft);color:var(--info)}.chip.bank-out{background:var(--todo-soft);color:var(--ink)}.review-shot-pane{background:var(--sunk);border-right:1px solid var(--line);flex-direction:column;gap:8px;min-height:520px;padding:12px;display:flex}.review-shot{object-fit:contain;object-position:top;border:1px solid var(--line);background:var(--paper);border-radius:4px;flex:1;width:100%;min-height:0;max-height:78vh}pre.bank-raw{background:var(--sunk);border:1px solid var(--line);font-family:var(--mono);font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:8px 12px;line-height:1.5}.bank-tags{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.bank-siblings{font-size:var(--text-sm);flex-direction:column;gap:4px;margin:0;padding-left:16px;line-height:1.5;display:flex}.bank-reasons{font-size:var(--text-sm);flex-direction:column;gap:2px;margin:0;padding-left:16px;line-height:1.5;display:flex}@media (width<=900px){.review-shot-pane{border-right:0;border-bottom:1px solid var(--line);min-height:0}.review-shot{max-height:60vh}}table.queue-extras{min-width:1100px}.extras-issue{min-width:280px;font-size:var(--text-sm);flex-direction:column;gap:2px;line-height:1.5;display:flex}table.extras-lines{min-width:640px}.extras-amount{max-width:240px}@media (width<=520px){.extras-amount{max-width:none}}.entered-head{flex-direction:column;gap:4px;display:flex}.entered-job{width:200px}table.entered-invoices{min-width:1180px}table.entered-contracts{min-width:1000px}table.entered-stc{min-width:1040px}th.entered-gst{white-space:normal;min-width:160px}th.entered-gst .sub{font-size:var(--text-xs);text-transform:none;letter-spacing:normal;font-weight:400;line-height:1.4}@media (width<=520px){.entered-job{width:100%}}table.overhead{min-width:1180px}.overhead-week td{background:var(--sunk)}.overhead-week .sub{margin-left:8px;display:inline}.overhead-summary{display:inline}.table.overhead .chips{margin-top:4px}.upload-drops{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.upload-drop-card{flex-direction:column;gap:8px;min-width:0;display:flex}.upload-drop-card .upload-drop{flex:1}.upload-drop{border:1px dashed var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:32px;display:flex}.upload-drop:hover{border-color:var(--ink)}.upload-drop.on{border-color:var(--accent);background:var(--accent-soft)}.upload-drop-title{font-weight:700}.upload-input{display:none}.upload-drop-job-input{font-family:var(--mono)}.upload-jobs{flex-direction:column;display:flex}.upload-job{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;padding:8px 12px;display:flex}.upload-job:first-child{border-top:0}.upload-job.on{background:var(--accent-soft)}.upload-job-name{overflow-wrap:anywhere;font-weight:600}.upload-job .sub{display:inline}.upload-job-why{color:var(--muted);font-size:var(--text-sm);flex-direction:column;gap:2px;line-height:1.5;display:flex}.upload-open{border-top:1px solid var(--line);background:var(--sunk);padding:12px}.upload-result{flex-direction:column;gap:16px;display:flex}.upload-block{flex-direction:column;gap:8px;display:flex}.upload-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.upload-bar-note{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.upload-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.upload-compare-col{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.upload-compare-row{font-size:var(--text-sm);flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}table.upload-lines{min-width:380px}table.upload-plan{min-width:420px}.upload-choices{flex-direction:column;gap:4px;display:flex}.upload-choice{border:1px solid var(--line);cursor:pointer;border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:8px 12px;display:grid}.upload-choice:hover{background:var(--sunk)}.upload-choice.off{opacity:.5;cursor:not-allowed}.upload-choice input{width:16px;height:16px;accent-color:var(--accent);cursor:inherit;margin:2px 0 0}.upload-choice-body{flex-direction:column;gap:2px;min-width:0;display:flex}.upload-choice-title{font-weight:600}@media (width<=900px){.upload-drops,.upload-compare{grid-template-columns:1fr}}.status-tabs{border-bottom:1px solid var(--line);padding-bottom:12px}.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.lines-list{flex-direction:column;gap:6px;display:flex}.lines-list-row{grid-template-columns:148px minmax(0,1fr);align-items:baseline;gap:2px 12px;display:grid}.lines-list-value{overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;display:flex}.lines-list-row .mono{font-weight:600}@media (width<=520px){.lines-list-row{grid-template-columns:minmax(0,1fr)}}.intake-warn{color:var(--warn);font-weight:600}table.status-needs{min-width:840px}.status-needs-doc{flex-direction:column;gap:2px;display:flex}.status-needs-title{overflow-wrap:anywhere;font-weight:600}.calendar-group-title{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.calendar-group-count{color:var(--muted);font-size:var(--text-sm);font-weight:400}.health-check-title{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.health-check-count{color:var(--muted);font-size:var(--text-sm);font-weight:400}table.calendar-channels{min-width:480px}table.calendar-issues{min-width:560px}table.calendar-unmatched,table.calendar-conflicts{min-width:720px}table.status-activity{min-width:760px}table.health-summary{min-width:720px}table.health-examples{min-width:560px}.agent-head{flex-direction:column;gap:4px;display:flex}.agent-today-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.routine-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.routine-head{justify-content:space-between;align-items:flex-start;gap:8px 12px;display:flex}.routine-title{flex-direction:column;gap:2px;min-width:0;display:flex}.routine-details summary,.log-tech summary{cursor:pointer;color:var(--accent);font-size:var(--text-sm);line-height:1.5}.details-body{flex-direction:column;gap:8px;padding-top:8px;display:flex}.hour-strip{grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;display:grid}.hour{background:var(--line);border:1px solid #0000;border-radius:4px;height:16px;display:block}.hour.none{background:var(--surface);border-color:var(--line)}.hour.quiet{background:var(--line)}.hour.work{background:var(--ok)}.hour.attention{background:var(--warn)}.hour.failed{background:var(--bad)}.hour.future{border:1px dashed var(--line);background:0 0}.hour-strip-wrap{flex-direction:column;gap:2px;display:flex}.hour-axis{color:var(--muted);font-family:var(--mono);font-size:var(--text-xs);justify-content:space-between;line-height:1.4;display:flex}.hour-legend{color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;gap:4px 16px;line-height:1.5;display:flex}.hour-key{align-items:center;gap:6px;display:inline-flex}.hour-key .hour{width:12px;height:12px}.log-day{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.log-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.log-entry{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px;display:grid}.log-entry.attention{border-color:var(--warn)}.log-entry.failed{border-color:var(--bad)}.log-entry.live{border-color:var(--info)}.log-time{color:var(--muted)}.log-main{flex-direction:column;gap:6px;min-width:0;display:flex}.log-head{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.log-routine{font-weight:700}.log-summary{overflow-wrap:anywhere;font-weight:600}.log-error{color:var(--bad);font-size:var(--text-sm);flex-direction:column;line-height:1.5;display:flex}.log-quiet{color:var(--muted);font-size:var(--text-sm);grid-template-columns:88px minmax(0,1fr);gap:12px;padding:4px 12px;line-height:1.5;display:grid}.log-quiet-text{overflow-wrap:anywhere}.log-items{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.log-item{border-top:1px solid var(--line);grid-template-columns:132px minmax(0,1fr) 104px 112px 136px;align-items:baseline;gap:4px 12px;padding:8px 0;display:grid}.log-item .chip{justify-self:start}.log-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.log-item-title{overflow-wrap:anywhere}.log-changes{font-size:var(--text-sm);flex-direction:column;gap:2px;line-height:1.5;display:flex}.log-change{overflow-wrap:anywhere}.log-links{font-size:var(--text-sm);text-align:right;line-height:1.5}.log-show-all{align-self:flex-start}table.log-steps{min-width:640px}.guide{flex-direction:column;gap:16px;display:flex}.guide-lang{justify-content:flex-end}.guide:lang(zh) .guide-lead,.guide:lang(zh) .guide-step-text,.guide:lang(zh) .guide-definition,.guide:lang(zh) .guide-list{line-height:1.75}.guide-lead{max-width:76ch}.guide-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.guide-step{grid-template-columns:26px minmax(0,1fr);align-items:start;gap:8px;display:grid}.guide-step-number{background:var(--bar);width:26px;height:26px;color:var(--brand);font-family:var(--mono);font-size:var(--text-sm);border-radius:999px;justify-content:center;align-items:center;font-weight:600;display:flex}.guide-step-text{color:var(--muted);font-size:var(--text-sm);flex-direction:column;gap:2px;line-height:1.5;display:flex}.guide-step-title{color:var(--ink);font-size:var(--text-md);font-weight:700}.guide-routines{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.guide-facts,.guide-glossary{grid-template-columns:168px minmax(0,1fr);gap:6px 12px;margin:0;display:grid}.guide-term{color:var(--muted);font-size:var(--text-sm);font-weight:700;line-height:1.5}.guide-definition{margin:0}.guide-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.guide-list{flex-direction:column;gap:6px;margin:0;padding-left:16px;display:flex}.flow{flex-direction:column;margin:0;display:flex}.flow-grid,.flow-labels{grid-template-columns:minmax(0,1fr) 96px 232px 96px minmax(0,1fr);display:grid}.flow-labels{color:var(--muted);font-size:var(--text-sm);margin-bottom:8px;font-weight:700;line-height:1.5}.flow-label-in{grid-column:1}.flow-label-out{grid-column:5}.flow-grid{grid-template-rows:repeat(5,72px);row-gap:12px}.flow-pair{display:contents}.flow-lane-1{grid-row:1}.flow-lane-2{grid-row:2}.flow-lane-3{grid-row:3}.flow-lane-4{grid-row:4}.flow-lane-5{grid-row:5}.flow-source{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;grid-column:1;justify-content:center;min-width:0;padding:6px 12px;display:flex}.flow-name{font-weight:700;line-height:1.4}.flow-where{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;line-height:1.4;overflow:hidden}.flow-caption{color:var(--muted);font-family:var(--mono);font-size:var(--text-xs);line-height:1.4}.flow-source.running{border-color:var(--info)}.flow-source.running .flow-caption{color:var(--info)}.flow-dest{border:1px solid var(--line);background:var(--paper);min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere;border-radius:8px;grid-column:5;align-items:center;padding:6px 12px;line-height:1.5;display:flex}.flow-wires{grid-row:1/-1;display:block;overflow:visible}.flow-wires.in{grid-column:2}.flow-wires.out{grid-column:4}.flow-wire{fill:none;stroke:var(--line);stroke-width:2px}.flow-wire.running{stroke:var(--info)}.flow-dot.in{fill:var(--info)}.flow-dot.out{fill:var(--accent)}.flow-core{grid-area:1/3/-1;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);justify-items:center;display:grid}.flow-agent{border:1px solid var(--brand);background:linear-gradient(var(--brand-glow), var(--surface) 60%);text-align:center;border-radius:8px;flex-direction:column;grid-row:2;align-items:center;gap:4px;width:100%;padding:16px 12px 12px;display:flex}.flow-agent-mark{margin-bottom:4px;padding:4px;display:flex;position:relative}.flow-agent-mark .brand-mark{width:40px;height:40px}.flow-agent-mark:before,.flow-agent-mark:after{content:"";border:2px solid var(--brand);opacity:0;border-radius:12px;animation:3s ease-out infinite flow-pulse;position:absolute;inset:4px}.flow-agent-mark:after{animation-delay:1.5s}.flow-agent-name{font-family:var(--serif);font-size:var(--text-lg);line-height:1.3}.flow-agent-role{color:var(--muted);font-size:var(--text-sm);line-height:1.4}.flow-stages{align-items:center;gap:12px;margin:8px 0 4px;padding:0;list-style:none;display:flex}.flow-stage{background:var(--sunk);color:var(--muted);font-size:var(--text-xs);border-radius:999px;padding:2px 8px;font-weight:700;line-height:1.5;animation:6s linear infinite flow-stage;position:relative}.flow-stage:nth-child(2){animation-delay:2s}.flow-stage:nth-child(3){animation-delay:4s}.flow-stage+.flow-stage:before{content:"";background:var(--muted);width:8px;height:1px;position:absolute;top:50%;left:-10px}.flow-agent-status{color:var(--muted);font-size:var(--text-xs);align-items:center;gap:6px;line-height:1.5;display:inline-flex}.flow-status-dot{background:var(--ok);border-radius:999px;flex:none;width:8px;height:8px;animation:3s ease-in-out infinite flow-breathe}.flow-agent.busy .flow-agent-status{color:var(--info);font-weight:700}.flow-agent.busy .flow-status-dot{background:var(--info);animation-duration:1s}.flow-drop{background:var(--line);grid-row:3;width:2px;height:100%;position:relative}.flow-drop-dot{background:var(--warn);opacity:0;border-radius:999px;width:8px;height:8px;animation:9s linear 2s infinite flow-down;position:absolute;top:0;left:-3px}.flow-review{justify-content:center;display:flex}.flow-review-box{border:1px solid var(--warn);background:var(--warn-soft);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;display:flex}@keyframes flow-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@keyframes flow-stage{0%{background:var(--sunk);color:var(--muted)}4%,30%{background:var(--accent-soft);color:var(--accent)}34%,to{background:var(--sunk);color:var(--muted)}}@keyframes flow-breathe{0%,to{opacity:1}50%{opacity:.35}}@keyframes flow-down{0%,70%{opacity:0;top:0}74%{opacity:1}92%{opacity:1;top:calc(100% - 8px)}96%,to{opacity:0;top:calc(100% - 8px)}}@media (prefers-reduced-motion:reduce){.flow-dot,.flow-drop-dot,.flow-agent-mark:before,.flow-agent-mark:after{display:none}.flow-stage,.flow-status-dot{animation:none}}@media (width<=900px){.routine-grid,.guide-routines,.guide-pair{grid-template-columns:minmax(0,1fr)}.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.log-item{flex-wrap:wrap;gap:4px 12px;display:flex}.log-item-main{flex:100%}.flow-labels,.flow-wires,.flow-drop{display:none}.flow-grid{grid-template-rows:none;grid-template-columns:minmax(0,1fr);row-gap:8px}.flow-core{grid-area:auto;margin-bottom:8px;display:block}.flow-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.flow-source,.flow-dest{grid-area:auto}.flow-review{margin-top:8px}}@media (width<=520px){.log-entry,.log-quiet{grid-template-columns:minmax(0,1fr);gap:4px}.guide-steps,.guide-facts,.guide-glossary{grid-template-columns:minmax(0,1fr)}.flow-pair{grid-template-columns:minmax(0,1fr);gap:4px}.flow-dest:before{content:"→ "}}.overview-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.overview-filter{flex-direction:column;gap:8px;display:flex}.overview-custom{flex-direction:column;gap:4px;display:flex}.overview-custom-row{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.overview-stats{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.overview-kinds{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.overview-kind{flex-direction:column;gap:8px;min-width:0;display:flex}.overview-notes{flex-direction:column;gap:4px;display:flex}.overview-jobs-note{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}tr.overview-total td{border-top-color:var(--ink);font-weight:700}tr.overview-total td.num,td.overview-sum{font-weight:600}table.overview-kind-table{min-width:440px}table.overview-volume,table.overview-buckets{min-width:760px}table.overview-age{min-width:440px}table.overview-owed-jobs{min-width:760px}.prices-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.chart-stack{flex-direction:column;gap:20px;transition:opacity .15s;display:flex}.chart-stack.is-loading{opacity:.5}.chart{flex-direction:column;gap:8px;min-width:0;display:flex}.chart-box{position:relative}.chart-box svg{touch-action:pan-y;display:block}.chart-label{fill:var(--muted);font-family:var(--sans);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.chart-value{fill:var(--ink);font-family:var(--sans);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.chart-grid{stroke:var(--line);stroke-width:1px;shape-rendering:crispedges}.chart-dot{stroke:var(--surface);stroke-width:2px}.chart-arc{stroke:var(--surface);stroke-width:2px;cursor:default}.chart-arc:hover{opacity:.85}.chart-hit{fill:#0000}.chart-bar.on path{opacity:.8}.chart-tip{z-index:2;pointer-events:none;border:1px solid var(--line);background:var(--surface);min-width:140px;max-width:260px;box-shadow:var(--shadow-pop);font-size:var(--text-sm);border-radius:6px;padding:8px 10px;line-height:1.4;position:absolute}.chart-tip-row{white-space:nowrap;align-items:center;gap:6px;display:flex}.chart-tip-row b{font-variant-numeric:tabular-nums}.chart-tip-row span{color:var(--muted)}.chart-tip-key{border-radius:1px;flex:none;width:12px;height:2px;display:inline-block}.chart-tip-sub{color:var(--muted);font-size:var(--text-xs)}.chart-legend{font-size:var(--text-sm);flex-wrap:wrap;gap:4px 16px;display:flex}.chart-legend>span{align-items:center;gap:6px;display:inline-flex}.chart-swatch{vertical-align:-1px;border-radius:2px;flex:none;width:10px;height:10px;margin-right:6px;display:inline-block}.chart-legend .chart-swatch{margin-right:0}.chart-multiples{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.chart-multiple-title{font-size:var(--text-sm);align-items:center;display:flex}.chart-donut{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.chart-legend-list{font-size:var(--text-sm);flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chart-legend-list li{grid-template-columns:auto auto 1fr;align-items:center;gap:0 8px;display:grid}.chart-legend-list li .sub{grid-column:2/-1}.chart-legend-list b{font-variant-numeric:tabular-nums}table.chart-spread{min-width:640px}@media (width<=900px){.overview-kinds{grid-template-columns:1fr}}.warranty-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;display:flex}.warranty-title{flex-direction:column;gap:4px;min-width:0;display:flex}.warranty-bar{flex-wrap:wrap;align-items:flex-end;gap:8px 16px;display:flex}.warranty-counts{color:var(--muted);font-size:var(--text-sm);padding-bottom:6px;line-height:1.5}.warranty-select{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:4px;min-height:34px;padding:6px 8px}.warranty-select:hover{border-color:var(--ink)}.warranty-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}table.warranty-table{min-width:1180px}.warranty-ids{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.warranty-model{font-weight:600}.warranty-tracking{flex-direction:column;gap:2px;display:flex}.warranty-actions{flex-wrap:wrap;gap:4px;display:flex}.warranty-progress{flex-direction:column;gap:4px;display:flex}.warranty-dots{gap:2px;display:flex}.warranty-dot{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:8px;height:8px}.warranty-dot.done{background:var(--muted);border-color:var(--muted)}.warranty-dot.on{background:var(--accent);border-color:var(--accent)}.warranty-dot.stalled{background:var(--warn);border-color:var(--warn)}.warranty-dwell{color:var(--muted);font-size:var(--text-sm);line-height:1.5}.warranty-dwell.stalled{color:var(--warn);font-weight:600}td.warranty-flow-cell{background:var(--sunk)}.warranty-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.warranty-flow-part{flex-direction:column;gap:8px;min-width:0;display:flex}.warranty-timeline{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.warranty-node{grid-template-columns:26px minmax(0,1fr);align-items:start;gap:8px;display:grid}.warranty-mark{border:1px dashed var(--line);background:var(--surface);width:26px;height:26px;color:var(--muted);font-family:var(--mono);font-size:var(--text-xs);border-radius:999px;justify-content:center;align-items:center;display:flex}.warranty-node.done .warranty-mark{border-style:solid;border-color:var(--muted);background:var(--todo-soft);color:var(--ink)}.warranty-node.on .warranty-mark{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.warranty-node.stalled .warranty-mark{border-style:solid;border-color:var(--warn);background:var(--warn-soft);color:var(--warn)}.warranty-step{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.warranty-step-head{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.warranty-step-name{font-weight:700}.warranty-history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.warranty-history-line{border-top:1px solid var(--line);overflow-wrap:anywhere;flex-direction:column;gap:2px;padding:8px 0;display:flex}.warranty-history-line:first-child{border-top:0;padding-top:0}.warranty-history-head{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.warranty-raw{font-family:var(--mono);font-size:var(--text-sm);line-height:1.5}.warranty-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.warranty-wide{grid-column:1/-1}.warranty-code{font-family:var(--mono)}@media (width<=520px){.warranty-form{grid-template-columns:1fr}}.people-head{flex-direction:column;gap:4px;display:flex}.people-new{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.people-new-name{width:240px}.people-role{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:4px;min-height:34px;padding:6px 8px}.people-role:hover{border-color:var(--ink)}.people-role:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}table.people{min-width:1080px}.people-name{font-weight:600}.people-keys{flex-direction:column;gap:4px;display:flex}.people-key{color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:4px 8px;line-height:1.5;display:flex}.people-actions{flex-wrap:wrap;gap:4px;display:flex}.people-link{background:var(--sunk);border:1px solid var(--line);font-family:var(--mono);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:4px;padding:8px 12px;font-size:.93em}@media (width<=520px){.people-new-name{width:100%}}
