@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root,:root[data-theme=dark]{--font-sans:"Inter", "Roboto", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;--text-body:1rem;--text-dashboard:.9375rem;--text-page-title:2.1rem;--text-section-title:1.05rem;--text-helper:.8125rem;--text-table:.875rem;--text-kpi:1.625rem;--text-chart:.75rem;--leading-tight:1.14;--leading-title:1.2;--leading-body:1.55;--leading-table:1.45;--accent-amber:#f97316;--accent-blue:#f97316;--accent-green:#f5f5f5;--app-bg:#060606;--danger:#ff6b57;--input-bg:#111;--line:#272727;--line-soft:#ffffff14;--muted:#a3a3a3;--nav-active:#f97316;--panel-bg:#0d0d0d;--prediction:#f97316;--shadow:0 24px 70px #0000006b;--shadow-soft:0 14px 36px #0000003d;--sidebar-bg:#090909;--success:#f5f5f5;--surface:#141414;--surface-strong:#141414f0;--text:#f7f7f7;--warning:#f97316;color:var(--text);background:var(--app-bg);font-family:var(--font-sans);font-size:var(--text-body);font-synthesis:none;line-height:var(--leading-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light]{--accent-amber:#f97316;--accent-blue:#f97316;--accent-green:#111;--app-bg:#f4f4f4;--danger:#b42318;--input-bg:#fff;--line:#d8d8d8;--line-soft:#1111111a;--muted:#606060;--nav-active:#f97316;--panel-bg:#fff;--prediction:#f97316;--shadow:0 18px 42px #0000001f;--shadow-soft:0 8px 24px #0000000f;--sidebar-bg:#fff;--success:#111;--surface:#fff;--surface-strong:#fffffff0;--text:#111;--warning:#f97316}:root[data-theme=mono]{--accent-amber:#fff;--accent-blue:#fff;--accent-green:#fff;--app-bg:#000;--danger:#fff;--input-bg:#000;--line:#3a3a3a;--line-soft:#ffffff1a;--muted:#c9c9c9;--nav-active:#fff;--panel-bg:#080808;--prediction:#f97316;--shadow:0 24px 70px #0000008f;--shadow-soft:0 14px 36px #00000057;--sidebar-bg:#050505;--success:#fff;--surface:#101010;--surface-strong:#101010f0;--text:#fff;--warning:#f97316}html{background:var(--app-bg);font-family:var(--font-sans);font-size:100%}body{min-width:320px;min-height:100vh;font-family:var(--font-sans);font-size:var(--text-body);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1;line-height:var(--leading-body);margin:0}#root{min-height:100vh;font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1}button,input,select,textarea{font-family:var(--font-sans);font-size:inherit;font-synthesis:inherit}table,.table-text,.metric-card,.metric-card strong,.output-box strong,.line-chart,.line-chart text,.chart-label,.kpi-value,.numeric,.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1}.typography-page-title{font-size:var(--text-page-title);font-weight:700;line-height:var(--leading-tight)}.typography-section-title{font-size:var(--text-section-title);font-weight:700;line-height:var(--leading-title)}.typography-body{font-size:var(--text-body);font-weight:400;line-height:var(--leading-body)}.typography-helper{color:var(--muted);font-size:var(--text-helper);font-weight:500;line-height:1.45}.typography-table,.table-text{font-size:var(--text-table);font-weight:500;line-height:var(--leading-table)}.typography-kpi,.kpi-value{font-size:var(--text-kpi);font-weight:700;line-height:var(--leading-tight)}.typography-chart,.chart-label{font-size:var(--text-chart);font-weight:600;line-height:1.35}@media (width>=768px){:root,:root[data-theme=dark]{--text-body:1rem;--text-dashboard:.9375rem;--text-page-title:2rem;--text-section-title:1.0625rem;--text-table:.875rem;--text-kpi:1.6rem}}@media (width>=1180px){:root,:root[data-theme=dark]{--text-body:1rem;--text-dashboard:.9375rem;--text-page-title:2.1rem;--text-section-title:1.0625rem;--text-table:.875rem;--text-kpi:1.65rem}}@media (width<=580px){:root,:root[data-theme=dark]{--text-body:1rem;--text-dashboard:1rem;--text-page-title:1.7rem;--text-section-title:1rem;--text-table:.9375rem;--text-kpi:1.45rem}}:root,:root[data-theme=dark]{--kpi-orange:#d49030;--kpi-card-bg:var(--panel-bg);--kpi-chip-amber-bg:#2c1a06;--kpi-chip-amber-fg:#d4922c;--kpi-chip-blue-bg:#08182a;--kpi-chip-blue-fg:#5a9cd4;--kpi-chip-purple-bg:#110c2c;--kpi-chip-purple-fg:#8882dc;--kpi-chip-teal-bg:#061a14;--kpi-chip-teal-fg:#2cb896;--kpi-chip-gray-bg:#1c1c1a;--kpi-chip-gray-fg:#b0b0ae;--kpi-tone-neg-bg:#2c0808;--kpi-tone-neg-fg:#e07070;--kpi-tone-neg-val:#f5aaaa;--kpi-tone-pos-bg:#0a1a06;--kpi-tone-pos-fg:#80cc40;--kpi-tone-pos-val:#b0ee80;--kpi-tone-warn-bg:#2c1a06;--kpi-tone-warn-fg:#d4922c;--kpi-tone-warn-val:#ecc070;--kpi-tone-ntl-bg:#1c1c1a;--kpi-tone-ntl-fg:#b0b0ae;--kpi-tone-ntl-val:#d4d4d2}:root[data-theme=light]{--kpi-orange:#ba7517;--kpi-card-bg:#fff;--kpi-chip-amber-bg:#faeeda;--kpi-chip-amber-fg:#854f0b;--kpi-chip-blue-bg:#e6f1fb;--kpi-chip-blue-fg:#185fa5;--kpi-chip-purple-bg:#eeedfe;--kpi-chip-purple-fg:#3c3489;--kpi-chip-teal-bg:#e1f5ee;--kpi-chip-teal-fg:#0f6e56;--kpi-chip-gray-bg:#f1efe8;--kpi-chip-gray-fg:#5f5e5a;--kpi-tone-neg-bg:#fcebeb;--kpi-tone-neg-fg:#a32d2d;--kpi-tone-neg-val:#791f1f;--kpi-tone-pos-bg:#eaf3de;--kpi-tone-pos-fg:#3b6d11;--kpi-tone-pos-val:#27500a;--kpi-tone-warn-bg:#faeeda;--kpi-tone-warn-fg:#854f0b;--kpi-tone-warn-val:#633806;--kpi-tone-ntl-bg:#f1efe8;--kpi-tone-ntl-fg:#5f5e5a;--kpi-tone-ntl-val:#2c2c2a}:root[data-theme=mono]{--kpi-orange:#f97316;--kpi-card-bg:var(--panel-bg);--kpi-chip-amber-bg:#1e1400;--kpi-chip-amber-fg:#f97316;--kpi-chip-blue-bg:#181818;--kpi-chip-blue-fg:#c9c9c9;--kpi-chip-purple-bg:#181818;--kpi-chip-purple-fg:#c9c9c9;--kpi-chip-teal-bg:#181818;--kpi-chip-teal-fg:#c9c9c9;--kpi-chip-gray-bg:#181818;--kpi-chip-gray-fg:#c9c9c9;--kpi-tone-neg-bg:#181818;--kpi-tone-neg-fg:#e5e5e5;--kpi-tone-neg-val:#fff;--kpi-tone-pos-bg:#181818;--kpi-tone-pos-fg:#e5e5e5;--kpi-tone-pos-val:#fff;--kpi-tone-warn-bg:#1e1400;--kpi-tone-warn-fg:#f97316;--kpi-tone-warn-val:#f97316;--kpi-tone-ntl-bg:#181818;--kpi-tone-ntl-fg:#e5e5e5;--kpi-tone-ntl-val:#fff}.section-panel{background:var(--panel-bg);border:1px solid var(--line);border-radius:10px;padding:18px}.section-panel .bar-section{margin-top:0}.tab-section-panel{padding:0;overflow:hidden}.tab-section-panel .fd-tab-row{border-bottom:1px solid var(--line);margin-top:0;padding:0 18px}.tab-section-panel .fd-tab-content.active{padding:18px}.bar-tooltip{color:#fff;white-space:nowrap;pointer-events:none;z-index:20;background:#12161eed;border-radius:7px;padding:7px 12px;font-size:.72rem;font-weight:700;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 3px 12px #00000040}.bar-tooltip-date{opacity:.65;margin-bottom:3px;font-size:.68rem;font-weight:600}.bar-tooltip-val{color:#f2aa7a;font-size:.82rem;font-weight:800}.fd-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 0 16px;display:flex}.fd-header-left{align-items:center;gap:10px;display:flex}.fd-title{color:var(--text);margin:0;font-size:1.45rem;font-weight:700;line-height:1.14}.fd-badge{background:var(--surface);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700}.fd-updated{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:.78rem;display:flex}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.kpi-card{background:var(--kpi-card-bg);border:.5px solid var(--line);border-radius:12px;flex-direction:column;padding:1.25rem 1.5rem;display:flex}.kpi-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.kpi-card-title-group{flex-direction:column;gap:3px;min-width:0;display:flex}.kpi-card-title{color:var(--text);font-size:14px;font-weight:500;line-height:1.3}.kpi-card-subtitle{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;line-height:1.3}.kpi-icon-chip{border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.kpi-value-row{align-items:baseline;gap:6px;margin-bottom:12px;display:flex}.kpi-value{letter-spacing:-.025em;color:var(--kpi-orange);font-variant-numeric:tabular-nums;font-size:32px;font-weight:500;line-height:1}.kpi-unit{color:var(--muted);font-size:13px;font-weight:400}.kpi-delta{border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:4px 9px;display:inline-flex}.kpi-delta-value{font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.kpi-delta-label{font-size:11px;font-weight:400}.kpi-delta-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.kpi-progress{flex-direction:column;display:flex}.kpi-progress-track{background:var(--kpi-tone-ntl-bg);border-radius:999px;height:6px;overflow:hidden}.kpi-progress-fill{background:var(--kpi-orange);border-radius:999px;height:100%}.kpi-progress-labels{justify-content:space-between;margin-top:10px;display:flex}.kpi-progress-label{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.kpi-progress-remaining{color:var(--muted);font-variant-numeric:tabular-nums;opacity:.7;font-size:11px}.kpi-footer{border-top:.5px solid var(--line);justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;display:flex}.kpi-footer-left{color:var(--muted);font-size:10px;font-weight:400}.kpi-footer-right{color:var(--text);font-variant-numeric:tabular-nums;font-size:10px;font-weight:400}.bar-section{margin-top:22px}.bar-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.bar-section-title{color:var(--text);font-size:.9rem;font-weight:700}.month-nav{align-items:center;gap:6px;display:flex}.month-nav-btn{background:var(--surface);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:700;transition:border-color .15s,color .15s,background .15s}.month-nav-btn:hover{border-color:color-mix(in srgb, var(--prediction) 40%, var(--line));color:var(--text);background:var(--panel-bg)}.month-nav-label{color:var(--muted);text-align:center;min-width:68px;font-size:.78rem;font-weight:700}.bar-chart-wrap{height:150px;position:relative}.bar-chart-svg{width:100%;height:100%;display:block;overflow:visible}.fd-divider{background:var(--line);height:1px;margin:20px 0 0}.fd-tab-row{border-bottom:1px solid var(--line);gap:0;margin-top:0;display:flex}.fd-tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 22px;font-size:.84rem;font-weight:700;transition:color .15s;display:flex}.fd-tab:hover{color:var(--text)}.fd-tab.active{color:var(--text);border-bottom-color:var(--prediction)}.fd-tab-content{padding-top:18px;display:none}.fd-tab-content.active{display:block}.chart-pills{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.chart-pill{cursor:pointer;border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:4px 14px;font-size:.75rem;font-weight:700;transition:all .15s}.chart-pill:hover:not(.active){border-color:color-mix(in srgb, var(--prediction) 40%, var(--line));color:var(--text)}.chart-pill.active{background:var(--prediction);color:var(--button-text);border-color:var(--prediction)}.chart-card{background:var(--panel-bg);border:1px solid var(--line);border-radius:8px;padding:16px 16px 12px}.chart-card-label{color:var(--muted);margin-bottom:10px;font-size:.72rem;font-weight:600}.line-chart-wrap{height:200px;position:relative}.line-chart-svg{width:100%;height:100%;display:block;overflow:visible}.chart-legend{gap:18px;margin-top:10px;padding:0 4px;display:flex}.legend-item{color:var(--muted);align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.legend-line{border-radius:2px;flex:none;width:22px;height:2px}.legend-line.dashed{background:0 0;border-top:2px dashed;height:0}.info-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.info-chip{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:.72rem;font-weight:700;display:flex}.manual-run-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=1024px){.manual-run-grid{grid-template-columns:1fr}}.inf-card{background:var(--panel-bg);border:1px solid var(--line);border-radius:8px;padding:18px}.inf-card-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-size:.72rem;font-weight:700}.horizon-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.horizon-opt{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:8px;padding:10px 12px;transition:border-color .15s,background .15s}.horizon-opt:hover{border-color:color-mix(in srgb, var(--prediction) 42%, var(--line))}.horizon-opt.selected{border-color:var(--prediction);background:color-mix(in srgb, var(--prediction) 10%, var(--surface));box-shadow:0 0 0 1px var(--prediction)}.horizon-opt h4{color:var(--text);margin:0 0 2px;font-size:.84rem;font-weight:700}.horizon-opt p{color:var(--muted);margin:0;font-size:.72rem;font-weight:600}.date-range-row{align-items:center;gap:8px;margin-top:12px;transition:opacity .2s;display:flex}.date-range-row input{flex:1;font-size:.78rem}.date-sep{color:var(--muted);flex:none;font-size:.75rem}.regime-legend{flex-wrap:wrap;justify-content:center;gap:16px;padding:4px 0 8px;display:flex}.regime-legend-item{color:var(--muted,#888);letter-spacing:.02em;text-transform:capitalize;align-items:center;gap:5px;font-size:11px;display:flex}.regime-swatch{opacity:.8;border-radius:3px;flex-shrink:0;width:12px;height:12px}.regime-swatch--CLEAR{background:#38bdf8}.regime-swatch--PARTLY_CLOUDY{background:#65a30d}.regime-swatch--RAMP{background:#f97316}.regime-swatch--MONSOON{background:#6366f1}.regime-badge{letter-spacing:.03em;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.regime-badge--CLEAR{color:#0284c7;background:#38bdf82e}.regime-badge--PARTLY_CLOUDY{color:#3f6212;background:#65a30d2e}.regime-badge--RAMP{color:#c2410c;background:#f973162e}.regime-badge--MONSOON{color:#4338ca;background:#6366f12e}.run-inference-btn{background:var(--prediction);width:100%;color:var(--button-text);cursor:pointer;box-shadow:0 8px 20px color-mix(in srgb, var(--prediction) 32%, transparent);border:none;border-radius:8px;justify-content:center;align-items:center;gap:7px;margin-top:14px;padding:11px 16px;font-size:.84rem;font-weight:700;transition:background .15s,transform .12s,box-shadow .15s;display:flex}.run-inference-btn:hover{background:color-mix(in srgb, var(--prediction) 85%, black);transform:translateY(-1px)}.run-inference-btn:active{transform:scale(.98)}.run-inference-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.training-note{text-align:center;color:var(--muted);justify-content:center;align-items:center;gap:5px;margin-top:10px;font-size:.72rem;font-weight:600;display:flex}.plant-img-card{border:1px solid var(--line);background:var(--panel-bg);border-radius:8px;flex-direction:column;min-height:280px;display:flex;position:relative;overflow:hidden}.plant-img-card img{object-fit:cover;flex:1;width:100%;height:100%;min-height:280px;display:block}.plant-img-fallback{min-height:280px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.plant-img-fallback svg{opacity:.4}.plant-img-overlay{background:linear-gradient(#0000,#000000bf);padding:12px 16px;position:absolute;bottom:0;left:0;right:0}.plant-img-name{color:#fff;font-size:.9rem;font-weight:700}.plant-img-meta{color:#ffffffb3;margin-top:2px;font-size:.72rem;font-weight:600}.daily-prod-card{background:var(--kpi-card-bg);border:.5px solid var(--line);border-radius:12px;flex-direction:column;padding:1.25rem 1.5rem;display:flex}.daily-prod-title{text-align:center;color:var(--text);margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.daily-prod-date-box{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--text);border-radius:8px;align-items:center;padding:0 20px;font-size:.84rem;font-weight:700;display:inline-flex}.daily-prod-nav{justify-content:center;align-items:center;gap:8px;display:flex}.daily-prod-nav-pill{color:var(--text);white-space:nowrap;align-items:center;padding:0 12px;font-size:.84rem;font-weight:700;display:inline-flex}.daily-prod-legend{flex-shrink:0;align-items:center;gap:12px;display:flex}.daily-prod-legend-item{color:var(--muted);align-items:center;gap:5px;font-size:11px;font-weight:400;display:flex}.daily-prod-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.daily-prod-chart-wrap{height:260px;position:relative}.daily-prod-chart-svg{width:100%;height:100%;display:block;overflow:visible}.daily-prod-footer{border-top:.5px solid var(--line);justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;display:flex}.daily-prod-footer-left{color:var(--muted);font-size:10px;font-weight:400}.daily-prod-footer-right{color:var(--text);font-variant-numeric:tabular-nums;font-size:10px;font-weight:400}.daily-prod-tooltip{color:#fff;white-space:nowrap;pointer-events:none;z-index:20;background:#2c2c2a;border-radius:7px;padding:7px 12px;font-size:.72rem;font-weight:700;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 3px 12px #0000004d}.daily-prod-tooltip-date{opacity:.65;margin-bottom:3px;font-size:.68rem;font-weight:500}.daily-prod-tooltip-val{color:#ba7517;font-size:.82rem;font-weight:700}:root,:root[data-theme=dark]{--accent-amber:#f97316;--accent-blue:#f97316;--accent-green:#f5f5f5;--app-bg:#0b1117;--button-text:#111;--chart-actual:#f8fafc;--chart-axis:#d6dee7;--chart-bg:#111820;--chart-enhanced:#fb923c;--chart-grid:#2b3745;--code-bg:#0f1720;--code-text:#fff;--control-active-bg:#263544;--control-active-border:#3a4a5a;--control-active-muted:#d0d7df;--control-active-text:#fff;--control-strong-bg:#f97316;--control-strong-border:#f97316;--control-strong-text:#111;--danger:#ff6b57;--input-bg:#111820;--line:#263544;--line-soft:#ffffff14;--muted:#9aa8b7;--nav-active:#f97316;--panel-bg:#111820;--deviation:#38bdf8;--prediction:#f97316;--shadow:0 24px 70px #0000006b;--shadow-soft:0 14px 36px #0000003d;--sidebar-bg:#0e151d;--success:#f5f5f5;--surface:#17212b;--surface-strong:#17212bf0;--text:#f3f6f9;--warning:#f97316;color:var(--text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}:root[data-theme=light]{--accent-amber:#f97316;--accent-blue:#f97316;--accent-green:#344054;--app-bg:#e8edf3;--button-text:#1f2937;--chart-actual:#344054;--chart-axis:#344054;--chart-bg:#f8fafc;--chart-enhanced:#c0560b;--chart-grid:#d9e0e8;--code-bg:#e4e9f0;--code-text:#1f2937;--control-active-bg:#475467;--control-active-border:#344054;--control-active-muted:#e5e7eb;--control-active-text:#fff;--control-strong-bg:#667085;--control-strong-border:#475467;--control-strong-text:#fff;--danger:#b42318;--input-bg:#f8fafc;--line:#c4ccd6;--line-soft:#3440541a;--muted:#667085;--nav-active:#f97316;--panel-bg:#fbfcfe;--prediction:#f97316;--shadow:0 18px 42px #3440541f;--shadow-soft:0 8px 24px #34405412;--sidebar-bg:#f8fafc;--success:#344054;--surface:#f1f4f8;--surface-strong:#fffffff0;--text:#1f2937;--warning:#f97316}:root[data-theme=mono]{--accent-amber:#fff;--accent-blue:#fff;--accent-green:#fff;--app-bg:#0b0b0b;--button-text:#111;--chart-actual:#f5f5f5;--chart-axis:#f5f5f5;--chart-bg:#151515;--chart-enhanced:#d9d9d9;--chart-grid:#3f3f3f;--code-bg:#181818;--code-text:#fff;--control-active-bg:#e5e5e5;--control-active-border:#f5f5f5;--control-active-muted:#222;--control-active-text:#000;--control-strong-bg:#d4d4d4;--control-strong-border:#e5e5e5;--control-strong-text:#000;--danger:#fff;--input-bg:#101010;--line:#484848;--line-soft:#ffffff1a;--muted:#c9c9c9;--nav-active:#fff;--panel-bg:#121212;--prediction:#f97316;--shadow:0 24px 70px #0000008f;--shadow-soft:0 14px 36px #00000057;--sidebar-bg:#101010;--success:#fff;--surface:#1c1c1c;--surface-strong:#1c1c1cf0;--text:#fff;--warning:#f97316}*{box-sizing:border-box}html{background:var(--app-bg)}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font-synthesis:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #f973164d}button{-webkit-tap-highlight-color:transparent}.login-screen{background:radial-gradient(circle at 50% 0%, #f9731638, transparent 28rem), linear-gradient(135deg, #ffffff0d, transparent 28%), var(--app-bg);place-items:center;min-height:100vh;padding:28px;display:grid}.login-card{border:1px solid var(--line);background:color-mix(in srgb, var(--panel-bg) 92%, transparent);width:min(100%,460px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:16px;gap:22px;padding:30px;animation:.46s cubic-bezier(.2,.8,.2,1) both card-enter;display:grid}.login-brand{text-align:center;justify-items:center;gap:14px;display:grid}.login-brand h1{font-size:clamp(2rem,7vw,3.2rem)}.login-logo{border:1px solid color-mix(in srgb, var(--prediction) 50%, var(--line));background:color-mix(in srgb, var(--prediction) 14%, var(--surface));width:58px;height:58px;color:var(--prediction);border-radius:16px;place-items:center;animation:.62s cubic-bezier(.2,.8,.2,1) both logo-settle;display:grid}.login-visual{align-content:center;min-height:560px;padding:56px;display:grid;position:relative;overflow:hidden}.login-visual:before{content:"";border:1px solid var(--line);background:linear-gradient(90deg, transparent 49%, var(--line-soft) 50%, transparent 51%), linear-gradient(0deg, transparent 49%, var(--line-soft) 50%, transparent 51%);opacity:.8;border-radius:999px;position:absolute;inset:12%}.brand-mark,.orbit-card,.mini-chart{z-index:1;position:relative}.brand-mark{border:1px solid var(--line);background:var(--surface);width:fit-content;color:var(--text);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:12px;padding:12px 14px;font-weight:600;display:inline-flex}.role-overview{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(680px,100%);margin-top:48px;display:grid;position:relative}.role-overview div{border:1px solid var(--line);background:var(--surface-strong);min-height:118px;box-shadow:var(--shadow-soft);border-radius:8px;gap:6px;padding:18px;display:grid}.role-overview strong{color:var(--text)}.role-overview span{color:var(--muted);font-size:.9rem}.orbit-card{border:1px solid var(--line);background:var(--surface-strong);width:min(230px,70vw);box-shadow:var(--shadow);border-radius:8px;gap:5px;margin-top:52px;padding:18px;display:grid}.orbit-card svg{color:var(--accent-blue)}.orbit-card strong{color:var(--text);font-size:1.12rem}.orbit-card span{color:var(--muted);font-size:.9rem}.orbit-card.secondary{margin-left:min(42%,320px)}.orbit-card.secondary svg{color:var(--accent-amber)}.mini-chart{border:1px solid var(--line);background:linear-gradient(180deg, transparent 0 24%, var(--line-soft) 25%, transparent 26% 49%, var(--line-soft) 50%, transparent 51% 74%, var(--line-soft) 75%, transparent 76%), var(--surface);width:min(560px,100%);height:220px;box-shadow:var(--shadow);border-radius:8px;align-items:end;gap:10px;margin-top:54px;padding:22px;display:flex}.mini-chart span{background:linear-gradient(180deg, #37b9ff, var(--accent-blue));border-radius:6px 6px 2px 2px;flex:1;min-width:18px}.login-panel{border-left:1px solid var(--line);background:var(--panel-bg);align-content:center;gap:28px;padding:56px;display:grid}.eyebrow{color:var(--prediction);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:700}h1,h2,p{margin:0}h1{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;font-size:clamp(2.35rem,3.7vw,3.65rem);line-height:1}h2{color:var(--text);letter-spacing:0;font-size:1.05rem;line-height:1.2}.lede{max-width:440px;color:var(--muted);margin-top:12px;font-size:1rem}.login-form{gap:16px;display:grid}.login-form label,.text-field,.scheduler-grid label{color:var(--muted);gap:8px;font-size:.82rem;font-weight:600;display:grid}input,select,button{font:inherit;min-width:0;max-width:100%}input,select{border:1px solid var(--line);background:var(--input-bg);width:100%;min-height:42px;color:var(--text);border-radius:8px;padding:0 12px;transition:border-color .16s,box-shadow .16s,background .16s}input::placeholder{color:color-mix(in srgb, var(--muted) 78%, transparent)}input:focus,select:focus{border-color:color-mix(in srgb, var(--prediction) 65%, var(--line));box-shadow:0 0 0 4px color-mix(in srgb, var(--prediction) 14%, transparent)}input[type=range]{min-height:24px;accent-color:var(--accent-blue);padding:0}input[type=checkbox],input[type=radio]{width:16px;min-height:16px;accent-color:var(--accent-blue)}.form-error{color:var(--danger);font-size:.88rem;font-weight:600}.primary-button,.secondary-button,.icon-button,.logout-button,.tabs button,.credential-list button,.nav-list button{cursor:pointer;border:0}.primary-button,.secondary-button{text-overflow:ellipsis;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:42px;padding:0 16px;font-weight:700;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex;overflow:hidden}.primary-button{background:var(--prediction);color:var(--button-text);box-shadow:0 14px 26px #f9731633}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.primary-button:hover,.secondary-button:hover,.icon-button:hover,.credential-list button:hover,.nav-list button:hover,.logout-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.credential-list{gap:10px;max-height:230px;display:grid;overflow:auto}.credential-list button{border:1px solid var(--line);background:var(--surface);min-height:54px;color:var(--muted);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.credential-list strong{color:var(--text);display:block}.app-frame{background:var(--app-bg);grid-template-columns:76px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid;overflow-x:clip}.app-frame.nav-expanded{grid-template-columns:250px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:var(--sidebar-bg);z-index:10;grid-template-rows:auto 1fr auto;height:100vh;padding:14px 10px;transition:width .18s,padding .18s;display:grid;position:sticky;top:0}.sidebar-tools{justify-content:flex-start;align-items:center;min-height:48px;padding-left:0;display:flex}.app-frame.nav-expanded .sidebar-tools{justify-content:flex-start}.sidebar-toggle{width:42px;height:42px}.nav-list{align-content:start;gap:8px;margin-top:20px;display:grid}.nav-list button,.logout-button{min-height:42px;color:var(--muted);text-align:left;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:0;padding:0;font-weight:600;display:flex;position:relative}.nav-list button span,.logout-button span{display:none}.app-frame.nav-expanded .nav-list button,.app-frame.nav-expanded .logout-button{justify-content:flex-start;gap:11px;padding:0 12px}.app-frame.nav-expanded .nav-list button span,.app-frame.nav-expanded .logout-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline;overflow:hidden}.app-frame:not(.nav-expanded) .nav-list button:hover:after,.app-frame:not(.nav-expanded) .logout-button:hover:after{content:attr(data-label);z-index:40;border:1px solid var(--line);background:var(--surface);min-width:max-content;color:var(--text);box-shadow:var(--shadow-soft);white-space:nowrap;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:.78rem;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)}.nav-list button.active{background:var(--nav-active);color:var(--button-text)}.nav-list button.active svg{color:var(--button-text)}.nav-list button:disabled{cursor:not-allowed;opacity:.45;transform:none}.nav-list button.locked{color:color-mix(in srgb, var(--muted) 68%, transparent)}.nav-list button.locked:hover{transform:none}.logout-button{width:100%}.main-area{min-width:0;overflow-x:clip}.topbar{z-index:5;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel-bg) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);align-items:center;gap:12px;min-width:0;min-height:72px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar-brand{align-items:center;gap:11px;min-width:0;display:flex}.topbar-brand svg{color:var(--prediction)}.topbar-brand strong,.topbar-brand small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.topbar-brand strong{color:var(--text);font-size:1rem;font-weight:700}.topbar-brand small{color:var(--muted);font-size:.76rem;font-weight:600}.topbar-spacer{flex:1;min-width:0}.search-box{border:1px solid var(--line);background:var(--surface);min-width:180px;min-height:42px;color:var(--muted);border-radius:8px;flex:1;align-items:center;gap:10px;padding:0 12px;font-size:.9rem;display:flex}.api-pill{border:1px solid var(--line);background:var(--surface);max-width:230px;min-height:34px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex;overflow:hidden}.api-pill span{background:var(--warning);border-radius:999px;flex:none;width:8px;height:8px}.api-pill.online span{background:var(--success)}.api-pill.offline span{background:var(--danger)}.icon-button{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--text);border-radius:8px;flex:none;place-items:center;display:grid}.user-chip{align-items:center;gap:10px;min-height:42px;display:flex}.user-chip>span,.avatar{background:var(--prediction);color:var(--button-text);border-radius:999px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.user-chip strong,.user-chip small{text-overflow:ellipsis;white-space:nowrap;max-width:130px;display:block;overflow:hidden}.user-chip strong{color:var(--text);font-size:.86rem}.user-chip small{color:var(--muted);font-size:.76rem}.content-stack{gap:18px;width:calc(100% - 48px);min-width:0;max-width:none;margin:0 auto;padding:28px 0 44px;animation:.26s ease-out both page-enter;display:grid}.page-title{text-align:center;justify-content:center;align-items:flex-start;gap:18px;min-width:0;display:flex;position:relative}.page-title>div{min-width:0}.main-content-title{letter-spacing:0;font-size:2.1rem;font-weight:700;line-height:1.08}.page-title>.primary-button,.page-title>.secondary-button,.page-title>button{position:absolute;right:24px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-card,.panel{border:1px solid var(--line);background:var(--panel-bg);box-shadow:var(--shadow-soft);border-radius:8px;transition:border-color .16s,box-shadow .16s,transform .16s}.metric-card:hover,.panel:hover{border-color:color-mix(in srgb, var(--prediction) 32%, var(--line));box-shadow:var(--shadow);transform:translateY(-1px)}.metric-card{gap:8px;min-height:150px;padding:18px;display:grid}.metric-card.small{min-height:118px}.metric-icon{background:var(--nav-active);width:40px;height:40px;color:var(--accent-blue);border-radius:8px;place-items:center;display:grid}.metric-card.amber .metric-icon{color:var(--warning)}.metric-card.green .metric-icon{color:var(--success)}.metric-card.rose .metric-icon{color:var(--danger)}.metric-card p{color:var(--muted);font-size:.82rem;font-weight:700}.metric-card strong{color:var(--text);font-size:1.65rem;line-height:1}.metric-card span{color:var(--muted);font-size:.9rem}.panel{min-width:0;max-width:100%;padding:18px}.panel-heading,.report-head,.form-actions,.slider-field label{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.panel-heading svg{color:var(--prediction)}.tabs{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-auto-flow:column;gap:4px;max-width:100%;padding:4px;display:inline-grid;overflow:hidden}.tabs button{min-height:34px;color:var(--muted);background:0 0;border-radius:6px;padding:0 14px;font-weight:700}.tabs button.active{background:var(--control-active-bg);color:var(--control-active-text)}.forecast-controls{grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:16px;min-width:0;display:grid}.forecast-workflow-card{background:linear-gradient(135deg, color-mix(in srgb, var(--prediction) 7%, transparent), transparent 34%), var(--panel-bg);gap:16px;padding:22px;display:grid}.forecast-model-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.model-tab,.forecast-option-card{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}.model-tab{gap:5px;min-height:112px;padding:16px;display:grid}.model-tab:hover,.forecast-option-card:hover{border-color:color-mix(in srgb, var(--prediction) 42%, var(--line));transform:translateY(-1px)}.model-tab.active,.forecast-option-card.active{color:var(--control-active-text);background:var(--control-active-bg);border-color:var(--control-active-border);box-shadow:0 18px 34px color-mix(in srgb, var(--control-active-border) 24%, transparent)}.model-tab span{font-size:1.05rem;font-weight:700}.model-tab strong{color:var(--prediction);text-transform:uppercase;font-size:.78rem;font-weight:700}.model-tab small,.forecast-option-card small,.workflow-section-heading span,.intraday-signal span,.selected-window span{color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.4}.model-tab.active small,.model-tab.active strong,.forecast-option-card.active small{color:var(--control-active-muted)}.forecast-workflow-body{grid-template-columns:minmax(0,1fr) minmax(250px,.32fr);align-items:stretch;gap:16px;display:grid}.workflow-config-panel,.workflow-action-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 88%, var(--panel-bg));border-radius:8px;padding:16px}.workflow-config-panel{gap:14px;min-width:0;display:grid}.workflow-section-heading{align-items:center;gap:10px;min-width:0;display:flex}.workflow-section-heading svg{color:var(--prediction);flex:none}.workflow-section-heading strong{color:var(--text);font-weight:700;display:block}.option-card-grid{grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:10px;display:grid}.option-card-grid.intraday-options{grid-template-columns:repeat(auto-fit,minmax(156px,1fr))}.forecast-option-card{gap:5px;min-height:78px;padding:13px 14px;display:grid}.forecast-option-card span{font-size:.93rem;font-weight:700}.custom-range-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;padding-top:2px;display:grid}.intraday-signal{border-left:3px solid var(--prediction);background:color-mix(in srgb, var(--prediction) 8%, var(--surface));gap:4px;padding:11px 12px;display:grid}.intraday-signal strong,.selected-window strong{color:var(--text);font-weight:700}.workflow-action-panel{align-content:space-between;gap:16px;display:grid}.selected-window{gap:6px;display:grid}.selected-window strong{overflow-wrap:anywhere}.workflow-action-panel .primary-button,.workflow-action-panel .save-workflow-button,.workflow-action-panel .secondary-button{width:100%;min-height:48px}.training-workflow-card{background:linear-gradient(135deg, color-mix(in srgb, var(--prediction) 6%, transparent), transparent 36%), var(--panel-bg)}.training-workflow-card .forecast-workflow-body{grid-template-columns:1fr}.workflow-note{color:var(--muted);font-size:.84rem;font-weight:600;line-height:1.5}.transfer-action-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.transfer-status-area{flex:1;align-items:center;display:flex}.transfer-status{align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;display:flex}.transfer-status--ok{color:var(--success,#22c55e)}.transfer-status--error{color:var(--danger)}.transfer-confirm-box{border:1px solid color-mix(in srgb, var(--warning,#f59e0b) 40%, var(--line));background:color-mix(in srgb, var(--warning,#f59e0b) 6%, var(--surface));border-radius:8px;margin-top:1rem;padding:1rem 1.2rem}.transfer-confirm-text{color:var(--text);margin-bottom:.9rem;font-size:.88rem;line-height:1.6}.transfer-confirm-actions{justify-content:flex-end;gap:.75rem;display:flex}.workflow-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--line));background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--danger);border-radius:8px;padding:10px 12px;font-size:.84rem;font-weight:700}.forecast-empty-state{background:linear-gradient(135deg, color-mix(in srgb, var(--prediction) 6%, transparent), transparent 36%), var(--panel-bg);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px;min-height:190px;display:grid}.forecast-empty-state.in-progress{align-items:center;min-height:230px}.empty-state-icon{border:1px solid color-mix(in srgb, var(--prediction) 40%, var(--line));background:color-mix(in srgb, var(--prediction) 10%, var(--surface));width:48px;height:48px;color:var(--prediction);border-radius:8px;place-items:center;display:grid}.empty-state-icon.loading{border-radius:12px}.forecast-loader{border:3px solid color-mix(in srgb, var(--prediction) 18%, var(--surface));border-top-color:var(--prediction);border-radius:999px;width:24px;height:24px;animation:.8s linear infinite forecast-spin;display:block}.forecast-empty-state h2{margin-bottom:8px;font-size:1.2rem}.forecast-empty-state p:not(.eyebrow){max-width:840px;color:var(--muted);margin-top:8px;font-size:.92rem;font-weight:500;line-height:1.55}.forecast-progress{gap:12px;max-width:900px;margin-top:18px;display:grid}.forecast-progress-bar{background:color-mix(in srgb, var(--prediction) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--prediction) 20%, var(--line));border-radius:999px;height:10px;overflow:hidden}.forecast-progress-bar span{background:linear-gradient(90deg, transparent, var(--prediction), transparent);border-radius:inherit;width:42%;height:100%;animation:1.35s ease-in-out infinite forecast-progress;display:block}.forecast-progress-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.forecast-progress-steps span{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;align-items:center;min-height:42px;padding:8px 10px;font-size:.78rem;font-weight:700;line-height:1.25;display:flex}.forecast-progress-steps span.done{color:var(--text);border-color:color-mix(in srgb, var(--prediction) 24%, var(--line))}.forecast-progress-steps span.active{background:color-mix(in srgb, var(--prediction) 14%, var(--surface));border-color:color-mix(in srgb, var(--prediction) 46%, var(--line));color:var(--text)}.customer-guidance{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.customer-guidance p{flex:420px;margin-top:0!important}.run-feedback{border-color:color-mix(in srgb, var(--prediction) 34%, var(--line));gap:12px;display:grid}.run-feedback.failed{border-color:color-mix(in srgb, var(--danger) 34%, var(--line))}.run-feedback p{color:var(--muted);font-size:.9rem;font-weight:600}.run-feedback pre{border:1px solid var(--line);color:var(--code-text);white-space:pre-wrap;background:var(--code-bg);border-radius:8px;max-height:220px;margin:0;padding:12px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.55;overflow:auto}.forecast-controls>*,.period-controls,.period-block,.line-chart-card,.chart-panel{min-width:0}.drawio-controls{align-items:start}.period-controls{gap:8px;display:grid}.period-controls>span,.run-state,.schedule-group>span{color:var(--muted);font-size:.84rem;font-weight:700}.period-controls strong{color:var(--text)}.radio-grid,.check-grid{flex-wrap:wrap;gap:10px;display:flex}.radio-grid label,.check-grid label,.toggle-list label{color:var(--text);align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:inline-flex}.date-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.date-row label{color:var(--muted);gap:6px;font-size:.78rem;font-weight:700;display:grid}.run-state{color:var(--success);align-items:center;gap:8px;display:inline-flex}.period-block{gap:12px;display:grid}.period-wide{grid-column:span 2;min-width:0}.workspace-grid,.training-layout,.settings-grid{grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:18px;display:grid}.training-layout{grid-template-columns:minmax(0,1fr)}.settings-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr)}.settings-grid .panel:last-child{grid-column:1/-1}.chart-panel{min-height:360px}.line-chart-card{margin-top:18px}.chart-toolbar{grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:start;gap:14px;min-width:0;display:grid}.chart-toolbar label{color:var(--muted);gap:6px;font-size:.82rem;font-weight:600;display:grid}.chart-toolbar select{min-height:38px}.chart-toolbar strong{color:var(--text);overflow-wrap:anywhere;justify-self:end;min-width:0;font-size:1rem}.chart-context{justify-items:end;gap:5px;min-width:0;display:grid}.chart-context span{color:var(--prediction);font-size:.82rem;font-weight:700}.line-chart-scroll{-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;margin-top:12px;overflow:auto hidden}.line-chart-viewport{width:100%;min-width:min(980px,100%);position:relative}.empty-chart{border:1px solid var(--line);min-height:320px;color:var(--muted);background:var(--chart-bg);border-radius:8px;place-items:center;font-weight:600;display:grid}.line-chart{background:var(--chart-bg);width:100%;height:auto;display:block}.chart-tooltip{border:1px solid color-mix(in srgb, var(--prediction) 42%, var(--line));background:color-mix(in srgb, var(--panel-bg) 94%, var(--prediction) 6%);color:var(--text);z-index:3;pointer-events:none;box-shadow:var(--shadow-soft);border-radius:8px;gap:5px;min-width:178px;padding:10px 11px;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.chart-tooltip.below{transform:translate(-50%,12px)}.chart-tooltip:after{content:"";border:6px solid #0000;border-top-color:color-mix(in srgb, var(--panel-bg) 94%, var(--prediction) 6%);position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.chart-tooltip.below:after{border-top-color:#0000;border-bottom-color:color-mix(in srgb, var(--panel-bg) 94%, var(--prediction) 6%);top:-12px;bottom:auto}.chart-tooltip strong{color:var(--text);font-size:.86rem}.chart-tooltip>span,.chart-tooltip em{color:var(--muted);font-size:.75rem;font-style:normal;font-weight:700}.chart-tooltip div{gap:4px;display:grid}.chart-tooltip p{justify-content:space-between;gap:18px;margin:0;display:flex}.chart-tooltip p span{color:var(--muted);font-size:.75rem;font-weight:700}.chart-tooltip p b{color:var(--text);font-size:.76rem}.chart-tooltip .tooltip-row.predicted span,.chart-tooltip .tooltip-row.predicted b{color:var(--prediction)}.line-chart circle{outline:none}.line-chart circle:focus-visible{stroke:var(--text);stroke-width:2px}.grid-lines line{stroke:var(--chart-grid);stroke-width:1px}.grid-lines text,.legend text,.axis-title{fill:var(--chart-axis);font-size:12px;font-weight:700}.grid-lines text{text-anchor:middle}.grid-lines g:first-child text,.grid-lines g:nth-child(2) text,.grid-lines g:nth-child(3) text,.grid-lines g:nth-child(4) text,.grid-lines g:nth-child(5) text,.grid-lines g:nth-child(6) text{text-anchor:end}.axis-title{text-anchor:middle;font-size:14px}.actual-line,.specialist-line,.enhanced-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px}.actual-line{stroke:var(--chart-actual)}.specialist-line{stroke:var(--prediction);stroke-dasharray:7 7}.enhanced-line{stroke:var(--chart-enhanced);stroke-dasharray:3 6}.actual-marker{fill:var(--chart-actual)}.specialist-marker{fill:var(--prediction)}.enhanced-marker{fill:var(--chart-enhanced)}.intraday-cutoff line{stroke:var(--prediction);stroke-dasharray:5 5;stroke-width:1.6px}.intraday-cutoff text{fill:var(--prediction);font-size:12px;font-weight:700}.intraday-updated-marker{stroke:var(--chart-actual);stroke-width:1.8px}.daily-chart-toolbar{flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:4px 0 8px;display:flex}.daily-chart-nav{justify-content:center;align-items:center;gap:24px;display:flex}.nav-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;min-height:42px;padding:0 20px;font-size:.84rem;font-weight:700;transition:opacity .15s,border-color .15s,box-shadow .15s}.nav-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--prediction) 65%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--prediction) 14%,transparent)}.nav-btn--end,.nav-btn:disabled{opacity:.32;cursor:not-allowed;box-shadow:none}.date-input-wrap{display:grid;position:relative}.date-picker-input{text-align:center;cursor:pointer;width:auto;min-height:42px;padding:0 12px;font-size:.9rem;font-weight:700}.date-picker-input--error,.date-input--error{border-color:#f87171!important}.date-input-msg{color:#f87171;text-align:center;white-space:nowrap;margin-top:4px;font-size:.74rem;font-weight:700}.date-badge{letter-spacing:.04em;border-radius:5px;padding:3px 10px;font-size:.76rem;font-weight:800}.date-badge--today{background:color-mix(in srgb,var(--prediction) 18%,var(--surface));color:var(--prediction);border:1px solid color-mix(in srgb,var(--prediction) 38%,var(--line))}.date-badge--forecast{background:color-mix(in srgb,#38bdf8 15%,var(--surface));color:#38bdf8;border:1px solid color-mix(in srgb,#38bdf8 32%,var(--line))}.date-badge--historical{background:color-mix(in srgb,var(--muted) 14%,var(--surface));color:var(--muted);border:1px solid var(--line)}.chart-panel-title{text-align:center;color:var(--text);margin:12px 0 4px;font-size:1.25rem;font-weight:700}.show-revisions-label{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;margin-top:2px;font-size:.82rem;font-weight:700;display:flex}.show-revisions-label input[type=checkbox]{accent-color:var(--prediction);cursor:pointer;width:15px;height:15px}.dev-toggle-label{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;margin-top:2px;font-size:.82rem;font-weight:700;display:flex}.dev-toggle-label input[type=checkbox]{accent-color:var(--deviation);cursor:pointer;width:15px;height:15px}.id-chart-table-wrap{border-top:1px solid var(--line);margin-top:16px;overflow-x:auto}.id-chart-table{border-collapse:collapse;width:100%;font-size:.8rem}.id-chart-table th,.id-chart-table td{text-align:right;border-bottom:1px solid var(--line-soft);padding:6px 12px}.id-chart-table th{color:var(--muted);background:var(--panel-bg);font-weight:700;position:sticky;top:0}.id-chart-table td:first-child,.id-chart-table th:first-child{text-align:left}.id-chart-table tr:hover td{background:color-mix(in srgb,var(--prediction) 5%,var(--panel-bg))}.id-chart-table .dev-hi{color:#f87171;font-weight:700}.id-chart-table .dev-ok{color:#4ade80}.chart-tab-list{border-bottom:1px solid var(--line);gap:0;margin-bottom:16px;display:flex}.chart-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 24px;font-size:.85rem;font-weight:700;transition:color .15s,border-color .15s}.chart-tab:hover:not(.active){color:var(--text)}.chart-tab.active{color:var(--prediction);border-bottom-color:var(--prediction)}.deviation-fill{fill:#38bdf8;opacity:.15;stroke:none}.deviation-line{fill:none;stroke:#38bdf8;stroke-width:2px;stroke-dasharray:5 4;stroke-linecap:round}.deviation-threshold{stroke:#38bdf8;stroke-width:1px;stroke-dasharray:6 5;opacity:.55}.deviation-zero{stroke:var(--chart-grid);stroke-width:1px;stroke-dasharray:3 5;opacity:.7}.dev-tick{stroke:var(--chart-axis);stroke-width:1px}.dev-axis-label{fill:#38bdf8;font-size:11px;font-weight:700}.dev-axis-title{fill:#38bdf8;text-anchor:middle;font-size:13px;font-weight:700}.threshold-label{fill:#38bdf8;opacity:.8;font-size:10px;font-weight:700}.source-note{color:var(--muted);margin-top:10px;font-size:.82rem;font-weight:700}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;margin-top:18px;overflow-x:auto}.paginated-table{gap:12px;min-width:0;display:grid}.table-pagination{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding-top:12px;display:flex}.table-pagination>span,.table-pagination strong,.table-pagination label{color:var(--muted);font-size:.82rem;font-weight:700}.table-pagination label{align-items:center;gap:8px;display:inline-flex}.table-pagination select{width:78px;min-height:34px}.pagination-actions{align-items:center;gap:8px;display:inline-flex}.pagination-actions button{border:1px solid var(--line);background:var(--surface);min-height:34px;color:var(--text);cursor:pointer;border-radius:8px;padding:0 11px;font-weight:700}.pagination-actions button:disabled{cursor:not-allowed;opacity:.5}table{border-collapse:collapse;width:100%;min-width:640px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:13px 12px}th{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.74rem;font-weight:700}td{color:var(--text);font-size:.9rem;font-weight:500}.predicted-cell{color:var(--prediction)}.updated-row td{background:color-mix(in srgb, var(--prediction) 8%, transparent)}tbody tr:last-child td{border-bottom:0}.status-tag,.access-row span{background:var(--nav-active);min-height:26px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.status-tag.down{color:var(--danger);background:#d8594e29}.status-tag.updated{background:color-mix(in srgb, var(--prediction) 18%, var(--surface));color:var(--prediction)}.status-tag.cloud-watch{color:var(--warning);background:#dd97412e}.report-preview{margin-top:18px}.report-sheet{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:420px;padding:18px}.report-head strong{color:var(--text)}.report-head span,.form-actions span{color:var(--muted);font-size:.9rem;font-weight:600}.scheduler-grid{grid-template-columns:minmax(220px,.6fr) minmax(280px,1fr);gap:18px;margin-top:18px;display:grid}.schedule-group{gap:12px;display:grid}.file-drop{border:1px dashed var(--line);background:var(--surface);min-height:210px;color:var(--muted);text-align:center;cursor:pointer;border-radius:8px;place-items:center;gap:12px;margin-top:20px;padding:24px;display:grid;position:relative}.file-drop input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-drop svg{color:var(--prediction)}.file-drop span{max-width:100%;color:var(--text);overflow-wrap:anywhere;font-weight:700}.record-box{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:6px;margin-top:16px;padding:14px;display:grid}.record-box strong{color:var(--text)}.record-box span{color:var(--muted)}.split-tabs{margin-top:20px}.slider-field,.field-grid,.date-grid,.toggle-list{gap:14px;margin-top:18px;display:grid}.field-grid{grid-template-columns:1fr}.field-grid.two,.date-grid{grid-template-columns:1fr 1fr}.split-date-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.split-window-rows{gap:12px;margin-top:18px;display:grid}.split-window-row{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(170px,.56fr) minmax(170px,1fr) minmax(170px,1fr);align-items:end;gap:14px;padding:14px;display:grid}.split-window-label{align-self:center;min-width:0;display:grid}.split-window-label strong{color:var(--text);font-size:1rem}.split-window-label span{color:var(--muted);overflow-wrap:anywhere;font-size:.78rem;font-weight:700;line-height:1.35}.text-field input:disabled{color:var(--muted);background:color-mix(in srgb, var(--surface) 78%, var(--line));cursor:not-allowed}.field-grid.compact{grid-template-columns:minmax(230px,1.4fr) 1fr 1fr}.theme-panel{gap:16px;display:grid}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.theme-grid button{border:1px solid var(--line);background:var(--surface);min-height:88px;color:var(--text);text-align:left;cursor:pointer;border-radius:8px;gap:6px;padding:14px;transition:border-color .16s,background .16s,transform .16s;display:grid}.theme-grid button.active{border-color:var(--prediction);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--prediction) 45%, transparent)}.theme-grid span{font-weight:700}.theme-grid small{color:var(--muted);font-size:.78rem;font-weight:600}.slider-field strong{color:var(--text)}.form-actions{align-items:center;margin-top:20px}.execution-panel{gap:16px;display:grid}.embedded-runner{border:1px solid var(--line);border-radius:8px;padding:16px}.mode-runner{background:linear-gradient(135deg, #f973160f, transparent 32%), var(--panel-bg)}.execution-grid{grid-template-columns:minmax(240px,.5fr) minmax(0,1fr) auto;align-items:end;gap:14px;display:grid}.runner-grid{gap:16px;display:grid}.runner-control-row{grid-template-columns:minmax(220px,360px) minmax(180px,240px);justify-content:space-between;align-items:end;gap:18px;display:grid}.runner-mode-field{max-width:360px}.phase-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.phase-step{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-content:center;gap:6px;min-height:86px;padding:16px 18px;transition:border-color .16s,background .16s,transform .16s;display:grid}.phase-step:hover{transform:translateY(-1px)}.phase-step span{color:var(--text);font-size:1.05rem;font-weight:700}.phase-step strong{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.phase-step.running{border-color:var(--prediction);box-shadow:inset 0 0 0 1px #f9731638}.phase-step.running strong,.phase-step.failed strong{color:var(--prediction)}.phase-step.done{background:var(--control-active-bg);border-color:var(--control-active-border)}.phase-step.done span,.phase-step.done strong{color:var(--control-active-text)}.runner-button{width:100%;min-width:180px;min-height:48px}.command-preview{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--text);white-space:nowrap;border-radius:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;overflow-x:auto}.run-log{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.run-status{color:var(--muted);text-transform:capitalize;align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:inline-flex}.run-status.completed{color:var(--success)}.run-status.failed{color:var(--danger)}.run-log pre{border:1px solid var(--line);color:var(--code-text);white-space:pre-wrap;background:var(--code-bg);border-radius:8px;max-height:360px;margin:0;padding:14px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.55;overflow:auto}.output-metrics{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.output-metrics.grouped{flex-direction:column;gap:14px;display:flex}.metric-row{gap:14px;display:grid}.metric-row.dataset-metrics,.metric-row.model-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-row .metric-card.small{min-height:132px}.metric-row.model-metrics .metric-card.small{min-height:118px}.output-metrics .output-metric{align-content:center;min-width:0;overflow:hidden}.output-metrics .metric-card p,.output-metrics .metric-card strong,.output-metrics .metric-card span{min-width:0;max-width:100%}.output-metrics .metric-card strong{overflow-wrap:break-word;white-space:normal;font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.14}.output-metrics .metric-card span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.artifacts-panel{gap:16px;display:grid}.empty-artifacts{border:1px dashed var(--line);background:var(--surface);min-height:140px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;font-weight:700;display:grid}.artifact-layout{grid-template-columns:minmax(240px,.9fr) minmax(220px,.7fr);gap:16px;display:grid}.artifact-column{align-content:start;gap:10px;display:grid}.artifact-column.charts{grid-column:1/-1}.artifact-column h3{color:var(--text);text-transform:uppercase;margin:0;font-size:.86rem;font-weight:700}.artifact-list{gap:9px;display:grid}.artifact-link{border:1px solid var(--line);background:var(--surface);min-height:56px;color:var(--text);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;transition:border-color .16s,background .16s,transform .16s;display:grid}.artifact-link:hover,.chart-image-card:hover,.theme-grid button:hover{border-color:color-mix(in srgb, var(--prediction) 45%, var(--line));transform:translateY(-1px)}.artifact-link svg:last-child{color:var(--prediction)}.artifact-link span{min-width:0;color:var(--muted);font-size:.78rem;font-weight:600}.artifact-link strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.chart-image-grid,.report-output-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.report-output-grid .artifact-link{align-self:stretch;min-height:100%}.chart-image-card{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;gap:8px;padding:8px;text-decoration:none;transition:border-color .16s,transform .16s,box-shadow .16s;display:grid}.chart-image-card img{aspect-ratio:16/9;border:1px solid var(--line);object-fit:contain;background:var(--chart-bg);border-radius:6px;width:100%}.chart-image-card span{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:flex;overflow:hidden}.report-links{gap:10px;margin-top:18px;display:grid}.summary-boxes{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.output-box{border:1px solid var(--line);background:var(--panel-bg);min-height:112px;box-shadow:var(--shadow-soft);border-radius:8px;gap:8px;padding:16px;display:grid}.output-box span{color:var(--muted);font-size:.82rem;font-weight:700}.output-box strong{color:var(--text);font-size:1.2rem}.checkbox-field input{width:20px;min-height:20px}.users-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.user-card{gap:14px;min-height:250px;display:grid;position:relative}:root[data-theme=light] .user-card{border-color:#d0d0d0}:root[data-theme=light] .user-card.current{border-color:var(--control-strong-border);box-shadow:0 14px 34px #34405418}:root[data-theme=light] .user-card .avatar{background:var(--control-strong-bg);color:var(--control-strong-text)}.user-card p{color:var(--muted);margin-top:4px}.access-row{flex-wrap:wrap;gap:8px;display:flex}.access-row span{font-weight:500}.access-row span.disabled{border:1px solid var(--line);background:var(--surface);color:var(--muted);opacity:.68}:root[data-theme=light] .access-row span.enabled{background:var(--control-strong-bg);color:var(--control-strong-text)}:root[data-theme=light] .access-row span.disabled{color:#777;background:#f2f2f2}.current-user-badge{border:1px solid color-mix(in srgb, var(--prediction) 38%, var(--line));background:color-mix(in srgb, var(--prediction) 14%, var(--surface));color:var(--prediction);border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:500;line-height:1;position:absolute;top:14px;right:14px}:root[data-theme=light] .current-user-badge{border-color:color-mix(in srgb, var(--prediction) 42%, var(--line));background:color-mix(in srgb, var(--prediction) 12%, var(--surface));color:#c2410c}@keyframes card-enter{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes logo-settle{0%{opacity:0;transform:translateY(6px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes forecast-spin{to{transform:rotate(360deg)}}@keyframes forecast-progress{0%{transform:translate(-100%)}to{transform:translate(240%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (width<=1180px){h1{font-size:clamp(2.2rem,4.5vw,3.1rem)}.main-content-title{font-size:1.95rem}.content-stack{width:calc(100% - 32px)}.metric-grid,.metric-grid.six,.users-grid,.metric-row.dataset-metrics,.metric-row.model-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-controls,.forecast-workflow-body,.execution-grid,.artifact-layout,.theme-grid,.workspace-grid,.training-layout,.settings-grid,.scheduler-grid,.summary-boxes,.ftp-row,.intraday-time-grid{grid-template-columns:1fr}.runner-control-row{grid-template-columns:minmax(220px,1fr) minmax(170px,220px)}.phase-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid .panel:last-child{grid-column:auto}.chart-image-grid,.report-output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{min-height:66px}}@media (width<=880px){.login-screen{grid-template-columns:1fr}.login-visual{min-height:420px;padding:28px}.login-panel{border-left:0;border-top:1px solid var(--line);padding:28px}.app-frame{grid-template-columns:64px minmax(0,1fr)}.app-frame.nav-expanded{grid-template-columns:minmax(210px,58vw) minmax(0,1fr)}.sidebar{z-index:12;width:auto;box-shadow:none;padding:10px 8px;position:sticky;transform:none}.topbar{gap:8px;min-height:60px;padding:10px 12px}.user-chip div{display:none}.content-stack{width:calc(100% - 24px);padding-top:20px}.page-title{flex-direction:column;align-items:center}.page-title>.primary-button,.page-title>.secondary-button,.page-title>button{position:static}.date-row,.field-grid.two,.field-grid.compact,.date-grid,.split-date-grid,.split-window-row,.period-wide{grid-column:auto;grid-template-columns:1fr}.phase-steps,.chart-image-grid,.report-output-grid{grid-template-columns:1fr}.forecast-progress-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.runner-control-row{grid-template-columns:1fr}.runner-mode-field{max-width:none}.forecast-controls{align-items:stretch}.forecast-controls .primary-button,.runner-button{width:100%}.chart-toolbar{grid-template-columns:1fr}.chart-toolbar strong{justify-self:start}.chart-context{justify-items:start}.icon-button{width:38px;height:38px}.user-chip{min-height:38px}.user-chip>span{width:38px;height:38px}}@media (width<=580px){h1{font-size:clamp(2rem,9vw,2.7rem)}.main-content-title{font-size:1.7rem}.login-screen{padding:16px}.login-card{padding:20px}.login-visual{min-height:360px}.orbit-card.secondary{margin-left:0}.mini-chart{height:160px}.login-panel{padding:22px}.metric-grid,.metric-grid.six,.users-grid,.role-overview,.metric-row.dataset-metrics,.metric-row.model-metrics{grid-template-columns:1fr}.panel,.metric-card{padding:12px}.tabs{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;width:100%}.tabs button{width:100%}.radio-grid,.check-grid{grid-template-columns:1fr 1fr;display:grid}.forecast-workflow-card{padding:12px}.forecast-model-tabs,.forecast-empty-state,.custom-range-grid,.option-card-grid,.option-card-grid.intraday-options,.forecast-progress-steps{grid-template-columns:1fr}.model-tab{min-height:96px}.content-stack{gap:14px;width:calc(100% - 18px)}.page-title{gap:10px}.topbar{min-height:56px}.icon-button,.user-chip>span{width:36px;height:36px}.chart-panel{min-height:auto}.empty-chart{min-height:240px}.line-chart-card{margin-top:12px}.line-chart-scroll{margin-top:10px}.chart-toolbar label{min-width:0}.table-pagination{flex-direction:column;align-items:stretch}.pagination-actions{justify-content:space-between;width:100%}.pagination-actions button{flex:1}}html,body,#root,.app-frame{font-family:var(--font-sans);font-size:var(--text-body);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1;line-height:var(--leading-body)}button,input,select,textarea{font-family:var(--font-sans)}.main-content-title,.typography-page-title{font-size:var(--text-page-title);font-weight:700;line-height:var(--leading-tight)}h2,.panel-heading h2,.typography-section-title{font-size:var(--text-section-title);font-weight:700;line-height:var(--leading-title)}p,.lede,.typography-body{font-size:var(--text-body);font-weight:400;line-height:var(--leading-body)}.eyebrow,.text-field,.login-form label,.scheduler-grid label,.workflow-note,.source-note,.typography-helper{font-size:var(--text-helper);font-weight:600;line-height:1.45}.metric-card p,.metric-card span,.output-box span,.chart-toolbar label,.chart-toolbar strong,.chart-context span,.table-pagination,.status-tag,.access-row span{font-size:var(--text-dashboard)}.metric-card strong,.output-box strong,.kpi-value,.typography-kpi{font-size:var(--text-kpi);font-weight:700;line-height:var(--leading-tight)}table,th,td,.table-text,.typography-table{font-size:var(--text-table);font-weight:500;line-height:var(--leading-table)}th{font-weight:700}.line-chart,.line-chart text,.grid-lines text,.legend text,.axis-title,.chart-label,.typography-chart{font-family:var(--font-sans);font-size:var(--text-chart);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1;font-weight:600}.command-preview,.run-feedback pre,.run-log pre{font-family:var(--font-mono)}table,th,td,.metric-card,.metric-card strong,.output-box strong,.table-pagination,.line-chart,.line-chart text,.numeric,.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "kern" 1}.chart-panel{overflow:hidden}.line-chart-card{width:100%;min-width:0;margin-top:10px}.chart-toolbar{grid-template-columns:minmax(160px,240px) minmax(0,1fr);align-items:end}.chart-toolbar select{width:100%;max-width:100%}.line-chart-scroll{width:100%;max-width:100%;overflow:hidden}.line-chart{width:100%;min-width:0;max-width:1120px;height:auto;max-height:430px;margin:0 auto}.table-wrap{width:100%;max-width:100%;overflow-x:auto}.paginated-table table{table-layout:fixed;width:100%;min-width:0}.paginated-table th,.paginated-table td{overflow-wrap:anywhere;word-break:normal}.paginated-table th:first-child,.paginated-table td:first-child,.paginated-table th:nth-child(2),.paginated-table td:nth-child(2){width:18%}.paginated-table th:nth-child(3),.paginated-table td:nth-child(3){width:12%}.paginated-table th:nth-child(4),.paginated-table td:nth-child(4),.paginated-table th:nth-child(5),.paginated-table td:nth-child(5){width:18%}@media (width<=1180px){.line-chart{max-height:380px}}@media (width<=880px){.chart-toolbar{grid-template-columns:1fr;gap:10px}.chart-context,.chart-toolbar strong{justify-self:start;justify-items:start}.line-chart{max-height:320px}.paginated-table table,.paginated-table thead,.paginated-table tbody,.paginated-table tr,.paginated-table th,.paginated-table td{width:100%;display:block}.paginated-table table{border-collapse:separate;border-spacing:0 10px}.paginated-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.paginated-table tr{border:1px solid var(--line);background:var(--panel-bg);border-radius:8px;padding:8px 10px}.paginated-table td{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);text-align:right;grid-template-columns:minmax(96px,42%) minmax(0,1fr);gap:10px;padding:9px 0;display:grid}.paginated-table td:before{content:attr(data-label);color:var(--muted);text-align:left;font-weight:700}.paginated-table td:last-child{border-bottom:0}}@media (width<=580px){.chart-panel .panel-heading{align-items:start}.chart-toolbar select{min-height:42px}.line-chart{max-height:250px}.line-chart text,.grid-lines text,.legend text,.axis-title{font-size:10px}.paginated-table td{text-align:left;grid-template-columns:1fr;gap:4px}.table-pagination{gap:10px}}.source-toggle{flex-direction:column;gap:10px;margin-top:20px;display:flex}.source-option{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.source-option input[type=radio]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.source-checkbox{border:2px solid var(--muted);background:var(--surface);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;transition:border-color .15s,background .15s;display:inline-flex}.source-option input[type=radio]:checked~.source-checkbox{border-color:var(--prediction);background:var(--prediction)}.source-option input[type=radio]:checked~.source-checkbox:after{content:"";border:2px solid #fff;border-top:none;border-left:none;width:5px;height:9px;display:block;transform:rotate(45deg)translate(-1px,-1px)}.api-credentials{gap:14px;margin-top:20px;display:grid}.api-field{gap:6px;display:grid}.api-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.api-field input{border:1px solid var(--line);background:var(--surface);color:var(--text);box-sizing:border-box;border-radius:7px;outline:none;width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.api-field input:focus{border-color:var(--prediction)}.api-field input::placeholder{color:var(--muted);opacity:.6}.api-status{color:var(--prediction);background:color-mix(in srgb, var(--prediction) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--prediction) 25%, transparent);border-radius:7px;align-items:center;gap:7px;margin:0;padding:10px 12px;font-size:.82rem;font-weight:600;display:flex}.api-status--pending{color:var(--muted);background:var(--surface);border-color:var(--line)}.ftp-row{grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:18px;display:grid}.report-section-cards{gap:12px;margin-bottom:4px;display:flex}.report-section-card{background:var(--surface);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:10px;padding:11px 24px;font-size:.88rem;font-weight:700;transition:border-color .15s,color .15s,background .15s}.report-section-card:hover{border-color:var(--control-active-border);color:var(--text)}.report-section-card.active{border-color:var(--prediction);color:var(--text);background:var(--control-active-bg)}.scheduler-settings{gap:18px;margin-top:18px;display:grid}.auto-schedule-row{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;justify-self:start;align-items:flex-start;gap:10px;width:fit-content;max-width:480px;padding:10px 14px;display:inline-flex}.auto-schedule-row input[type=checkbox]{cursor:pointer;width:17px;height:17px;accent-color:var(--prediction);flex-shrink:0;margin-top:2px}.auto-schedule-row>div{gap:3px;display:grid}.auto-schedule-row span{color:var(--text);font-size:.88rem;font-weight:700}.auto-schedule-row small{color:var(--muted);font-size:.78rem;font-weight:500;line-height:1.45}.schedule-time-label{color:var(--muted);gap:8px;font-size:.82rem;font-weight:600;display:grid}.day-ahead-row{color:var(--muted);align-items:center;gap:10px;font-size:.82rem;font-weight:600;display:inline-flex}.schedule-section{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:12px;padding:14px 16px;display:grid}.schedule-section-heading{color:var(--text);border-bottom:1px solid var(--line);margin:0;padding-bottom:10px;font-size:.88rem;font-weight:700}.intraday-time-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.intraday-slot{align-items:center;gap:8px;display:flex}.intraday-slot input[type=time]{flex-shrink:0;width:120px}.schedule-section--separated{margin-top:8px}.intraday-slot-check{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:.81rem;font-weight:600;display:inline-flex}.intraday-slot-check input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--prediction);flex-shrink:0}.intraday-slot input[type=time]:disabled{opacity:.35;cursor:not-allowed}.rpt-tabbed-panel{padding:0;overflow:hidden}.rpt-tab-bar{border-bottom:1px solid var(--line);background:var(--surface);gap:0;padding:0 20px;display:flex}.rpt-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 22px;font-size:.88rem;font-weight:600;transition:color .15s,border-color .15s}.rpt-tab:hover{color:var(--text)}.rpt-tab.active{color:var(--text);border-bottom-color:var(--prediction)}.rpt-tab-body{padding:18px}.rft-root{gap:12px;display:grid}.report-run-tabs{gap:8px;display:flex}.report-run-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:6px;padding:7px 20px;font-size:.85rem;font-weight:600;transition:border-color .15s,color .15s,background .15s}.report-run-tab:hover{border-color:var(--control-active-border);color:var(--text)}.report-run-tab.active{border-color:var(--prediction);color:var(--text);background:var(--control-active-bg)}.rft-period-bar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.rft-period-tabs{gap:4px;display:flex}.rft-period-tab{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:6px;padding:5px 14px;font-size:.82rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.rft-period-tab:hover{background:var(--control-active-bg);color:var(--text)}.rft-period-tab.active{background:var(--control-active-bg);border-color:var(--line);color:var(--text)}.rft-badge{background:var(--prediction);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.rft-badge--muted{background:var(--muted)}.rft-year-tabs{gap:4px;display:flex}.rft-year-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:4px;padding:3px 12px;font-size:.78rem;font-weight:600;transition:border-color .12s,color .12s}.rft-year-tab:hover{border-color:var(--control-active-border);color:var(--text)}.rft-year-tab.active{border-color:var(--prediction);color:var(--text)}.rft-refresh-btn{border:1px solid var(--line);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;margin-left:auto;padding:4px 10px;font-size:12px;transition:background .12s,color .12s;display:inline-flex}.rft-refresh-btn:hover:not(:disabled){background:var(--control-active-bg);color:var(--text)}.rft-refresh-btn:disabled{opacity:.5;cursor:default}@keyframes rft-spin{to{transform:rotate(360deg)}}.rft-spin{animation:.8s linear infinite rft-spin}.rft-load-error{color:var(--danger,#e74c3c);background:color-mix(in srgb, var(--danger,#e74c3c) 8%, transparent);border-radius:4px;margin:0;padding:6px 12px;font-size:12px}.rft-table-wrap{border:1px solid var(--line);border-radius:8px;overflow:hidden}.rft-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.82rem}.rft-table thead th{background:var(--surface);color:var(--muted);text-align:left;border-bottom:2px solid var(--line);white-space:nowrap;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px;font-size:.72rem;font-weight:700}.rft-table tbody td{border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;padding:11px 14px;overflow:hidden}.rft-table tbody tr:last-child td{border-bottom:none}.rft-table tbody tr:nth-child(2n)>td{background:color-mix(in srgb, var(--surface) 50%, transparent)}.rft-row{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.rft-row:hover>td{background:var(--control-active-bg)!important;color:#fff!important}.rft-row:hover>td *{color:#fff!important}.rft-row.selected>td{background:var(--control-active-bg)!important;color:#fff!important}.rft-row.selected>td *{color:#fff!important}.rft-row.selected>td:first-child{border-left:3px solid var(--prediction);padding-left:11px}.rft-name{color:var(--text);align-items:center;gap:7px;font-weight:500;display:flex}.rft-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rft-cell-secondary{color:var(--muted);font-size:.8rem}.rft-cell-mono{font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.01em;font-size:.79rem}.rft-cell-action{text-align:center}.rft-empty{text-align:center;color:var(--muted);font-size:.82rem;font-style:italic;padding:28px!important}.rft-revisions{flex-wrap:wrap;gap:4px;display:flex}.rft-rev-badge{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:4px;justify-content:center;align-items:center;padding:2px 7px;font-size:.72rem;font-weight:700;display:inline-flex}.rft-act{cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;text-decoration:none;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.rft-act:hover{border-color:var(--line);background:var(--control-active-bg);color:var(--text)}.rft-dl:hover{color:var(--prediction);border-color:var(--prediction)}.rft-del:hover{color:#c0392b;border-color:#c0392b}.rft-act:disabled{opacity:.35;cursor:not-allowed}.rft-viewer{border:1px solid var(--line);border-radius:8px;overflow:hidden}.rft-viewer-hdr{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.rft-viewer-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.83rem;font-weight:600;overflow:hidden}.rft-viewer-acts{flex-shrink:0;align-items:center;gap:8px;display:flex}.rft-viewer-dl{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:5px;align-items:center;gap:5px;padding:4px 11px;font-size:.77rem;font-weight:600;text-decoration:none;transition:border-color .12s,color .12s;display:inline-flex}.rft-viewer-dl:hover{border-color:var(--prediction);color:var(--text)}.rft-viewer-close{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:.78rem;transition:border-color .12s,color .12s;display:inline-flex}.rft-viewer-close:hover{border-color:var(--text);color:var(--text)}.rft-viewer-msg{color:var(--muted);margin:0;padding:16px;font-size:.82rem}.rft-viewer-err{color:var(--warning)}.rft-viewer-scroll{max-height:420px;overflow:auto}.rft-viewer-tbl{border-collapse:collapse;width:100%;font-size:.8rem}.rft-viewer-tbl th{background:var(--surface);color:var(--muted);text-align:left;border-bottom:1px solid var(--line);z-index:1;white-space:nowrap;padding:7px 12px;font-weight:700;position:sticky;top:0}.rft-viewer-tbl td{border-bottom:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;padding:5px 12px}.rft-viewer-tbl tr:last-child td{border-bottom:none}.rft-viewer-tbl tr:nth-child(2n) td{background:color-mix(in srgb, var(--surface) 60%, transparent)}.rft-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rft-confirm{background:var(--panel-bg);border:1px solid var(--line);border-radius:10px;min-width:360px;max-width:460px;padding:26px 30px;box-shadow:0 20px 60px #00000080}.rft-confirm-title{color:var(--text);border-bottom:1px solid var(--line);margin:0 0 14px;padding-bottom:12px;font-size:1rem;font-weight:700}.rft-confirm-msg{color:var(--muted);margin:0 0 6px;font-size:.86rem;line-height:1.55}.rft-confirm-msg strong{color:var(--text)}.rft-confirm-sub{color:var(--warning,#dd9741);margin:0 0 16px;font-size:.8rem}.rft-confirm-check{color:var(--text);cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:6px;align-items:flex-start;gap:9px;margin-bottom:18px;padding:10px 12px;font-size:.82rem;line-height:1.4;display:flex}.rft-confirm-check input[type=checkbox]{accent-color:#c0392b;cursor:pointer;flex-shrink:0;width:15px;height:15px;margin-top:2px}.rft-confirm-btns{justify-content:flex-end;gap:8px;display:flex}.rft-confirm-cancel{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:5px;padding:8px 18px;font-size:.82rem;font-weight:600}.rft-confirm-cancel:hover{color:var(--text);border-color:var(--text)}.rft-confirm-ok{color:#fff;cursor:pointer;background:#c0392b;border:1px solid #c0392b;border-radius:5px;padding:8px 18px;font-size:.82rem;font-weight:600;transition:background .12s}.rft-confirm-ok:hover{background:#a93226}@media (width<=880px){.ftp-row,.intraday-time-grid{grid-template-columns:1fr}}.api-status svg{flex-shrink:0}.btn-saving{cursor:not-allowed;background:var(--surface)!important;color:var(--text-muted,#888)!important;box-shadow:none!important}.btn-saved{color:#fff!important;background:#27ae60!important;box-shadow:0 14px 26px #27ae6033!important}.btn-error{color:#fff!important;background:#e74c3c!important;box-shadow:0 14px 26px #e74c3c33!important}.jr-wrap{overflow-x:auto}.jr-msg{color:var(--text-muted,#888);padding:24px;font-size:.9rem}.jr-error{color:#e74c3c}.jr-table{border-collapse:collapse;width:100%;font-size:.85rem}.jr-table th{text-align:left;border-bottom:1px solid var(--line,#e0e0e0);color:var(--text-muted,#888);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;font-size:.75rem;font-weight:600}.jr-table td{border-bottom:1px solid var(--line,#e0e0e0);vertical-align:middle;padding:10px 12px}.jr-row:hover td{background:var(--hover,#00000008)}.jr-cell-status{align-items:center;gap:6px;display:flex}.jr-status-ok{color:#27ae60}.jr-status-fail{color:#e74c3c}.jr-status-running{color:#f39c12}.jr-log-btn{border:1px solid var(--line,#ddd);cursor:pointer;color:var(--accent,#e67e22);background:0 0;border-radius:4px;padding:3px 10px;font-size:.8rem}.jr-log-btn:hover{background:var(--hover,#0000000d)}.jr-overlay{z-index:9999;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.jr-modal{background:var(--surface,#fff);border-radius:10px;flex-direction:column;width:min(860px,94vw);max-height:80vh;display:flex;box-shadow:0 20px 60px #00000040}.jr-modal-header{border-bottom:1px solid var(--line,#e0e0e0);justify-content:space-between;align-items:center;padding:14px 18px;font-size:.9rem;font-weight:500;display:flex}.jr-modal-close{cursor:pointer;color:var(--text-muted,#888);background:0 0;border:none;padding:4px;display:flex}.jr-modal-log{white-space:pre-wrap;word-break:break-all;color:var(--text,#333);flex:1;margin:0;padding:16px 18px;font-family:Courier New,monospace;font-size:.78rem;line-height:1.55;overflow-y:auto}.health-toolbar{gap:10px;margin-bottom:20px;display:flex}.health-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.health-card{border:1px solid var(--line,#e0e0e0);border-radius:10px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.health-card--ok{background:#27ae600a;border-color:#27ae6066}.health-card--fail{background:#e74c3c0a;border-color:#e74c3c66}.health-card--warn{background:#f39c120a;border-color:#f39c1266}.health-card-icon{color:var(--text-muted,#888);flex-shrink:0;padding-top:2px}.health-card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#888);margin-bottom:4px;font-size:.75rem}.health-card-value{font-size:1.1rem;font-weight:600}.health-card-sub{color:var(--text-muted,#888);margin-top:2px;font-size:.8rem}
