:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink-950:#060a12;--ink-900:#0a111d;--ink-800:#121a2b;--ink-700:#1a2438;--ink-line:#263149;--ink-text:#eef2f8;--ink-muted:#8d9bb5;--bg:#eef1f6;--surface:#fff;--surface-soft:#f8fafc;--surface-muted:#eef1f6;--border:#e1e7f0;--border-strong:#c9d2e0;--text:#0f1626;--text-soft:#33405a;--muted:#667085;--muted-soft:#98a2b3;--brand:#059669;--brand-strong:#047857;--brand-soft:#ecfdf5;--brand-border:#a7f3d0;--brand-contrast:#fff;--success:#15803d;--success-bg:#ecfdf3;--success-border:#a7f0c4;--warning:#b45309;--warning-bg:#fffaeb;--warning-border:#fde3a7;--danger:#b42318;--danger-bg:#fef2f2;--danger-border:#f7c5c0;--info:#175cd3;--info-bg:#eff8ff;--info-border:#bfdcff;--neutral:#475467;--neutral-bg:#f2f4f7;--neutral-border:#e1e7f0;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 2px 8px #1018280d;--shadow-md:0 10px 28px #10182812;--shadow-lg:0 24px 64px #1018281f;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}::selection{background:var(--brand-soft);color:var(--brand-strong)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.left-rail::-webkit-scrollbar-thumb{background:var(--ink-line);background-clip:padding-box}button,input,select,textarea{font:inherit}button{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);border-radius:var(--radius-sm);cursor:pointer;min-height:38px;padding:0 13px;font-weight:600;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform 80ms}button:hover:not(:disabled){background:var(--surface-soft);border-color:var(--border-strong);color:var(--text)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand-border);outline-offset:1px}h1,h2,h3,p{margin:0}h1{letter-spacing:-.01em;font-size:22px;font-weight:750;line-height:1.2}h2{letter-spacing:-.005em;font-size:15.5px;font-weight:750;line-height:1.25}h3{font-size:13.5px;font-weight:750;line-height:1.3}code,pre{font-family:var(--mono)}a{color:var(--brand-strong)}.app-shell{background:var(--bg);grid-template-columns:272px minmax(0,1fr);min-height:100vh;display:grid}.left-rail{background:linear-gradient(180deg, var(--ink-900) 0%, var(--ink-950) 100%);min-height:100vh;max-height:100vh;color:var(--ink-text);border-right:1px solid var(--ink-line);grid-template-rows:auto auto minmax(0,1fr) auto;gap:18px;padding:20px 16px 16px;display:grid;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:11px;padding:2px 4px 4px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand) 0%, #0a5c46 100%);color:#eafff4;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid;box-shadow:inset 0 0 0 1px #ffffff14,0 6px 16px #05966959}.sidebar-brand strong{font-size:15px;font-weight:800;line-height:1.2;display:block}.sidebar-brand span{color:var(--ink-muted);margin-top:1px;font-size:11.5px;display:block}.sidebar-station{background:var(--ink-800);border:1px solid var(--ink-line);border-radius:var(--radius-md);gap:9px;padding:12px;display:grid}.sidebar-station-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar-eyebrow{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;font-weight:800}.sidebar-station select{background:var(--ink-700);min-height:38px;color:var(--ink-text);border-color:var(--ink-line);font-size:13px}.sidebar-station select:hover{border-color:var(--brand)}.sidebar-station-id{color:var(--ink-muted);font-size:11.5px;font-family:var(--mono);overflow-wrap:anywhere}.side-nav{align-content:start;gap:16px;padding-right:2px;display:grid;overflow:auto}.nav-group{gap:3px;display:grid}.nav-group-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.07em;padding:0 8px 6px;font-size:10.5px;font-weight:800}.side-nav button{text-align:left;height:auto;min-height:0;color:var(--ink-text);background:0 0;border-color:#0000;border-radius:10px;align-items:flex-start;gap:10px;padding:8px;font-weight:600;display:flex}.nav-icon{width:30px;height:30px;color:var(--ink-muted);background:#ffffff0d;border-radius:8px;flex-shrink:0;place-items:center;transition:background .14s,color .14s;display:grid}.nav-copy{gap:1px;min-width:0;padding-top:2px;display:grid}.nav-label{font-size:13.5px;font-weight:700}.side-nav button small{color:var(--ink-muted);font-size:11px;font-weight:500;line-height:1.3}.side-nav button:hover:not(:disabled){background:var(--ink-700);border-color:var(--ink-line);color:var(--ink-text)}.side-nav button:hover:not(:disabled) .nav-icon{color:var(--ink-text)}.side-nav button.active{background:var(--brand);border-color:var(--brand);color:#eafff4}.side-nav button.active .nav-icon{color:#eafff4;background:#ffffff29}.side-nav button.active small{color:#eafff4bf}.sidebar-runtime{border-top:1px solid var(--ink-line);gap:10px;padding-top:14px;display:grid}.sidebar-runtime-row{color:var(--ink-text);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.sidebar-runtime-row span:first-child{color:var(--ink-muted);font-weight:600}.sidebar-runtime-row strong{text-align:right;font-weight:700}.content-shell{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:100vh;display:grid}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:5;background:#ffffffeb;justify-content:space-between;align-items:center;gap:18px;padding:16px 28px;display:flex;position:sticky;top:0}.header-eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11.5px;font-weight:700;display:block}.app-header p.header-desc{color:var(--muted);margin-top:3px;font-size:13px}.header-context{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.header-station{justify-items:end;margin-right:2px;display:grid}.header-station span{color:var(--muted);font-size:11.5px}.header-station strong{font-size:13px;font-family:var(--mono)}.header-quick-connect{gap:6px;display:flex}.workspace-main{background:var(--bg);align-content:start;gap:18px;min-width:0;padding:22px 28px 32px;display:grid;overflow:auto}.workspace-inner{gap:18px;width:100%;min-width:0;max-width:1320px;margin:0 auto;display:grid}.tab-panel,.tab-stack,.builder-body,.dashboard-grid{gap:18px;min-width:0;display:grid}.panel,.builder-section,.evse-detail-card,.connector-section,.connector-editor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.panel{padding:20px 22px}.builder-section,.evse-detail-card,.connector-section,.connector-editor-card{padding:16px}.panel-header,.section-heading,.evse-detail-header,.connector-section-header,.connector-editor-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-header h2{align-items:center;gap:8px;display:flex}.icon-heading{align-items:center;gap:6px;display:flex}.panel-header .icon-badge{background:var(--brand-soft);width:30px;height:30px;color:var(--brand-strong);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.app-header p,.panel-header p,.section-heading p,.collapsible-section summary p,.evse-detail-header p,.connector-section-header p{color:var(--muted);margin-top:4px;font-size:12.5px}.hero-panel{background:linear-gradient(135deg, var(--ink-900) 0%, #0d2a24 100%);border-color:var(--ink-900);color:var(--ink-text);justify-content:space-between;align-items:center;gap:18px;display:flex}.hero-panel .breadcrumb,.hero-panel h2,.hero-panel p{color:var(--ink-text)}.hero-panel p{color:var(--ink-muted);font-family:var(--mono);font-size:13px}.hero-station-icon{width:46px;height:46px;color:var(--brand-border);background:#ffffff14;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.hero-main{align-items:center;gap:14px;min-width:0;display:flex}.dashboard-metrics,.diagnostic-grid,.metrics{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;display:grid}.dashboard-metrics div,.diagnostic-grid div,.metrics div,.summary-list div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px}.metric-tile{align-items:center;gap:12px;display:flex}.metric-tile .metric-icon{background:var(--brand-soft);width:34px;height:34px;color:var(--brand-strong);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.metric-tile.tone-danger .metric-icon{background:var(--danger-bg);color:var(--danger)}.metric-tile.tone-warning .metric-icon{background:var(--warning-bg);color:var(--warning)}.metric-tile-copy{min-width:0;display:grid}.dashboard-metrics span,.diagnostic-grid span,.metrics span,.summary-list span{color:var(--muted);font-size:11.5px;font-weight:600;display:block}.dashboard-metrics strong,.diagnostic-grid strong,.metrics strong,.summary-list strong{overflow-wrap:anywhere;margin-top:3px;font-size:16px;font-weight:750;display:block}.metric-tile strong{margin-top:0;font-size:18px}.status-stack{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.pill{border:1px solid var(--border);white-space:nowrap;background:var(--neutral-bg);color:var(--neutral);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-size:12px;font-weight:750;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:999px;flex-shrink:0;width:6px;height:6px}.pill.tone-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.pill.tone-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.pill.tone-warning.pulse:before,.pill.tone-success.pulse:before{animation:1.4s ease-in-out infinite pulse-dot}.pill.tone-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.pill.tone-info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.pill.tone-neutral{background:var(--neutral-bg);color:var(--neutral);border-color:var(--neutral-border)}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0}50%{opacity:.55;box-shadow:0 0 0 4px #0000}}.collapsible-section summary>span{border:1px solid var(--border);white-space:nowrap;background:var(--surface-muted);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:750;display:inline-flex}.collapsible-section summary>span svg{transition:transform .16s}.collapsible-section[open] summary>span svg{transform:rotate(180deg)}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.field{gap:6px;min-width:0;display:grid}.field.wide{grid-column:span 2}.field.small{max-width:150px}.field span,.check-field span,.computed-url span{color:var(--text-soft);font-size:12px;font-weight:700}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:40px;color:var(--text);padding:8px 11px;transition:border-color .12s,box-shadow .12s}input:hover:not(:disabled,:focus-visible),select:hover:not(:disabled,:focus-visible){border-color:var(--border-strong)}input:disabled,select:disabled{background:var(--surface-muted);color:var(--muted)}textarea{resize:vertical;line-height:1.5;font-family:var(--mono);font-size:12.5px}input[readonly]{background:var(--surface-muted);color:var(--muted)}input.invalid{border-color:var(--danger);background:var(--danger-bg)}.check-field{align-items:center;gap:9px;min-height:40px;padding-top:20px;display:flex}.check-field input{width:17px;min-height:17px;accent-color:var(--brand)}.computed-url{gap:6px;margin-top:14px;display:grid}.computed-url code{overflow-wrap:anywhere;background:var(--ink-900);color:#b7f7d8;border:1px solid var(--ink-900);border-radius:var(--radius-sm);padding:11px 12px;font-size:12px;display:block}.action-button,button.primary{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:13px;font-weight:750;display:inline-flex}.action-button.primary,button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.action-button.primary:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong);color:var(--brand-contrast)}.action-button.secondary{background:var(--surface-soft);border-color:var(--border);color:var(--text-soft)}.action-button.danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.action-button.danger:hover:not(:disabled){border-color:var(--danger);background:#fde5e2}.action-button.primary:disabled,button.primary:disabled,.action-button.danger:disabled{background:var(--neutral-bg);border-color:var(--border);color:var(--muted-soft);opacity:1}.action-button.subtle{min-height:33px;padding:0 11px;font-size:12.5px}.button-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.button-row.compact{margin-top:10px}.button-row.no-margin{margin-top:0}.template-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.notice,.error-box,.empty-state{border-radius:var(--radius-md);align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.notice svg,.error-box svg{flex-shrink:0;margin-top:1px}.notice{color:var(--info);background:var(--info-bg);border:1px solid var(--info-border)}.error-box{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border)}.empty-state{color:var(--muted);background:var(--surface-soft);border:1px dashed var(--border-strong);text-align:center;justify-content:center}.station-list,.scenario-list,.log-list,.evse-list,.summary-list{gap:9px;display:grid}.station-item,.scenario-list button,.connector-card{text-align:left;border-radius:var(--radius-md);gap:4px;height:auto;min-height:66px;padding:12px 14px;display:grid}.station-item.selected{background:var(--ink-900);border-color:var(--ink-900);color:#fff}.station-item.selected span,.station-item.selected small{color:#c8d0dd}.evse-tab-list button.active{background:var(--ink-900);border-color:var(--ink-900);color:#fff}.evse-tab-list button.active span{color:#c8d0dd}.station-item span,.station-item small,.scenario-list span,.evse-tab-list span,.connector-editor-heading span{color:var(--muted);font-size:12px}.scenario-list button{align-content:start}.scenario-list button strong{align-items:center;gap:8px;display:flex}.library-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.connector-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px;display:grid}.connector-card{border-left:4px solid var(--border-strong);padding-left:12px;position:relative}.connector-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.connector-card-id{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.connector-card strong{align-items:center;gap:6px;font-size:14px;display:flex}.connector-card[data-tone=success]{border-left-color:var(--success);background:var(--success-bg)}.connector-card[data-tone=warning]{border-left-color:var(--warning);background:var(--warning-bg)}.connector-card[data-tone=danger]{border-left-color:var(--danger);background:var(--danger-bg)}.connector-card[data-tone=info]{border-left-color:var(--info)}.connector-card[data-tone=neutral]{border-left-color:var(--border-strong)}.connector-card.selected{background:var(--ink-900);border-left-color:var(--brand);color:#fff}.connector-card.selected .connector-card-id,.connector-card.selected small{color:#b6c0d1}.connector-card.readonly{cursor:default}.connector-card.readonly:hover{border-color:var(--border);transform:none}.connector-pulse{background:var(--success);border-radius:999px;width:7px;height:7px;animation:1.3s ease-in-out infinite pulse-dot;display:inline-flex}.connector-detail{gap:14px;margin-top:16px;display:grid}.collapsible-section{display:block}.collapsible-section summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;list-style:none;display:flex}.collapsible-section summary::-webkit-details-marker{display:none}.collapsible-section[open] summary{margin-bottom:16px}.collapsible-section[open] summary>span{background:var(--brand);border-color:var(--brand);color:#fff}.evse-workspace{grid-template-columns:minmax(190px,230px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.evse-tab-list{gap:8px;display:grid}.evse-tab-list button{text-align:left;border-radius:var(--radius-md);gap:4px;height:auto;min-height:60px;padding:12px;display:grid}.active-evse{gap:12px;min-width:0;display:grid}.evse-fields{grid-template-columns:minmax(180px,1fr) 120px 120px}.connector-editor-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px;display:grid}.connector-card-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.raw-panel .field+.button-row{margin-bottom:16px}.log-panel{flex-direction:column;display:flex}.log-filters{grid-template-columns:minmax(180px,1fr) 180px 180px;gap:10px;margin-bottom:14px;display:grid}.log-list{flex-direction:column;gap:9px;display:flex}.log-entry{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-shrink:0;overflow:hidden}.log-entry summary{cursor:pointer;grid-template-columns:96px 92px minmax(120px,190px) minmax(0,1fr);align-items:center;gap:12px;padding:11px 14px;font-size:12px;list-style:none;transition:background .12s;display:grid}.log-entry summary::-webkit-details-marker{display:none}.log-entry summary:hover{background:var(--surface-soft)}.log-entry summary>strong,.log-entry summary>.log-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.log-direction{text-align:center;background:var(--surface-muted);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.log-entry.inbound .log-direction{color:var(--info);background:var(--info-bg)}.log-entry.outbound .log-direction{color:var(--success);background:var(--success-bg)}.log-entry.system .log-direction{color:var(--warning);background:var(--warning-bg)}.log-time,.log-actions span{color:var(--muted);font-family:var(--mono);font-size:11.5px}.log-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.log-pagination{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;display:flex}.log-pagination span{color:var(--muted);font-size:12.5px}.log-pagination-controls{align-items:center;gap:10px;display:flex}.log-pagination-page{color:var(--text-soft);white-space:nowrap;font-weight:700}.log-entry pre{border-top:1px solid var(--border);background:var(--ink-950);color:#d7e2f5;margin:0;padding:13px;font-size:12px;overflow:auto}.diagnostic-list{gap:10px;margin-top:14px;display:grid}.diagnostic-list div{background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.diagnostic-list .diagnostic-icon{background:var(--info-bg);width:28px;height:28px;color:var(--info);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.diagnostic-list p,.error-box p{margin-top:4px}@media (width<=1100px){.app-shell{grid-template-columns:236px minmax(0,1fr)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.left-rail{min-height:auto;max-height:none;position:relative}.side-nav{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 8px}.nav-group{display:contents}.nav-group-label{display:none}.content-shell{min-height:auto}.app-header,.hero-panel,.panel-header,.section-heading,.evse-detail-header,.connector-section-header{grid-template-columns:1fr;display:grid}.hero-panel .status-stack,.header-context{justify-content:flex-start}.header-station{justify-items:start}.form-grid,.evse-workspace,.evse-fields,.connector-card-fields,.log-filters,.log-entry summary{grid-template-columns:1fr}.field.wide{grid-column:auto}}
