/* The production wall: precision instruments on layered blue steel. Offline by design. */
:root{
  color-scheme:dark;
  --tv-bg:#090f1d;--tv-panel:#14243a;--tv-line:#30435f;--tv-muted:#a6b6cd;
  --tv-text:#eef4ff;--tv-plan:#75bfff;--tv-fact:#79e2bf;--tv-bad:#ff9b99;--tv-wait:#f2ca80;
  --tv-display:"Avenir Next","Segoe UI",Tahoma,Arial,sans-serif;
  --tv-data:"Bahnschrift","DIN Alternate","Avenir Next","Segoe UI",sans-serif;
  font-family:var(--tv-display);font-size:clamp(13px,min(.88vw,1.6vh),34px);background:var(--tv-bg);color:var(--tv-text);
}
*{box-sizing:border-box}
body{margin:0;background:var(--tv-bg);isolation:isolate}
body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1}
body::before{background:linear-gradient(#9cb8e406 1px,transparent 1px),linear-gradient(90deg,#9cb8e406 1px,transparent 1px);background-size:4rem 4rem;mask-image:linear-gradient(#000,transparent 82%)}
body::after{inset:-12%;background:radial-gradient(ellipse at 15% 12%,#244f8854,transparent 40%),radial-gradient(ellipse at 90% 10%,#394f8b38,transparent 35%),radial-gradient(ellipse at 78% 88%,#19505e24,transparent 34%);animation:tv-ambient 24s ease-in-out infinite alternate;will-change:transform}
button,input,select{font:inherit}
button{cursor:pointer;position:relative;border:1px solid #7f9ac442;border-radius:.55rem;background:linear-gradient(145deg,#b4ceff12,#759ce905);color:var(--tv-text);padding:.6rem .9rem;white-space:nowrap;box-shadow:inset 0 1px #d8e8ff0a,0 .15rem .4rem #01061124;transition:border-color .2s,background .2s,transform .2s}
button:hover{border-color:#a7c8ff99;background:linear-gradient(145deg,#a3c6ff22,#759ce911);transform:translateY(-1px)}
button:active{transform:translateY(0)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--tv-plan);outline-offset:3px}
button span{margin-left:.35rem;font-size:1.15em}
input,select{min-width:0;background:#0c192b;color:var(--tv-text);border:1px solid #6b85aa66;border-radius:.4rem;padding:.5rem .65rem;box-shadow:inset 0 1px 5px #02081355}
input[type=checkbox]{accent-color:var(--tv-fact);width:1rem;height:1rem;box-shadow:none}
[hidden]{display:none!important}
.tv-shell{padding:1.2rem 1.6rem .65rem;min-height:100vh;height:100vh;display:flex;flex-direction:column;gap:.85rem}
.tv-header{display:flex;align-items:center;justify-content:space-between;gap:1.3rem;min-height:4.2rem;padding-bottom:.5rem;border-bottom:1px solid #a6bce716}
.tv-brand{display:flex;align-items:center;gap:1rem;flex-shrink:0}
.tv-brand-mark{width:2.55rem;height:2.9rem;display:flex;align-items:flex-end;gap:.25rem;padding:.25rem .2rem .4rem;position:relative}
.tv-brand-mark::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,var(--tv-plan),#79e2bf66,transparent)}
.tv-brand-mark i{width:.43rem;background:linear-gradient(#b2daff,#668bfa);height:45%;box-shadow:0 0 .8rem #7cacff1a}
.tv-brand-mark i:nth-child(2){height:70%}
.tv-brand-mark i:nth-child(3){height:100%;background:linear-gradient(#beffeb,#64c8af)}
.tv-eyebrow,.tv-kicker{text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:.64rem;color:var(--tv-muted)}
h1{font-family:var(--tv-display);font-size:2.15rem;line-height:1.08;margin:.25rem 0;font-weight:550;letter-spacing:-.055em}
.tv-heading-period{display:flex;flex-direction:column;text-align:center;gap:.35rem;position:relative;padding:.15rem 1.8rem}
.tv-heading-period::before,.tv-heading-period::after{content:"";position:absolute;top:40%;width:1.4rem;height:1px;background:linear-gradient(90deg,transparent,#8aa5ce55)}
.tv-heading-period::before{left:-.5rem}.tv-heading-period::after{right:-.5rem;transform:rotate(180deg)}
.tv-heading-period strong{text-transform:capitalize;font-size:1.5rem;font-weight:500;letter-spacing:-.035em}
.tv-heading-period span{color:var(--tv-muted);font-size:.79rem;letter-spacing:.01em}
.tv-tools{display:flex;gap:.55rem}
.tv-tools button{font-size:.74rem}
.tv-tools #tv-fullscreen{background:linear-gradient(130deg,#7eaeff28,#5fb9d112);border-color:#8fb7f858}
.tv-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.7rem;background:linear-gradient(120deg,#1c2e48f5,#102137f5);border:1px solid #8facd738;padding:.85rem 1rem;border-radius:.8rem;font-size:.78rem;box-shadow:0 .5rem 2rem #01071244,inset 0 1px #c6dcff0a}
.tv-controls label{display:flex;flex-direction:column;gap:.35rem;color:#c4d1e4;font-weight:500}
.tv-controls .tv-check{flex-direction:row;align-items:center;padding:.6rem;gap:.45rem}
.tv-controls p{margin:.15rem 0;width:100%;color:var(--tv-muted);overflow-wrap:anywhere;font-size:.75rem}
.tv-controls button[type=submit]{background:linear-gradient(120deg,#6489df,#3d6dae);border-color:#95b7fa;color:#fff}
.tv-alert{background:linear-gradient(90deg,#56313cdd,#392736dd);border:1px solid #ff9b9977;padding:.7rem 1rem;border-radius:.6rem;margin:0;font-size:.85rem;box-shadow:0 .3rem 1rem #06071144}
.tv-content{display:flex;flex-direction:column;gap:.85rem;flex:1;min-height:0}
.tv-overview{display:grid;grid-template-columns:1.65fr 1fr 1.13fr 1fr;gap:.85rem;height:10.6rem;min-height:10.6rem}
.tv-panel{position:relative;background:linear-gradient(135deg,#43648b35 0,#1d385478 48%,#14283e8f 100%);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border:1px solid #9fbee642;border-radius:.95rem;box-shadow:inset 0 1px #d4e6ff12,inset 1px 0 #b4d5ff06,inset 0 -1px #020817aa,0 .2rem 0 #050d1b77,0 .7rem 1.9rem #02061255;overflow:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s}
.tv-panel::before{content:"";position:absolute;inset:0 15% auto;height:1px;background:linear-gradient(90deg,transparent,#c7ddff44,transparent);pointer-events:none}
.tv-panel::after{content:"";position:absolute;top:0;right:0;width:65%;height:65%;background:linear-gradient(135deg,transparent 35%,#d7eaff04 50%,transparent 50.2%);pointer-events:none}
.tv-panel.tv-value-flash{animation:tv-value-flash 1.1s ease-out}
.tv-overall{display:flex;align-items:center;gap:1.2rem;padding:1rem 1.35rem;background:radial-gradient(ellipse at 18% 42%,#3c667d28,transparent 55%),linear-gradient(120deg,#36576d66,#14304688);border-color:#afd8ed66}
.tv-overall::after{width:12rem;height:12rem;top:-3rem;right:-2rem;background:radial-gradient(ellipse,#6caeff0a,transparent 65%)}
.tv-overall-copy{position:relative;z-index:1}
.tv-overall-copy h2{font-size:1.2rem;line-height:1.3;font-weight:500;letter-spacing:-.035em;margin:.5rem 0 .7rem}
.tv-ring{width:8.3rem;min-width:8.3rem;aspect-ratio:1;position:relative;background:radial-gradient(ellipse,#75edca09,transparent 62%);border-radius:50%}
.tv-ring::before{content:"";position:absolute;inset:.76rem;border:1px solid #9ccad60b;border-radius:50%;box-shadow:inset 0 0 1.3rem #6ddabc05}
.tv-ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.tv-ring circle{fill:none;stroke-width:6;stroke-linecap:round}
.tv-ring-track{stroke:#b2d8f316}
.tv-ring-value{stroke:var(--tv-fact);stroke:url(#tv-ring-gradient) var(--tv-fact);filter:drop-shadow(0 0 3px #79e2bf44);transition:stroke-dasharray 1.2s cubic-bezier(.2,.7,.2,1)}
.tv-gauge-ticks line{stroke:#b0cee43d;stroke-width:.8;stroke-linecap:round}
.tv-gauge-ticks line:nth-child(5n+1){stroke:#b0cee477;stroke-width:1}
.tv-ring>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.2rem}
.tv-ring strong{font-family:var(--tv-data);font-size:2.45rem;font-weight:500;letter-spacing:-.07em;line-height:1.05;text-shadow:0 0 1.8rem #a8f4df15}
.tv-ring span{font-size:.61rem;letter-spacing:.02em;color:#b3c5d5}
.tv-ring-caption{position:absolute;bottom:.55rem;left:1.35rem;width:8.3rem;text-align:center;font-family:var(--tv-data);font-size:.64rem;color:var(--tv-muted);font-variant-numeric:tabular-nums}
.tv-state{font-size:.68rem;font-weight:500;display:inline-flex;align-items:center;gap:.4rem;border:1px solid #91a9c433;border-radius:.35rem;padding:.35rem .55rem;background:#07132233;white-space:nowrap}
.tv-state::before{content:"";width:.27rem;height:.27rem;border-radius:50%;background:currentColor;box-shadow:0 0 .65rem currentColor}
.tv-good{color:var(--tv-fact)}.tv-bad{color:var(--tv-bad)}.tv-waiting{color:var(--tv-wait)}
.tv-metric{display:flex;flex-direction:column;justify-content:center;padding:1.15rem 1.3rem}
.tv-metric>strong{font-family:var(--tv-data);font-size:2.95rem;letter-spacing:-.055em;font-weight:400;line-height:1.12;margin:.65rem 0;color:#f5f8ff;font-variant-numeric:tabular-nums}
.tv-metric strong small{font-family:var(--tv-display);font-size:.72rem;letter-spacing:0;font-weight:400;margin-left:.45rem;color:#aebed4}
.tv-metric p{font-size:.71rem;line-height:1.4;color:var(--tv-muted);margin:.35rem 0 0}
.tv-mini-track{height:.23rem;background:#b8d6ff0d;margin:.15rem 0 .3rem;border-radius:.4rem;box-shadow:0 1px #b8d6ff08}
.tv-mini-track i{display:block;height:100%;background:linear-gradient(90deg,#6485ed,#8edcfb);border-radius:inherit;box-shadow:0 0 .65rem #75bfff25}
.tv-pair{display:grid;grid-template-columns:1fr 1fr;margin:.7rem 0 .3rem;gap:1rem}
.tv-pair>div+div{border-left:1px solid #9cb9df22;padding-left:1rem}
.tv-pair small{color:var(--tv-muted);display:block;font-size:.72rem}
.tv-pair strong{font-family:var(--tv-data);font-size:2.4rem;line-height:1.3;letter-spacing:-.06em;font-weight:400;font-variant-numeric:tabular-nums}
.tv-fact-number{color:var(--tv-fact);text-shadow:0 0 1.5rem #79e2bf11}
.tv-delta{border-left-width:1px}
.tv-delta::before{inset:1.2rem auto 1.2rem 0;width:2px;height:auto;background:linear-gradient(transparent,currentColor,transparent)}
.tv-delta.tv-bad{border-left-color:#ff9b9955;background:linear-gradient(120deg,#68364033,#142b427d 75%)}
.tv-delta.tv-good{border-left-color:#79e2bf55;background:linear-gradient(120deg,#306a5833,#142b427d 75%)}
.tv-delta.tv-waiting{border-left-color:#f2ca8055;background:linear-gradient(120deg,#68573533,#142b427d 75%)}
.tv-delta.tv-bad>strong{color:var(--tv-bad)}.tv-delta.tv-good>strong{color:var(--tv-fact)}.tv-delta.tv-waiting>strong{color:var(--tv-wait)}
.tv-charts{display:grid;grid-template-columns:1.65fr 1fr;grid-template-rows:1.15fr 1fr;gap:.85rem;flex:1;min-height:0;height:auto}
.tv-panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem .45rem;flex-shrink:0}
.tv-panel-head h2{font-size:1.25rem;font-weight:500;letter-spacing:-.04em;margin:.35rem 0 0}
.tv-legend{display:flex;gap:1rem;color:#c9d6e8;font-size:.71rem;align-items:center}
.tv-legend span{display:flex;gap:.4rem;align-items:center}
.tv-legend i{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;box-shadow:0 0 .6rem #ffffff0d}
.tv-plan-swatch{background:var(--tv-plan)}.tv-fact-swatch{background:var(--tv-fact)}
.tv-trend,.tv-ranking{display:flex;flex-direction:column;min-height:0}
.tv-trend{background:radial-gradient(ellipse at 55% 100%,#31619e0a,transparent 70%),linear-gradient(135deg,#3d597b33,#13253a88)}
.tv-chart-area{position:relative;flex:1;min-height:0;padding:.1rem .75rem 0}
.tv-daily-chart{width:100%;height:100%;min-height:0;display:block;overflow:visible}
.tv-gridline{stroke:#8aa7d11c;stroke-width:1;stroke-dasharray:2 5}
.tv-axis{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;fill:#94aac5;font-size:13px;font-weight:400}
.tv-day{fill:#b5c6dc;font-size:13px}
.tv-plan-bar{fill:var(--tv-plan);fill:url(#tv-plan-gradient) var(--tv-plan)}
.tv-fact-bar{fill:var(--tv-fact);fill:url(#tv-fact-gradient) var(--tv-fact)}
.tv-plan-bar,.tv-fact-bar{transform-box:fill-box;transform-origin:center bottom;transition:opacity .2s;filter:drop-shadow(0 0 1.5px #9bd8ff10)}
.tv-daily-chart g:hover .tv-plan-bar,.tv-daily-chart g:hover .tv-fact-bar{opacity:.78}
.tv-future{fill:#75bfff;fill-opacity:.024}
.tv-cutoff-line{stroke:var(--tv-wait);stroke-width:1;stroke-dasharray:3 5;opacity:.75}
.tv-chart-foot{display:flex;justify-content:space-between;gap:.6rem;padding:.4rem 1.25rem .8rem;color:#97abc5;font-size:.62rem;flex-shrink:0;letter-spacing:.01em}
.tv-chart-empty{position:absolute;inset:40% 10% auto;text-align:center;background:#102034ef;border:1px solid #8aa7d133;padding:1rem;font-size:.84rem;border-radius:.6rem;box-shadow:0 .5rem 1rem #0002}
.tv-page-count{font-family:var(--tv-data);font-size:.71rem;color:#adc0d8;white-space:nowrap;border:1px solid #91b2e026;border-radius:.35rem;padding:.25rem .45rem;background:#07132233}
.tv-rankings{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:.45rem;min-height:0;padding:.3rem 1.25rem}
.tv-rank-row{padding:.35rem 0;max-height:5.7rem;flex:1;display:flex;flex-direction:column;justify-content:center;gap:.42rem;min-height:0}
.tv-rank-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;min-width:0}
.tv-rank-title strong{font-size:.95rem;font-weight:500;letter-spacing:-.025em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-rank-title>span{font-family:var(--tv-data);font-size:1.2rem;letter-spacing:-.04em;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.tv-rank-track{height:.65rem;border-radius:.2rem;background:#9bbde00c;position:relative;flex-shrink:0;box-shadow:inset 0 1px 2px #0003,0 1px #bedcff08}
.tv-rank-plan{position:absolute;inset:0 auto 0 0;min-width:0;background:linear-gradient(90deg,#6189c461,#7fbcf5aa);border-radius:inherit;border-top:1px solid #b9dbff22}
.tv-rank-fact{position:absolute;inset:.13rem auto .13rem 0;background:linear-gradient(90deg,#69c4ae,#acffdf);border-radius:.12rem;box-shadow:0 0 .75rem #79e2bf25}
.tv-rank-target{position:absolute;top:-.2rem;bottom:-.2rem;width:1px;background:var(--tv-wait);box-shadow:0 0 .35rem #f2ca8033}
.tv-rank-target::before{content:"";position:absolute;top:-.15rem;left:-2px;width:5px;height:3px;background:var(--tv-wait);clip-path:polygon(0 0,100% 0,50% 100%)}
.tv-rank-meta{display:flex;justify-content:space-between;color:#9aafca;font-size:.62rem;font-variant-numeric:tabular-nums}
.tv-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--tv-muted);height:100%;gap:.5rem;font-size:.85rem}
.tv-empty>span{font-size:3rem;opacity:.25}
.tv-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:#94aac4;font-size:.61rem;min-height:1rem;margin-top:.05rem;letter-spacing:.015em}
.tv-footer #tv-clock{font-family:var(--tv-data);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.tv-status-dot{display:inline-block;border-radius:50%;width:.3rem;height:.3rem;margin-right:.5rem;background:var(--tv-fact);box-shadow:0 0 .55rem #79e2bf66}
.tv-stale{color:var(--tv-bad)}.tv-stale .tv-status-dot{background:var(--tv-bad);box-shadow:0 0 .55rem #ff9b9955}
.tv-loading{min-height:50vh;display:flex;align-items:center;justify-content:center;color:var(--tv-muted);font-size:1.2rem;letter-spacing:-.03em}
.tv-load-error{padding:2rem;text-align:center}
.tv-settings-open .tv-shell{height:auto;min-height:100vh}
.tv-settings-open .tv-charts{min-height:32rem}
@keyframes tv-panel-in{from{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:translateY(0)}}
@keyframes tv-bar-in{from{transform:scaleY(.015);opacity:.3}to{transform:scaleY(1);opacity:1}}
@keyframes tv-value-flash{0%{box-shadow:inset 0 0 0 1px #79e2bf66,0 0 1.4rem #79e2bf0c}100%{box-shadow:inset 0 1px #d4e6ff0d,inset 0 -1px #02081788,0 .5rem 1.9rem #02061238}}
@keyframes tv-ambient{from{transform:translate3d(-1%,0,0)}to{transform:translate3d(1.8%,1%,0)}}
body.tv-effects-off::after{animation:none;will-change:auto}
body.tv-effects-off *,body.tv-effects-off *::before,body.tv-effects-off *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){
 body::after{animation:none;will-change:auto}
 *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

/* Optional physical depth and glass can be switched independently in the display settings. */
.tv-bar-top{fill:#b5dfff;opacity:.72;stroke:#cfe8ff28;stroke-width:.5}
.tv-bar-side{fill:#30588b;opacity:.9;stroke:#9dcfff16;stroke-width:.5}
.tv-fact-bar~.tv-bar-top,.tv-bar-depth.tv-fact-depth .tv-bar-top{fill:#b4ffe3}
.tv-bar-depth.tv-fact-depth .tv-bar-side{fill:#348871}
.tv-bar-depth{pointer-events:none}
@media(hover:hover) and (pointer:fine){
 body:not(.tv-depth-off):not(.tv-effects-off) .tv-panel:hover{transform:perspective(1200px) rotateX(.6deg) rotateY(-.45deg) translateY(-2px);border-color:#b8d8ff77;box-shadow:inset 0 1px #d4e6ff22,inset 1px 0 #b4d5ff08,inset 0 -1px #020817aa,0 .35rem 0 #050d1b77,0 1rem 2.2rem #02061266}
}
body.tv-depth-off .tv-bar-depth{display:none}
body.tv-depth-off .tv-panel{box-shadow:inset 0 1px #d4e6ff10,0 .2rem 1rem #02061235}
body.tv-glass-off .tv-panel{background:#14243a;backdrop-filter:none;-webkit-backdrop-filter:none}
body.tv-glass-off .tv-panel::after{opacity:.3}
@media(prefers-reduced-motion:reduce){.tv-panel:hover{transform:none!important}}
.tv-fact-top{fill:#b4ffe3}.tv-fact-side{fill:#348871}
.tv-gauge-ticks .tv-gauge-major{stroke:#b0cee485;stroke-width:1}
.tv-gauge-ticks .tv-gauge-minor{stroke:#b0cee435;stroke-width:.65}
.tv-value-flash:not(.tv-panel){animation:tv-digit-flash 1.1s ease-out}
@keyframes tv-digit-flash{0%{text-shadow:0 0 1.1rem #79e2bf88;color:#d6fff0}100%{text-shadow:none}}


/* Size by both screen dimensions. Text keeps its own space instead of shrinking a row to zero. */
.tv-shell{min-width:0;height:100svh;min-height:100svh}
.tv-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-width:0}
.tv-header>*,.tv-overview>*,.tv-charts>*,.tv-panel-head>div,.tv-overall-copy{min-width:0}
.tv-heading-period{padding-inline:1rem}
.tv-heading-period span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-overview{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(0,1.13fr) minmax(0,1fr)}
.tv-overall{display:grid;grid-template-columns:minmax(0,8.1rem) minmax(0,1fr);grid-template-rows:auto auto;column-gap:.9rem;row-gap:.2rem;padding:.85rem 1.15rem;align-content:center}
.tv-ring{grid-column:1;grid-row:1;width:100%;min-width:0;max-width:8.1rem;justify-self:center}
.tv-ring-caption{position:static;grid-column:1;grid-row:2;width:100%;min-width:0;max-width:100%;font-size:.65rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere;align-self:start}
.tv-overall-copy{grid-column:2;grid-row:1 / span 2}
.tv-overall-copy h2{font-size:1.12rem;line-height:1.25;margin:.45rem 0 .6rem}
.tv-state{max-width:100%;white-space:normal;line-height:1.25}
.tv-state::before{flex:0 0 .27rem}
.tv-kicker{display:block;max-width:100%;line-height:1.35;overflow-wrap:anywhere}
.tv-metric{min-width:0;padding:1rem 1.1rem}
.tv-metric>strong{display:block;max-width:100%;white-space:nowrap;font-size:2.8rem;line-height:1.15}
.tv-number{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:0;max-width:100%}
.tv-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;min-width:0}
.tv-pair>div{min-width:0}
.tv-pair>div+div{padding-left:.65rem}
.tv-pair strong{display:block;max-width:100%;white-space:nowrap;font-size:2.3rem;line-height:1.25}
.tv-metric p{overflow-wrap:anywhere;line-height:1.35}
.tv-charts{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);grid-template-rows:minmax(0,1.15fr) minmax(0,1fr)}
.tv-panel-head{gap:.5rem .9rem;align-items:flex-start;padding:.85rem 1.15rem .4rem}
.tv-panel-head h2{font-size:1.2rem;line-height:1.2;overflow-wrap:anywhere}
.tv-legend{flex-wrap:wrap;justify-content:flex-end;gap:.35rem .8rem;max-width:50%;line-height:1.25;padding-top:.1rem}
.tv-legend span{white-space:nowrap;gap:.3rem}
.tv-legend i{flex:0 0 .5rem}
.tv-daily-chart{overflow:hidden}
.tv-chart-area{min-height:8rem}
.tv-chart-foot{flex-wrap:wrap;gap:.15rem .6rem;line-height:1.25;padding:.4rem 1.15rem .65rem}
.tv-chart-foot>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.tv-chart-foot>span:last-child{margin-left:auto;text-align:right}
.tv-rankings{justify-content:space-evenly;gap:.2rem;padding:.1rem 1.15rem .25rem}
.tv-rank-row{flex:1 1 0;min-height:3.45rem;max-height:none;padding:.2rem 0;gap:.25rem;justify-content:center}
.tv-rank-title{gap:.6rem;align-items:center}
.tv-rank-title strong{min-width:0;flex:1 1 auto;line-height:1.2}
.tv-rank-title>span{flex:0 1 auto;max-width:48%;line-height:1.2;text-align:right}
.tv-rank-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem .45rem;line-height:1.2;font-size:.62rem;min-width:0}
.tv-rank-meta>span{min-width:0;overflow-wrap:anywhere}
.tv-rank-meta>span:nth-child(2){text-align:center}
.tv-rank-meta>span:last-child{text-align:right}
.tv-rank-meta small{display:block;font:inherit;color:var(--tv-muted);line-height:1.15;margin-bottom:.1rem}
.tv-rank-meta b{display:block;max-width:100%;font-weight:500;white-space:nowrap;line-height:1.15}
.tv-rank-delta{font-weight:500;font-size:.62rem;line-height:1.15;white-space:nowrap}
.tv-rank-meta .tv-rank-delta{display:inline}
.tv-footer{flex-wrap:wrap;gap:.25rem .8rem;line-height:1.3}
.tv-footer>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.tv-footer #tv-clock{white-space:nowrap}
.tv-animation-settings{display:flex;flex-wrap:wrap;gap:.2rem .5rem;flex:1 0 100%;min-width:0;margin:0;padding:.35rem .65rem .45rem;border:1px solid #8facd72c;border-radius:.45rem}
.tv-animation-settings legend{font-size:.75rem;color:#c6d8ee;padding:0 .3rem}
.tv-animation-settings .tv-check{padding:.35rem .5rem}
.tv-refresh-setting{min-width:8rem}
.tv-refresh-setting input{max-width:8rem}
.tv-surplus-swatch{background:#35ed9e}
.tv-shortfall-swatch{background:#ff727b}
.tv-daily-surplus .tv-delta-fill{fill:#35ed9e;fill-opacity:.95;stroke:#a5ffcb;stroke-width:.6}
.tv-daily-shortfall .tv-delta-fill{fill:#ff727b;fill-opacity:.22;stroke:#ff9299;stroke-width:.8;stroke-dasharray:2 2}
.tv-delta-arrow{fill:none;stroke:#ff9299;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.tv-rank-gap{position:absolute;top:.13rem;bottom:.13rem;min-width:0;z-index:2;pointer-events:none;border-radius:.1rem}
.tv-gap-good{background:linear-gradient(90deg,#28d888,#75ffb7);box-shadow:0 0 .6rem #35ed9e30}
.tv-gap-bad{background:repeating-linear-gradient(135deg,#ff727b66 0,#ff727b66 2px,#ff727b22 2px,#ff727b22 5px);border:1px solid #ff929988}
.tv-bar-column{transform-box:view-box}

@media(max-height:850px) and (min-width:960px) and (orientation:landscape){
 .tv-shell{padding:.7rem 1rem .4rem;gap:.6rem}
 .tv-header{min-height:3.6rem;padding-bottom:.3rem;gap:1rem}
 h1{font-size:1.9rem}
 .tv-heading-period strong{font-size:1.35rem}
 .tv-overview{height:9rem;min-height:9rem;gap:.6rem}
 .tv-overall{grid-template-columns:minmax(0,6.7rem) minmax(0,1fr);padding:.65rem .9rem;column-gap:.6rem}
 .tv-ring{max-width:6.7rem}
 .tv-ring strong{font-size:2rem}
 .tv-ring-caption{font-size:.61rem}
 .tv-overall-copy h2{font-size:1rem;margin:.3rem 0 .45rem}
 .tv-state{font-size:.63rem;padding:.25rem .4rem}
 .tv-metric{padding:.75rem .9rem}
 .tv-metric>strong{font-size:2.5rem;margin:.4rem 0}
 .tv-pair{margin:.45rem 0 .25rem;gap:.45rem}
 .tv-pair>div+div{padding-left:.45rem}
 .tv-pair strong{font-size:2rem}
 .tv-charts{gap:.6rem;grid-template-rows:minmax(0,1.1fr) minmax(0,1fr)}
 .tv-panel-head{padding:.65rem 1rem .3rem}
 .tv-panel-head h2{font-size:1.1rem;margin-top:.25rem}
 .tv-legend{font-size:.65rem;gap:.25rem .65rem}
 .tv-rankings{padding:.05rem 1rem .2rem;gap:.15rem}
 .tv-rank-row{min-height:3.3rem;padding:.12rem 0;gap:.2rem}
 .tv-rank-title strong{font-size:.9rem}
 .tv-rank-title>span{font-size:1.05rem}
 .tv-rank-meta{font-size:.6rem;gap:.2rem .4rem}
 .tv-rank-track{height:.55rem}
 .tv-chart-foot{padding:.3rem 1rem .5rem;font-size:.6rem}
 .tv-metric p{font-size:.66rem}
 .tv-settings-open .tv-shell{height:auto;min-height:100svh}
 .tv-settings-open .tv-charts{min-height:34rem}
}
@media(max-width:1100px) and (orientation:landscape){
 .tv-header{grid-template-columns:auto minmax(0,1fr);gap:.5rem 1rem}
 .tv-tools{grid-column:1/-1;justify-content:flex-end}
 .tv-overview{grid-template-columns:repeat(4,minmax(0,1fr))}
 .tv-overall{grid-template-columns:minmax(0,5rem) minmax(0,1fr);gap:.2rem .45rem;padding:.6rem}
 .tv-ring{max-width:5rem}
 .tv-ring strong{font-size:1.6rem}
 .tv-overall-copy h2{font-size:.86rem}
 .tv-overall-copy .tv-kicker{font-size:.52rem}
 .tv-ring-caption{font-size:.52rem}
 .tv-state{font-size:.56rem;padding:.2rem .3rem}
}
@media(orientation:portrait),(max-width:959px){
 :root{font-size:clamp(14px,1.35vw,24px)}
 .tv-shell{height:auto;min-height:100svh;padding:1rem;gap:.85rem}
 .tv-header{grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1rem}
 .tv-brand{gap:.75rem}
 .tv-heading-period{grid-column:1/-1;grid-row:2;text-align:left;padding:.3rem 0;gap:.25rem}
 .tv-heading-period::before,.tv-heading-period::after{display:none}
 .tv-heading-period strong{font-size:1.4rem}
 .tv-heading-period span{white-space:normal;line-height:1.3}
 .tv-tools{flex-wrap:wrap;justify-content:flex-end}
 .tv-tools button{font-size:.7rem;padding:.5rem .65rem}
 .tv-content{flex:none;min-height:0}
 .tv-overview{height:auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(10rem,auto)}
 .tv-overall{grid-column:auto;min-height:10rem;grid-template-columns:minmax(0,7rem) minmax(0,1fr);column-gap:.6rem}
 .tv-ring{max-width:7rem}
 .tv-overall-copy h2{font-size:1.05rem}
 .tv-delta{display:flex;grid-column:auto}
 .tv-metric{min-height:10rem}
 .tv-charts{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-auto-rows:minmax(20rem,auto);height:auto;flex:none}
 .tv-trend{grid-column:1/-1;min-height:25rem}
 .tv-ranking{min-height:22rem}
 .tv-ranking-orders{grid-column:1/-1}
 .tv-chart-area{min-height:17rem}
 .tv-rank-row{min-height:4rem;gap:.35rem;padding:.35rem 0}
 .tv-rank-meta{font-size:.7rem}
 .tv-rank-title strong{font-size:1rem}
 .tv-rank-title>span{font-size:1.2rem}
 .tv-chart-foot{font-size:.7rem}
 .tv-footer{font-size:.7rem}
 .tv-settings-open .tv-charts{min-height:0}
 .tv-controls{align-items:stretch}
 .tv-controls label{max-width:100%;min-width:9rem;flex:1 1 9rem}
 .tv-controls .tv-check{flex:0 1 auto;min-width:0}
 .tv-controls select{width:100%}
}
@media(max-width:600px){
 .tv-header{grid-template-columns:minmax(0,1fr);gap:.7rem}
 .tv-tools{grid-column:1;grid-row:3;justify-content:flex-start}
 .tv-heading-period{grid-row:2}
 .tv-eyebrow{font-size:.6rem}
 h1{font-size:2rem}
 .tv-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;grid-auto-rows:minmax(8.5rem,auto)}
 .tv-overall{grid-column:1/-1;grid-template-columns:minmax(0,8rem) minmax(0,1fr);min-height:10.5rem;padding:.85rem 1rem;column-gap:1rem}
 .tv-ring{max-width:8rem}
 .tv-ring-caption{font-size:.65rem}
 .tv-overall-copy h2{font-size:1.15rem}
 .tv-state{font-size:.65rem}
 .tv-metric{padding:.8rem;min-height:9rem}
 .tv-metric>strong{font-size:2.1rem}
 .tv-pair{gap:.35rem;margin:.5rem 0 .25rem}
 .tv-pair>div+div{padding-left:.35rem}
 .tv-pair strong{font-size:1.7rem}
 .tv-delta{grid-column:1/-1;min-height:8rem}
 .tv-charts{display:flex;flex-direction:column;gap:.85rem}
 .tv-trend{min-height:24rem}
 .tv-chart-area{min-height:17rem;padding:.1rem .4rem 0}
 .tv-ranking{min-height:22rem}
 .tv-panel-head{padding:.85rem 1rem .4rem;flex-wrap:wrap}
 .tv-panel-head h2{font-size:1.15rem}
 .tv-legend{max-width:100%;justify-content:flex-start;gap:.35rem .7rem;font-size:.68rem}
 .tv-rankings{padding:.2rem 1rem .4rem;gap:.5rem}
 .tv-rank-row{min-height:4.3rem}
 .tv-chart-foot{padding:.4rem 1rem .75rem;font-size:.65rem}
 .tv-chart-foot>span:last-child{margin-left:0;text-align:left}
 .tv-footer{gap:.4rem .8rem}
 .tv-footer #tv-paging{display:block;flex-basis:100%;order:3}
 .tv-controls .tv-check{padding:.4rem 0}
 .tv-animation-settings .tv-check{flex:1 1 9rem}
}

/* Keep status colors authoritative and leave room for the data font's ascenders. */
.tv-overview .tv-delta{display:flex}
.tv-fact-number.tv-bad{color:var(--tv-bad)}
.tv-fact-number.tv-good{color:var(--tv-fact)}
.tv-fact-number.tv-waiting{color:var(--tv-wait)}
.tv-rank-meta,.tv-rank-meta small,.tv-rank-meta b{line-height:1.45}

.tv-daily-refresh-settings{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:.55rem .8rem;border:1px solid #8facd738;border-radius:.6rem}
.tv-daily-refresh-settings legend{padding:0 .35rem;color:#c4d1e4;font-size:.74rem}
.tv-daily-status{display:block;margin-top:.2rem;font-size:.65rem;line-height:1.4;color:var(--tv-muted)}
