:root{--surface-0:#121110;--surface-1:#1a1816;--surface-2:#221f1c;--surface-3:#2a2723;--surface-4:#33302b;--surface-elevated:#2e2b26;--border-0:#ffebcd0a;--border-1:#ffebcd12;--border-2:#ffebcd1f;--border-focus:#d9aa5a80;--text-0:#f5f0e8;--text-1:#c4baa8;--text-2:#8a8072;--text-3:#5c554a;--color-heat:#d4654a;--color-heat-dim:#d4654a1f;--color-cool:#5a9bbf;--color-cool-dim:#5a9bbf1f;--color-active:#d9aa5a;--color-active-dim:#d9aa5a1a;--color-ok:#7baf6e;--color-ok-dim:#7baf6e1f;--color-warn:#c84;--color-warn-dim:#cc88441f;--color-off:#5c554a;--color-off-dim:#5c554a1f;--color-dhw:#b07cc6;--color-dhw-dim:#b07cc61f;--color-defrost:#6bb8c9;--color-defrost-dim:#6bb8c91f;--radius-s:4px;--radius-m:6px;--radius-l:8px;--font-sans:"DM Sans", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", monospace}[data-theme=light]{--surface-0:#f5f2ed;--surface-1:#fff;--surface-2:#f0ede8;--surface-3:#e5e1db;--surface-4:#d9d5cf;--surface-elevated:#fff;--border-0:#0000000a;--border-1:#00000014;--border-2:#0000001f;--border-focus:#d9aa5a99;--text-0:#1a1816;--text-1:#4a4540;--text-2:#7a756e;--text-3:#a09a92;--color-heat:#c4553a;--color-heat-dim:#c4553a14;--color-cool:#4a8baf;--color-cool-dim:#4a8baf14;--color-active:#c49a4a;--color-active-dim:#c49a4a14;--color-ok:#6b9f5e;--color-ok-dim:#6b9f5e14;--color-warn:#bc7834;--color-warn-dim:#bc783414;--color-off:#a09a92;--color-off-dim:#a09a9214;--color-dhw:#a06cb6;--color-dhw-dim:#a06cb614;--color-defrost:#5ba8b9;--color-defrost-dim:#5ba8b914}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}body{font-family:var(--font-sans);background:var(--surface-0);color:var(--text-0);min-height:100vh;line-height:1.5}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.form-input:focus-visible{border-color:var(--border-focus);outline:none}.navbar{background:var(--surface-1);border-bottom:1px solid var(--border-1);z-index:100;justify-content:space-between;align-items:center;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.navbar-brand{font-family:var(--font-mono);letter-spacing:.5px;color:var(--text-1);text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.navbar-brand svg{color:var(--color-active)}.navbar-actions{align-items:center;gap:16px;display:flex}.navbar-user{color:var(--text-2);font-size:12px;font-family:var(--font-mono)}.btn-logout{border:1px solid var(--border-2);color:var(--text-2);font-size:12px;font-family:var(--font-sans);border-radius:var(--radius-s);cursor:pointer;background:0 0;padding:5px 12px;font-weight:500;transition:color .15s,border-color .15s}.btn-logout:hover{color:var(--color-heat);border-color:var(--color-heat)}.page-container{max-width:1360px;margin:0 auto;padding:20px 24px 40px}.page-header{border-bottom:1px solid var(--border-0);justify-content:space-between;align-items:flex-end;margin-bottom:20px;padding-bottom:16px;display:flex}.page-title{color:var(--text-0);letter-spacing:-.2px;font-size:18px;font-weight:600}.page-subtitle{color:var(--text-2);font-size:12px;font-family:var(--font-mono);margin-top:2px}.metric-row{background:var(--border-0);border-radius:var(--radius-l);grid-template-columns:repeat(5,1fr);gap:1px;margin-bottom:20px;display:grid;overflow:hidden}.metric-card{background:var(--surface-1);padding:16px 18px;position:relative}.metric-card:first-child{border-radius:var(--radius-l) 0 0 var(--radius-l)}.metric-card:last-child{border-radius:0 var(--radius-l) var(--radius-l) 0}.metric-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:500;display:flex}.metric-label svg{opacity:.6;width:14px;height:14px}.metric-value{font-family:var(--font-mono);letter-spacing:-1px;color:var(--text-0);font-size:28px;font-weight:700;line-height:1}.metric-value--status{font-size:20px}.metric-value .unit{color:var(--text-2);letter-spacing:0;margin-left:2px;font-size:14px;font-weight:400}.metric-sub{color:var(--text-3);font-size:11px;font-family:var(--font-mono);margin-top:6px}.metric-indicator{height:2px;position:absolute;top:0;left:0;right:0}.status-badge{border-radius:var(--radius-s);font-size:12px;font-weight:500;font-family:var(--font-mono);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.status-dot{border-radius:50%;width:6px;height:6px;animation:2.5s ease-in-out infinite blink}.status-dot-inline{vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:4px;animation:2.5s ease-in-out infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.charts-grid{background:var(--border-0);border-radius:var(--radius-l);grid-template-columns:3fr 2fr;gap:1px;margin-bottom:20px;display:grid;overflow:hidden}.charts-grid.even{grid-template-columns:1fr 1fr}.chart-panel{background:var(--surface-1);padding:20px}.chart-panel:first-child{border-radius:var(--radius-l) 0 0 var(--radius-l)}.chart-panel:last-child{border-radius:0 var(--radius-l) var(--radius-l) 0}.chart-panel.full{border-radius:var(--radius-l)}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.panel-title svg{opacity:.5;width:14px;height:14px}.time-selector{background:var(--surface-2);border-radius:var(--radius-s);gap:2px;padding:2px;display:flex}.time-btn{color:var(--text-3);font-size:11px;font-weight:500;font-family:var(--font-mono);cursor:pointer;letter-spacing:.3px;background:0 0;border:none;border-radius:3px;padding:4px 12px;transition:all .15s}.time-btn:hover{color:var(--text-1)}.time-btn.active{color:var(--text-0);background:var(--surface-4)}.details-panel{background:var(--surface-1);border-radius:var(--radius-l);margin-bottom:20px;overflow:hidden}.details-header{border-bottom:1px solid var(--border-0);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;padding:14px 20px;font-size:12px;font-weight:500;display:flex}.details-header svg{opacity:.5;width:14px;height:14px}.details-grid{background:var(--border-0);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.detail-cell{background:var(--surface-1);padding:12px 16px}.detail-cell-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:10px;font-weight:500}.detail-cell-value{font-family:var(--font-mono);color:var(--text-0);font-size:14px;font-weight:600}.val-ok{color:var(--color-ok)}.val-warn{color:var(--color-warn)}.val-off{color:var(--text-3)}.val-heat{color:var(--color-heat)}.auth-container{background:var(--surface-0);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-l);width:100%;max-width:380px;padding:32px}.auth-logo{margin-bottom:28px}.auth-logo h1{font-family:var(--font-mono);color:var(--text-1);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.auth-logo h1 svg{color:var(--color-active)}.auth-logo p{color:var(--text-2);margin-top:6px;font-size:13px}.form-group{margin-bottom:16px}.form-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;font-size:11px;font-weight:500;display:block}.form-input{background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-s);width:100%;color:var(--text-0);font-size:14px;font-family:var(--font-sans);outline:none;padding:10px 12px;transition:border-color .15s}.form-input:focus{border-color:var(--border-focus)}.form-input::placeholder{color:var(--text-3)}.btn{border-radius:var(--radius-s);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--color-active);width:100%;color:var(--surface-0)}.btn-primary:hover{background:#e0b46a}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--surface-3);border:1px solid var(--border-2);color:var(--text-1)}.btn-secondary:hover{background:var(--surface-4)}.btn-sm{width:auto;padding:6px 16px;font-size:12px}.auth-footer{text-align:center;color:var(--text-2);margin-top:20px;font-size:13px}.auth-footer a{color:var(--color-active);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.alert{border-radius:var(--radius-s);align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.alert-error{background:var(--color-heat-dim);color:#e8967e;border:1px solid #d4654a33}.alert-success{background:var(--color-ok-dim);color:#a4d498;border:1px solid #7baf6e33}.alert-info{background:var(--color-active-dim);color:#d9c48a;border:1px solid #d9aa5a33}.loading-container{min-height:200px;color:var(--text-2);font-size:13px;font-family:var(--font-mono);justify-content:center;align-items:center;gap:8px;display:flex}.spinner{border:2px solid var(--border-2);border-top-color:var(--color-active);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.landing-section{max-width:800px;margin:0 auto;padding:0 24px}.hero--centered{text-align:center;padding:64px 0 48px}.hero-eyebrow{font-family:var(--font-mono);color:var(--color-active);text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;font-size:11px;font-weight:500}.hero-title{letter-spacing:-1.5px;color:var(--text-0);margin-bottom:16px;font-size:36px;font-weight:700;line-height:1.1}.hero-subtitle{color:var(--text-2);max-width:520px;margin-bottom:24px;margin-left:auto;margin-right:auto;font-size:15px;line-height:1.6}.hero-features{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:28px;display:flex}.hero-feature{color:var(--text-1);background:var(--surface-2);border:1px solid var(--border-1);border-radius:100px;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:500;display:inline-flex}.hero-feature svg{width:13px;height:13px;color:var(--color-active)}.hero-actions{justify-content:center;gap:12px;margin-bottom:20px;display:flex}.hero-actions .btn{width:auto;padding:12px 32px}.hero-social-proof{color:var(--text-2);align-items:center;gap:8px;margin-bottom:40px;font-size:13px;display:inline-flex}.social-proof-dot{background:var(--color-ok);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.hero-social-proof strong{color:var(--text-0);font-weight:700}.hero-screenshot{max-width:100%;margin:0 auto}.mock-dashboard{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-l);overflow:hidden;box-shadow:0 4px 24px #00000040,0 1px 4px #00000026}.mock-topbar{border-bottom:1px solid var(--border-0);align-items:center;gap:8px;padding:10px 16px;display:flex}.mock-dot{border-radius:50%;width:7px;height:7px}.mock-dot--green{background:var(--color-ok)}.mock-app-name{font-size:11px;font-family:var(--font-mono);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.mock-metrics{background:var(--border-0);grid-template-columns:repeat(5,1fr);gap:1px;display:grid}.mock-metric{background:var(--surface-1);text-align:left;padding:14px 16px}.mock-metric-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:9px;font-weight:500;display:block}.mock-metric-value{font-family:var(--font-mono);letter-spacing:-.5px;color:var(--text-0);font-size:20px;font-weight:700}.mock-metric-value--ok{color:var(--color-ok)}.mock-unit{color:var(--text-3);font-size:11px;font-weight:400}.mock-chart{padding:16px 16px 8px}.mock-chart-svg{width:100%;height:60px}.mock-statusbar{border-radius:var(--radius-s);height:24px;margin:0 16px;display:flex;overflow:hidden}.mock-seg{height:100%}.mock-statusbar-label{font-size:10px;font-family:var(--font-mono);color:var(--text-3);text-align:center;letter-spacing:.3px;padding:8px 0 14px}@media (max-width:640px){.mock-metrics{grid-template-columns:repeat(3,1fr)}.mock-metric-value{font-size:16px}}.footer{text-align:center;border-top:1px solid var(--border-0);color:var(--text-3);font-size:12px;font-family:var(--font-mono);padding:24px}.footer a{color:var(--color-active);text-decoration:none}.footer a:hover{text-decoration:underline}.onboarding-steps{justify-content:center;gap:6px;margin-bottom:24px;display:flex}.step-dot{background:var(--surface-4);border-radius:50%;width:6px;height:6px;transition:all .2s}.step-dot.active{background:var(--color-active);border-radius:3px;width:20px}.step-dot.completed{background:var(--color-ok)}.onboarding-icon{background:var(--surface-3);border-radius:var(--radius-m);justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;display:flex}.onboarding-icon svg{width:24px;height:24px;color:var(--color-active)}.onboarding-title{text-align:center;margin-bottom:8px;font-size:18px;font-weight:600}.onboarding-desc{text-align:center;color:var(--text-2);margin-bottom:24px;font-size:13px;line-height:1.6}.custom-tooltip{background:var(--surface-2)!important;border:1px solid var(--border-2)!important;border-radius:var(--radius-s)!important;font-family:var(--font-mono)!important;padding:10px 12px!important}.custom-tooltip .label{color:var(--text-2);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:10px}.custom-tooltip .value{font-size:12px;font-weight:500}.empty-state{text-align:center;padding:60px 24px}.empty-state-icon{background:var(--surface-3);border-radius:var(--radius-m);justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex}.empty-state-icon svg{width:24px;height:24px;color:var(--text-2)}.empty-state-title{margin-bottom:6px;font-size:18px;font-weight:600}.empty-state-desc{color:var(--text-2);margin-bottom:20px;font-size:13px}.dh-back-link{font-size:12px;font-family:var(--font-mono);color:var(--text-3);align-items:center;gap:4px;text-decoration:none;transition:color .15s;display:inline-flex}.dh-back-link:hover{color:var(--color-active)}.dh-timeline-bar{background:var(--surface-3);border-radius:var(--radius-s);height:32px;margin-bottom:8px;position:relative;overflow:hidden}.dh-timeline-seg{height:100%;transition:opacity .15s;position:absolute;top:0}.dh-seg-ok{background:var(--color-ok);opacity:.35}.dh-seg-gap{background:var(--color-heat);opacity:.5}.dh-timeline-labels{font-size:10px;font-family:var(--font-mono);color:var(--text-3);justify-content:space-between;margin-bottom:20px;display:flex}.dh-stats-row{gap:32px;margin-bottom:20px;display:flex}.dh-stat{flex-direction:column;gap:2px;display:flex}.dh-stat-value{font-family:var(--font-mono);color:var(--text-0);font-size:20px;font-weight:700}.dh-stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}.dh-gap-list{flex-direction:column;gap:4px;display:flex}.dh-gap-item{background:var(--surface-2);border-radius:var(--radius-s);font-size:12px;font-family:var(--font-mono);align-items:center;gap:8px;padding:6px 10px;display:flex}.dh-gap-time{color:var(--text-1);flex:1}.dh-gap-dur{color:var(--color-heat);font-weight:600}.dh-quality-table{font-size:12px;font-family:var(--font-mono)}.dh-quality-header,.dh-quality-row{grid-template-columns:2fr 1fr 1fr .5fr 1.5fr;align-items:center;gap:8px;padding:10px 20px;display:grid}.dh-quality-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-0);font-size:10px;font-weight:500}.dh-quality-row{border-bottom:1px solid var(--border-0)}.dh-quality-row:last-child{border-bottom:none}.dh-field-name{color:var(--text-1);font-weight:500}.dh-field-expected{color:var(--text-3);font-size:11px}.dh-field-null{color:var(--text-2)}.dh-field-pct{color:var(--text-1);font-weight:600}.dh-field-status{align-items:center;gap:6px;display:flex}.dh-status-ok{color:var(--color-ok)}.dh-status-warn{color:var(--color-warn)}.dh-status-error{color:var(--color-heat)}.dh-cond-note{color:var(--text-3);font-size:10px;font-family:var(--font-sans)}.dh-no-anomalies{color:var(--text-2);font-size:13px;font-family:var(--font-mono);align-items:center;gap:10px;display:flex}.dh-anomaly-list{flex-direction:column;gap:6px;display:flex}.dh-anomaly-item{border-radius:var(--radius-s);border:1px solid var(--border-1);align-items:center;gap:12px;padding:10px 14px;display:flex}.dh-anomaly-warning{background:var(--color-warn-dim);border-color:#cc884426}.dh-anomaly-error{background:var(--color-heat-dim);border-color:#d4654a26}.dh-anomaly-info{background:var(--color-cool-dim);border-color:#5a9bbf26}.dh-anomaly-icon{flex-shrink:0}.dh-anomaly-warning .dh-anomaly-icon{color:var(--color-warn)}.dh-anomaly-error .dh-anomaly-icon{color:var(--color-heat)}.dh-anomaly-info .dh-anomaly-icon{color:var(--color-cool)}.dh-anomaly-content{flex-direction:column;flex:1;gap:2px;display:flex}.dh-anomaly-label{color:var(--text-0);font-size:13px;font-weight:600}.dh-anomaly-detail{font-size:11px;font-family:var(--font-mono);color:var(--text-2)}.dh-anomaly-count{font-family:var(--font-mono);color:var(--text-1);background:var(--surface-3);border-radius:var(--radius-s);padding:2px 8px;font-size:13px;font-weight:700}.settings-back-link{font-size:12px;font-family:var(--font-mono);color:var(--text-3);align-items:center;gap:4px;text-decoration:none;transition:color .15s;display:inline-flex}.settings-back-link:hover{color:var(--color-active)}.settings-section{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-l);margin-bottom:16px;overflow:hidden}.settings-section-header{border-bottom:1px solid var(--border-0);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;padding:14px 20px;font-size:12px;font-weight:500;display:flex}.settings-section-header svg{opacity:.5;width:14px;height:14px}.settings-section-body{padding:20px}.settings-status{border-radius:var(--radius-m);align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.settings-status--ok{background:var(--color-ok-dim);color:#a4d498}.settings-status--ok svg{color:var(--color-ok)}.settings-status--warn{background:var(--color-warn-dim);color:#d9c48a}.settings-status--warn svg{color:var(--color-warn)}.settings-status--off{background:var(--surface-3);color:var(--text-2)}.settings-status--off svg{color:var(--text-3)}.settings-details{margin-bottom:16px}.settings-detail-row{border-bottom:1px solid var(--border-0);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.settings-detail-row:last-child{border-bottom:none}.settings-detail-label{color:var(--text-2);font-size:12px}.settings-detail-value{color:var(--text-0);font-size:13px;font-weight:500}.settings-detail-mono{font-family:var(--font-mono);font-size:12px}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.settings-connect-intro{color:var(--text-2);margin-bottom:20px;font-size:13px;line-height:1.6}.settings-connect-intro a{text-decoration:none}.settings-connect-intro a:hover{text-decoration:underline}.settings-confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-confirm-text{color:var(--color-heat);font-size:12px;font-weight:500}.btn-settings{border:1px solid var(--border-1);border-radius:var(--radius-s);width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;justify-content:center;align-items:center;text-decoration:none;transition:all .15s;display:flex}.btn-settings:hover{color:var(--color-active);border-color:var(--color-active);background:var(--color-active-dim)}.btn-danger{background:var(--color-heat);color:#fff;border:none}.btn-danger:hover{background:#e07760}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.btn-danger-ghost{border:1px solid var(--border-2);color:var(--text-2);background:0 0}.btn-danger-ghost:hover{color:var(--color-heat);border-color:var(--color-heat);background:var(--color-heat-dim)}.dashboard-tabs{background:var(--surface-2);border-radius:var(--radius-m);-webkit-overflow-scrolling:touch;gap:2px;margin-bottom:20px;padding:3px;display:flex;overflow-x:auto}.tab-btn{color:var(--text-3);font-size:12px;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-s);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:8px 18px;transition:all .15s;display:flex}.tab-btn:hover{color:var(--text-1);background:var(--surface-3)}.tab-btn.active{color:var(--text-0);background:var(--surface-1);font-weight:600;box-shadow:0 1px 3px #0000001a}.tab-btn svg{opacity:.6;width:14px;height:14px}.tab-btn.active svg{opacity:1}.theme-toggle{border:1px solid var(--border-1);border-radius:var(--radius-s);width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-toggle:hover{color:var(--color-active);border-color:var(--color-active);background:var(--color-active-dim)}.theme-toggle svg{width:16px;height:16px}.refresh-bar{font-size:11px;font-family:var(--font-mono);color:var(--text-3);align-items:center;gap:8px;display:flex}.refresh-select{background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-s);color:var(--text-1);font-size:11px;font-family:var(--font-mono);cursor:pointer;appearance:none;outline:none;padding:4px 8px;transition:border-color .15s}.refresh-select:focus{border-color:var(--border-focus)}.refresh-dot{background:var(--color-ok);border-radius:50%;width:6px;height:6px;animation:2.5s ease-in-out infinite blink;display:inline-block}.refresh-timestamp{color:var(--text-3);font-size:10px;font-family:var(--font-mono)}.plotly-container{width:100%;min-height:280px;position:relative}.plotly-container .js-plotly-plot{width:100%!important}.plotly-container .modebar{opacity:0;transition:opacity .2s}.plotly-container:hover .modebar{opacity:.7}.plotly-container .main-svg{border-radius:var(--radius-s)}.tab-content{animation:.2s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.info-panel{background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-m);margin-bottom:20px;padding:16px 20px}.info-panel-title{color:var(--text-1);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.info-panel-title svg{width:14px;height:14px;color:var(--color-active)}.info-panel-content{color:var(--text-2);font-size:12px;line-height:1.6;font-family:var(--font-mono)}.info-panel-content strong{color:var(--text-1);font-weight:600}.feature-placeholder{text-align:center;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:40px 24px;display:flex}.feature-placeholder svg{width:32px;height:32px;color:var(--text-3);margin-bottom:12px}.feature-placeholder h3{color:var(--text-1);margin-bottom:4px;font-size:14px;font-weight:600}.feature-placeholder p{max-width:300px;font-size:12px}@media (max-width:1024px){.metric-row{grid-template-columns:repeat(3,1fr)}.charts-grid,.charts-grid.even{grid-template-columns:1fr}.chart-panel:first-child{border-radius:var(--radius-l) var(--radius-l) 0 0}.chart-panel:last-child{border-radius:0 0 var(--radius-l) var(--radius-l)}.details-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.metric-row,.details-grid{grid-template-columns:repeat(2,1fr)}.hero-title{font-size:28px}.metric-value{font-size:24px}.page-header{flex-direction:column;align-items:flex-start;gap:10px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.hero-features{gap:8px}.settings-detail-row{flex-direction:column;align-items:flex-start;gap:4px}.dashboard-tabs{gap:1px;padding:2px}.tab-btn{padding:6px 12px;font-size:11px}.tab-btn svg{display:none}}
