@font-face{font-family:Montserrat;src:url('/static/montserrat.ttf');font-weight:100 900;font-display:swap}:root{--brand:#2F6B52;--dark:#0F3D2E;--accent:#C4583D;--live:#23B577;--paper:#FAF6F0;--text:#20201E;--line:#DED1C5;--muted:#62665e;--panel:#fff;--radius:12px}*{box-sizing:border-box}body{margin:0;display:grid;grid-template-columns:238px minmax(0,1fr);font:13px/1.6 Montserrat,system-ui,sans-serif;background:var(--paper);color:var(--text)}aside{height:100dvh;position:sticky;top:0;padding:26px 18px;background:var(--dark);color:white;display:flex;flex-direction:column;overflow:auto}.brand img{width:196px;height:64px;object-fit:contain}.workspace-label{color:#C9F2E1;margin:14px 12px;font-size:12px}nav{display:grid;gap:5px;margin:22px 0}nav button{background:transparent;color:#dfebe4;text-align:left;border:0;border-radius:8px;font-weight:500;padding:11px 14px}nav button.active,nav button:hover{background:#EBFAF5;color:var(--dark)}aside footer{margin-top:auto;font-size:12px;padding:22px 12px 0;border-top:1px solid #ffffff30}footer small{color:#c4dacf;font-size:11px}main{padding:28px 34px;min-width:0;max-width:1900px;width:100%;margin:auto}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:20px}h1{font-size:clamp(22px,2.3vw,32px);font-weight:700;letter-spacing:-.025em;line-height:1.25;margin:0}h2{font-size:18px;line-height:1.4;margin:0 0 12px}h3{font-size:14px;margin:0 0 10px}p{margin:8px 0 0}#subtitle{color:var(--muted);font-size:12px}#identity{font-size:11px;color:var(--brand)}button,input,select,textarea{font:inherit;border:1px solid #acb9aa;border-radius:7px;padding:9px 12px}button{cursor:pointer;background:var(--brand);color:white;font-weight:600;transition:background .16s}button:hover{background:var(--dark)}button.secondary{background:white;color:var(--dark);border-color:var(--line)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.small{font-size:11px;padding:7px 10px}input,select{width:100%;background:white;color:var(--text)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}input:disabled{background:#f4f4f0}form,.panel{background:white;padding:24px;border-radius:var(--radius);border:1px solid var(--line)}form{display:grid;gap:16px}form.narrow{max-width:620px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}label{display:grid;gap:6px;font-size:12px;font-weight:600}label small,.note{color:var(--muted);font-size:11px;font-weight:400}.check{display:flex;align-items:center;gap:10px}.checks{display:flex;flex-wrap:wrap;gap:14px}.note{line-height:1.8}.status{display:inline-flex;align-items:center;gap:7px;border-radius:5px;padding:5px 9px;font-size:11px;background:#EBFAF5;color:var(--dark)}.status.warning{background:#fff0e5;color:#86401e}.status.danger{background:#fce8e2;color:#8d2f25}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.actions{display:flex;flex-wrap:wrap;gap:9px}.filters{margin-bottom:20px}.filters form{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.filters form button{align-self:end}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.metric{padding:20px;background:white;border:1px solid var(--line);border-radius:var(--radius);text-align:left;color:var(--text);font-weight:400;min-width:0}.metric:hover{background:#f3faf6}.metric b{display:block;font-size:30px;letter-spacing:-.03em;font-weight:700;line-height:1.4;margin:10px 0 7px;font-variant-numeric:tabular-nums}.metric .label{font-weight:600;font-size:12px}.metric small{font-size:11px;color:var(--muted)}.metric .unit{font-size:14px;font-weight:500}.metric.featured{background:var(--dark);color:white;border-color:var(--dark)}.metric.featured:hover{background:#164b39}.metric.featured small{color:#c9e6d6}.chart-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin:18px 0}.chart{width:100%;height:240px;display:block;overflow:visible}.chart text{fill:var(--muted);font:11px Montserrat,system-ui}.chart .grid{stroke:#e7ebe6}.bar-row{display:grid;grid-template-columns:130px 1fr 60px;gap:12px;align-items:center;margin:16px 0;font-size:11px}.track{height:10px;background:#eaf2ec;border-radius:4px;overflow:hidden}.fill{height:100%;background:var(--live);border-radius:4px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:var(--radius);margin-top:18px}table{width:100%;border-collapse:collapse;font-size:11px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #e9ede7;overflow-wrap:anywhere}th{background:#eff5ef;font-size:11px;font-weight:600;white-space:nowrap}tr:last-child td{border:0}tr:hover td{background:#fafcf9}.empty{padding:40px 25px;text-align:center;border:1px dashed #b9c9bc;border-radius:12px;color:var(--muted);background:#ffffff70}.empty h2{color:var(--dark);font-size:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-row{border-bottom:1px solid var(--line);padding:20px 0}.settings-row:first-child{padding-top:0}.settings-row:last-child{border:0}.settings-row h3{margin-bottom:12px}.page-footer{display:flex;justify-content:space-between;color:#62665e;font-size:11px;gap:20px;padding-top:20px;margin-top:28px;border-top:1px solid var(--line)}#message:empty{display:none}#message{background:#fff0e5;border:1px solid #e8d2bb;padding:14px;border-radius:8px;color:#723707;margin-bottom:18px}dialog{border:0;border-radius:14px;padding:26px;width:min(1100px,95vw);max-height:90dvh;box-shadow:0 20px 70px #00000040}dialog::backdrop{background:#0f241dcc}.dialog-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:20px}.dialog-head button{height:38px}dialog h2{margin:0}.detail-meta{display:flex;gap:20px;color:var(--muted);font-size:11px}.login-shell{max-width:500px;margin:8vh auto}.login-shell form{padding:36px}.login-shell h2{font-size:24px;color:var(--dark)}.insight{padding:18px 20px;background:#EBFAF5;border-radius:10px;margin:16px 0;color:var(--dark)}.insight p{font-size:11px}.skeleton{padding:55px;text-align:center;color:var(--brand)}.presentation-config{max-width:780px}.checkbox-list{display:grid;gap:14px}.chart-select{max-width:240px;font-size:11px}.print-logo{max-width:200px}::selection{background:#C9F2E1}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#adc4b4;border:2px solid var(--paper);border-radius:8px}body.tv{display:block;background:#FAF6F0;overflow:hidden}body.tv aside,body.tv header,body.tv .page-footer,body.tv .filters,body.tv .toolbar .non-tv{display:none}body.tv main{height:100dvh;padding:20px;overflow:hidden;display:flex;flex-direction:column}body.tv #content{min-height:0;flex:1;display:flex;flex-direction:column}body.tv .metrics{margin:10px 0;gap:10px;grid-template-columns:repeat(3,1fr)}body.tv .metric{padding:14px}body.tv .metric b{font-size:clamp(23px,3vw,40px);margin:3px 0}body.tv .chart-grid{min-height:0;flex:1;margin:10px 0;grid-template-columns:1.3fr 1fr}body.tv .panel{min-height:0;overflow:hidden;padding:18px}body.tv .chart{height:calc(100% - 55px);min-height:80px}body.tv .insight{display:none}body.tv #message{font-size:11px;padding:7px}body.tv .toolbar{margin:0;font-size:11px}@media(max-width:1000px){body{grid-template-columns:200px 1fr}aside img{width:160px}main{padding:24px}.metrics{grid-template-columns:repeat(2,1fr)}.chart-grid,.split{grid-template-columns:1fr}.filters form{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){body{display:block}aside{position:relative;height:auto;padding:12px 18px}.brand img{width:150px;height:45px}.workspace-label,aside footer{display:none}nav{display:flex;gap:5px;overflow:auto;margin:10px 0 0}nav button{white-space:nowrap;font-size:11px}main{padding:20px 16px}header{align-items:flex-start}#identity{max-width:100px;text-align:right;font-size:11px}.form-grid{grid-template-columns:1fr}.filters form{grid-template-columns:1fr 1fr}.metric{padding:16px}.metric b{font-size:25px}form,.panel{padding:18px}.page-footer{display:block}.bar-row{grid-template-columns:95px 1fr 45px;gap:7px}.chart{height:210px}}@media(prefers-reduced-motion:no-preference){#content{animation:enter .3s ease-out}@keyframes enter{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}}@media print{aside,header,.page-footer,button,.filters{display:none!important}body{display:block;background:white}main{padding:0}dialog{position:static;width:100%;max-height:none;box-shadow:none;overflow:visible}dialog::backdrop{display:none}.table-wrap{overflow:visible}tr{break-inside:avoid}th{print-color-adjust:exact}}
.deck-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border-radius:0;background:#0F3D2E;color:#FAF6F0}.deck-dialog .dialog-head{display:none}.deck{height:100dvh;overflow:hidden}.deck-slide{height:100dvh;padding:7vh 7vw;display:flex;flex-direction:column;justify-content:center}.deck-slide[hidden]{display:none}.deck-slide h1,.deck-slide h2{font-size:clamp(32px,5vw,78px);line-height:1.12;color:#FAF6F0;margin:20px 0}.deck-slide p{font-size:clamp(14px,1.6vw,25px);max-width:1000px}.deck-slide .logo{width:300px;max-height:110px;object-fit:contain;object-position:left}.deck-slide .columns{display:grid;grid-template-columns:repeat(3,1fr);gap:3vw;margin-top:4vh}.deck-slide article{border-top:1px solid #7cb79b;padding-top:20px}.deck-slide article b{font-size:25px;color:#C9F2E1}.deck-slide article strong{font-size:clamp(26px,4vw,60px)}.deck-slide .number{font-size:clamp(80px,16vw,190px);font-weight:800;color:#2CD18A}.deck-slide .small{font-size:12px;color:#C9F2E1}.deck-controls{position:absolute;bottom:0;left:0;right:0;padding:16px 6vw;display:flex;align-items:center;justify-content:flex-end;gap:10px;opacity:0;transition:opacity .2s;background:#0F3D2E}.deck-controls:hover,.deck-controls:focus-within{opacity:1}.deck-controls span{font-size:11px}@media(max-width:700px){.deck-slide .columns{grid-template-columns:1fr;gap:12px}.deck-slide article p{font-size:14px}.deck-controls button{font-size:11px;padding:8px}.deck-slide{padding:5vh 6vw}}

.metric[hidden]{display:none}
