.charging-dial-wrap{display:grid;justify-items:center;gap:.6rem}.charging-dial{position:relative;width:238px;height:238px;display:grid;place-items:center}.charging-dial-svg{display:block;filter:drop-shadow(0 1px 2px rgba(16,24,40,.06))}.charging-dial.is-interactive .charging-dial-svg{cursor:grab;touch-action:none}.charging-dial.is-interactive .charging-dial-svg:active{cursor:grabbing}.charging-dial-track{fill:none;stroke:var(--track-color)}.charging-dial-progress{fill:none;stroke-linecap:round;transition:stroke-dashoffset .4s ease;stroke:var(--muted-text)}.charging-dial-progress.tone-charging{stroke:var(--success)}.charging-dial-progress.tone-available{stroke:var(--info)}.charging-dial-progress.tone-preparing{stroke:var(--warning)}.charging-dial-progress.tone-finishing,.charging-dial-progress.tone-suspended{stroke:var(--secondary)}.charging-dial-progress.tone-error{stroke:var(--error)}.charging-dial-progress.tone-neutral{stroke:var(--track-strong-color)}.charging-dial-handle{fill:var(--panel);stroke:var(--accent);stroke-width:3;filter:drop-shadow(0 1px 3px rgba(16,24,40,.3))}.charging-dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;justify-items:center;align-content:center;gap:.3rem;text-align:center;padding:0 1.6rem;pointer-events:none}.charging-dial-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin-bottom:.1rem}.charging-dial-badge{display:inline-block;max-width:100%;font-size:.7rem;font-weight:700;letter-spacing:.02em;padding:.26rem .6rem;border-radius:999px;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.charging-dial-badge.tone-charging{color:var(--success);background:var(--success-bg)}.charging-dial-badge.tone-available{color:var(--info);background:var(--info-bg)}.charging-dial-badge.tone-preparing{color:var(--warning);background:var(--warning-bg)}.charging-dial-badge.tone-finishing,.charging-dial-badge.tone-suspended{color:var(--secondary);background:var(--secondary-bg)}.charging-dial-badge.tone-error{color:var(--error);background:var(--error-bg)}.charging-dial-badge.tone-neutral{color:var(--muted-text);background:var(--track-color)}.charging-dial-badge.tone-online{color:var(--success);background:var(--success-bg)}.charging-dial-badge.tone-offline{color:var(--muted-text);background:var(--track-color)}.charging-dial-value{font-size:2rem;font-weight:700;color:var(--text-color);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.charging-dial-unit{font-size:.9rem;font-weight:600;color:var(--muted-text);margin-left:.2rem}.charging-dial-secondary{font-size:1.05rem;font-weight:600;color:var(--text-color);font-variant-numeric:tabular-nums}.charging-dial-secondary-unit{font-size:.8rem;font-weight:600;color:var(--muted-text);margin-left:.15rem}.charging-dial-footer{font-size:.78rem;color:var(--muted-text);font-variant-numeric:tabular-nums}.charging-dial-footer-label{font-weight:600;margin-right:.3rem}.charging-dial-footer-unit{margin-left:.15rem}@media (max-width: 640px){.charging-dial,.charging-dial-svg{width:258px;height:258px}.charging-dial-wrap{gap:.4rem}.charging-dial-center{padding:0 1.2rem;gap:.25rem}.charging-dial-badge{font-size:.72rem;padding:.24rem .55rem}.charging-dial-value{font-size:1.9rem}.charging-dial-unit{font-size:.86rem}.charging-dial-secondary{font-size:1rem}.charging-dial-footer{font-size:.76rem}}.charging-history-chart{display:grid;gap:.5rem}.charging-history-chart svg{display:block;width:100%;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.charging-history-chart svg:active{cursor:grabbing}.chart-hint{margin:0;text-align:center;font-size:.72rem;color:var(--muted-text)}.chart-gridline{stroke:var(--border-color);stroke-width:1;shape-rendering:crispEdges}.chart-axis-label{fill:var(--muted-text);font-size:13px}.chart-line{fill:none;stroke-width:2.5}.chart-line-offered{stroke:var(--info);stroke-dasharray:4 3}.chart-line-usage{stroke:var(--success)}.chart-area-usage{fill:var(--success);opacity:.12;stroke:none}.chart-legend{display:flex;gap:1rem;justify-content:center;font-size:.82rem;color:var(--muted-text)}.chart-legend-item{display:inline-flex;align-items:center;gap:.4rem}.chart-swatch{width:12px;height:4px;border-radius:2px;display:inline-block}.chart-swatch-offered{background:var(--info)}.chart-swatch-usage{background:var(--success)}.charger-overview{display:grid;gap:1rem}.section-card{background:var(--panel);border:1px solid var(--border-color);border-radius:16px;padding:1rem;box-shadow:var(--panel-shadow)}.overview-card{display:grid;gap:1.25rem}.dial-section{display:grid;justify-items:center;gap:.85rem}.dial-readout{display:flex;align-items:center;gap:.5rem;color:var(--text-color);font-size:.82rem}.dial-readout output{color:var(--accent);font-weight:700}.dial-hint{margin:0;font-size:.78rem;color:var(--muted-text);text-align:center}.dial-transport-row{display:flex;justify-content:center;gap:.75rem}.icon-button{width:56px;height:56px;border-radius:999px;border:none;display:inline-flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.icon-button:hover{transform:translateY(-1px)}.icon-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.icon-button-play{background:var(--success)}.icon-button-stop{background:var(--error)}.icon-button-graph{background:var(--info)}.icon-button-sessions{background:var(--accent)}.icon-button-logs{background:var(--secondary)}.icon-button-reset{background:var(--warning)}.secondary-button.is-danger{border-color:transparent;background:var(--error-bg);color:var(--error)}.hero-copy{min-width:0;display:grid;gap:.35rem}.hero-name-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.hero-name-row h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-name-indicators{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.hero-name-indicators .status-dot{margin-top:0}.overview-card h2,.section-card h3{margin:0;letter-spacing:-.02em}.overview-card h2{font-size:clamp(1.4rem,3.4vw,1.8rem)}.hero-subtitle{margin:0;color:var(--muted-text)}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;color:var(--muted-text);font-size:.9rem}.hero-meta code{font-size:.92em}.hero-meta span:not(:last-child):after{content:"·";margin:0 .5rem;color:var(--border-color)}.muted-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.4rem .7rem;font-size:.82rem;font-weight:700;border:1px solid var(--border-color);background:var(--track-color);color:var(--muted-text)}.free-vending-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .6rem;font-size:.85rem;font-weight:700;background:var(--info-bg);color:var(--info)}.tag-picker{display:grid;gap:.3rem;max-height:260px;overflow-y:auto;padding:.25rem;border:1px solid var(--border-color);border-radius:12px;background:var(--panel-alt)}.tag-option{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;width:100%;text-align:left;padding:.55rem .7rem;border:1px solid transparent;border-radius:8px;background:var(--panel);color:var(--text-color);cursor:pointer}.tag-option:hover{border-color:var(--border-color)}.tag-option.is-selected{border-color:var(--accent);background:var(--accent-soft)}.tag-option strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-option-id{flex-shrink:0;font-size:.8rem;color:var(--muted-text);font-variant-numeric:tabular-nums}.session-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}.metric-card{display:grid;gap:.3rem;padding:.6rem .75rem;border-radius:12px;background:var(--panel-alt);border:1px solid var(--border-color)}.metric-label{color:var(--muted-text);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}.metric-card strong{font-size:1.05rem;color:var(--text-color)}.priority-field{display:flex;align-items:center;gap:.4rem}.priority-input{width:3.4rem;border:1px solid var(--border-color);border-radius:8px;padding:.15rem .35rem;font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-color);background:var(--panel)}.priority-input:disabled{opacity:.6}.icon-button-check{width:26px;height:26px;border-radius:999px;border:none;background:var(--accent);color:var(--accent-contrast);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.icon-button-check:disabled{opacity:.5;cursor:not-allowed}.slider-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;color:var(--text-color)}.slider-header.compact{font-size:.82rem}.slider-header output{color:var(--accent);font-weight:700}.action-row{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.primary-button,.secondary-button{border:none;border-radius:10px;padding:.8rem 1rem;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background-color .15s ease}.primary-button{background:var(--accent);color:var(--accent-contrast)}.secondary-button{background:var(--panel-alt);color:var(--text-color);border:1px solid var(--border-color)}.primary-button:hover,.secondary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed;transform:none}@media (max-width: 640px){.section-card{padding:.8rem .9rem}.overview-card{gap:.7rem}.hero-name-row{gap:.5rem}.hero-copy{gap:.2rem}.overview-card h2{font-size:1.45rem}.hero-subtitle{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted-chip{padding:.3rem .55rem;font-size:.82rem}.dial-section{gap:.6rem}.dial-readout{font-size:.95rem}.dial-hint{font-size:.85rem}.icon-button{width:56px;height:56px}.hero-meta{font-size:.88rem;gap:.35rem .55rem}.action-row{gap:.5rem}.primary-button,.secondary-button{padding:.6rem .85rem}.session-summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem}.metric-card{padding:.45rem .55rem;gap:.15rem}.metric-label{font-size:.72rem}.metric-card strong{font-size:1.05rem}}.logs-screen{display:grid;gap:1rem}.log-filters{display:grid;gap:.6rem;padding:.75rem;border-radius:12px;background:var(--panel-alt);border:1px solid var(--border-color)}.log-search{display:grid;gap:.3rem}.log-search-label{color:var(--muted-text);font-size:.78rem}.log-search input{width:100%;border-radius:8px;border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);padding:.6rem .7rem;outline:none}.log-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.log-count{color:var(--muted-text);font-size:.82rem}.log-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem}.log-ranges{display:flex;flex-wrap:wrap;gap:.5rem}.log-jump-button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);border-radius:999px;padding:.45rem .85rem;font-size:.86rem;cursor:pointer;white-space:nowrap;transition:border-color .15s ease}.log-jump-button:hover{border-color:var(--accent);color:var(--accent)}.log-range-chip{border:1px solid var(--border-color);background:var(--panel-alt);color:var(--text-color);border-radius:999px;padding:.45rem .85rem;font-size:.86rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.log-range-chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.log-list{display:grid;gap:.4rem}.log-day{position:sticky;top:0;margin-top:.35rem;padding:.3rem 0;background:var(--panel);color:var(--muted-text);font-size:.78rem;font-weight:700;letter-spacing:.04em}.log-day:first-child{margin-top:0}.log-entry{display:grid;gap:.25rem;padding:.6rem .75rem;border-radius:10px;background:var(--panel-alt);border:1px solid var(--border-color)}.log-entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;color:var(--muted-text);font-size:.78rem}.log-entry-meta time{font-variant-numeric:tabular-nums}.log-category{border-radius:999px;padding:.15rem .5rem;background:var(--info-bg);color:var(--info);font-size:.7rem;font-weight:700;letter-spacing:.03em}.log-logger{border-radius:999px;padding:.15rem .5rem;background:var(--track-color);color:var(--muted-text);font-size:.7rem;font-weight:700}.log-level{border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.log-level.tone-preparing{background:var(--warning-bg);color:var(--warning)}.log-level.tone-error{background:var(--error-bg);color:var(--error)}.log-message{margin:0;color:var(--text-color);font-size:.88rem;line-height:1.45;overflow-wrap:anywhere}@media (max-width: 640px){.log-entry{padding:.5rem .6rem}.log-message{font-size:.84rem}}.sessions-screen{display:grid;gap:1rem}.session-filters{display:grid;gap:.6rem;padding:.75rem;border-radius:12px;background:var(--panel-alt);border:1px solid var(--border-color)}.session-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}.session-field{display:grid;gap:.3rem;min-width:0}.session-field>span{color:var(--muted-text);font-size:.78rem}.session-field select,.session-field input{width:100%;border-radius:8px;border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);padding:.55rem .6rem;outline:none}.session-field select:focus,.session-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.session-chips{display:flex;flex-wrap:wrap;gap:.5rem}.session-chip{border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);border-radius:999px;padding:.45rem .85rem;font-size:.86rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.session-chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.session-groupby{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.session-groupby-label{color:var(--muted-text);font-size:.78rem}.session-total{color:var(--muted-text);font-size:.85rem}.session-list{display:grid;gap:1rem}.session-bucket{display:grid;gap:.5rem}.session-bucket-header{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem;padding:.4rem 0;background:var(--panel);border-bottom:1px solid var(--border-color)}.session-bucket-header strong{font-size:.95rem}.session-bucket-header span{color:var(--muted-text);font-size:.82rem;font-variant-numeric:tabular-nums}.session-card{display:grid;gap:.4rem;padding:.7rem .8rem;border-radius:12px;background:var(--panel-alt);border:1px solid var(--border-color)}.session-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.session-card-head strong{font-variant-numeric:tabular-nums}.session-energy{color:var(--success);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.session-meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;color:var(--text-color);font-size:.84rem}.session-meta-label{color:var(--muted-text);margin-right:.3rem}.session-graph-button{justify-self:start;border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);border-radius:999px;padding:.35rem .8rem;font-size:.82rem;cursor:pointer}.session-graph-button:hover{border-color:var(--accent);color:var(--accent)}@media (max-width: 640px){.session-card{padding:.6rem .65rem}.session-meta{font-size:.8rem}}:root{color-scheme:light;--bg: #f3f4f6;--panel: #ffffff;--panel-alt: #f7f8fa;--border-color: rgba(0, 0, 0, .12);--panel-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--text-color: rgba(0, 0, 0, .87);--muted-text: rgba(0, 0, 0, .6);--accent: #1976d2;--accent-strong: #115293;--accent-contrast: #ffffff;--accent-soft: rgba(25, 118, 210, .08);--success: #2e7d32;--success-bg: rgba(46, 125, 50, .12);--warning: #ed6c02;--warning-bg: rgba(237, 108, 2, .12);--error: #d32f2f;--error-bg: rgba(211, 47, 47, .12);--info: #0288d1;--info-bg: rgba(2, 136, 209, .12);--secondary: #9c27b0;--secondary-bg: rgba(156, 39, 176, .12);--track-color: #eceff1;--track-strong-color: #b0bec5;font-family:Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text-color)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-height:100vh;background:inherit;color:var(--text-color)}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}code{font-family:Consolas,Liberation Mono,Menlo,monospace}.app-shell{width:min(1280px,calc(100% - 1.5rem));margin:0 auto;padding:0 0 2rem;display:block}.auth-shell{position:relative;min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--bg)}.settings-trigger{position:absolute;top:1rem;right:1rem}.auth-card{width:min(100%,440px);padding:1.5rem;display:grid;gap:1rem}.auth-brand{display:grid;justify-items:center;text-align:center;gap:.15rem}.auth-logo{width:56px;height:56px;object-fit:contain;margin-bottom:.5rem}.auth-form{display:grid;gap:.9rem}.field{display:grid;gap:.45rem}.field span{color:var(--muted-text);font-size:.9rem}.field input{width:100%;border-radius:8px;border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);padding:.85rem .95rem;outline:none}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-button{width:100%}.auth-footer{text-align:center}.panel{background:var(--panel);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--panel-shadow)}.app-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1rem;padding:1.1rem 1.25rem;background:var(--accent);color:var(--accent-contrast);border-radius:0 0 12px 12px;box-shadow:var(--panel-shadow)}.main-header{align-items:center;flex-wrap:nowrap;position:sticky;top:0;z-index:15;margin-bottom:1rem}.header-left{display:flex;align-items:center;gap:1rem;min-width:0;flex:1 1 auto}.app-header h1,.section-header h2{margin:0;letter-spacing:-.02em}.app-header h1{font-size:clamp(1.4rem,3.4vw,1.9rem);color:var(--accent-contrast);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header .eyebrow{color:#fffc}.eyebrow,.section-kicker{margin:0 0 .35rem;color:var(--muted-text);text-transform:uppercase;letter-spacing:.1em;font-size:.74rem}.subtle{margin:.5rem 0 0;color:var(--muted-text)}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.header-user-wrap{position:relative;min-width:0;flex-shrink:1}.header-user{display:flex;align-items:center;gap:.4rem;width:100%;min-width:0;padding:.45rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#ffffff24;color:var(--accent-contrast);font:inherit;font-weight:600;text-align:left;cursor:pointer;transition:background-color .15s ease}.header-user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-user-caret{flex-shrink:0;opacity:.8;transition:transform .15s ease}.header-user[aria-expanded=true] .header-user-caret{transform:rotate(180deg)}.header-user:hover,.header-user[aria-expanded=true]{background:#ffffff3d}.header-user-menu{position:absolute;top:calc(100% + .5rem);right:0;z-index:40;min-width:12rem;padding:.5rem;display:grid;gap:.25rem;color:var(--text-color)}.header-user-menu-head{display:grid;gap:.1rem;padding:.35rem .35rem .5rem;border-bottom:1px solid var(--border-color);margin-bottom:.15rem}.header-user-menu-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-user-menu-head small{color:var(--muted-text);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.menu-button{width:2.6rem;height:2.6rem;flex-shrink:0;border-radius:10px;border:1px solid rgba(255,255,255,.4);background:#ffffff1f;color:var(--accent-contrast);display:grid;place-items:center;gap:.22rem;padding:.5rem;cursor:pointer}.menu-button span{width:1rem;height:2px;border-radius:999px;background:currentColor;display:block}.status-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:700;border:1px solid var(--border-color)}.chip-online{background:var(--success-bg);color:var(--success)}.chip-offline{background:var(--track-color);color:var(--muted-text)}.ghost-button{border:1px solid var(--border-color);background:var(--panel);color:var(--text-color);border-radius:8px;padding:.65rem .95rem;cursor:pointer}.app-header .ghost-button{border-color:#ffffff80;background:#ffffff1f;color:var(--accent-contrast)}.ghost-button:disabled{opacity:.55;cursor:not-allowed}.alerts{display:grid;gap:.75rem;margin-bottom:1rem}.alert{padding:.9rem 1rem;border-radius:10px;border:1px solid var(--border-color)}.alert-error{background:var(--error-bg);color:var(--error);border-color:transparent}.alert-success{background:var(--success-bg);color:var(--success);border-color:transparent}.main-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.list-panel,.detail-panel{padding:1rem}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.inline-state,.empty-state{color:var(--muted-text);padding:1rem 0}.empty-state{display:grid;justify-items:center;gap:.75rem;text-align:center}.empty-state p{margin:0}.charger-list{display:grid}.charger-items{display:grid;gap:.75rem}.charger-card{width:100%;border:1px solid var(--border-color);background:var(--panel-alt);color:var(--text-color);border-radius:12px;padding:.9rem;display:flex;align-items:flex-start;gap:.85rem;cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease,background-color .15s ease}.charger-card:hover{transform:translateY(-1px);border-color:var(--accent)}.charger-card.is-selected{border-color:var(--accent);background:var(--accent-soft)}.status-dot{width:12px;height:12px;border-radius:999px;margin-top:.4rem;flex-shrink:0}.status-dot.is-online{background:var(--success);box-shadow:0 0 0 4px var(--success-bg)}.status-dot.is-offline{background:var(--track-strong-color);box-shadow:0 0 0 4px var(--track-color)}.charger-copy{min-width:0;flex:1;display:grid;gap:.35rem}.charger-name-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.charger-name-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charger-meta{display:flex;gap:.75rem;flex-wrap:wrap;color:var(--muted-text);font-size:.88rem}.charger-stats{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.1rem}.charger-stat{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.28rem .6rem;font-size:.8rem;font-weight:700;border:1px solid var(--border-color);background:var(--track-color);color:var(--text-color);white-space:nowrap}.charger-stat-label{font-weight:600;color:var(--muted-text)}.detail-panel{background:var(--panel)}.group-list{display:grid;gap:1rem}.group-card{border:1px solid var(--border-color);background:var(--panel-alt);border-radius:12px;padding:1rem;display:grid;gap:.85rem}.group-card-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.75rem;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.group-card-heading{display:flex;align-items:center;gap:.5rem;min-width:0}.group-chevron{display:inline-flex;flex-shrink:0;color:var(--muted-text);transition:transform .15s ease}.group-card-header.is-open .group-chevron{transform:rotate(90deg)}.group-card-header:hover h3{color:var(--accent)}.group-card-header h3{margin:0}.group-allocation{display:flex;flex-wrap:wrap;gap:.5rem}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:#0f172a66;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:20}.menu-backdrop.is-open{opacity:1;pointer-events:auto}.menu-drawer{position:fixed;top:0;left:0;width:min(100vw,340px);height:100vh;border-radius:0 16px 16px 0;padding:1rem;transform:translate(-102%);transition:transform .24s ease;z-index:30;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;background:var(--panel);box-shadow:0 20px 60px #10182840}.menu-drawer.is-open{transform:translate(0)}.menu-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.menu-nav{display:grid;gap:.5rem}.menu-nav-item{display:flex;align-items:center;gap:.85rem;width:100%;border:none;background:var(--accent-soft);color:var(--text-color);border-radius:14px;padding:.9rem 1rem;cursor:pointer;text-align:left;transition:transform .15s ease}.menu-nav-item:hover{transform:translateY(-1px)}.menu-nav-item.is-active{box-shadow:inset 0 0 0 2px var(--accent)}.menu-nav-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--accent);color:var(--accent-contrast)}.menu-nav-copy{display:grid;gap:.1rem;min-width:0}.menu-nav-copy strong{font-size:1.02rem}.menu-nav-copy small{color:var(--muted-text);font-size:.8rem}.menu-footer{margin-top:auto;display:grid;gap:.1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.menu-footer-item{border:none;background:transparent;color:var(--muted-text);padding:.6rem .35rem;font-size:.86rem;text-align:left;cursor:pointer;border-radius:8px}.menu-footer-item:hover{background:var(--panel-alt);color:var(--text-color)}.menu-footer-item.is-danger{color:var(--error)}.menu-footer-item.is-danger:hover{background:var(--error-bg)}.modal-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92vw,420px);max-height:90vh;overflow-y:auto;padding:1.25rem;z-index:40;display:grid;gap:1rem}.modal-panel.is-wide{width:min(96vw,860px)}.modal-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-panel-header h3{margin:0}.modal-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.about-list{display:grid;gap:.5rem;margin:0}.about-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.about-row:last-child{border-bottom:none}.about-row dt{color:var(--muted-text)}.about-row dd{margin:0;color:var(--text-color);font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 960px){.section-header,.charger-name-row{align-items:flex-start;flex-direction:column}}@media (max-width: 640px){.app-shell{width:100%;padding-bottom:1.5rem}.app-header,.list-panel,.detail-panel{padding:.85rem 1rem}.app-header{border-radius:0}.main-header h1{font-size:1.5rem}.main-header .menu-button{width:2.5rem;height:2.5rem;padding:.4rem}.menu-drawer{width:min(100vw,92vw)}}
