:root{--plaster: #F2F2EF;--card: #FFFFFF;--mortar: #DDDCD6;--ink: #1C2B39;--ink-soft: #5C6873;--blueprint: #17456E;--data-blue: #2F6FBA;--tape: #E8590C;--ok: #2F7D4F;--danger: #B3261E;--font-display: "Big Shoulders Display", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--plaster);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0}.display{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.25}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--blueprint)}.page{max-width:1080px;margin:0 auto;padding:20px 16px 64px}.section-title{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:20px;line-height:1.3;margin:28px 0 10px}.section-title:first-child{margin-top:0}.card{background:var(--card);border:1px solid var(--mortar);border-radius:6px;padding:14px 16px}.grid{display:grid;gap:12px}@media(min-width:720px){.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:1fr 1fr 1fr}.grid.cols-4{grid-template-columns:repeat(4,1fr)}}.muted{color:var(--ink-soft)}.small{font-size:13px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--card);border:1px solid var(--mortar);border-radius:5px;padding:8px 10px;width:100%}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--tape);outline-offset:1px}label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:3px}.form-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.form-row>div{flex:1 1 140px}.form-row>.wide{flex:2 1 220px}button{cursor:pointer;border:none;border-radius:5px;padding:9px 16px;font-weight:600}button.primary{background:var(--blueprint);color:#fff}button.primary:hover{background:#1b5385}button.ghost{background:transparent;border:1px solid var(--mortar);color:var(--ink-soft);padding:8px 12px}button.ghost:hover{border-color:var(--ink-soft);color:var(--ink)}button.danger-ghost{background:transparent;border:1px solid var(--mortar);color:var(--danger);padding:8px 12px}button.danger-ghost:hover{border-color:var(--danger)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:600;padding:8px 10px;border-bottom:2px solid var(--mortar)}td{padding:8px 10px;border-bottom:1px solid var(--mortar);vertical-align:top}td.num,th.num{text-align:right}tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}.bar-track{position:relative;height:14px;background:var(--plaster);border:1px solid var(--mortar);border-radius:4px;overflow:hidden}.bar-fill{position:absolute;inset:0 auto 0 0;background:var(--data-blue);border-radius:3px}.bar-fill.over{background:var(--danger)}.chip{display:inline-block;font-size:12px;font-weight:600;border-radius:4px;padding:1px 7px;border:1px solid var(--mortar);color:var(--ink-soft);background:var(--plaster)}.chip.active{color:var(--tape);border-color:color-mix(in srgb,var(--tape) 45%,white);background:color-mix(in srgb,var(--tape) 8%,white)}.chip.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,white);background:color-mix(in srgb,var(--ok) 8%,white)}.empty{color:var(--ink-soft);padding:18px;text-align:center;border:1px dashed var(--mortar);border-radius:6px}tr.cdk-drag-preview{display:table;table-layout:fixed;background:var(--card);border:1px solid var(--tape);border-radius:5px;box-shadow:0 6px 18px #1c2b392e}tr.cdk-drag-preview td{padding:8px 10px;border:none}.cdk-drop-list-dragging tr.cdk-drag:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
