:root{--bg: #0a0f1c;--surface: #1a2332;--surface-elevated: #243447;--border: rgba(255, 255, 255, .06);--price-cheap: #10b981;--price-moderate: #f59e0b;--price-expensive: #ef4444;--status-charging: #06d6a0;--status-scheduled: #ffd166;--status-idle: #4cc9f0;--action-primary: #7c3aed;--action-danger: #dc2626;--text: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .35);--shadow-glow-green: 0 0 30px rgba(16, 185, 129, .25);--shadow-glow-amber: 0 0 30px rgba(245, 158, 11, .2);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--text-hero: clamp(1.75rem, 5vw, 2.5rem);--text-lg: clamp(1rem, 3vw, 1.25rem);--text-base: clamp(.875rem, 2.5vw, 1rem);--text-sm: clamp(.75rem, 2vw, .875rem);--text-xs: .7rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{max-width:480px;margin:0 auto;padding:var(--space-md);padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}.app-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) 0;margin-bottom:var(--space-md)}.app-header h1{font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--action-primary);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;cursor:pointer}.status-hero{border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);text-align:center;transition:all .6s var(--ease-out);margin-bottom:var(--space-lg);position:relative;overflow:hidden}.status-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.15;background:radial-gradient(circle at 50% 0%,white,transparent 70%)}.status-hero.optimal{background:linear-gradient(135deg,#059669,#10b981);box-shadow:var(--shadow-glow-green)}.status-hero.wait{background:linear-gradient(135deg,#d97706,#f59e0b);box-shadow:var(--shadow-glow-amber)}.status-hero.charging{background:linear-gradient(135deg,#0891b2,#06b6d4);box-shadow:0 0 30px #06b6d440}.status-hero.idle{background:var(--surface);border:1px solid var(--border)}.hero-icon{font-size:2.5rem;margin-bottom:var(--space-sm);position:relative}.hero-message{font-size:var(--text-hero);font-weight:800;letter-spacing:-.03em;margin-bottom:var(--space-xs);position:relative}.hero-reason{font-size:var(--text-base);opacity:.9;position:relative}.hero-price{font-size:var(--text-sm);opacity:.7;margin-top:var(--space-xs);position:relative}.hero-action{margin-top:var(--space-lg);position:relative}.hero-action .btn-hero{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:700;cursor:pointer;transition:all .2s var(--ease-out);min-height:48px}.hero-action .btn-hero:active{transform:scale(.96)}.hero-action .btn-hero:hover{background:#ffffff4d}.stats-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-bottom:var(--space-lg)}.stat-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border)}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:var(--space-xs)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.stat-unit{font-size:var(--text-sm);color:var(--text-muted);font-weight:400}.stat-sub{font-size:var(--text-xs);color:var(--text-dim);margin-top:2px}.section{margin-bottom:var(--space-lg)}.section-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:var(--space-md);padding:0 var(--space-xs)}.price-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border);margin-bottom:var(--space-md)}.price-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.price-card-title{font-size:var(--text-base);font-weight:600}.price-badge{font-size:var(--text-xs);padding:3px 8px;border-radius:var(--radius-full);background:#10b98126;color:var(--price-cheap);font-weight:500}.chart-container{height:180px;position:relative}.price-summary{display:flex;justify-content:space-between;margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.price-summary-item{text-align:center}.price-summary-label{font-size:var(--text-xs);color:var(--text-dim)}.price-summary-value{font-size:var(--text-base);font-weight:600}.price-summary-value.cheap{color:var(--price-cheap)}.price-summary-value.moderate{color:var(--price-moderate)}.price-summary-value.expensive{color:var(--price-expensive)}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);margin-bottom:var(--space-lg)}.action-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-md);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);cursor:pointer;transition:all .2s var(--ease-out);min-height:80px;justify-content:center;color:var(--text)}.action-tile:active{transform:scale(.96);background:var(--surface-elevated)}.action-tile:disabled{opacity:.4;cursor:not-allowed;transform:none}.action-tile .action-icon{font-size:1.5rem}.action-tile .action-label{font-size:var(--text-sm);font-weight:500;color:var(--text-muted)}.hours-timeline{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border);margin-bottom:var(--space-lg)}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.timeline-title{font-size:var(--text-base);font-weight:600}.timeline-bar{display:flex;gap:2px;height:32px;border-radius:var(--radius-sm);overflow:hidden}.timeline-slot{flex:1;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;transition:all .2s var(--ease-out);min-width:0}.timeline-slot.optimal{background:var(--price-cheap);color:#000}.timeline-slot.normal{background:var(--surface-elevated);color:var(--text-dim)}.timeline-slot.past{background:var(--bg);color:var(--text-dim);opacity:.4}.timeline-slot.now{outline:2px solid var(--text);outline-offset:-2px;z-index:1}.timeline-labels{display:flex;justify-content:space-between;margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--text-dim)}.history-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border)}.session-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) 0;border-bottom:1px solid var(--border)}.session-item:last-child{border-bottom:none}.session-date{font-size:var(--text-sm);color:var(--text)}.session-savings{font-size:var(--text-sm);font-weight:600;color:var(--price-cheap)}.config-badges{display:flex;gap:var(--space-sm);flex-wrap:wrap}.config-badge{font-size:var(--text-xs);padding:3px 10px;border-radius:var(--radius-full);font-weight:500}.config-badge.ok{background:#10b98126;color:var(--price-cheap)}.config-badge.missing{background:#ef444426;color:var(--price-expensive)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-md)}.spinner{width:32px;height:32px;border:3px solid var(--surface);border-top-color:var(--action-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-elevated) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.onboarding{display:flex;justify-content:center;align-items:center;min-height:80vh;padding:var(--space-md)}.onboarding-card{max-width:420px;width:100%;text-align:center}.onboarding-card h1{font-size:var(--text-hero);margin-bottom:var(--space-sm);letter-spacing:-.03em}.onboarding-card>.text-muted{margin-bottom:var(--space-2xl);color:var(--text-muted)}.onboarding-form{display:flex;flex-direction:column;gap:var(--space-md);text-align:left}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.form-group input{padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font-size:var(--text-base);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--action-primary)}.form-group input:disabled{opacity:.5}.btn-full{width:100%;padding:14px;border:none;border-radius:var(--radius-md);background:var(--action-primary);color:#fff;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s var(--ease-out);min-height:48px}.btn-full:active{transform:scale(.98)}.btn-full:disabled{opacity:.5;cursor:not-allowed;transform:none}.error-msg{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--price-expensive);padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--text-sm)}.onboarding-note{margin-top:var(--space-xl);font-size:var(--text-xs);color:var(--text-dim)}.charger-list{display:flex;flex-direction:column;gap:var(--space-sm)}.charger-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);cursor:pointer;text-align:left;color:var(--text);transition:all .2s var(--ease-out);width:100%}.charger-item:hover{border-color:var(--price-cheap)}.charger-item:disabled{opacity:.5;cursor:not-allowed}.charger-name{font-weight:600;font-size:var(--text-lg);margin-bottom:4px}.charger-details{font-size:var(--text-sm);color:var(--text-muted)}.loading-inline{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl)}.text-muted{color:var(--text-muted)}@media(min-width:768px){.app-container{max-width:600px;padding:var(--space-xl)}}
