/* Presentation-only motion. No business rules or data values live here. */
:root{--up:#ff929b;--down:#65c78c;--success:#65c78c;--danger:#ff929b;--motion-out:cubic-bezier(.16,1,.3,1)}
[data-theme=light]{--up:#b6323b;--down:#08785d;--success:#08785d;--danger:#b6323b}
*{scrollbar-width:thin;scrollbar-color:#8693a766 transparent}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#8693a766;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#8693a7aa}
body,aside,button,input,select,dialog,.panel,.metric-card,.kpi,.toolbar,th,td{transition:background-color .4s,color .4s,border-color .4s}
#content{opacity:1;transform:none;transition:opacity .3s ease,transform .3s var(--motion-out)}
#content.motion-exit{opacity:0;transform:translateX(-8px);will-change:transform,opacity;pointer-events:none}
#content.motion-filter-exit{opacity:0;transition-duration:.2s;pointer-events:none;will-change:opacity}
#content.motion-enter{opacity:0;transform:translateX(8px);transition:none}
#content.motion-first{opacity:0;transform:translateY(12px);transition:none}
.boot-line{position:fixed;inset:0 0 auto;height:2px;background:var(--purple);z-index:1000;transform:scaleX(0);transform-origin:left;transition:transform .8s ease,opacity .2s;pointer-events:none}
.boot-line.running{transform:scaleX(1)}.boot-line.complete{opacity:0}
.skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;transition:opacity .2s}.skeleton-card{background:var(--card);border-radius:12px;padding:28px;min-height:180px}.skeleton-block{display:block;background:var(--border);border-radius:6px;height:18px;margin:12px 0;animation:breathe .8s ease-in-out infinite alternate}.skeleton-block.number{height:44px;max-width:200px}.skeleton-grid.leaving{opacity:0}
@keyframes breathe{to{opacity:.4}}
.metric-card,.kpi{position:relative;transition:transform .3s ease-out,background-color .4s,color .4s}
.metric-card::after,.kpi::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 10px 24px #0003;opacity:0;pointer-events:none;transition:opacity .3s}
@media(hover:hover){button.metric-card:hover,.kpi:hover{transform:translateY(-2px);transition-duration:.2s}button.metric-card:hover::after,.kpi:hover::after{opacity:1}}
button:active,.metric-card:active,.kpi:active{transform:scale(.98);transition:transform .15s}
.count-value{display:inline-block;font-variant-numeric:tabular-nums;animation:number-in .3s ease}
@keyframes number-in{from{opacity:0}to{opacity:1}}
.delta-arrow{display:inline-block;animation:arrow-in .4s ease-out;transform-origin:center}.delta-arrow.pulse{animation:arrow-in .4s ease-out,arrow-pulse .2s ease-in-out .4s 2}
@keyframes arrow-in{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}@keyframes arrow-pulse{50%{transform:scale(1.15)}}
.delta.up{color:var(--up)}.delta.down{color:var(--down)}
.prior-value{font-size:12px;color:var(--muted);margin-top:8px;animation:number-in .3s}.period-switch{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-left:auto}.switch-track{display:inline-block;width:38px;height:22px;background:var(--border);border-radius:12px;padding:3px}.switch-track::after{content:"";display:block;width:16px;height:16px;background:var(--text);border-radius:50%;transition:transform .3s var(--motion-out)}[aria-checked=true] .switch-track{background:var(--purple)}[aria-checked=true] .switch-track::after{transform:translateX(16px);background:var(--bg)}
.interactive-chart{position:relative;min-width:0;margin:12px 0}.chart-canvas{height:260px;width:100%;min-width:0}.chart-actions{display:flex;justify-content:flex-end;gap:6px;min-height:36px}.chart-actions button{min-width:36px;min-height:36px;padding:6px}.chart-ring .chart-canvas{height:165px}.chart-ring{flex:1;min-width:140px}.chart-caption{font-size:12px;color:var(--muted);text-align:center}.chart-table{margin-top:8px}.chart-table summary{font-size:12px;color:var(--muted)}
.empty-visual{display:block;position:relative;width:44px;height:36px;margin:0 auto 16px;border:2px solid var(--muted);border-radius:6px;opacity:.7}.empty-visual::before{content:"";position:absolute;width:22px;height:2px;background:var(--muted);inset:12px auto auto 9px;box-shadow:0 8px var(--muted)}.empty{color:var(--muted);font-size:14px;line-height:1.8;padding:32px 16px}.empty p{margin:8px 0 16px}
.quick-dates{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.quick-dates button{min-height:40px;position:relative}.quick-dates button[aria-pressed=true]::after{content:"";position:absolute;inset:auto 10px 3px;height:2px;background:var(--purple)}
.calendar-panel{position:fixed;z-index:20;width:300px;max-width:calc(100vw - 24px);padding:16px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px #0004;opacity:1;transform:none;transition:opacity .25s,transform .25s var(--motion-out)}.calendar-panel.entering,.calendar-panel.leaving{opacity:0;transform:translateY(-8px)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.calendar-head button{min-height:40px;min-width:40px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-grid button{padding:5px 0;min-height:36px;border:0;border-radius:8px}.calendar-grid button:hover{background:var(--stage-hover)}.calendar-grid button[aria-pressed=true]{background:var(--purple);color:var(--bg)}.calendar-grid span{text-align:center;font-size:12px;color:var(--muted)}
.dropzone{position:relative;transition:background-color .2s,border-color .2s}.dropzone.drag-active{border:2px dashed var(--purple);background:var(--stage-hover)}.dropzone.file-received .upload-icon{animation:file-in .4s ease-out}@keyframes file-in{from{transform:translateY(-24px) scale(.7);opacity:0}to{transform:none;opacity:1}}
.upload-state{display:flex;gap:12px;align-items:center;padding:12px;margin:12px 0;border-radius:8px;background:var(--stage-soft);font-size:13px}.loading-ring{width:24px;height:24px;display:inline-block;flex-shrink:0;border:2px solid var(--border);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.upload-state.done .loading-ring{animation:none;border:0;border-radius:0;color:var(--up)}.upload-state.done .loading-ring::after{content:'✓';font-size:24px;animation:arrow-in .3s}.upload-state.failed{color:var(--down)}@keyframes spin{to{transform:rotate(360deg)}}
.upload-summary{display:flex;gap:16px;flex-wrap:wrap;padding:16px 0}.upload-summary>div{animation:conclusion-in .3s both;animation-delay:var(--delay,0ms)}.upload-summary small{display:block;color:var(--muted)}
#toast{top:20px;right:20px;bottom:auto;left:auto;max-width:min(440px,calc(100vw - 40px));transform:translateX(24px);opacity:0;transition:transform .25s,opacity .25s;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:0 12px 32px #0004;z-index:1001;pointer-events:none;display:flex;align-items:center;gap:10px}#toast.show{opacity:1;transform:none;pointer-events:auto}#toast .toast-icon{color:var(--up)}#toast.error .toast-icon{color:var(--down)}#toast button{white-space:nowrap}
.action-card{position:relative;border-left:0!important;transition:background-color .2s;animation:conclusion-in .3s both;animation-delay:var(--delay,0ms)}.action-card::before{content:"";position:absolute;inset:14px auto 14px 0;width:2px;background:#d9b56b;transform-origin:left;transition:transform .2s}.action-card:hover::before{transform:scaleX(2)}.action-card:hover{background:var(--stage-hover)}@keyframes conclusion-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.motion-summary{display:flex;align-items:center;gap:10px}.motion-summary::marker{content:""}.motion-summary::after{content:'⌄';margin-left:auto;transition:transform .3s}details[open]>.motion-summary::after{transform:rotate(180deg)}.fold-body{opacity:1;transform:none;transform-origin:top;transition:opacity .3s,transform .3s}.fold-body.fold-hidden{opacity:0;transform:translateY(-6px)}
.shortcut-hint{font-size:11px;color:var(--muted);flex-basis:100%}footer{flex-wrap:wrap}.async-indicator{position:fixed;bottom:20px;right:20px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:8px;z-index:30;font-size:12px}.async-indicator[hidden]{display:none}.async-indicator .loading-ring{width:16px;height:16px}button.exporting,a.exporting{pointer-events:none;opacity:.7}.exporting::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:6px;animation:spin .8s linear infinite}
#themeToggle{display:inline-flex;gap:6px;align-items:center;min-height:40px}
/* Static geometry inspired by the supplied stage reference; never intercepts input. */
body{isolation:isolate}main{position:relative;z-index:1}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('/stage-orbit.svg') no-repeat 65% 65%;background-size:max(1300px,100vw) auto;opacity:0;transition:opacity .4s}
[data-stage=on]:not([data-theme=light]){--bg:#0b0e14;--side:#111722;--card:#1b2436}
[data-stage=on] body::before{opacity:.64}
[data-theme=light][data-stage=on] body::before{opacity:.12}
#stageToggle{min-height:40px;font-size:12px}
.daily-delivery{padding:20px 0;margin:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.daily-delivery h3{font-size:17px;margin:0 0 8px}.daily-delivery-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.daily-delivery-controls label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.daily-delivery-controls input,.daily-delivery-controls button,.daily-download{min-height:44px}.daily-download{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:8px}
#toast .toast-icon,.upload-state.done .loading-ring{color:var(--success)}#toast.error .toast-icon,.upload-state.failed{color:var(--danger)}
@media(max-width:700px){[data-stage=on] body::before{opacity:.4;background-position:55% 30%}.daily-delivery-controls>*{flex:1;min-width:130px}}
@media(max-width:700px){.chart-canvas{height:230px}.skeleton-card{padding:16px}.calendar-panel{max-width:calc(100vw - 24px)}.period-switch{margin-left:0}.chart-actions button{min-height:40px;min-width:40px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}#content.motion-exit,#content.motion-enter,#content.motion-first,.fold-body.fold-hidden,.calendar-panel.entering,.calendar-panel.leaving{transform:none}.loading-ring{animation:none!important}}
:root .connections-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
:root .connections-grid>.span12,:root .connections-grid>.warn-box{grid-column:1/-1}
@media(max-width:1100px){:root .connections-grid{grid-template-columns:minmax(0,1fr)}:root .connections-grid>*{grid-column:1/-1}}
