:root{--bg:#061426;--panel:#0c2038;--line:#1d3d5d;--text:#f4f8fc;--muted:#91a8bf;--blue:#2d9cff;--cyan:#35d4dd;--green:#43d190;--amber:#ffbd4a;--red:#ff6b6b;--purple:#9b83ff}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 78% 10%,rgba(45,156,255,.12),transparent 32%),linear-gradient(135deg,#061426,#081a2e 55%,#061426);pointer-events:none}#tvApp{position:relative;width:100vw;height:100vh;padding:24px 34px 18px;display:grid;grid-template-rows:84px 1fr 44px;gap:16px}.topbar{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px}.brand,.status{display:flex;align-items:center;gap:14px}.brand-mark{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,var(--blue),var(--cyan));font-size:29px;font-weight:900}.brand strong{font-size:25px;letter-spacing:.07em}.brand small,.status small{display:block;color:var(--muted);font-size:15px;margin-top:3px}.screen-title{text-align:center}.screen-title span{display:block;color:var(--cyan);font-size:13px;font-weight:800;letter-spacing:.16em}.screen-title strong{display:block;font-size:27px;margin-top:4px}.status{justify-self:end;text-align:right}.status strong{font-size:28px;font-variant-numeric:tabular-nums}.live-dot{width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px rgba(67,209,144,.12)}#slides{min-height:0}.slide{display:none;height:100%;animation:fade .55s ease}.slide.active{display:grid}@keyframes fade{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}.grid{display:grid;gap:16px;min-height:0}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}.rows-2{grid-template-rows:repeat(2,1fr)}.overview{grid-template-rows:150px 1fr}.lower-overview{grid-template-columns:1.35fr 1fr 1fr}.card{background:linear-gradient(145deg,rgba(16,43,73,.96),rgba(10,31,53,.96));border:1px solid var(--line);border-radius:18px;padding:20px;min-width:0;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.13)}.kpi{position:relative}.kpi:after{content:"";position:absolute;left:0;top:23px;bottom:23px;width:4px;border-radius:4px;background:var(--accent,var(--blue))}.kpi-label{font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.kpi-value{font-size:32px;font-weight:800;margin-top:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.kpi-note{font-size:15px;color:var(--muted);margin-top:7px}.card-title{font-size:19px;font-weight:750;margin:0 0 14px}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:25px;height:calc(100% - 30px)}.donut{--pct:0;--color:var(--blue);position:relative;width:190px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--color) calc(var(--pct)*1%),#193652 0);flex:0 0 auto}.donut:after{content:"";position:absolute;inset:26px;border-radius:50%;background:#0d243e}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}.donut-center strong{font-size:31px}.donut-center span{font-size:13px;color:var(--muted);margin-top:4px}.legend{min-width:155px}.legend-row{margin:15px 0}.legend-row span{display:block;color:var(--muted);font-size:14px}.legend-row strong{display:block;font-size:18px;margin-top:3px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.rank{display:grid;gap:9px}.rank-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:15px;align-items:center}.rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.rank-value{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bar{grid-column:1/-1;height:7px;background:#173652;border-radius:5px;overflow:hidden;margin-top:-5px}.bar span{display:block;height:100%;border-radius:5px}.empty{height:100%;display:grid;place-content:center;text-align:center;padding:30px}.empty-icon{font-size:44px;color:var(--amber)}.empty strong{font-size:24px;margin-top:12px}.empty p{max-width:650px;color:var(--muted);font-size:17px;line-height:1.5}.footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--muted);font-size:13px;position:relative}.dots{display:flex;gap:8px}.dot-slide{width:8px;height:8px;border-radius:50%;background:#294866}.dot-slide.active{width:24px;border-radius:6px;background:var(--cyan)}.progress-track{position:absolute;left:0;right:0;bottom:-7px;height:3px;background:#142f4b}.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--cyan))}@media(max-width:1400px){.kpi-value{font-size:25px}.donut{width:155px}.donut-center strong{font-size:26px}.card{padding:16px}}
:root .topbar{border-bottom:0}
:root .topbar>.brand,:root .topbar>.status{position:relative;align-self:stretch}
:root .topbar>.brand:after,:root .topbar>.status:after{content:"";position:absolute;right:0;bottom:0;left:0;border-bottom:1px solid var(--line)}
:root .screen-title{position:relative;z-index:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
:root .screen-title-line{display:flex;align-items:flex-end;width:100%}
:root .screen-title-line i{flex:1 1 24px;min-width:24px;border-bottom:1px solid var(--line);margin-bottom:8px}
:root .screen-title-line strong{display:block;flex:0 1 auto;max-width:calc(100% - 48px);padding:0 14px;background:none;line-height:1.55}
:root .screen-title>span{display:none}
:root .topbar>.brand:after,:root .topbar>.status:after{display:none}
:root .screen-title{display:block;align-self:center}
:root .screen-title strong{display:block;padding:0;background:none;line-height:1.35}
:root .topbar{grid-template-columns:1fr 1fr}
:root .screen-title{display:none}
:root{color-scheme:dark}
.status>div{min-width:185px}
#themeToggle,#balanceVisibilityToggle{height:38px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:#102b49;color:var(--text);font:700 12px "Segoe UI",Arial,sans-serif;cursor:pointer;white-space:nowrap}
#themeToggle:hover,#themeToggle:focus,#balanceVisibilityToggle:hover,#balanceVisibilityToggle:focus{border-color:var(--cyan);background:#17436d;outline:none}
#balanceVisibilityToggle[aria-pressed="true"]{border-color:var(--amber);color:var(--amber)}
#themeIcon{font-size:16px;line-height:1}
:root[data-theme="light"]{color-scheme:light;--bg:#edf3f8;--panel:#fff;--line:#c8d7e4;--text:#10243a;--muted:#597087;--blue:#0878d1;--cyan:#087f8c;--green:#168557;--amber:#b76800;--red:#c73e3e;--purple:#674dcc}
:root[data-theme="light"] body:before{background:radial-gradient(circle at 78% 10%,rgba(45,156,255,.1),transparent 34%),linear-gradient(135deg,#f7fafc,#e8f1f7 55%,#f4f8fb)}
:root[data-theme="light"] .card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(241,247,251,.98));box-shadow:0 12px 30px rgba(39,73,104,.1)}
:root[data-theme="light"] .donut{background:conic-gradient(var(--color) calc(var(--pct)*1%),#d8e3ec 0)}
:root[data-theme="light"] .donut:after{background:#fff}
:root[data-theme="light"] .bar,:root[data-theme="light"] .progress-track{background:#d7e3ed}
:root[data-theme="light"] .dot-slide{background:#aebfce}
:root[data-theme="light"] #themeToggle,:root[data-theme="light"] #balanceVisibilityToggle,:root[data-theme="light"] .slide-navigation button,:root[data-theme="light"] .rotation-controls #toggleRotation{background:#fff;color:var(--text);border-color:var(--line)}
:root[data-theme="light"] #themeToggle:hover,:root[data-theme="light"] #themeToggle:focus,:root[data-theme="light"] #balanceVisibilityToggle:hover,:root[data-theme="light"] #balanceVisibilityToggle:focus,:root[data-theme="light"] .slide-navigation button:hover,:root[data-theme="light"] .slide-navigation button:focus,:root[data-theme="light"] .rotation-controls #toggleRotation:hover,:root[data-theme="light"] .rotation-controls #toggleRotation:focus{background:#e3f1f8;border-color:var(--cyan)}
:root[data-theme="light"] #balanceVisibilityToggle[aria-pressed="true"]{border-color:var(--amber);color:#925500}
:root[data-theme="light"] #rotationSeconds,:root[data-theme="light"] .outstanding-search,:root[data-theme="light"] .element-search{background:#fff;color:var(--text)}
:root[data-theme="light"] .commitment-tooltip,:root[data-theme="light"] .commitment-history-panel{background:#fff;color:var(--text);border-color:var(--line);box-shadow:0 14px 35px rgba(39,73,104,.2)}
:root[data-theme="light"] #tvApp,:root[data-theme="light"] .card,:root[data-theme="light"] .kpi-value,:root[data-theme="light"] .card-title,:root[data-theme="light"] .donut-center strong,:root[data-theme="light"] .legend-row strong,:root[data-theme="light"] .rank-name,:root[data-theme="light"] .rank-value{color:var(--text)}
:root[data-theme="light"] .brand small,:root[data-theme="light"] .status small,:root[data-theme="light"] .kpi-label,:root[data-theme="light"] .kpi-note,:root[data-theme="light"] .donut-center span,:root[data-theme="light"] .legend-row span,:root[data-theme="light"] .footer,:root[data-theme="light"] #rotationStatus,:root[data-theme="light"] #rotationEditor{color:var(--muted)}
:root[data-theme="light"] .split-values span,:root[data-theme="light"] .movement-list>div time,:root[data-theme="light"] .movement-empty,:root[data-theme="light"] .outstanding-totals span,:root[data-theme="light"] .outstanding-formula,:root[data-theme="light"] .outstanding-no-results,:root[data-theme="light"] .element-balance-subtitle,:root[data-theme="light"] .element-balance-no-results,:root[data-theme="light"] .commitment-history-list time,:root[data-theme="light"] .commitment-history-list span small,:root[data-theme="light"] .commitment-history-empty,:root[data-theme="light"] .commitment-history-head button{color:var(--muted)}
:root[data-theme="light"] .movement-list>div b,:root[data-theme="light"] .movement-list>div span,:root[data-theme="light"] .outstanding-list span,:root[data-theme="light"] .outstanding-totals b,:root[data-theme="light"] .element-balance-item span,:root[data-theme="light"] .commitment-history-list span b{color:var(--text)}
:root[data-theme="light"] .split-values .cost strong,:root[data-theme="light"] .outstanding-list .nature-33,:root[data-theme="light"] .element-balance-item .nature-33{color:#563cae}
:root[data-theme="light"] .split-values .investment strong,:root[data-theme="light"] .outstanding-list .nature-44,:root[data-theme="light"] .element-balance-item .nature-44{color:#08737e}
:root[data-theme="light"] .scope-projects{background:rgba(255,255,255,.82);border-color:var(--line)}
:root[data-theme="light"] .scope-projects span{color:var(--text)}
:root[data-theme="light"] .scope-projects strong,:root[data-theme="light"] .screen-title span,:root[data-theme="light"] #rotationStatus strong,:root[data-theme="light"] .commitment-tooltip:before{color:var(--cyan)}
:root[data-theme="light"] .scope-projects>div+div,:root[data-theme="light"] .split-values>div+div,:root[data-theme="light"] .movement-total,:root[data-theme="light"] .outstanding-totals,:root[data-theme="light"] .outstanding-totals>div+div,:root[data-theme="light"] .element-balance-subtitle,:root[data-theme="light"] .commitment-history-head{border-color:var(--line)}
:root[data-theme="light"] .movement-list>div,:root[data-theme="light"] .outstanding-list>div,:root[data-theme="light"] .element-balance-item,:root[data-theme="light"] .commitment-history-list>div{border-color:rgba(120,146,169,.35)}
:root[data-theme="light"] .element-project-header{background:#e6f0f7;color:var(--text);border-color:var(--cyan)}
:root[data-theme="light"] .outstanding-list .reconciliation,:root[data-theme="light"] .outstanding-list .reconciliation span{color:#8a5100}
:root[data-theme="light"] .outstanding-search,:root[data-theme="light"] .element-balance-search{background:#fff;color:var(--text);border-color:var(--line)}
:root[data-theme="light"] .outstanding-search::placeholder,:root[data-theme="light"] .element-balance-search::placeholder{color:#6c8195}
:root[data-theme="light"] .commitment-history-head strong,:root[data-theme="light"] .commitment-history-list>div>strong,:root[data-theme="light"] .movement-total strong,:root[data-theme="light"] .movement-list>div strong,:root[data-theme="light"] .element-balance-item strong{color:#08737e}
:root .cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1400px){:root .cols-5 .split-values strong{font-size:14px}:root .cols-5 .kpi-label{font-size:12px}:root .cols-5 .kpi-note{font-size:12px}}
