:root{--ink:#1c2430;--muted:#6b7688;--bg:#f4f6fa;--card-bg:#fff;--border:#e1e6ee;--grid:#eef1f6;--good:#2f9e5c;--bad:#d1495b;--neutral:#8892a0;--track:#e7ebf2;--target-line:#d1495b;--goal-mark:#3d4653;--stale-fill:#fbe9d0;--stale-ink:#a5661a;--board-zone-bg:#eef3ff;--dept-zone-bg:#fff;--accent:#2f6fed}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.loading-screen,.loading-banner{text-align:center;color:var(--muted);padding:40px}.error-banner{color:var(--bad);background:#fdeceb;border-radius:8px;margin:16px;padding:16px}.auth-screen{background:linear-gradient(160deg,#eef3ff,#f4f6fa);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--card-bg);border-radius:12px;flex-direction:column;gap:12px;width:340px;padding:32px;display:flex;box-shadow:0 10px 30px #141e3c14}.auth-card h1{margin:0;font-size:20px}.auth-card label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.auth-card input{border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:14px}.auth-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:8px;padding:10px;font-size:14px}.muted{color:var(--muted)}.muted.small{font-size:12px}.form-error{color:var(--bad);font-size:13px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:20;background:var(--card-bg);border-bottom:1px solid var(--border);padding:10px 20px;position:sticky;top:0}.app-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.app-title h1{margin:0 0 2px;font-size:18px}.legend{color:var(--muted);gap:12px;font-size:11px;display:flex}.legend-dash{border-top:2px dashed var(--target-line);vertical-align:middle;width:14px;margin-right:4px;display:inline-block}.app-header-right{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.user-chip{background:var(--track);border-radius:12px;padding:4px 8px}.logout-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:5px 10px;font-size:12px}.auto-refresh-pending:before{content:"● ";color:var(--neutral)}.auto-refresh-note:before{content:"● ";color:var(--good,#16a34a)}.board-ribbon{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.board-tile{background:var(--bg);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:8px;flex:none;min-width:118px;padding:8px 10px;font-family:inherit}.board-tile.ribbon-stale{border-color:var(--stale-ink)}.board-tile-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.board-tile-value{align-items:center;gap:4px;font-size:15px;font-weight:600;display:flex}.board-tile-target{color:var(--muted);font-size:10px}main{flex:1;overflow:auto}.dept-wall{align-items:flex-start;gap:0;min-height:calc(100vh - 110px);display:flex;overflow-x:auto}.dept-block{border-right:1px solid var(--border);flex:0 0 620px;min-height:100%}.dept-block-stub{flex:0 0 220px}.dept-header{z-index:10;background:var(--ink);color:#fff;padding:10px 16px;font-size:14px;font-weight:600;position:sticky;top:0}.dept-stub-body{color:var(--muted);padding:24px 16px;font-size:13px}.dept-columns{flex-direction:column;display:flex}.board-zone{background:var(--board-zone-bg);padding:12px}.dept-zone{background:var(--dept-zone-bg);padding:12px}.zone-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.zone-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.card-clickable{cursor:pointer}.card-clickable:hover{box-shadow:0 4px 16px #141e3c14}.card-header{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.card-title{color:var(--ink);font-size:12px;font-weight:600}.card-note{color:var(--muted);background:var(--bg);border-radius:6px;padding:4px 6px;font-size:11px}.card-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:6px;font-size:10px;display:flex}.through-date{margin-left:auto}.metric-card-row{align-items:center;gap:6px;display:flex}.metric-card-value{font-size:22px;font-weight:700}.metric-card-target,.metric-card-subtitle{color:var(--muted);font-size:11px}.thin-n{color:var(--muted);font-size:12px;font-weight:400}.chip{white-space:nowrap;border-radius:10px;padding:2px 6px;font-size:10px}.chip-fresh{color:var(--good);background:#e6f6ec}.chip-aging{color:#b26a00;background:#fff3e0}.chip-stale{color:var(--neutral);background:#f1f1f4}.chip-stale-badge{background:var(--stale-fill);color:var(--stale-ink);font-weight:600}.chip-provisional{color:var(--muted);background:#eef1f6}.chip-complete{color:var(--good);background:#e6f6ec}.chip-awaiting{color:var(--neutral);background:#f1f1f4}.chip-neutral{color:var(--muted);background:#eef1f6}.value-provisional{color:var(--muted)!important}.value-provisional-dashed{text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.value-provisional-asterisk-only{color:inherit}.provisional-footnote{font-style:italic}.footnote-provisional{color:var(--muted);font-size:11px;font-style:italic}.badge-manual{color:var(--accent);font-size:11px}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-good{background:var(--good)}.dot-bad{background:var(--bad)}.dot-neutral{background:var(--neutral)}.gauge-wrap{margin:0 auto;position:relative}.gauge-center{text-align:center;margin-top:-8px}.gauge-value{font-size:18px;font-weight:700}.gauge-goal{color:var(--muted);font-size:11px}.gauge-pace{color:var(--muted);text-align:center;margin-top:4px;font-size:10px;line-height:1.3}.snapshot-grid{flex-wrap:wrap;gap:16px;display:flex}.snapshot-value{font-size:20px;font-weight:700}.snapshot-label{color:var(--muted);font-size:11px}.modal-overlay{z-index:100;background:#141a2880;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--card-bg);border-radius:12px;grid-template-columns:2fr 1fr;gap:16px;width:min(1000px,100%);max-height:90vh;padding:24px;display:grid;position:relative;overflow:auto}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:22px;position:absolute;top:12px;right:12px}.modal-chart .card{height:100%}.modal-side h3{margin:12px 0 6px;font-size:13px}.modal-side h3:first-child{margin-top:0}.target-list{margin:0;padding:0;font-size:12px;list-style:none}.target-list li{border-bottom:1px solid var(--border);justify-content:space-between;padding:3px 0;display:flex}.annotation-form{flex-direction:column;gap:6px;display:flex}.annotation-form textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;padding:8px;font-family:inherit;font-size:13px}.annotation-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:6px 12px;font-size:12px}.annotation-form button:disabled{opacity:.6;cursor:default}.annotation-list{flex-direction:column;gap:8px;max-height:260px;margin:10px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.annotation-list li{border:1px solid var(--border);border-radius:8px;padding:8px;font-size:12px}.annotation-meta{color:var(--muted);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}@media (width<=800px){.modal-panel{grid-template-columns:1fr}}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--review-fill:#ece8fb;--review-ink:#5b3fb8}.chip-review{background:var(--review-fill);color:var(--review-ink);letter-spacing:.02em;text-transform:uppercase;font-weight:700}.under-review{flex-direction:column;gap:8px;padding:4px 0;display:flex}.under-review-big{justify-content:center;max-width:560px;min-height:200px}.under-review-note{color:var(--ink);margin:0;font-size:12px;line-height:1.45}.under-review-big .under-review-note{font-size:14px}.under-review-meta{color:var(--muted);font-size:11px}.board-tile.ribbon-review{border-color:var(--review-ink);background:var(--review-fill)}.board-tile.ribbon-review .board-tile-value{color:var(--review-ink);text-transform:uppercase;letter-spacing:.02em;font-size:12px}
