:root{--ground: #0e1823;--panel: #152232;--plot: #111d2b;--track: #22344a;--time: #35587a;--deep: #3f86a3;--teal: #005470;--text: #e8edf3;--soft: #c3cedb;--muted: #a3b2c4;--faint: #7d90a8;--ok: #5fa8c2;--warning: #d9a63c;--warning-light: #ebd49f;--critical: #f0866b;--critical-light: #f8c3b5;--display: "Bricolage Grotesque", sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--text);font-family:Hanken Grotesk,sans-serif;font-variant-numeric:tabular-nums;overflow:hidden}body.idle{cursor:none}a{color:inherit;text-decoration:none}h2{margin:0;font-size:28px;font-weight:600}h2.sm{font-size:24px}h3{margin:0;font-size:22px;font-weight:600;color:var(--soft)}.viewport{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center}.screen{width:1920px;height:1080px;flex:none;transform-origin:center}.page{width:1920px;height:1080px;padding:56px 72px;display:flex;flex-direction:column;gap:24px}.page.dense{gap:20px}.header{display:flex;align-items:center;justify-content:space-between;height:64px;flex:none}.header-title,.header-right,.clock{display:flex;align-items:baseline;gap:20px;white-space:nowrap}.header-right{align-items:center;gap:28px}.logo{height:44px;width:auto;color:#fff;align-self:center;margin-right:4px}.logo.large{height:72px;align-self:auto}.view-title{font-size:28px;font-weight:600}.view-subtitle{font-size:24px;color:var(--muted)}.clock{gap:14px}.clock .date{font-size:22px;color:var(--muted)}.clock .time{font-family:var(--display);font-size:48px;font-weight:600;letter-spacing:-.02em}.warning-text{color:var(--warning-light)}.critical-text{color:var(--critical-light)}.nav{display:flex;gap:2px;padding:4px;border-radius:10px;background:var(--panel);transition:opacity .4s}.nav a{padding:8px 16px;border-radius:7px;color:var(--muted);font-size:20px;font-weight:600}.nav a.active{background:var(--teal);color:#fff}.idle .nav{opacity:0;pointer-events:none}.footer{display:flex;justify-content:space-between;font-size:18px;color:var(--faint);flex:none}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;min-height:0}.dense .grid{gap:20px}.overview-grid{flex:1;grid-template-rows:440px minmax(0,1fr)}.grow{flex:1;min-height:0}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:span 12}.column{display:flex;flex-direction:column;gap:24px;min-height:0}.dense .column{gap:20px}.panel{background:var(--panel);border-radius:16px;padding:30px 36px;display:flex;flex-direction:column;gap:18px;min-height:0}.panel.tight-panel{padding:20px 28px;gap:12px}.panel.clip{overflow:hidden}.panel-head,.row-between{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.row-between{align-items:center}.row-between.baseline{align-items:baseline}.spread{display:flex;flex-direction:column;justify-content:space-between}.spread-even{display:flex;flex-direction:column;justify-content:space-evenly}.panel.spread{justify-content:space-between}.stack{display:flex;flex-direction:column}.stack-6{display:flex;flex-direction:column;gap:6px}.stack-12{display:flex;flex-direction:column;gap:12px}.stack-14{display:flex;flex-direction:column;gap:14px}.push-down{margin-top:auto}.muted{font-size:20px;color:var(--muted)}.soft{font-size:21px;color:var(--soft)}.strong{font-weight:600;font-size:21px}.right{text-align:right}.lg,.muted.lg{font-size:22px}.figure{display:flex;align-items:baseline;gap:14px;white-space:nowrap}.figure.tight{gap:10px}.number{font-family:var(--display);font-weight:600;letter-spacing:-.03em;line-height:1}.number.xl{font-size:80px;letter-spacing:-.04em;line-height:.9}.number.lg{font-size:64px}.number.md{font-size:44px}.number.sm{font-size:30px;letter-spacing:-.01em}.muted-number{color:var(--muted)}.track{height:8px;border-radius:4px;background:var(--track)}.track.thick{height:12px;border-radius:6px}.fill{height:100%;border-radius:inherit;background:var(--ok)}.fill.deep{background:var(--deep)}.fill.behind{background:var(--warning)}.goal-track{position:relative;height:12px;border-radius:6px}.goal-track.labelled{margin-top:30px}.goal-mark{position:absolute;top:-7px;width:3px;height:26px;margin-left:-1px;border-radius:2px;background:var(--text)}.goal-mark.static{position:static;display:inline-block;height:22px;margin:0}.goal-mark-label{position:absolute;bottom:24px;transform:translate(-50%);font-size:20px;color:var(--soft);white-space:nowrap}.legend-mark{display:flex;align-items:center;gap:10px;font-size:20px;color:var(--soft)}.goal-steps{position:relative;display:flex;gap:8px}.goal-steps span:not(.goal-mark){flex:1;height:12px;border-radius:6px;background:var(--track)}.goal-steps span.done{background:var(--ok)}.ok-dot{width:12px;height:12px;border-radius:6px;background:var(--ok);display:inline-block;flex:none}.legend{display:flex;gap:24px;font-size:20px;color:var(--soft)}.legend>span{display:flex;align-items:center;gap:10px}.swatch-line{display:inline-block;width:20px;height:4px;border-radius:2px}.swatch-square{width:14px;height:14px;border-radius:3px}.weeks{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:10px}.week-bars,.week-labels{padding-right:100px}.week-bars{display:flex;align-items:flex-end;gap:14px;position:relative}.target-line,.low-line{position:absolute;left:0;right:100px;height:2px;background:#e8edf366}.low-line{height:0;background:none;border-top:2px dashed var(--warning);opacity:.8}.target-label,.low-label{position:absolute;right:0;transform:translateY(50%);font-size:20px;line-height:1;color:var(--soft)}.low-label{color:var(--warning-light)}.week-bar{flex:1;border-radius:4px;display:flex;justify-content:center;padding-top:8px;font-size:20px;font-weight:700;color:var(--ground)}.week-bar.good{background:var(--ok)}.week-bar.mid{background:var(--time);color:#fff}.week-bar.low{background:var(--warning)}.week-labels{display:flex;gap:14px}.week-labels span{flex:1;text-align:center;font-size:20px;color:var(--muted)}.week-labels .current{color:#fff;font-weight:700}.deal-row{display:grid;grid-template-columns:minmax(0,1fr) 50px 70px 100px;align-items:center;column-gap:14px;white-space:nowrap}.deal-row>span:first-child{overflow:hidden;text-overflow:ellipsis}.probability{height:8px;border-radius:4px;background:var(--track)}.probability div{height:100%;border-radius:inherit;background:var(--soft)}.capacity{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px;min-height:0}.capacity-bar{display:flex;flex-direction:column;gap:10px}.unplanned-list{margin-top:4px}.ending-row{display:grid;grid-template-columns:70px minmax(0,1fr) 90px;align-items:center;column-gap:14px;white-space:nowrap}.ending-row>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.week-chip{padding:4px 0;border-radius:8px;background:var(--track);font-size:20px;font-weight:600;text-align:center}.budget-line>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.goal-title{font-size:22px;margin-top:-8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.key-result{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;column-gap:20px;white-space:nowrap}.key-result>span:first-child{overflow:hidden;text-overflow:ellipsis}.stack-10{display:flex;flex-direction:column;gap:10px}.comparison{display:flex;align-items:baseline;gap:10px;font-size:22px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comparison-arrow{font-size:18px;color:var(--muted)}.comparison-arrow.up{color:var(--ok)}.fill.previous{background:var(--faint)}.budget-line{display:grid;grid-template-columns:28px minmax(0,1fr) 90px;align-items:center;column-gap:16px;white-space:nowrap}.budget-line.quiet{grid-template-columns:28px minmax(0,1fr)}.budget-line.quiet .ok-dot{margin-left:8px}.burnup-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:16px}.burnup{background:var(--plot);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-height:0}.burnup-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;white-space:nowrap}.burnup-chart{flex:1;min-height:0;width:100%;overflow:visible}.burnup-budget{stroke:var(--muted);stroke-width:2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.burnup-forecast{stroke-width:2.5;stroke-opacity:.7;stroke-dasharray:2 6;stroke-linecap:round;vector-effect:non-scaling-stroke}.burnup-over{fill:var(--critical);fill-opacity:.22}.burnup-actual{fill:none;stroke-width:3.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}.burnup .strong{font-size:20px}.burnup .number.sm{font-size:28px}.burnup-foot{display:flex;justify-content:space-between;gap:8px;font-size:20px;color:var(--soft);white-space:nowrap}.scatter{flex:1;display:flex;gap:12px;min-height:0;margin-top:8px}.scatter-y{display:flex;flex-direction:column;justify-content:space-between;width:56px;margin-top:-12px;padding-bottom:38px;font-size:20px;color:var(--muted);text-align:right}.scatter-main{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.scatter-plot{flex:1;position:relative;border-radius:8px;background:var(--plot);overflow:hidden}.scatter-plot svg{position:absolute;inset:0;width:100%;height:100%}.ahead-area{fill:var(--warning);fill-opacity:.1}.over-area{fill:var(--critical);fill-opacity:.12}.grid-line{stroke:var(--text);stroke-opacity:.07;stroke-width:1;vector-effect:non-scaling-stroke}.diagonal{stroke:var(--text);stroke-opacity:.55;stroke-width:2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.zone-legend{margin-top:14px;padding-left:68px}.zone-swatch{width:22px;height:22px;border-radius:5px}.zone-swatch.over{background:#f0866b59}.zone-swatch.ahead{background:#d9a63c4d}.point-dot{position:absolute;width:18px;height:18px;border-radius:9px;box-shadow:0 0 0 4px var(--plot);transform:translate(-50%,50%)}.point-label{position:absolute;font-size:20px;white-space:nowrap;transform:translateY(50%)}.point-label.left{transform:translate(-100%,50%)}.scatter-x{display:flex;justify-content:space-between;font-size:20px;color:var(--muted)}.burnup-plot{position:relative;flex:1;min-height:0}.burnup-plot .burnup-chart{position:absolute;inset:0;height:100%}.burnup-now,.burnup-end{position:absolute;width:14px;height:14px;border-radius:7px;transform:translate(-50%,-50%)}.burnup-now{box-shadow:0 0 0 3px var(--panel)}.burnup-end{border:2.5px solid;background:var(--panel)}.burnup-today{stroke:var(--text);stroke-opacity:.85;stroke-width:3;vector-effect:non-scaling-stroke}.sankey{position:relative;align-self:center}.sankey svg{position:absolute;inset:0}.sankey-node{position:absolute;width:12px;border-radius:3px}.sankey-label{position:absolute;width:252px;display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}.sankey-label.right-aligned{text-align:right}.diverging{position:relative;height:12px}.diverging:before{content:"";position:absolute;left:50%;top:-6px;bottom:-6px;width:2px;background:#e8edf359}.diverging-bar{position:absolute;top:0;height:12px;border-radius:3px}.diverging-bar.up{left:50%;background:var(--ok)}.diverging-bar.down{right:50%;background:var(--faint)}.change-row{display:grid;grid-template-columns:14px minmax(0,1fr) 100px 70px;column-gap:14px;align-items:center;white-space:nowrap}.change-row>span{font-size:20px}.alarms{display:flex;flex-direction:column;gap:10px;flex:none}.alarm{display:grid;grid-template-columns:30px 150px minmax(0,1fr) 420px 240px;align-items:center;column-gap:22px;padding:20px 30px;border-radius:14px;white-space:nowrap}.alarm.critical{background:var(--critical);color:#2a0f08;animation:alarm-pulse 2s ease-in-out infinite}.alarm.critical .alarm-title,.alarm.critical .alarm-since .number{color:#1a0904}.alarm.critical svg circle:first-child{fill:#1a0904}.alarm.critical svg rect,.alarm.critical svg circle:last-child{fill:var(--critical)}.alarm.warning{background:#d9a63c2e;color:#ebddba}.alarm.warning .alarm-level{color:var(--warning-light)}.alarm-level{font-size:24px;font-weight:700}.alarm-title{font-size:28px;color:var(--text)}.alarm-title .strong{font-size:28px;font-weight:700}.alarm-detail,.alarm-since{font-size:22px;text-align:right}.alarm-since .number{color:#fff}@keyframes alarm-pulse{0%,to{opacity:1}50%{opacity:.72}}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;flex:none}.kpi{background:var(--panel);border-radius:16px;padding:20px 28px;display:flex;flex-direction:column;gap:6px}.app-row{display:grid;grid-template-columns:26px minmax(0,1fr) 150px 90px 140px 120px 140px;column-gap:18px;align-items:center}.icon-cell{display:flex;align-items:center}.app-row>span{white-space:nowrap}.app-row>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.app-row.head span{font-size:20px;color:var(--muted)}.fail-bars{position:relative;flex:1;min-height:0;display:flex;align-items:flex-end;gap:5px}.fail-bar{flex:1;border-radius:2px}.threshold-bar{position:absolute;left:0;right:0;border-top:2px dashed;opacity:.8}.threshold-bar.critical{border-color:var(--critical)}.threshold-bar.warning{border-color:var(--warning)}.latency-panel{flex:1.25}.latency{flex:1;min-height:0;position:relative}.latency svg{position:absolute;inset:0;width:100%;height:100%}.threshold{stroke-width:2;stroke-dasharray:6 6;stroke-opacity:.85;vector-effect:non-scaling-stroke}.threshold.critical{stroke:var(--critical)}.threshold.warning{stroke:var(--warning)}.axis-line{stroke:var(--text);stroke-opacity:.15;stroke-width:1;vector-effect:non-scaling-stroke}.series{fill:none;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke}.series.ok{stroke:var(--ok)}.series.warning{stroke:var(--warning)}.threshold-label{position:absolute;left:4px;font-size:18px}.time-axis{position:relative;height:24px;font-size:20px;color:var(--muted)}.time-axis span{position:absolute;transform:translate(-50%)}.time-axis .now{right:0;transform:none}.login{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.login p{margin:0 0 24px;font-size:24px;color:var(--muted)}.login button{padding:14px 32px;border:0;border-radius:10px;background:var(--teal);color:#fff;font:inherit;font-size:20px;font-weight:600;cursor:pointer}@media(prefers-reduced-motion){.alarm.critical{animation:none}}.viewport{position:relative;overflow:hidden}.viewport:before{content:"";position:absolute;inset:-20%;background:radial-gradient(40% 50% at 20% 15%,rgb(0 84 112 / .32),transparent 70%),radial-gradient(35% 45% at 85% 90%,rgb(63 134 163 / .16),transparent 70%);pointer-events:none}.screen{position:relative}.panel,.kpi{background:linear-gradient(180deg,#1a2a3d 0%,var(--panel) 120px);box-shadow:0 1px #ffffff0a inset,0 18px 40px -24px #0009}.fill,.goal-steps span.done,.week-bar.good{background:linear-gradient(90deg,var(--deep),var(--ok))}.week-bar.good{background:linear-gradient(0deg,var(--deep),#74bdd6)}.fill.deep{background:linear-gradient(90deg,var(--teal),var(--deep));box-shadow:none}.fill.behind,.week-bar.low{background:linear-gradient(90deg,#b7862a,var(--warning))}.week-bar.low{background:linear-gradient(0deg,#b7862a,#e6b85a)}.live-chip{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ok)}.live-chip.offline{color:var(--critical)}.live-dot{position:relative;width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor}.live-dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;animation:live-ring 2s ease-out infinite}.live-chip.offline .live-dot:after{animation:none}@keyframes live-ring{0%{transform:scale(1);opacity:.7}to{transform:scale(3.4);opacity:0}}.clock .colon{animation:blink 2s steps(1) infinite}@keyframes blink{50%{opacity:.2}}.footer-live{display:flex;align-items:center;gap:16px}.footer-live.offline{color:var(--critical)}.refresh{width:180px;height:4px;border-radius:2px;background:var(--track);overflow:hidden}.refresh span{display:block;height:100%;background:var(--ok);transform-origin:left;animation:refresh linear both}@keyframes refresh{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.page>.grid>*,.page>.grid>.column>*,.alarms>*,.kpi-row>*{animation:fade .6s ease both}.page>.grid>:nth-child(2),.kpi-row>:nth-child(2),.alarms>:nth-child(2){animation-delay:80ms}.page>.grid>:nth-child(3),.kpi-row>:nth-child(3),.column>:nth-child(2){animation-delay:.16s}.page>.grid>:nth-child(4),.kpi-row>:nth-child(4),.column>:nth-child(3){animation-delay:.24s}.page>.grid>:nth-child(5){animation-delay:.32s}@keyframes fade{0%{opacity:0}}.week-bar,.fail-bar{transform-origin:bottom;animation:grow-y .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.3s + var(--i, 0) * 50ms);transition:height .8s ease,background-color .4s}.fail-bar{animation-delay:calc(.3s + var(--i, 0) * 25ms)}.week-bar span{animation:fade .4s ease 1.1s both}@keyframes grow-y{0%{transform:scaleY(0)}}.fill,.probability div,.goal-steps span.done,.diverging-bar{transform-origin:left;animation:grow-x 1.1s cubic-bezier(.2,.8,.2,1) .35s both;transition:width .8s ease}.diverging-bar.down{transform-origin:right}@keyframes grow-x{0%{transform:scaleX(0)}}.burnup-chart,.burnup-end,.point-label,.latency svg,.app-row svg,.sankey svg,.sankey-node,.sankey-label{animation:fade .9s ease .4s both}.point-dot{animation:pop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(.5s + var(--i, 0) * 70ms)}.burnup-now{animation:pop .5s cubic-bezier(.3,1.6,.5,1) 1.1s both}@keyframes pop{0%{transform:scale(0)}}.fail-bar:last-child{animation:grow-y .9s cubic-bezier(.2,.8,.2,1) .9s both,breathe 2s ease-in-out 1.8s infinite}@keyframes breathe{50%{opacity:.55}}@media(prefers-reduced-motion){*,*:before,*:after{animation:none!important;transition:none!important}}.panel,.kpi,.burnup,.alarm{overflow:hidden;min-width:0}.panel *,.kpi *,.burnup *{min-width:0}.panel-head.hero{align-items:center;margin-block:-18px}.burnup{background:linear-gradient(180deg,#1a2a3d 0%,var(--panel) 120px);box-shadow:0 1px #ffffff0a inset,0 18px 40px -24px #0009;border-radius:16px;padding:20px 22px;gap:12px}.burnup-head>.stack:first-child>span{overflow:hidden;text-overflow:ellipsis}.burnup-head>.right{flex:none}.burnup .number.sm{font-size:26px}.fill.behind{box-shadow:0 0 16px -4px #d9a63c99}.fail-bar.alarming:last-child{box-shadow:0 0 16px -4px #f0866bb3}.missing{display:flex;flex-direction:column;gap:12px;min-width:0}.missing>.soft{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.missing-dash{color:var(--faint)}.missing-view{justify-content:center;align-items:center}
