:root{--bg: #eaf0f4;--panel: #ffffff;--ink: #0e2233;--text: #1c3144;--muted: #5a6d7e;--line: #d5dfe7;--teal: #12a594;--gold: #f2b134;--accent: #0e2233;--accent-ink: #ffffff;--focus: #1a73e8;--c-government: #1f4e79;--c-family: #12a594;--c-neighbour: #f2b134;--c-community: #7b5cc4;--c-private: #e0752f;--c-gap: #c2255c;--gap-bg: #fdecf2;--good: #14805f;--good-bg: #e6f6f0;--pend-bg: #fff6dd;--pend-ink: #7a5a00;--on-gap: #ffffff;--radius: 14px;color-scheme:light}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--on-gap: #2a0716;--bg: #09131c;--panel: #11202d;--ink: #f1f6fa;--text: #d3e0ea;--muted: #93a8b9;--line: #223646;--accent: #f1f6fa;--accent-ink: #0e2233;--focus: #7fb4ff;--c-government: #5b95cf;--c-gap: #ff6b9a;--gap-bg: #3a1526;--good: #52d1a3;--good-bg: #0f2e25;--pend-bg: #342b0c;--pend-ink: #f0cf73}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.55 Figtree,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Bricolage Grotesque,Figtree,system-ui,sans-serif;color:var(--ink);line-height:1.15}h2{font-size:1.45rem;margin:0 0 14px;font-weight:700;letter-spacing:-.01em}h3{font-size:1.1rem;margin:28px 0 10px;font-weight:700}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button{font:inherit}.shell{max-width:1120px;margin:0 auto;padding:20px 16px 32px}.masthead{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:28px 30px;margin-bottom:18px;border-radius:20px;color:#e9f1f7;background:radial-gradient(900px 260px at 100% 0%,rgba(18,165,148,.45),transparent 60%),radial-gradient(600px 240px at 0% 100%,rgba(242,177,52,.22),transparent 60%),linear-gradient(135deg,#0e2233,#12364a);box-shadow:0 12px 34px #0e223340}.brand{display:flex;gap:18px;align-items:center}.logo{width:64px;height:64px;flex:none;box-shadow:0 0 0 2px #ffffff2e;border-radius:16px}.brand h1{margin:0 0 6px;font-size:2.5rem;font-weight:800;letter-spacing:-.03em;color:#fff}.tagline{margin:0;color:#b6cddd;font-size:1.05rem}.tagline.strong{color:#fff;font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap}.masthead .ghost{background:#ffffff1a;color:#fff;border-color:#ffffff47}.masthead .ghost:hover{background:#fff3;border-color:#fff}.stepper{display:flex;gap:8px;margin:0 0 20px;overflow-x:auto;padding-bottom:2px}.stepper button{flex:1 1 0;min-width:max-content;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-weight:600;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.stepper .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--bg);color:var(--muted);font-size:.85rem;font-weight:700;flex:none}.stepper button.on{color:var(--ink);border-color:var(--ink)}.stepper button.on .dot{background:var(--ink);color:var(--panel)}.stepper button.done .dot{background:var(--teal);color:#fff}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.side{position:sticky;top:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:0 1px 2px #0e22330d}.muted{color:var(--muted);margin:-6px 0 16px}.empty{color:var(--muted);padding:14px;border:1px dashed var(--line);border-radius:10px}.meter{background:var(--ink);color:#e9f1f7;border-radius:var(--radius);padding:22px;box-shadow:0 10px 30px #0e223338}@media (prefers-color-scheme: dark){.meter{background:#16293a;border:1px solid var(--line)}}.meter h2{color:#fff;margin:0;font-size:1.3rem}.meter-sub{margin:2px 0 14px;color:#a9bfd0;font-size:.95rem}.meter-nums{display:grid;gap:12px;margin:16px 0 6px}.big strong{display:block;font-family:Bricolage Grotesque,sans-serif;font-size:2.2rem;line-height:1;font-weight:800}.big span{color:#a9bfd0;font-size:.9rem}.gapnum strong{color:#ff8db4}.note{background:#ffffff14;border-radius:10px;padding:10px 12px;font-size:.9rem;margin:14px 0 4px;color:#dbe7f0}.note strong{color:#fff}.meter .legend{color:#c7d7e3}.cbar{display:flex;height:16px;border-radius:999px;overflow:hidden;background:#7f96aa38;gap:2px;margin:8px 0 10px}.cbar.tall{height:26px}.seg{display:block;height:100%;transition:width .35s ease;min-width:0}@media (prefers-reduced-motion: reduce){.seg{transition:none}}.s-government{background:var(--c-government)}.s-family{background:var(--c-family)}.s-neighbour{background:var(--c-neighbour)}.s-community{background:var(--c-community)}.s-private{background:var(--c-private)}.s-gap{background:repeating-linear-gradient(135deg,var(--c-gap) 0 5px,rgba(255,255,255,.55) 5px 9px)}.s-government.pend{background:repeating-linear-gradient(135deg,var(--c-government) 0 5px,rgba(255,255,255,.5) 5px 9px)}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;padding:0;margin:14px 0 0;font-size:.85rem}.legend li{display:flex;align-items:center;gap:6px}.sw{display:inline-block;width:12px;height:12px;border-radius:4px;flex:none;margin-right:2px}.field{display:block;margin:0 0 22px}.field>span{display:block;margin-bottom:6px;font-weight:600;color:var(--ink)}.field.narrow{max-width:340px}input[type=text],input:not([type]),input[type=number]{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}input[type=range]{width:100%;accent-color:var(--teal)}input.wait{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:12px;border-radius:999px;padding:0;background:linear-gradient(90deg,var(--gold),var(--c-private) var(--p),var(--line) var(--p))}input.wait::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--panel);border:5px solid var(--c-private);box-shadow:0 2px 6px #0e22334d;cursor:grab}input.wait::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--panel);border:5px solid var(--c-private);cursor:grab}input:disabled{opacity:.45}.choices{display:grid;gap:8px;margin-bottom:22px}.choice{display:grid;grid-template-columns:auto 1fr;column-gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--panel)}.choice span{grid-column:2;color:var(--muted);font-size:.92rem}.choice.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.choice input{grid-row:1 / span 2;align-self:center;accent-color:var(--teal);width:18px;height:18px}.timeline{margin-top:12px}.track{position:relative;height:10px;border-radius:999px;background:var(--line)}.progress{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--c-private));transition:width .3s}.knob{position:absolute;top:50%;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);background:var(--panel);border:4px solid var(--c-private)}.ticks{display:flex;justify-content:space-between;font-size:.88rem;color:var(--muted);margin-top:10px;gap:8px}.list{display:grid;gap:12px;margin-bottom:22px}.row{border:1px solid var(--line);border-radius:12px;padding:14px 16px;border-left:5px solid var(--line)}.row.st-now{border-left-color:var(--c-gap)}.row.st-soon{border-left-color:var(--gold)}.row.st-fine{border-left-color:var(--teal)}.rowhead{font-weight:700;color:var(--ink);margin-bottom:8px}.rowhead em{font-weight:500;color:var(--muted);margin-left:6px;font-style:normal;font-size:.92rem}.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pill{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:.92rem;cursor:pointer;transition:background .15s}.pill.now.on{background:var(--c-gap);color:var(--on-gap);border-color:var(--c-gap)}.pill.soon.on{background:var(--gold);color:#3a2a00;border-color:var(--gold)}.pill.fine.on{background:var(--teal);color:#04221e;border-color:var(--teal)}.badge{background:var(--pend-bg);color:var(--pend-ink);border-radius:10px;padding:8px 12px;margin:0 0 16px;font-size:.9rem;font-weight:600}.hint{display:block;color:var(--muted);margin-top:8px;font-size:.85rem}.inline{display:block}.inline>span{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);margin-bottom:4px}.hours{max-width:180px}.grid5{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.gaptag{margin-top:10px;font-size:.92rem;color:var(--good);font-weight:700}.gaptag.open{color:var(--c-gap)}button.primary{padding:13px 22px;border:0;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-weight:700;cursor:pointer;transition:transform .1s}button.primary:active{transform:translateY(1px)}button.ghost{padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:.92rem;font-weight:600;cursor:pointer}button.ghost:hover{border-color:var(--ink)}.summaryhead{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:18px 0 4px}.kpis.two{grid-template-columns:repeat(6,1fr)}.kpis.two .kpi{grid-column:span 2}.kpis.two .kpi.gap,.kpis.two .kpi.good{grid-column:span 3}.kpis.two .kpi.gap strong,.kpis.two .kpi.good strong{font-size:2rem}.kpi{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--bg)}.kpi span{display:block;font-size:.88rem;color:var(--muted)}.kpi strong{display:block;font-family:Bricolage Grotesque,sans-serif;font-size:1.55rem;color:var(--ink);line-height:1.2}.kpi small{color:var(--muted)}.kpi.gap{background:var(--gap-bg);border-color:var(--c-gap)}.kpi.gap strong{color:var(--c-gap)}.kpi.good{background:var(--good-bg);border-color:var(--good)}.kpi.good strong{color:var(--good)}.glance{display:grid;gap:4px}.glance-row{display:grid;grid-template-columns:210px 1fr 76px;gap:12px;align-items:center}.glance-row .cbar{margin:4px 0}.gl-name{font-weight:600;color:var(--ink);font-size:.95rem}.gl-gap{font-size:.88rem;color:var(--good);font-weight:700;text-align:right}.gl-gap.open{color:var(--c-gap)}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:640px}th,td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:center}th:first-child,td:first-child{text-align:left}th{font-size:.82rem;color:var(--muted);font-weight:600}td.pending{background:var(--pend-bg);color:var(--pend-ink)}td.gapcell{background:var(--gap-bg);color:var(--c-gap);font-weight:700}td.okcell{color:var(--good);font-weight:600}.next{padding-left:20px}.next li{margin-bottom:6px;max-width:70ch}footer{color:var(--muted);font-size:.82rem;margin:22px 2px 0}@media (max-width: 880px){.layout{grid-template-columns:minmax(0,1fr)}.side{position:static;order:-1}.panel{padding:18px}.glance-row{grid-template-columns:1fr 64px}.glance-row .gl-name{grid-column:1 / -1}.stepper .lbl{font-size:.9rem}}@media (max-width: 640px){.masthead{padding:20px}.brand h1{font-size:1.9rem}.logo{width:48px;height:48px}.grid5{grid-template-columns:repeat(2,1fr)}.kpis.two{grid-template-columns:1fr 1fr}.kpis.two .kpi,.kpis.two .kpi.gap,.kpis.two .kpi.good{grid-column:span 1}}@media (max-width: 480px){.stepper{flex-wrap:wrap;overflow:visible}.stepper button{flex:1 1 45%}.pill{padding:10px 14px}}@media print{:root{--bg: #fff;--panel: #fff;--ink: #0e2233;--text: #1c3144;--muted: #5a6d7e;--line: #d5dfe7;--c-government: #1f4e79;--c-gap: #c2255c;--gap-bg: #fdecf2;--good: #14805f;--good-bg: #e6f6f0;--pend-bg: #fff6dd;--pend-ink: #7a5a00}body{background:#fff}.stepper,.actions,.noprint,button.primary,.side,.badge{display:none!important}.kpi,.panel,td,th{print-color-adjust:exact;-webkit-print-color-adjust:exact}.layout{display:block}.panel{border:0;box-shadow:none;padding:0}.seg,.s-gap,.pend{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:grid;gap:14px;box-shadow:0 10px 30px #0e22331f}.gate-card h1{margin:0;font-size:1.6rem}.gate-card p{margin:0;color:var(--muted)}.gate-card label span{display:block;font-weight:600;color:var(--ink);margin-bottom:6px}.gate-error{color:var(--c-gap)!important;font-weight:600}
