:root{color-scheme:dark;--ink:#edf2f7;--muted:#aebaca;--paper:#0f1115;--surface:#191e27;--line:#3d4756;--green:#7de0b9;--red:#ff9da8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);font-weight:650;text-underline-offset:3px;overflow-wrap:anywhere}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.13;letter-spacing:-.045em;margin-bottom:14px}h2{font-size:1.2rem;line-height:1.4;margin:0}h3{font-size:1rem;margin-bottom:8px}small{font-weight:400;color:var(--muted)}h2 small{display:inline-block;margin-left:8px;font-size:.8rem}.dashboard{max-width:1200px;margin:auto;padding:36px 24px}.eyebrow{font-size:.7rem;letter-spacing:.16em;font-weight:750;color:var(--green);margin-bottom:14px}header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:12px 0 28px}header p{margin-bottom:0}.muted,.empty{color:var(--muted)}section{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:18px;min-width:0}.section-title{display:flex;gap:12px;align-items:center;margin-bottom:22px}.number{font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:50%;width:27px;height:27px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.wins{border-top:4px solid var(--green)}.freshness{padding:2px 4px 20px;font-size:.85rem;overflow-wrap:anywhere}.danger{color:var(--red);font-weight:700}.badge{font-size:.69rem;line-height:1.5;display:inline-block;padding:4px 9px;background:#303947;border-radius:5px;font-weight:750;letter-spacing:.02em}.danger .badge{background:#49232e;color:var(--red)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px}.win-card,.attention-card{padding:18px;border:1px solid var(--line);border-radius:9px;overflow-wrap:anywhere}.win-card h3,.attention-card h3{margin-top:14px}.win-card p,.attention-card p{margin-bottom:8px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpis article{background:var(--paper);padding:16px;border-radius:9px}.kpis p{font-size:.8rem;margin-bottom:8px}.kpis strong{font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}.kpis small{display:block;font-size:.7rem;margin-top:8px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;min-width:850px;width:100%;font-size:.82rem}th{text-align:left;font-size:.72rem;color:var(--muted);background:var(--paper)}th,td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}td{max-width:240px;overflow-wrap:anywhere}.chart{height:165px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid var(--line)}.chart-column{height:100%;flex:1;display:flex;align-items:flex-end;min-width:0}.chart-bar{width:100%;background:var(--green);border-radius:3px 3px 0 0}.chart-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:8px}.breakdown{list-style:none;padding:0;margin:0}.breakdown li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.breakdown li:last-child{border:0}.value-section{background:#172c27}.big-value{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:750;letter-spacing:-.03em;margin-bottom:6px}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.log-list,.upkeep{padding-left:20px;font-size:.85rem;overflow-wrap:anywhere}.log-list li,.upkeep li{margin-bottom:9px}details{padding-top:14px;border-top:1px solid var(--line)}summary{cursor:pointer;font-weight:650;font-size:.85rem}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem;background:var(--paper);padding:15px;border-radius:8px}.notes{white-space:pre-wrap}footer{text-align:center;font-size:.75rem;color:var(--muted);padding:20px 0}.empty{margin-bottom:0;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button{border:0;border-radius:7px;background:var(--green);color:#10251d;padding:12px 18px;font:inherit;font-size:.85rem;font-weight:650;cursor:pointer;white-space:nowrap}.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #c58a24;outline-offset:3px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{max-width:440px;width:100%;background:var(--surface);padding:32px;border:1px solid var(--line);border-radius:14px}.login-card label{display:block;margin-top:28px;font-size:.85rem;font-weight:650}.login-card input{width:100%;padding:12px;margin:8px 0 18px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:7px;font:inherit}.login-card button{width:100%}@media(max-width:600px){.dashboard{padding:24px 14px}header{display:block}header form{margin-top:18px}section{padding:19px 16px}.kpis{grid-template-columns:repeat(2,1fr);gap:8px}.kpis article{padding:13px}.health-grid{grid-template-columns:1fr;gap:22px}.chart{gap:3px}.section-title{gap:9px}h2 small{display:block;margin:3px 0 0}.login-card{padding:26px 22px}}

/* Status colours retain contrast against dark surfaces without scripting. */
.badge{overflow-wrap:anywhere;white-space:normal}
.status-green{background:#173f32;color:#a2f0cb}
.status-amber{background:#44351b;color:#ffe2a0}
.status-grey{background:#303947;color:#e0e5ee}
.status-red{background:#49232e;color:#ffb2bb}
.status-purple{background:#38294e;color:#e2c1ff}
.status-gold{background:#453c19;color:#ffe484}
.reason-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline;overflow-wrap:anywhere}
.reason-heading strong{font-variant-numeric:tabular-nums;flex-shrink:0}
.skip-group{padding:14px 0}
.reason-track{display:block;height:9px;background:var(--paper);border-radius:5px;margin:10px 0 0}
.reason-track>span{display:block;height:100%;background:var(--green);border-radius:5px}
.skip-group .upkeep{margin-top:18px}.skip-group li p{margin-top:6px}
.daily-scroll{overflow-x:auto;padding-bottom:8px}
.daily-chart{display:flex;gap:8px;min-width:620px}
.daily-column{flex:1;min-width:0;text-align:center}
.daily-track{height:120px;display:flex;align-items:flex-end}
.daily-count,.daily-label{display:block;font-size:.7rem;white-space:nowrap;color:var(--muted)}
.daily-count{margin-bottom:6px}.daily-label{margin-top:7px}
.cards+.muted{margin-top:12px;font-size:.85rem}
.priority-high{background:#173f32;color:#a2f0cb}
.priority-normal{background:#243a54;color:#c8e1ff}
.priority-low{background:#30343d;color:#bec7d3}
.attention-card>.badge:first-child{margin-bottom:10px}
.priority-reason{margin-top:12px;color:var(--muted);font-size:.85rem}
