:root{--navy:#152e44;--teal:#007c78;--teal-light:#e7f4f1;--orange:#b34d12;--ink:#203344;--muted:#596b7a;--line:#dce4e9;--canvas:#f3f6f8;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.5 'Segoe UI',Arial,sans-serif}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button,a{cursor:pointer}button{min-height:44px}button:disabled{cursor:wait;opacity:.65}a{color:var(--teal)}:focus-visible{outline:3px solid #e6a239;outline-offset:3px}.skip{position:fixed;top:-100px;left:16px;padding:14px;background:white;z-index:10}.skip:focus{top:10px}.sidebar{width:252px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:#d9e6ee;display:flex;flex-direction:column;padding:34px 22px;z-index:2}.brand{display:flex;gap:13px;align-items:center;color:white;text-decoration:none;font-weight:700;font-size:32px;letter-spacing:-1px}.brand-mark{background:#0c8e87;border-radius:11px;width:46px;height:46px;text-align:center;line-height:41px;color:white}.brand-small{display:block;font-size:8px;letter-spacing:1.6px;font-weight:600;color:#b5cbd5;margin-top:-4px}.nav-label{margin:58px 13px 14px;font-size:10px;letter-spacing:1.8px;color:#91adbc}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{min-height:50px;display:flex;gap:13px;align-items:center;padding:12px;border-radius:7px;color:#b8cbd7;text-decoration:none;font-size:13px;font-weight:600}.sidebar nav a span{font-size:10px;letter-spacing:1px;color:#91adbc}.sidebar nav a:hover{background:#213f54;color:white}.sidebar nav a[aria-current=page]{background:#0a706f;color:white;box-shadow:inset 3px 0 #5fd8bd}.sidebar nav a[aria-current=page] span{color:#b9f2e4}.sidebar-bottom{margin-top:auto;font-size:10px;letter-spacing:1px;padding:18px 10px 0;border-top:1px solid #365064}.source-dot{display:inline-block;background:#6ddbb4;width:6px;height:6px;border-radius:50%;margin-right:5px}.sidebar-bottom p{font-size:12px;letter-spacing:0;line-height:1.7;color:#b4c7d3}.sidebar-button{background:none;border:0;padding:0;color:#d7ebe9;font-size:12px;text-align:left}.workspace{margin-left:252px}.topbar{height:68px;padding:0 38px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.topbar strong{font-weight:600;color:var(--ink)}.local-badge{font-size:9px;letter-spacing:1.4px;border:1px solid var(--line);padding:6px 10px;border-radius:4px}main{max-width:1700px;margin:auto;padding:30px 38px 14px}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:var(--teal);margin:0 0 8px}h1{font-size:30px;line-height:1.2;letter-spacing:-.7px;margin:0 0 8px;font-weight:650}.subtitle{margin:0;color:var(--muted);font-size:13px}.button{border-radius:6px;padding:9px 15px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap}.primary{background:var(--teal);color:white}.primary:hover{background:#005f5d}.secondary{background:white;border-color:var(--line);color:var(--ink)}.secondary:hover{border-color:var(--teal);background:#f2faf8}.text{background:transparent;color:var(--muted)}.text:hover{background:var(--teal-light)}.filterbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:white;border:1px solid var(--line);border-radius:8px;padding:17px 18px 12px;margin-bottom:12px}.filterbar label{font-size:10px;font-weight:600;color:var(--muted);display:flex;flex-direction:column;gap:6px;flex:1;min-width:125px}.filterbar input,.filterbar select{width:100%;min-height:42px;max-width:100%;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:9px;font-size:12px}#category-wrap{flex:1.5;min-width:165px}.presets{border-top:1px solid #edf1f4;margin-top:4px;padding-top:10px;display:flex;gap:12px;align-items:center;width:100%;flex-wrap:wrap}.presets span:first-child{font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:600}.presets button{border:0;background:#edf3f5;color:#3b5565;font-size:10px;padding:5px 10px;min-height:28px;border-radius:4px}.presets button:hover{background:#dcece8}#filter-state{margin-left:auto;font-size:11px;color:var(--muted)}.message{font-size:12px;color:var(--muted);margin:12px 0 18px;min-height:18px}.message.error{background:#fff0e6;border:1px solid #ebc5ad;color:#84360c;padding:12px;border-radius:6px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.kpi{background:white;border:1px solid var(--line);border-radius:8px;padding:20px;position:relative;overflow:hidden}.kpi:before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--teal)}.kpi.amber:before{background:var(--orange)}.kpi-label{font-size:11px;color:var(--muted);font-weight:600;margin:0 0 10px}.kpi-value{font-size:28px;line-height:1.2;font-weight:650;letter-spacing:-.7px;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-unit{font-size:11px;letter-spacing:0;color:var(--muted);margin-top:9px}.grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;margin-bottom:20px}.grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{background:white;border:1px solid var(--line);border-radius:8px;padding:22px;min-width:0}.panel h2{font-size:15px;letter-spacing:-.15px;margin:0;font-weight:650}.panel-sub{font-size:11px;margin:4px 0 18px;color:var(--muted)}.panel-header{display:flex;justify-content:space-between;gap:12px;align-items:start}.tag{font-size:9px;background:#eef5f5;color:#406464;border-radius:4px;padding:5px 8px;white-space:nowrap}.chart{width:100%;height:auto;display:block;max-height:290px}.chart text{fill:#60717d;font-family:'Segoe UI',Arial,sans-serif;font-size:10px}.chart .gridline{stroke:#e8eef2;stroke-width:1}.chart .line{fill:none;stroke:var(--teal);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.chart .area{fill:#eaf6f3}.chart .point{fill:var(--teal)}.chart .orange{stroke:var(--orange)}.bars{display:flex;flex-direction:column;gap:14px}.bar-row{width:100%;display:grid;grid-template-columns:128px minmax(30px,1fr) 83px;gap:10px;align-items:center;border:0;padding:0;background:transparent;text-align:left;min-height:28px}.bar-row.clickable:hover .bar-fill{background:#004f4d}.bar-label{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{background:#eef3f5;height:13px;border-radius:2px;overflow:hidden}.bar-fill{height:100%;background:var(--teal);min-width:1px;border-radius:2px}.bar-number{font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.small-note{font-size:11px;color:var(--muted);margin:16px 0 0}.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.strip>div{padding:18px 22px;border-right:1px solid var(--line)}.strip>div:last-child{border:0}.strip strong{display:block;font-size:20px;font-weight:650;margin-bottom:4px;font-variant-numeric:tabular-nums}.strip span{font-size:11px;color:var(--muted)}.table-wrap{overflow-x:auto;margin-top:12px;max-height:430px}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:#f4f7f9;padding:12px 10px;position:sticky;top:0}td{padding:11px 10px;border-bottom:1px solid #edf1f4;font-variant-numeric:tabular-nums}tr:hover td{background:#f6fbfa}td.number,th.number{text-align:right}td.long{max-width:210px;overflow:hidden;text-overflow:ellipsis}.table-action{border:0;background:none;color:var(--teal);padding:0;font-size:11px;text-decoration:underline;min-height:30px}.insight{background:#e9f3f1;border-left:3px solid var(--teal);border-radius:4px;padding:15px 18px;margin:0 0 20px;font-size:12px;line-height:1.7}.insight strong{color:#005f5d}.empty{padding:36px 10px;text-align:center;color:var(--muted);font-size:13px}.score-row{display:grid;grid-template-columns:70px 1fr 90px;align-items:center;gap:10px;margin:15px 0;font-size:12px}.score-track{height:24px;background:#eef3f5;border-radius:3px;overflow:hidden}.score-fill{height:100%;background:var(--teal)}.score-fill.late{background:var(--orange)}.score-row strong{text-align:right;font-size:17px}.legend{display:flex;gap:18px;margin-top:15px;font-size:11px;color:var(--muted)}.legend i{display:inline-block;width:8px;height:8px;background:var(--teal);margin-right:6px;border-radius:2px}.legend i.orange{background:var(--orange)}.page-note{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:20px}footer{display:flex;justify-content:space-between;gap:20px;margin-top:25px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding:18px 0}dialog{border:1px solid var(--line);border-radius:12px;max-width:720px;width:calc(100% - 40px);padding:28px;color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#142e4470}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-header h2{font-size:20px}dt{font-weight:650;margin-top:18px;font-size:14px}dd{margin:5px 0 0;font-size:13px;color:var(--muted)}[hidden]{display:none!important}#dashboard[aria-busy=true]{opacity:.55;pointer-events:none}@media(min-width:1550px){.kpi-value{font-size:34px}}@media(max-width:1180px){.sidebar{width:214px;padding:28px 15px}.workspace{margin-left:214px}main{padding:26px 24px}.topbar{padding:0 24px}.heading-row{align-items:start}.kpis{gap:10px}.kpi{padding:16px}.kpi-value{font-size:23px}.grid,.grid.equal{grid-template-columns:1fr}.bar-row{grid-template-columns:180px 1fr 100px}}@media(max-width:760px){.sidebar{position:static;width:100%;padding:16px 18px}.brand{font-size:25px}.brand-mark{width:36px;height:36px;line-height:32px}.brand-small{font-size:7px}.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:15px}.sidebar nav a{font-size:11px;min-height:44px;padding:8px}.workspace{margin:0}.topbar{height:50px;padding:0 18px;font-size:10px}.local-badge{font-size:8px}main{padding:22px 16px}h1{font-size:26px}.heading-row{display:block}.heading-row>.button{margin-top:15px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:25px}.kpi-label{font-size:10px}.kpi-unit{font-size:10px}.filterbar{padding:14px;gap:10px}.filterbar label{min-width:calc(50% - 10px)}#category-wrap{min-width:100%}.presets{gap:8px}#filter-state{width:100%;margin:0}.panel{padding:17px}.strip{grid-template-columns:1fr}.strip>div{border-right:0;border-bottom:1px solid var(--line)}.bar-row{grid-template-columns:105px 1fr 75px;gap:8px}.bar-label,.bar-number{font-size:10px}footer{flex-direction:column;gap:6px}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s}#dashboard{transition:opacity .15s}}@media print{.sidebar,.topbar,.filterbar,.heading-row>.button,footer{display:none}.workspace{margin:0}body{background:white}main{padding:0}.panel,.kpi,.strip{break-inside:avoid}.grid{grid-template-columns:1fr 1fr}}
.kpi-value.long-value{font-size:clamp(18px,1.5vw,26px);white-space:normal;overflow-wrap:normal;letter-spacing:-.6px}
