@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.raterudder-header{background:#11131899;border-bottom:1px solid var(--border);height:64px;position:sticky;top:0;z-index:1000;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:100%}.header-inner{display:flex;justify-content:space-between;align-items:center;height:100%;padding-top:0;padding-bottom:0}.brand-logo{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:800;color:var(--text-primary);text-decoration:none;margin-right:2rem}.header-logo-img{height:32px;width:auto}.header-left{display:flex;align-items:center;flex:1}.site-selector-header{background:var(--surface-container-low);border:1px solid var(--border);color:var(--on-surface);padding:.5rem .875rem;border-radius:var(--radius-sm);font-size:.875rem;font-family:inherit;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.35rem;text-align:left}.site-selector-header:hover{background:var(--surface-container-high);border-color:var(--primary)}.site-name-header{font-size:.85rem;color:var(--text-muted);margin-left:.5rem}.header-nav{flex:2;display:flex;justify-content:center;gap:.5rem}.nav-link{color:var(--on-surface-variant);text-decoration:none;font-weight:700;font-size:.9rem;padding:.5rem 1rem;border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.16,1,.3,1)}.nav-link:hover{color:var(--primary);background:var(--surface-container-low)}.nav-link.active{color:var(--primary);background:var(--surface-container-high)}.header-right{flex:1;display:flex;justify-content:flex-end;align-items:center}.login-link,.logout-link{color:var(--on-surface-variant);text-decoration:none;font-size:.875rem;font-weight:700;background:var(--surface-container-low);border:1px solid var(--border);padding:.5rem 1.25rem;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:all .2s cubic-bezier(.16,1,.3,1)}.login-link:hover,.logout-link:hover{border-color:var(--primary);color:var(--on-surface);background:var(--surface-container-high);box-shadow:0 0 15px #4b8eff1a}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:26px;height:26px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001;position:relative}.mobile-menu-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:2px}.hamburger-line{width:22px;height:2px;background-color:var(--on-surface-variant);border-radius:2px;transition:all .3s cubic-bezier(.16,1,.3,1);position:absolute;left:50%;transform-origin:center}.hamburger-line:nth-child(1){top:6px;transform:translate(-50%)}.hamburger-line:nth-child(2){top:12px;transform:translate(-50%)}.hamburger-line:nth-child(3){top:18px;transform:translate(-50%)}.mobile-menu-toggle.open .hamburger-line:nth-child(1){top:12px;transform:translate(-50%) rotate(45deg)}.mobile-menu-toggle.open .hamburger-line:nth-child(2){opacity:0}.mobile-menu-toggle.open .hamburger-line:nth-child(3){top:12px;transform:translate(-50%) rotate(-45deg)}.header-content{display:contents}@media(max-width:768px){.raterudder-header{height:60px;z-index:1100}.header-inner{position:static}.brand-logo{margin-right:1rem;font-size:1.1rem}.header-left,.header-nav,.header-right{min-width:0}.mobile-menu-toggle{display:flex;margin-left:auto}.raterudder-header.logged-in .header-content{display:none;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);padding:1rem;box-shadow:var(--shadow-lg);z-index:1000}.raterudder-header.logged-in .header-content.open{display:flex}.header-nav{flex-direction:column;width:100%;margin-bottom:1rem}.header-right{justify-content:center;width:100%}.nav-link{text-align:center;width:100%;display:block;box-sizing:border-box}.logout-link,.login-link{width:100%;text-align:center;display:block}}.hide-on-desktop{display:none}@media(max-width:768px){.hide-on-mobile{display:none}.hide-on-desktop{display:inline}.login-link{white-space:nowrap;padding:.4rem .75rem;font-size:.85rem}}.app-footer{margin-top:auto;padding:4rem 0 2rem;text-align:center;border-top:1px solid var(--ghost-border);color:var(--text-muted);font-size:.875rem;background:var(--bg-app)}.footer-content{display:flex;flex-direction:column;gap:.75rem;align-items:center}.footer-links{display:flex;gap:1.5rem;align-items:center}.footer-links a{color:var(--on-surface-variant);text-decoration:none;font-weight:600;transition:all .2s ease}.footer-links a:hover{color:var(--primary)}.separator{border:none;width:1px;height:14px;background:var(--ghost-border);margin:0}.opensource-link{color:var(--text-muted);display:flex;align-items:center;gap:.5rem}.opensource-link a{color:var(--on-surface);text-decoration:none;font-weight:700;transition:color .15s ease}.opensource-link a:hover{color:var(--primary)}.copyright{margin-top:.5rem;font-size:.8125rem;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.05em;opacity:.6}.feedback-widget-container{position:fixed;bottom:24px;right:24px;z-index:1000}.feedback-fab{width:56px;height:56px;border-radius:50%;background-color:var(--primary-color, #10b981);color:#fff;border:none;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;transition:transform .2s,background-color .2s}.feedback-fab:hover{transform:scale(1.05);background-color:var(--primary-hover-color, #059669)}.feedback-fab[data-popup-open]{background-color:var(--primary-hover-color, #059669)}.feedback-fab:focus-visible{outline:2px solid var(--primary-color, #10b981);outline-offset:-1px}.feedback-popup{box-sizing:border-box;padding:20px;border-radius:12px;background-color:var(--bg-color, white);color:var(--text-color, #111827);transform-origin:var(--transform-origin);transition:transform .15s,opacity .15s;width:var(--popup-width, auto);height:var(--popup-height, auto);max-width:500px;min-width:320px;display:flex;flex-direction:column;gap:16px;outline:1px solid var(--border-color, #e5e7eb);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.feedback-popup[data-starting-style],.feedback-popup[data-ending-style]{opacity:0;transform:scale(.9)}.feedback-arrow{display:flex}.feedback-arrow[data-side=top]{bottom:-8px;rotate:180deg}.feedback-arrow[data-side=bottom]{top:-8px;rotate:0deg}.feedback-arrow[data-side=left]{right:-13px;rotate:90deg}.feedback-arrow[data-side=right]{left:-13px;rotate:-90deg}.feedback-arrow-fill{fill:var(--bg-color, white)}.feedback-arrow-outer-stroke{fill:var(--border-color, #e5e7eb)}.feedback-title{margin:0;font-size:18px;color:var(--text-color, #111827)}.feedback-desc{margin:0;font-size:14px;line-height:1.5rem;color:var(--text-muted-color, #6b7280)}.feedback-sentiment{display:flex;justify-content:space-around}.sentiment-btn{background:none;border:2px solid transparent;font-size:32px;cursor:pointer;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:all .2s;filter:grayscale(100%);opacity:.6}.sentiment-btn:hover{filter:grayscale(0%);opacity:1;transform:scale(1.1)}.sentiment-btn:focus-visible{outline:2px solid var(--primary-color, #10b981);outline-offset:2px}.sentiment-btn.selected{filter:grayscale(0%);opacity:1;background-color:var(--bg-hover-color, #f3f4f6);border-color:var(--primary-color, #10b981)}.feedback-textarea{width:100%;min-height:100px;resize:vertical;padding:12px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-family:inherit;font-size:14px;box-sizing:border-box}.feedback-textarea:focus{outline:none;border-color:var(--primary-color, #10b981);box-shadow:0 0 0 2px #10b98133}.feedback-actions{display:flex;justify-content:flex-end;gap:12px}.feedback-cancel-btn{background:none;border:none;color:var(--text-muted-color, #6b7280);cursor:pointer;font-weight:500;padding:8px 16px;border-radius:6px}.feedback-cancel-btn:focus-visible{outline:2px solid var(--primary-color, #10b981);outline-offset:2px}.feedback-cancel-btn:hover{background-color:var(--bg-hover-color, #f3f4f6)}.feedback-submit-btn{background-color:var(--primary-color, #10b981);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-weight:500;cursor:pointer}.feedback-submit-btn:focus-visible{outline:2px solid var(--primary-color, #10b981);outline-offset:2px}.feedback-submit-btn:hover:not(:disabled){background-color:var(--primary-hover-color, #059669)}.feedback-submit-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-success{text-align:center;padding:20px 0;color:var(--primary-color, #10b981)}.feedback-error{color:#ef4444;font-size:14px;margin-top:-8px}:root{--surface: #111318;--surface-container-low: #1a1c20;--surface-container-high: #282a2e;--surface-container-highest: #333539;--primary: #4b8eff;--primary-glow: #adc6ff;--on-primary: #001a41;--accent: #00ffc2;--warning: #ffb800;--danger: #ff4b4b;--bg-app: var(--surface);--on-surface: #e2e2e8;--on-surface-variant: #c1c6d7;--text-primary: var(--on-surface);--text-secondary: var(--on-surface-variant);--text-muted: #8b90a0;--outline: #8b90a0;--outline-variant: #414755;--border: rgba(65, 71, 85, .15);--ghost-border: rgba(139, 144, 160, .15);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .2);--shadow-md: 0 12px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 40px 40px 0 rgba(0, 26, 65, .08);--radius-sm: 6px;--radius-md: 6px;--radius-lg: 12px;--radius-xl: 16px;--spacing-4: 1rem;--spacing-6: 1.3rem;--spacing-16: 3.5rem;--spacing-20: 4.5rem;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--font-mono: "Inter", monospace}.input,.form-group input{width:100%;padding:.875rem 1.125rem;font-family:inherit;font-size:1rem;color:var(--on-surface);background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--radius-md);transition:all .2s cubic-bezier(.16,1,.3,1);box-sizing:border-box}.input:focus,.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),0 0 15px #4b8eff33;background:var(--surface-container-high)}.input:disabled,.form-group input:disabled{background:var(--surface-container-low);color:var(--text-muted);opacity:.5;cursor:not-allowed}*{box-sizing:border-box}html,body{overflow-x:hidden;position:relative;width:100%}body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;background-color:var(--bg-app);color:var(--text-primary);line-height:1.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.content-container{max-width:1000px;width:100%;margin:0 auto;padding:0 var(--spacing-sm)}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-container-home{display:flex;flex-direction:column;min-height:100vh;width:100%}.main-content{flex:1;padding-top:var(--spacing-md);padding-bottom:var(--spacing-xl)}.auth-page{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:70vh;gap:1.5rem}.auth-card{background:var(--surface-container-low);padding:var(--spacing-16) var(--spacing-md);border-radius:var(--radius-lg);border:1px solid var(--ghost-border);box-shadow:var(--shadow-lg);text-align:center;width:100%;max-width:440px;animation:authSlideUp .6s cubic-bezier(.16,1,.3,1);position:relative;z-index:1}@keyframes authSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-card h1{margin-top:0;margin-bottom:.75rem;font-size:2.25rem;font-weight:800;color:var(--on-surface)}.auth-card p:first-of-type{color:var(--on-surface-variant);margin-bottom:2.5rem;font-size:1rem;line-height:1.6}.auth-alternate-link{font-size:.875rem;color:var(--text-muted)}.auth-alternate-link a{color:var(--primary);text-decoration:none;font-weight:600}.auth-alternate-link a:hover{text-decoration:underline}.loading-screen{display:flex;justify-content:center;align-items:center;min-height:50vh;color:var(--text-muted);font-weight:500;flex-direction:column}.loading-screen .loading-spinner-large{margin-right:0;margin-bottom:1rem}.card{background:var(--surface-container-low);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--spacing-md);box-shadow:var(--shadow-sm);transition:all .2s ease}.card:hover{background:var(--surface-container-high);box-shadow:var(--shadow-md)}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;transition:all .2s;cursor:pointer;border:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-glow);box-shadow:0 4px 12px #4b8eff4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-container-high);border:1px solid var(--border);color:var(--on-surface-variant)}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--on-surface);background:var(--surface-container-highest)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.action-list-container{display:flex;flex-direction:column;gap:var(--spacing-md)}.action-list-container .header{display:flex;justify-content:center;margin-bottom:var(--spacing-sm)}.date-controls{display:flex;align-items:center;gap:var(--spacing-md);background:var(--surface-container-low);padding:.5rem var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border)}.date-controls h2{margin:0;font-size:1.125rem;font-weight:700;min-width:200px;text-align:center;color:var(--on-surface)}.date-controls button{background:transparent;border:none;color:var(--on-surface-variant);font-weight:600;cursor:pointer;padding:.5rem 1rem;border-radius:var(--radius-sm);transition:all .2s ease}.date-controls button:hover:not(:disabled){color:var(--primary);background:var(--surface-container-high)}.date-controls button:disabled{opacity:.3;cursor:not-allowed}.savings-hero{margin-bottom:2rem;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-container-low);box-shadow:var(--shadow-sm)}.overview-hero{display:flex;min-height:180px}.net-savings-panel{flex:0 0 320px;background:var(--surface-container-highest);padding:1.5rem 2rem;color:var(--on-surface);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.net-savings-panel:after{content:"";position:absolute;top:0;left:0;width:1px;height:100%;background:linear-gradient(to bottom,var(--primary),transparent);opacity:.4}.hero-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem}.hero-value{font-size:3rem;font-weight:800;line-height:1;color:var(--on-surface);font-variant-numeric:tabular-nums;display:block}.hero-value.positive{color:var(--accent)}.hero-value.negative{color:#f87171}.hero-breakdown{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--ghost-border);padding-top:1rem}.breakdown-item{display:flex;align-items:center;gap:.75rem;font-size:.8125rem}.breakdown-item .dot{width:8px;height:8px;border-radius:2px}.dot.solar{background:var(--warning);box-shadow:0 0 8px var(--warning)}.dot.battery{background:var(--accent);box-shadow:0 0 8px var(--accent)}.dot.credit{background:var(--primary);box-shadow:0 0 8px var(--primary)}.breakdown-item .label{color:var(--text-muted);font-weight:600;flex:1}.breakdown-item .value{font-weight:700;color:var(--on-surface);font-variant-numeric:tabular-nums}.usage-stats-panel{flex:1;padding:1.5rem 2rem;display:flex;flex-direction:column;justify-content:center;gap:1.5rem;background:var(--surface-container-low)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{display:flex;flex-direction:column;justify-content:space-between;min-height:52px;gap:4px;padding:8px 12px;border-radius:var(--radius-sm);transition:background .2s ease;background:var(--surface-container-low)}.stat-card:hover{background:var(--surface-container-high)}.stat-label{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;display:block}.stat-value{font-size:1.125rem;font-weight:700;color:var(--on-surface);white-space:nowrap;font-variant-numeric:tabular-nums}.stat-value.positive{color:var(--accent)}.stat-value small{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-left:2px}.current-status-card{margin-bottom:.5rem;padding:var(--spacing-md) var(--spacing-lg)}.current-status-card{padding:var(--spacing-lg);border-radius:var(--radius-lg);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl);background:var(--surface-container-low);border:1px solid var(--border);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.current-status-card.discharging{border-left:6px solid var(--accent)}.current-status-card.charging{border-left:6px solid var(--primary)}.current-status-card.standby{border-left:6px solid var(--warning)}.current-status-card.grid-unavailable{border-left:6px solid var(--danger)}.current-status-card.paused{border-left:6px solid var(--outline-variant)}.status-main{display:flex;align-items:center;gap:var(--spacing-md)}.status-icon{width:48px;height:48px;border-radius:8px;background:var(--surface-container-high);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.current-status-card.discharging .status-icon{background:#00ffc21a;color:var(--accent)}.current-status-card.charging .status-icon{background:#4b8eff1a;color:var(--primary)}.current-status-card.standby .status-icon{background:#ffb8001a;color:var(--warning)}.status-info{display:flex;flex-direction:column}.status-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.status-value{font-size:1.25rem;font-weight:700;color:var(--on-surface)}.status-metrics{display:flex;gap:var(--spacing-lg);flex:1;justify-content:flex-end;flex-wrap:wrap}.metric{display:flex;flex-direction:column;min-width:90px}.metric-label{font-size:.75rem;font-weight:600;color:var(--text-muted)}.metric-value{font-size:1.5rem;font-weight:700;color:var(--on-surface);display:flex;align-items:baseline;gap:4px;font-variant-numeric:tabular-nums}.metric-value small{font-size:.8125rem;font-weight:500;margin-left:2px}.battery-bar{margin-top:4px;width:100%}.battery-track{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.battery-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s ease-out}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}to{transform:scale(1);opacity:1}}.current-status-card.charging .icon{animation:pulse 2s infinite ease-in-out}.select-trigger{width:100%;padding:.875rem 1.125rem;font-family:inherit;font-size:1rem;color:var(--on-surface);background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--radius-md);transition:all .2s cubic-bezier(.16,1,.3,1);box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.combobox-input-wrapper{display:flex;align-items:center;width:100%;padding:0;gap:0}.combobox-input{flex:1;border:none;background:transparent;color:var(--on-surface);padding:.75rem 1rem;font-size:1rem;outline:none;min-width:0}.combobox-input::placeholder{color:var(--on-surface-variant);opacity:.5}.combobox-trigger{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--on-surface-variant);padding:0 1rem;cursor:pointer;height:100%;text-align:left}.select-trigger:focus,.combobox-input-wrapper:focus-within{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),0 0 15px #4b8eff33;background:var(--surface-container-high)}.combobox-input-wrapper{display:flex;align-items:center;width:100%;padding:0;gap:0;border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:var(--surface-container-low);overflow:hidden;transition:all .2s cubic-bezier(.16,1,.3,1)}.select-positioner{z-index:1000}.select-popup{background:var(--surface-container-high);border:1px solid var(--outline-variant);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:.5rem;max-height:20rem;overflow-y:auto;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.select-item{padding:.75rem 1rem;font-size:.95rem;color:var(--on-surface);border-radius:6px;cursor:pointer;transition:background .15s ease;display:flex;align-items:center}.select-item:hover,.select-item[data-highlighted]{background:var(--surface-container-highest);color:var(--primary)}.select-item[data-selected]{font-weight:700;background:#4b8eff1a;color:var(--primary)}.switch-group{gap:.25rem}.switch-row{display:flex;align-items:center;gap:.75rem}.switch-row label{cursor:pointer;font-size:1rem}.switch-root{width:2.75rem;height:1.5rem;padding:3px;border-radius:99px;border:none;background:var(--surface-container-highest);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;flex-shrink:0;position:relative;box-shadow:inset 0 1px 4px #0003}.switch-root[data-checked]{background:var(--primary);box-shadow:inset 0 1px 4px #0000001a,0 0 10px #4b8eff4d}.switch-thumb{display:block;width:1.125rem;height:1.125rem;border-radius:50%;background:var(--on-surface-variant);transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 4px #0000004d}.switch-root[data-checked] .switch-thumb{transform:translate(1.25rem);background:#fff}.action-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.action-item{background:var(--surface-container-low);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;gap:var(--spacing-md);transition:all .2s ease}.action-item:hover{background:var(--surface-container-high);transform:translateY(-1px)}.action-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.875rem;color:var(--text-muted);font-weight:600;min-width:80px;padding-top:.15rem}.action-details{flex:1}.action-details h3{margin:0 0 .5rem;font-size:1rem;font-weight:700;color:var(--on-surface)}.action-details p{margin:0 0 .75rem;color:var(--on-surface-variant);font-size:.95rem;line-height:1.5}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{padding:.25rem .75rem;border-radius:99px;font-size:.75rem;font-weight:600;text-transform:capitalize}.tag.mode-charge_any{background:#4b8eff1a;color:var(--primary);border:1px solid rgba(75,142,255,.2)}.tag.mode-charge_solar,.tag.mode-load{background:#00ffc21a;color:var(--accent);border:1px solid rgba(0,255,194,.2)}.tag.mode-standby{background:#ffb8001a;color:var(--warning);border:1px solid rgba(255,184,0,.2)}.tag.mode-no_change{background:var(--surface-container-highest);color:var(--text-muted);border:1px solid var(--border)}.tag.solar-export{background:#00ffc21a;color:var(--accent);border:1px solid rgba(0,255,194,.2)}.tag.solar-no_export{background:#ffb8001a;color:var(--warning);border:1px solid rgba(255,184,0,.2)}.tag.dry-run{background:#7e22ce1a;color:#c084fc;border:1px solid rgba(126,34,206,.2)}.action-item.fault-item{border-left:4px solid var(--danger);background:#ff4b4b0d}.warning-banner{background:#ffb8001a;border:1px solid rgba(255,184,0,.2);border-left:4px solid var(--warning);color:var(--warning)}.fault-alarms{color:var(--danger);font-weight:600}.action-footer{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);font-size:.8125rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.5rem .75rem}.price-label{font-weight:600;color:var(--text-secondary)}.no-actions{text-align:center;padding:var(--spacing-xl);color:var(--text-muted);font-style:italic;background:var(--surface);border-radius:var(--radius-lg);border:1px dashed var(--border)}.loading-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:save-spin 1s linear infinite;display:inline-block;margin-right:.5rem}.loading-spinner-large{width:2.5rem;height:2.5rem;border-width:3px;border-color:var(--outline-variant);border-top-color:var(--primary);margin-right:1rem}@keyframes save-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.banner{display:flex;align-items:center;padding:1rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.95rem;line-height:1.5;border-left:4px solid transparent}.banner p{margin:0;display:flex;align-items:center;gap:.75rem}.banner-dismiss-btn{background:none;border:none;color:inherit;cursor:pointer;font-size:1.5rem;padding:0 8px;line-height:1;border-radius:var(--radius-sm);transition:all .2s ease;opacity:.7}.banner-dismiss-btn:hover{opacity:1;background:#0000000d}.banner-dismiss-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;opacity:1}.warning-banner{background:#ffb8001a;border:1px solid rgba(255,184,0,.2);border-left:4px solid var(--warning);color:var(--on-surface)}.warning-banner p:before{content:"⚠️";font-size:1.25rem;margin-right:.25rem}.info-banner{background:#4b8eff1a;border:1px solid rgba(75,142,255,.2);border-left:4px solid var(--primary);color:var(--on-surface)}.info-banner p:before{content:"ℹ️";font-size:1.25rem;margin-right:.25rem}.error{background:#ff4b4b1a;color:var(--on-surface);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem;text-align:center;border:1px solid rgba(255,75,75,.2)}@media(max-width:768px){.current-status-card{flex-direction:column;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md)}.status-metrics{justify-content:flex-start;width:100%;gap:var(--spacing-md)}.metric{min-width:0;flex:1}.overview-hero{flex-direction:column}.net-savings-panel{flex:none;width:100%}}@media(max-width:640px){.action-item{flex-direction:column;gap:.5rem}.action-time{font-size:.75rem}}.app-container,.app-container-home{isolation:isolate}.join-form{display:flex;flex-direction:column;gap:1rem}.join-field{display:flex;flex-direction:column;text-align:left}.join-field label{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.06em}.join-error{color:#dc2626;background:#fef2f2;padding:.6rem .9rem;border-radius:var(--radius-sm);font-size:.85rem;border:1px solid #fecaca}.join-submit{padding:.65rem;background:var(--primary);color:var(--text-on-primary);border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s ease,transform .1s ease;margin-top:.5rem;display:flex;align-items:center;justify-content:center}.join-submit:hover:not(:disabled){background:var(--primary-hover)}.join-submit:active:not(:disabled){transform:scale(.98)}.join-submit:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.join-consent{font-size:.78rem;color:var(--text-muted);margin:0;line-height:1.4}.join-consent a{color:var(--primary);text-decoration:none}.join-consent a:hover{text-decoration:underline}.landing-page{font-family:var(--font-body);color:var(--on-surface-variant);line-height:1.6;background-color:var(--surface);overflow-x:clip;width:100%;background-image:radial-gradient(var(--outline-variant) 1px,transparent 1px);background-size:24px 24px;background-attachment:fixed}.content-container{max-width:1100px;width:100%;margin:0 auto;padding:0 1.5rem;position:relative;z-index:2}.content-container.hero-layout{display:flex;align-items:center;justify-content:space-between;gap:4rem}.hero-section{width:100%;padding:6rem 0;min-height:85vh;position:relative;display:flex;align-items:center;overflow:hidden}.hero-section:before{content:"";position:absolute;top:0;left:10%;width:1px;height:60%;background:linear-gradient(to bottom,var(--primary),transparent);opacity:.3}.hero-section:after{content:"";position:absolute;bottom:0;right:15%;width:1px;height:40%;background:linear-gradient(to top,var(--accent),transparent);opacity:.2}.badge{display:inline-block;padding:.4rem 1rem;background:#4b8eff1a;color:var(--primary-glow);border-radius:99px;font-size:.75rem;font-weight:700;margin-bottom:2rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(75,142,255,.2)}.hero-content{flex:1.2;max-width:650px}.hero-content h1{font-size:4.5rem;line-height:.95;color:var(--on-surface);margin-bottom:2rem;margin-top:0;font-weight:900}.hero-content .highlight{color:var(--primary);text-shadow:0 0 30px rgba(75,142,255,.3)}.hero-content p{font-size:1.25rem;color:var(--on-surface-variant);margin-bottom:3.5rem;max-width:540px;line-height:1.5}.cta-wrapper{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}.cta-button{display:inline-block;padding:1.25rem 3.5rem;font-size:1.25rem;font-weight:700;color:var(--on-primary);background:var(--primary);border-radius:6px;text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 24px #4b8eff4d;border-top:1px solid rgba(255,255,255,.2);cursor:pointer}.cta-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #4b8eff80;background:var(--primary-glow)}.hero-visual{flex:.8;position:relative;display:flex;justify-content:center;align-items:center;height:500px}.floating-card{position:absolute;background:#1a1c2099;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:3rem;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;animation:float 8s ease-in-out infinite;z-index:10;border:1px solid rgba(139,144,160,.1)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-30px)}}.floating-card strong{font-size:5rem;color:var(--accent);font-weight:900;line-height:1;margin:1rem 0;font-variant-numeric:tabular-nums;text-shadow:0 0 40px rgba(0,255,194,.2)}.floating-card span{font-size:.75rem;text-transform:uppercase;color:var(--text-muted);font-weight:700;letter-spacing:.2em}.status-indicator{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--accent);font-weight:600;margin-top:2rem;padding:.6rem 1.25rem;background:#00ffc20d;border-radius:4px}.status-indicator .dot{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px var(--accent);animation:pulse 2s infinite ease-in-out}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.features-strip{width:100%;padding:var(--spacing-20) 0;background:var(--surface);position:relative;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.features-strip:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 50%,rgba(75,142,255,.03) 0%,transparent 60%);pointer-events:none}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:2rem}@media(max-width:1000px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.features-grid{grid-template-columns:1fr}}.feature-item{position:relative;display:flex;flex-direction:column;gap:1.5rem;padding:2.5rem;background:#1a1c2066;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:1px solid rgba(139,144,160,.1);transition:all .4s cubic-bezier(.16,1,.3,1);overflow:hidden}.feature-item:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(800px circle at var(--mouse-x, 0) var(--mouse-y, 0),rgba(255,255,255,.06),transparent 40%);opacity:0;transition:opacity .5s;pointer-events:none;z-index:1}.feature-item:hover{transform:translateY(-8px);background:#1a1c2099;border-color:#8b90a04d;box-shadow:0 20px 40px #0000004d,0 0 0 1px #ffffff0d}.feature-item:hover:before{opacity:1}.feature-item.arbitrage{--feature-color: var(--warning);--feature-glow: rgba(255, 184, 0, .2)}.feature-item.grid{--feature-color: var(--primary);--feature-glow: rgba(75, 142, 255, .2)}.feature-item.intelligence{--feature-color: #ff007a;--feature-glow: rgba(255, 0, 122, .2)}.feature-item.advanced{--feature-color: #7c4dff;--feature-glow: rgba(124, 77, 255, .2)}.feature-item.rocket{--feature-color: var(--accent);--feature-glow: rgba(0, 255, 194, .2)}.feature-item.insights{--feature-color: var(--primary-glow);--feature-glow: rgba(173, 198, 255, .2)}.feature-item .icon{font-size:2rem;background:var(--surface-container-high);width:4.5rem;height:4.5rem;display:flex;align-items:center;justify-content:center;border-radius:16px;transition:all .5s cubic-bezier(.16,1,.3,1);position:relative;z-index:2;border:1px solid rgba(255,255,255,.05);box-shadow:inset 0 0 20px #0003}.feature-item:hover .icon{transform:scale(1.1) rotate(5deg);background:var(--feature-color);color:var(--on-primary);box-shadow:0 0 30px var(--feature-glow);border-color:#ffffff4d}.feature-item h3{font-size:1.5rem;font-weight:800;color:var(--on-surface);margin:0;letter-spacing:-.02em;position:relative;z-index:2}.feature-item p{font-size:1.05rem;color:var(--on-surface-variant);line-height:1.6;margin:0;position:relative;z-index:2;opacity:.9}.feature-item:after{content:"";position:absolute;bottom:-50px;right:-50px;width:150px;height:150px;background:radial-gradient(circle,var(--feature-glow) 0%,transparent 70%);opacity:0;transition:opacity .5s;z-index:0}.feature-item:hover:after{opacity:1}.live-demo-section{width:100%;padding:var(--spacing-20) 0}.section-header{text-align:center;margin-bottom:4rem}.section-header h2{font-size:2.5rem;color:var(--on-surface);margin-bottom:1.5rem;font-weight:800}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;width:100%}.chart-card{background:var(--surface-container-low);border-radius:12px;padding:2rem;height:380px;display:flex;flex-direction:column;transition:background .3s ease;border:1px solid rgba(139,144,160,.05)}.chart-card:hover{background:var(--surface-container-high)}.chart-card.full-width{grid-column:span 2}.chart-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2rem}.chart-card h3{font-size:.75rem;font-weight:700;color:var(--text-muted);margin:0;text-transform:uppercase;letter-spacing:.15em;display:flex;align-items:center;gap:.75rem}.chart-card h3:before{content:"";display:block;width:8px;height:2px;background:var(--primary)}.chart-stat{font-family:var(--font-mono);font-size:1.25rem;font-weight:700;color:var(--on-surface);font-variant-numeric:tabular-nums}.chart-wrapper{flex:1;width:100%;min-height:0}.faq-section{width:100%;padding:var(--spacing-20) 0;background:var(--surface-container-low)}.faq-container{display:flex;flex-direction:column;gap:1.5rem;max-width:850px;margin:0 auto}.faq-item{background:var(--surface-container-high);border-radius:8px;padding:0 2rem;transition:all .3s ease;border:none}.faq-item[data-open]{background:var(--surface-container-highest)}.faq-question{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:1.25rem;color:var(--on-surface);padding:1.5rem 0;margin-bottom:0;background:none;border:none;width:100%;text-align:left;font-family:inherit;transition:color .2s ease}.faq-item[data-open] .faq-question{padding-bottom:.5rem}.faq-question:hover{color:var(--primary)}.toggle-icon{color:var(--text-muted);background:#8b90a01a;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .3s ease}.toggle-icon:after{content:"+";font-size:1.5rem;display:block;line-height:0;margin-top:-2px}.faq-item[data-open] .toggle-icon{background:var(--primary);color:var(--on-primary);transform:rotate(45deg);box-shadow:0 0 15px #4b8eff66}.faq-answer{overflow:hidden}.faq-answer:not([data-open]){height:0}.faq-answer[data-open]{padding-bottom:1.5rem;padding-top:0;height:auto}.faq-answer p{color:var(--on-surface-variant);margin:0;line-height:1.7;font-size:1.05rem}.marketing-disclaimer{font-size:.75rem;color:var(--text-muted);max-width:800px;margin:4rem auto 0;text-align:center;opacity:.6}@media(max-width:900px){.content-container.hero-layout{flex-direction:column;gap:4rem;text-align:center;padding-top:2rem}.hero-content{flex:none;display:flex;flex-direction:column;align-items:center}.hero-content h1{font-size:3.25rem}.cta-wrapper{align-items:center}.hero-visual{flex:none;height:400px;width:100%}.charts-grid{grid-template-columns:1fr}.chart-card.full-width{grid-column:span 1}}@media(max-width:600px){.hero-content h1{font-size:2.75rem}.floating-card strong{font-size:3.5rem}}.timeline{list-style:none;padding:2rem 0;position:relative;max-width:800px;margin:0 auto}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:24px;width:2px;background:linear-gradient(to bottom,transparent,var(--outline-variant) 50px,var(--outline-variant) calc(100% - 50px),transparent);opacity:.3}.timeline-item{position:relative;padding-left:64px;margin-bottom:2.5rem;background:transparent;animation:timelineItemSlideIn .5s cubic-bezier(.16,1,.3,1) both}@keyframes timelineItemSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.timeline-marker{position:absolute;left:17px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--surface-container-highest);border:2px solid var(--outline-variant);z-index:1;transition:all .3s ease}.timeline-item:hover .timeline-marker{transform:scale(1.3);border-color:var(--primary);box-shadow:0 0 12px var(--primary-glow)}.timeline-item.mode-charge_any .timeline-marker{border-color:var(--primary);background:var(--primary)}.timeline-item.mode-charge_solar .timeline-marker{border-color:var(--accent);background:var(--accent)}.timeline-item.mode-load .timeline-marker{border-color:var(--accent)}.timeline-item.mode-standby .timeline-marker{border-color:var(--warning)}.timeline-item.mode-fault .timeline-marker{border-color:var(--danger);background:var(--danger)}.timeline-item.is-grouped .timeline-marker:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px dashed var(--outline);animation:rotate 10s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.timeline-time{position:absolute;left:-100px;top:4px;width:100px;text-align:right;padding-right:20px;font-size:.75rem;font-weight:700;color:var(--text-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media(max-width:600px){.timeline-time{position:static;width:auto;text-align:left;padding-right:0;margin-bottom:.5rem;display:block}.timeline:before{left:14px}.timeline-marker{left:7px}.timeline-item{padding-left:40px}}.timeline-content{background:var(--surface-container-low);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm);transition:all .3s ease;position:relative}.timeline-item:hover .timeline-content{background:var(--surface-container-high);border-color:var(--outline-variant);box-shadow:var(--shadow-md);transform:translateY(-2px)}.timeline-content h3{margin:0;font-size:1.125rem;font-weight:800;color:var(--on-surface);display:flex;align-items:center;gap:.75rem}.timeline-content h3 span.count{font-size:.75rem;font-weight:600;background:var(--surface-container-highest);padding:2px 8px;border-radius:4px;color:var(--text-muted)}.timeline-content .reason{margin:.75rem 0 1rem;color:var(--on-surface-variant);font-size:.9375rem;line-height:1.6}.timeline-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.timeline-metrics{display:flex;gap:1.5rem}.timeline-metric{display:flex;flex-direction:column;gap:2px}.timeline-metric .label{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.timeline-metric .value{font-size:.875rem;font-weight:700;color:var(--on-surface);font-variant-numeric:tabular-nums}.timeline-tags{display:flex;gap:.5rem;margin-top:1rem}.timeline-content .tag{opacity:.9}.fault-details{margin-top:.75rem;padding:.75rem;background:#f871711a;border-radius:var(--radius-sm);border:1px solid rgba(248,113,113,.2)}.fault-alarms{color:var(--danger);font-weight:600;font-size:.875rem}.settings-container{max-width:600px;width:100%;margin:0 auto}.settings-container h2{font-size:2.25rem;font-weight:800;color:var(--on-surface);margin-bottom:2.5rem}.settings-container h3{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:2.5rem;margin-bottom:1.25rem}.form-group{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.95rem;font-weight:700;color:var(--on-surface)}.form-group [data-field=description]{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.advanced-section{border:1px solid var(--outline-variant);border-radius:var(--radius-md);margin-top:2rem;background:var(--surface-container-low);overflow:hidden}.advanced-trigger{cursor:pointer;padding:1.25rem var(--spacing-lg);font-weight:700;font-size:1rem;color:var(--on-surface);display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;font-family:inherit;transition:background .2s}.advanced-trigger:hover{background:var(--surface-container-high)}.advanced-trigger:after{content:"→";font-size:1.25rem;transition:transform .3s cubic-bezier(.34,1.56,.64,1);color:var(--text-muted)}.advanced-trigger[data-open]:after{transform:rotate(90deg);color:var(--primary)}.advanced-panel{overflow:hidden;padding:0 var(--spacing-lg);transition:height .3s cubic-bezier(.16,1,.3,1)}.advanced-panel[data-open]{padding-bottom:2rem}.advanced-panel h3{margin-top:1.5rem;border-bottom:1px solid var(--outline-variant);padding-bottom:.5rem;font-size:.8rem}.submit-section{margin-top:3rem;display:flex;flex-direction:column;gap:1rem}.error-message,.success-message,.warning-notice{padding:1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;margin-top:1rem}.error-message{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.success-message{background:#00ffc20d;color:var(--accent);border:1px solid rgba(0,255,194,.1)}.warning-notice{background:#ffb8000d;color:var(--warning);border:1px solid rgba(255,184,0,.2)}.save-button{width:100%;margin-top:0;padding:1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;gap:.5rem}.save-button:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.save-button:active{transform:translateY(0)}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-top:3.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--outline-variant);padding-bottom:.75rem}.section-header h3{margin:0;border:none;padding:0;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.form-grid.compact-grid,.grid-strategy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:2rem;margin-bottom:2.5rem}.form-group.compact,.form-group.compact .switch-row{margin-bottom:0}.configured-summary{background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);margin-bottom:1.5rem;width:100%;text-align:left}.configured-summary:hover{background:var(--surface-container-high);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.summary-info{display:flex;flex-direction:column;gap:.25rem}.summary-label{font-weight:700;color:var(--on-surface);font-size:1.125rem}.summary-sublabel{font-size:.875rem;color:var(--text-muted);font-weight:500}.summary-status{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);background:#00ffc21a;padding:.35rem .75rem;border-radius:4px}.summary-status.pending{color:var(--warning);background:#ffb8001a}.text-button{background:none;border:none;color:var(--primary);font-weight:600;font-size:.875rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all .2s}.text-button:hover{background:#0ea5e91a;text-decoration:underline}.cancel-button{color:var(--text-secondary);margin-top:.5rem}.edit-section{background:var(--surface-container)!important;padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--primary)!important;margin-bottom:2rem;box-shadow:0 0 30px #4b8eff1a}.weather-attribution{font-size:.9em;color:var(--text-color);opacity:.8;margin-top:8px;margin-bottom:16px}.weather-attribution a{color:inherit;text-decoration:underline}.sub-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.forecast-page h2{font-size:1.875rem;font-weight:800;color:var(--on-surface);margin:0}.forecast-subtitle{font-size:.95rem;color:var(--on-surface-variant);margin-top:.5rem;margin-bottom:2.5rem}.forecast-charts{display:flex;flex-direction:column;gap:2rem}.forecast-chart-card{background:var(--surface-container-low);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin:0 0 1.5rem;box-shadow:var(--shadow-sm);transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.forecast-chart-card:hover{background:var(--surface-container-high);box-shadow:var(--shadow-md);transform:translateY(-2px)}.forecast-chart-card h3{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);margin:0 0 1.5rem;letter-spacing:.1em;display:flex;align-items:center;gap:.75rem}.forecast-chart-card h3:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary);box-shadow:0 0 8px var(--primary)}.forecast-loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.8rem}.forecast-page .error{background:#ef44441a;color:#ef4444;padding:1.25rem;border-radius:var(--radius-md);margin-bottom:1.5rem;text-align:center;border:1px solid rgba(239,68,68,.2)}.forecast-page .no-actions{text-align:center;padding:4rem;background:var(--surface-container-low);border-radius:var(--radius-lg);color:var(--text-muted);border:1px dashed var(--border)}@media(max-width:768px){.forecast-chart-card{padding:var(--spacing-md)}.forecast-page h2{font-size:1.5rem}}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 64px);background:var(--bg-app);padding:1.5rem;position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(65,71,85,.1) 1px,transparent 1px);background-size:24px 24px;z-index:0;pointer-events:none}.google-btn-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.25rem;margin-bottom:2.5rem;width:100%}.google-btn-wrapper>div{width:100%;display:flex;justify-content:center}.apple-auth-btn{width:100%!important;max-width:250px!important;height:44px!important;padding:0 1rem!important;font-family:inherit!important;font-weight:600!important;font-size:14px!important;border-radius:99px!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;transition:all .2s ease!important;border:1px solid #333!important;background-color:#000!important;color:#fff!important}.apple-auth-btn:hover{background-color:#1a1a1a!important;border-color:#444!important}.auth-disabled-message{color:var(--warning);font-size:.95rem;font-weight:600;padding:1.5rem;background:#ffb8000d;border-radius:var(--radius-md);border:1px solid rgba(255,184,0,.2);text-align:center}.login-footer{display:flex;justify-content:center;gap:1rem;align-items:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ghost-border)}.login-footer a{color:var(--on-surface-variant);text-decoration:none;font-size:.8125rem;font-weight:600;transition:color .15s ease}.login-footer a:hover{color:var(--primary)}.login-footer .separator{border:none;width:1px;height:12px;background:var(--ghost-border);margin:0}.beta-interstitial-title{font-size:2rem;margin-bottom:.5rem}.beta-interstitial-desc{color:var(--text-secondary);margin-bottom:2rem;font-size:1rem;line-height:1.5}.beta-interstitial-form{text-align:left;display:flex;flex-direction:column;gap:1.5rem}.beta-interstitial-label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);font-size:.9rem}.beta-interstitial-feedback{margin-top:2rem;padding:1.5rem;background-color:var(--surface-container-high);color:var(--on-surface);border-radius:var(--radius-lg);text-align:left;font-size:1rem;border:1px solid var(--ghost-border);line-height:1.6;box-shadow:var(--shadow-md)}.beta-interstitial-feedback.success{background-color:#00ffc214;border-color:#00ffc24d;color:var(--on-surface)}.beta-interstitial-feedback.success p:first-child{color:var(--accent)}.beta-interstitial-feedback p{margin:0}.beta-interstitial-feedback-link{color:#b45309;text-decoration:underline;font-weight:600;transition:color .15s ease}.beta-interstitial-feedback-link:hover{color:#92400e}.beta-interstitial-continue-btn{margin-top:2rem;width:100%;padding:1rem;background-color:var(--primary);color:var(--on-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:700;font-size:1rem;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 12px #0003}.beta-interstitial-continue-btn:hover{background-color:var(--primary-glow);transform:translateY(-1px);box-shadow:0 8px 24px #4b8eff4d}.admin-page{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.admin-header h1{margin:0 0 .5rem;font-size:2rem;font-weight:800;color:var(--text-primary)}.admin-header p{margin:0;color:var(--text-secondary);font-size:1.125rem}.admin-header.secondary{margin-top:2rem}.admin-separator{height:1px;background-color:var(--border);border:none;margin:1.5rem 0}.admin-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.admin-site-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);transition:all .2s ease}.admin-site-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-md)}.admin-site-info{display:flex;flex-direction:column;gap:.25rem}.admin-site-id{margin:0;font-size:1.125rem;font-weight:700;color:var(--text-primary)}.admin-site-action{font-size:.875rem;color:var(--text-muted);margin-top:.5rem;line-height:1.5}.admin-primary-btn{background-color:var(--primary);color:var(--text-on-primary)}.admin-primary-btn:hover{background-color:var(--primary-hover)}.admin-empty{padding:var(--spacing-xl);text-align:center;color:var(--text-muted);font-size:1.125rem}.admin-error{color:var(--danger);background-color:#fef2f2;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid #fecaca;margin-top:var(--spacing-md)}.admin-card-col{flex-direction:column;align-items:flex-start;gap:.5rem}.admin-card-meta{display:flex;justify-content:space-between;width:100%;font-size:.875rem;color:var(--text-muted-color)}.feedback-row{display:flex;gap:1rem;align-items:center}.feedback-sentiment{font-size:1.5rem}.feedback-comment{font-size:1rem}.feedback-extra{font-size:.75rem;color:var(--text-muted-color);margin-top:.5rem;word-break:break-all}.interest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;width:100%;font-size:.9rem}.interest-comments{font-size:1rem;margin-top:.5rem;padding:.5rem;background-color:#ffffff0d;border-radius:4px;width:100%}.policy-container{max-width:680px;margin:0 auto;padding:0;font-family:inherit;line-height:1.7;color:var(--text-primary);background-color:transparent;border-radius:0;box-shadow:none}.policy-container h1{font-size:1.75rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:.75rem}.policy-container h2{font-size:1.1rem;font-weight:700;margin-top:2rem;margin-bottom:.75rem;color:var(--text-primary)}.policy-container h3{font-size:1rem;font-weight:600;margin-top:1.25rem;margin-bottom:.5rem;color:var(--text-secondary)}.policy-container p{margin-bottom:.75rem;color:var(--text-secondary);font-size:.9rem}.policy-container ul{margin-bottom:.75rem;padding-left:1.5rem}.policy-container li{margin-bottom:.4rem;color:var(--text-secondary);font-size:.9rem}.policy-container a{color:var(--primary);text-decoration:none;font-weight:500}.policy-container a:hover{text-decoration:underline}.last-updated{font-style:italic;color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem}
