*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.app{max-width:820px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:20px}.desktop-grid,.left-column{display:flex;flex-direction:column;gap:20px}.chart-container{height:300px}@media(min-width:900px){.app{max-width:960px}.desktop-grid{display:grid;grid-template-columns:280px 1fr}.left-column{display:flex;flex-direction:column;gap:20px}.right-column{display:flex}.right-column .card{flex:1;display:flex;flex-direction:column}.right-column .card .section-title{flex-shrink:0;text-align:left}.card:has(.table-wrapper) .section-title{text-align:left}.right-column .chart-container{flex:1;min-height:0;height:auto}}.header{text-align:center}.header h1{font-size:1.75rem;font-weight:700;color:#fbbf24}.header-subtitle{font-size:.85rem;color:#94a3b8;margin-top:4px}.card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:20px 12px}.hour-counts{display:flex;flex-direction:column;gap:12px;padding:16px 12px}.hour-counts-body{display:flex;justify-content:space-around;text-align:center;align-items:center;gap:0}.hour-count{display:flex;flex-direction:column;gap:2px;flex:1;padding:4px 0}.hour-count-divider{width:1px;height:48px;background:#334155;flex-shrink:0}.hour-count-value{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2}.hour-count-label{font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.hour-count-desc{font-size:.65rem;color:#64748b;margin-top:2px}.hour-count-avg{font-size:.7rem;margin-top:4px}.section-title{font-size:.8rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;text-align:center}.date-selector{position:relative;display:flex;justify-content:center}.date-trigger{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid #475569;border-radius:8px;background:#1e293b;color:#e2e8f0;font-size:.85rem;font-weight:500;cursor:pointer;font-family:inherit;transition:border-color .15s}.date-trigger:hover{border-color:#94a3b8}.date-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1e293b;border:1px solid #475569;border-radius:10px;padding:12px;z-index:50;width:260px;box-shadow:0 8px 24px #0006}.date-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.date-nav-label{font-size:.85rem;font-weight:600;color:#e2e8f0}.date-nav-btn{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex}.date-nav-btn:hover:not(:disabled){color:#e2e8f0;background:#334155}.date-nav-btn:disabled{opacity:.3;cursor:default}.date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-weekday{text-align:center;font-size:.7rem;font-weight:600;color:#64748b;padding:4px 0;text-transform:uppercase}.date-empty{height:0}.date-day{text-align:center;padding:5px 0;font-size:.8rem;font-weight:500;color:#e2e8f0;background:none;border:none;border-radius:6px;cursor:pointer;font-family:inherit;transition:background .1s}.date-day:hover:not(.disabled){background:#334155}.date-day.today{font-weight:700;color:#fbbf24}.date-day.selected{background:#fbbf24;color:#0f172a;font-weight:700}.date-day.disabled{opacity:.25;cursor:default}.tax-toggle{display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;padding:8px 0}.tax-toggle input{display:none}.tax-toggle-track{position:relative;width:44px;height:24px;background:#334155;border-radius:12px;transition:background .2s;flex-shrink:0}.tax-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#94a3b8;border-radius:50%;transition:transform .2s,background .2s}.tax-toggle input:checked+.tax-toggle-track{background:#fbbf24}.tax-toggle input:checked+.tax-toggle-track:after{transform:translate(20px);background:#0f172a}.tax-toggle-label{font-size:.85rem;color:#94a3b8;-webkit-user-select:none;user-select:none;font-weight:500}.tax-toggle input:checked~.tax-toggle-label{color:#fbbf24}.tax-notice{text-align:center;font-size:.75rem;color:#fbbf24;margin:-4px 0 4px;font-weight:500}.tariff-selector{display:flex;flex-direction:column;gap:10px;align-items:center}.tariff-options{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.tariff-option{padding:6px 14px;border:1px solid #334155;border-radius:999px;background:transparent;color:#94a3b8;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.tariff-option:hover{border-color:#475569;color:#e2e8f0}.tariff-option.active{background:transparent;font-weight:600}.tariff-slider-row{display:flex;align-items:center;gap:10px}.tariff-slider-label{font-size:.8rem;color:#94a3b8}.tariff-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:140px;height:6px;border-radius:3px;background:#334155;outline:none}.tariff-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#34d399;cursor:pointer}.tariff-slider-value{font-size:.9rem;font-weight:700;color:#34d399;min-width:44px;font-variant-numeric:tabular-nums}.tariff-info{font-size:.78rem;color:#94a3b8;text-align:center;margin-top:2px}.tariff-disclaimer{font-size:.68rem;color:#64748b;text-align:center;margin-top:0;max-width:340px}.current-price-card{text-align:center}.current-price-tariff-label{font-size:.7rem;color:#64748b;margin-bottom:4px}.current-price-na{color:#94a3b8;font-size:.95rem}.current-price-main{display:flex;align-items:baseline;justify-content:center;gap:8px;flex-wrap:wrap}.current-price-value{font-size:2.5rem;font-weight:800;font-variant-numeric:tabular-nums}.current-price-unit{font-size:1rem;color:#94a3b8}.current-price-badge{font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:999px;text-transform:uppercase}.badge-low{background:#166534;color:#86efac}.badge-medium{background:#854d0e;color:#fde047}.badge-high{background:#991b1b;color:#fca5a5}.level-low .current-price-value{color:#4ade80}.level-medium .current-price-value{color:#fbbf24}.level-high .current-price-value{color:#f87171}.current-price-stats{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:.8rem;color:#94a3b8}.current-price-stats span{white-space:nowrap}.stat-min{color:#4ade80;font-weight:600}.stat-max{color:#f87171;font-weight:600}.stat-avg{color:#fbbf24;font-weight:600}.text-red{color:#f87171}.text-green{color:#4ade80}.chart-tooltip{background:#1e293b;border:1px solid #475569;border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.chart-tooltip strong{color:#f1f5f9;font-size:.85rem}.chart-tooltip span{color:#fbbf24;font-size:.85rem}.table-wrapper{overflow-x:auto}.price-table{width:100%;border-collapse:collapse;font-size:.9rem}.price-table th{text-align:left;padding:8px 12px;border-bottom:2px solid #334155;color:#94a3b8;font-weight:600;font-size:.8rem;text-transform:uppercase}.price-table td{padding:8px 12px;border-bottom:1px solid #1e293b}.price-table tbody tr:hover{background:#0f172a40}.text-right{text-align:right}.text-center,.price-table th.text-center{text-align:center}.row-now{outline:2px solid #fbbf24;outline-offset:-2px;border-radius:4px}.row-low td:first-child{border-left:3px solid #4ade80}.row-medium td:first-child{border-left:3px solid #fbbf24}.row-high td:first-child{border-left:3px solid #f87171}.period-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px}.period-low{background:#166534;color:#86efac}.period-medium{background:#854d0e;color:#fde047}.period-high{background:#991b1b;color:#fca5a5}.loader{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#94a3b8}.spinner{width:20px;height:20px;border:3px solid #334155;border-top:3px solid #fbbf24;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-msg{background:#7f1d1d;border:1px solid #991b1b;border-radius:8px;padding:12px 16px;color:#fca5a5;text-align:center}.footer{text-align:center;font-size:.75rem;color:#475569;padding:16px 0}.footer a{color:#60a5fa;text-decoration:none}.footer a:hover{text-decoration:underline}
