:root{--bg: #f5f7fb;--surface: #ffffff;--text: #16202f;--muted: #5d6878;--line: #dfe4ec;--brand: #1f3864;--brand-ink: #ffffff;--accent: #185fa5;--ok-bg: #e6f4ea;--ok-fg: #1e6b34;--watch-bg: #fdf3dc;--watch-fg: #7a5306;--risk-bg: #fde8e1;--risk-fg: #993c1d;--over-bg: #fbe2e2;--over-fg: #8f1d1d;--filed-bg: #e3edf9;--filed-fg: #18487e;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;color:var(--text);background:var(--bg);font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;margin:0 0 4px}h2{font-size:17px;margin:0 0 8px}p{margin:0 0 12px}.shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}.topbar-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--brand);font-size:18px}.brand:hover{text-decoration:none}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--brand);color:var(--brand-ink);font-size:15px}.page{max-width:1120px;margin:0 auto;padding:24px 16px 64px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card.narrow{max-width:460px;margin:32px auto}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.table-card{padding:0;overflow-x:auto}.empty{text-align:center;padding:40px 20px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}input,select{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--text);background:#fff}input:focus,select:focus{outline:2px solid #b5d4f4;border-color:var(--accent)}input[hidden]{display:none}.table-scroll{overflow-x:auto;margin:0 -20px;padding:0 20px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 16px}.grid-2.top{gap:16px;align-items:start}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap}.btn:hover{background:#f0f3f8;text-decoration:none}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn-primary:hover{background:#2a4a80}.btn-ghost{border-color:transparent;background:transparent;color:var(--accent)}.btn.small,.small.btn{padding:4px 8px;font-size:13px}.muted{color:var(--muted)}.small{font-size:13px}.strong{font-weight:600}.error{color:var(--over-fg);background:var(--over-bg);padding:8px 10px;border-radius:8px;font-size:14px}.success{color:var(--ok-fg);background:var(--ok-bg);padding:8px 10px;border-radius:8px;font-size:14px}.text-danger{color:var(--over-fg)}.center{text-align:center;padding:48px 16px}.right{text-align:right}.nowrap{white-space:nowrap}.row-wrap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-end{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.row-wrap select{width:auto;margin-top:0}.page-head select{width:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfd}.table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table .center-col{text-align:center}.checklist select.status{width:auto;margin:0;padding:4px 8px;font-size:13px}tr.busy{opacity:.5}.cell-done{text-align:center;color:var(--ok-fg);font-weight:700}.cell-pending{text-align:center;color:#c48a16;font-size:20px;line-height:1}.cell-na{text-align:center;color:var(--line)}.status-received,.status-approved{background:var(--ok-bg);color:var(--ok-fg)}.status-pending{background:var(--watch-bg);color:var(--watch-fg)}.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.chip-ok{background:var(--ok-bg);color:var(--ok-fg)}.chip-watch{background:var(--watch-bg);color:var(--watch-fg)}.chip-at_risk{background:var(--risk-bg);color:var(--risk-fg)}.chip-overdue{background:var(--over-bg);color:var(--over-fg)}.chip-filed{background:var(--filed-bg);color:var(--filed-fg)}.chip-neutral{background:#eef1f6;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}.stat{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font:inherit}.stat.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.stat-num{font-size:24px;font-weight:700}.progress{width:90px;height:6px;background:#eef1f6;border-radius:4px;overflow:hidden;margin-bottom:2px}.progress span{display:block;height:100%;background:var(--ok-fg)}.pros{display:grid;gap:8px;margin-bottom:8px}.pro-row{display:grid;grid-template-columns:120px 1fr 1fr 150px;gap:8px;align-items:center}.pro-row input{margin-top:0}.pro-role{font-size:14px;font-weight:600}.plain{list-style:none;margin:0;padding:0}.pro-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.pro-add{display:grid;grid-template-columns:120px 1fr 1fr 120px auto;gap:8px;margin-top:12px}.pro-add input,.pro-add select{margin-top:0}.steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 16px;flex-wrap:wrap;counter-reset:step}.steps li{counter-increment:step;font-size:13px;color:var(--muted);padding:4px 12px 4px 4px;border-radius:999px;background:#eef1f6}.steps li:before{content:counter(step);display:inline-grid;place-items:center;width:20px;height:20px;margin-right:6px;border-radius:50%;background:#fff;font-weight:600}.steps li.active{background:var(--brand);color:var(--brand-ink)}.steps li.active:before{color:var(--brand)}.steps li.done{color:var(--ok-fg);background:var(--ok-bg)}.big-drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:32px 16px;text-align:center;cursor:pointer;color:var(--text);margin:12px 0}.big-drop:hover{border-color:var(--accent)}.linklike{background:none;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer}.linklike:hover{text-decoration:underline}.table .sample{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table select{margin-top:0;min-width:220px}select.invalid{border-color:var(--over-fg)}tr.top-align td{vertical-align:top}.warn-text{color:var(--watch-fg)}.chip-btn{border:none;cursor:pointer;font:inherit;font-size:12px;font-weight:600}.chip-btn.active{box-shadow:inset 0 0 0 2px currentColor}.fixer{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:8px}.fixer label{margin:0}.center-row{justify-content:center}.ai-box{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px solid #c9c2f0;background:#f6f4fe;border-radius:var(--radius)}.ai-box>div{flex:1 1 320px}.ai-box p{margin:2px 0 0}.ai-note{margin-top:4px;color:#5b47c7;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0}.figures div{padding:10px 12px;background:#fafbfd;border:1px solid var(--line);border-radius:8px}.figures dt{font-size:12px;color:var(--muted)}.figures dd{margin:2px 0 0;font-weight:600}.nav-link{font-weight:600;font-size:14px;color:var(--text)}.type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.type-card{display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;font:inherit;color:var(--text)}.type-card:hover{border-color:var(--accent)}.progress.wide{width:100%;height:8px;margin:8px 0}.checks{margin:12px 0}.checks>*{margin-bottom:8px}.checks ul{margin:4px 0 0;padding-left:18px}.table.compact td,.table.compact th{padding:6px 10px;font-size:13px}tr.flagged td{background:var(--over-bg)}.ack{display:flex;gap:8px;align-items:flex-start;color:var(--text);font-size:14px;margin:12px 0}.ack input{width:auto;margin-top:3px}.last-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.last-import{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fafbfd;display:flex;flex-direction:column;gap:2px}.filters{margin-bottom:12px}.filters .search{width:220px;margin-top:0}.table td select{min-width:190px}tr.ai-row td{background:#f6f4fe}tr.dirty-row td{background:var(--watch-bg)}.ai-text{color:#5b47c7}.reminders-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 20px}.reminders-card>div{flex:1 1 320px}.reminders-card p{margin:2px 0 0}.reminder-note{display:block;margin-top:2px}.panel{border:1px solid #b5d4f4;background:#f4f8fd;border-radius:var(--radius);padding:14px;margin-bottom:14px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.panel input{margin-bottom:10px}.file-link{display:block;background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;font-size:13px;text-align:left;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link:hover{text-decoration:underline}.auth-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;align-items:center;padding-top:24px}.auth-pitch h1{font-size:30px;line-height:1.2;color:var(--brand)}.auth-pitch p{font-size:16px;color:var(--muted)}.auth-card{min-height:420px}.login-box{min-height:340px}.login-box iframe{width:100%;min-height:340px;border:none}.upload-page{max-width:520px;margin:0 auto;padding:24px 16px}.upload-brand{margin:8px 0 0 4px}.file-drop{border:1px dashed var(--line);border-radius:var(--radius);padding:14px;background:#fafbfd}.uploaded{margin-top:18px}.uploaded ul{margin:4px 0 12px;padding-left:18px}textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--text);background:#fff;resize:vertical;box-sizing:border-box}textarea:focus{outline:2px solid #b5d4f4;border-color:var(--accent)}.review-item{display:flex;gap:16px;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.review-item:first-of-type{border-top:none}.review-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.review-side{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.review-title{overflow-wrap:anywhere}.review-cleared .review-title{color:var(--muted);text-decoration:line-through}.review-note{margin-top:4px;padding:8px 10px;background:var(--ok-bg);border-radius:8px}.review-list{margin:4px 0 0;padding-left:18px}.review-ai{margin-top:6px}.review-form{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fafbfd;max-width:560px}.qpr-table td{vertical-align:top}.qpr-table input.num{width:150px;margin:0 0 2px auto;text-align:right}.qpr-table input.adjust{width:220px;margin:6px 0 0 auto;font-size:13px}.qpr-table tr.total-row td{background:#fafbfd}.static-value{margin-top:4px;font-size:16px;color:var(--text)}.check-list{margin:0;padding-left:18px}.check-list li{margin-bottom:4px}div.check-list{padding-left:0}.actions{margin-top:12px}.history{margin:0;padding-left:18px}.history li{margin-bottom:6px}.doc-row{padding:12px 0;border-top:1px solid var(--line)}.doc-row:first-of-type{border-top:none}.doc-file{margin:6px 0 0 12px}.doc-check{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.doc-check .table{margin-top:8px}.sheet-table tr.group-row th{background:#fafbfd;text-transform:none;font-size:13px;color:var(--text)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.copy-btn{min-width:64px}.pack h3{font-size:14px;margin:16px 0 6px}.filing-steps{margin:8px 0 0;padding-left:20px}.filing-steps li{margin-bottom:14px;font-size:14px}.code-row{margin-top:8px}.code-row input[type=file]{width:auto;margin-top:0}.connection-code{padding:4px 8px;background:#eef1f6;border-radius:6px;font-size:13px}.ack-box{max-width:none;margin-top:4px}.ack-box .check-list li{list-style:none;margin-left:-18px}@media print{body,.page{background:#fff}.no-print,.topbar{display:none!important}.page{padding:0;max-width:none}.card{border:none;padding:0 0 12px;break-inside:avoid}.table-card,.table-scroll{overflow:visible}a{color:inherit}}@media (max-width: 720px){.review-item{flex-direction:column}.review-side{align-items:flex-start;flex-direction:row;text-align:left}.pro-row,.pro-add{grid-template-columns:1fr}.pro-item{grid-template-columns:auto 1fr}.topbar-right .muted{display:none}}
