@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f0f2f5;--background-alt:#e6e9ef;--surface:#f4f6f9;--surface-elevated:#fff;--surface-soft:#fafbfc;--surface-muted:#eef1f5;--sidebar-bg:#fff;--foreground:#1a3353;--muted:#5a6f87;--muted-light:#8b9cb0;--border:#1a335317;--border-strong:#1a335324;--accent:#4a90e2;--accent-hover:#3d7dce;--accent-soft:#4a90e21f;--accent-strong:#2f6fc4;--color-solar:#e69138;--color-solar-soft:#e6913833;--color-consumption:#e85d5d;--color-consumption-soft:#e85d5d2e;--color-production:#4a90e2;--color-production-soft:#4a90e22e;--color-export:#3fb950;--color-export-soft:#3fb95033;--color-import:#9aa8bc;--color-import-soft:#4a90e21f;--color-battery:#3fb950;--color-battery-soft:#3fb95033;--color-heatpump:#e6732a;--color-heatpump-soft:#e6732a2e;--color-network:#4a90e2;--color-network-soft:#4a90e22e;--status-success:#3fb950;--status-warning:#e6a23c;--status-error:#e85d5d;--status-info:#4a90e2;--shadow-sm:0 1px 2px #1a33530f;--shadow-md:0 4px 14px #1a335314;--shadow-lg:0 10px 28px #1a33531f,0 4px 10px #1a33530f;--shadow-card:10px 10px 22px #a3b1c661,-8px -8px 18px #ffffffeb,0 1px 0 #ffffffa6 inset;--shadow-card-hover:12px 14px 30px #a3b1c673,-6px -6px 16px #ffffffe0,0 1px 0 #ffffff8c inset;--radius-sm:6px;--radius-md:10px;--radius-lg:clamp(16px,3vw,24px);--radius-xl:clamp(20px,4vw,36px);--radius-panel:clamp(16px,2.5vw,24px);--radius-full:9999px;--sidebar-width:56px;--container-max:min(calc(100vw - 32px),1200px);--touch-target:44px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--text-2xl:clamp(1.75rem,1.6rem + .8vw,2rem);--text-xl:clamp(1.25rem,1.1rem + .45vw,1.5rem);--text-lg:1.0625rem;--text-base:.875rem;--text-sm:.75rem;--text-xs:.6875rem;--text-gauge:clamp(2.5rem,2.2rem + 1vw,3.5rem);--text-gauge-unit:.9375rem;--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-out:cubic-bezier(.33,1,.68,1);--ease-in:cubic-bezier(.32,0,.67,0);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-chart:cubic-bezier(.22,1,.36,1);--duration-fast:.1s;--duration-normal:.15s;--duration-medium:.22s;--duration-slow:.3s;--duration-gauge:.8s}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#15151c;--background-alt:#1a2134;--surface:#23242c;--surface-elevated:#243049;--surface-soft:#202a43;--surface-muted:#1b2338;--sidebar-bg:#2b2b33;--foreground:#e8ecf1;--muted:#8a95a8;--muted-light:#5a6578;--border:#ffffff14;--border-strong:#ffffff1f;--accent:#5b8def;--accent-hover:#7ba3f3;--accent-soft:#5b8def1f;--accent-strong:#93b4ff;--shadow-sm:0 1px 3px #0000001f;--shadow-md:0 2px 8px #0003,0 8px 24px #00000026;--shadow-lg:0 8px 32px #00000040,0 16px 48px #0003;--shadow-card:var(--shadow-md);--shadow-card-hover:var(--shadow-lg)}html.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){html:not(.light):not(.dark){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#15151c;--background-alt:#1a2134;--surface:#23242c;--surface-elevated:#243049;--surface-soft:#202a43;--surface-muted:#1b2338;--sidebar-bg:#2b2b33;--foreground:#e8ecf1;--muted:#8a95a8;--muted-light:#5a6578;--border:#ffffff14;--border-strong:#ffffff1f;--accent:#5b8def;--accent-hover:#7ba3f3;--accent-soft:#5b8def1f;--accent-strong:#93b4ff;--shadow-sm:0 1px 3px #0000001f;--shadow-md:0 2px 8px #0003,0 8px 24px #00000026;--shadow-lg:0 8px 32px #00000040,0 16px 48px #0003;--shadow-card:var(--shadow-md);--shadow-card-hover:var(--shadow-lg)}}@media (min-width:1024px){:root{--container-max:min(calc(100vw - var(--sidebar-width) - 40px),1680px)}}*{box-sizing:border-box}html{font-size:16px}body{background:var(--background);min-height:100vh;color:var(--foreground);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-base);letter-spacing:0;margin:0;line-height:1.5}a{color:inherit;text-decoration:none}.card-link-inline{white-space:nowrap;color:var(--accent);align-items:center;gap:.25rem;font-weight:600;display:inline-flex}.card-link-inline:hover{color:var(--accent-strong,var(--accent))}button,input,select,textarea{font:inherit}button{background:0 0;border:0}svg,img{display:block}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{background:var(--background);min-height:100vh}.app-layout{grid-template-columns:var(--sidebar-width)minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);height:100vh;box-shadow:var(--shadow-sm);z-index:20;flex-direction:column;justify-content:space-between;align-items:stretch;min-width:0;padding:18px 0 16px;display:flex;position:sticky;top:0}.sidebar-nav{flex-direction:column;flex:1;gap:4px;min-height:0;padding:0 10px;display:flex;overflow:hidden auto}.sidebar-section{flex-direction:column;gap:2px;display:flex}.sidebar-section-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sidebar-section-label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-light);margin:0;padding:10px 10px 4px;font-weight:600}.sidebar-link-label{font-size:var(--text-sm);text-align:left;white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.25;overflow:hidden}.sidebar-group{flex-direction:column;align-items:stretch;gap:8px;padding:0 10px;display:flex}.brand-mark{width:auto;max-width:112px;height:auto;color:var(--muted);justify-content:flex-start;align-items:center;display:inline-flex}.stroomr-logo{object-fit:contain;display:block}.brand-eyebrow{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.sidebar-link,.sidebar-icon-button{width:40px;height:40px;color:var(--muted);transition:color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.sidebar-link:hover,.sidebar-icon-button:hover,.sidebar-link[aria-current=page]{color:var(--foreground);background:var(--accent-soft)}.sidebar-link:active,.sidebar-icon-button:active{transform:scale(.98)}.sidebar-link--with-badge{position:relative}.sidebar-link--with-badge .pending-discoveries-badge{top:6px;right:8px}.pending-discoveries-badge{background:var(--color-solar,#f59e0b);color:#fff;text-align:center;pointer-events:none;border-radius:8px;min-width:16px;height:16px;padding:0 3px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:4px;right:4px}.provision-feedback-banner{border:1px solid color-mix(in srgb,var(--status-success)35%,transparent);background:color-mix(in srgb,var(--status-success)12%,transparent);color:var(--foreground);font-size:var(--text-sm);border-radius:.75rem;margin:0 0 1rem;padding:.75rem 1rem}.provision-ready-section{border:1px solid color-mix(in srgb,var(--status-success)30%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--status-success)8%,var(--surface))0%,var(--surface)100%);margin-bottom:1.25rem}.provision-ready-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.875rem;padding:0 1.5rem 1.5rem;display:grid}.provision-ready-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:0 1px 2px color-mix(in srgb,var(--foreground)6%,transparent);flex-direction:column;gap:1rem;padding:clamp(14px,2.5vw,18px) clamp(16px,3vw,20px);display:flex}.provision-ready-card-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.provision-ready-card-title{font-size:var(--text-base);margin:0;font-weight:600;line-height:1.3}.provision-confidence-pill{letter-spacing:.02em;border-radius:999px;flex-shrink:0;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.provision-confidence-high{color:var(--status-success);background:color-mix(in srgb,var(--status-success)14%,transparent)}.provision-confidence-medium{color:var(--status-warning);background:color-mix(in srgb,var(--status-warning)14%,transparent)}.provision-confidence-low{color:var(--status-error);background:color-mix(in srgb,var(--status-error)14%,transparent)}.provision-ready-card-meta{font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;gap:.35rem .75rem;margin:.35rem 0 0;display:flex}.provision-ready-protocol{color:var(--foreground);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.provision-ready-address{font-family:var(--font-mono,ui-monospace,monospace);font-size:.78rem}.provision-ready-last-seen{color:var(--muted);margin:.35rem 0 0;font-size:.78rem}.provision-ready-card-actions{align-items:center;gap:.5rem;margin-top:auto;display:flex}.provision-ready-add-button{background:var(--status-success);color:#fff;min-height:2.5rem;font-size:var(--text-sm);cursor:pointer;border:none;border-radius:.625rem;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:0 1rem;font-weight:600;transition:filter .15s;display:inline-flex}.provision-ready-add-button:hover:not(:disabled){filter:brightness(1.05)}.provision-ready-add-button:disabled{opacity:.7;cursor:wait}.provision-ready-ignore-button{border:1px solid var(--border);width:2.5rem;height:2.5rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:.625rem;justify-content:center;align-items:center;display:inline-flex}.provision-ready-ignore-button:hover:not(:disabled){color:var(--foreground);background:color-mix(in srgb,var(--foreground)5%,transparent)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar-link svg,.sidebar-icon-button svg,.brand-mark svg,.page-action svg,.card-title-icon svg,.card-action svg,.metric-icon svg,.workflow-item-icon svg,.empty-icon svg,.table-pill svg{stroke-width:1.8px;width:20px;height:20px}.app-main{min-width:0;padding:18px 18px 32px}.page-shell{width:min(100%,var(--container-max));animation:page-enter .3s var(--ease-out-expo);padding-inline:var(--space-4);box-sizing:border-box;max-width:100%;margin:0 auto;overflow-x:visible}@media (min-width:768px){.page-shell{padding-inline:var(--space-6)}}.demo-mode-banner{background:color-mix(in srgb,var(--color-accent,#3b82f6)18%,transparent);border:1px solid color-mix(in srgb,var(--color-accent,#3b82f6)35%,transparent);color:var(--text-primary,inherit);border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:.9rem;line-height:1.4}.page-topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-heading{gap:8px;display:grid}.page-brand{margin:0;line-height:0}.page-summary{color:var(--muted);font-size:var(--text-base);max-width:64ch;margin:0}.page-actions{align-items:center;gap:8px;display:inline-flex}.page-action{width:36px;height:36px;color:var(--muted);transition:color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.page-action:hover{background:var(--accent-soft);color:var(--foreground)}.page-action:active{transform:scale(.98)}.page-action--label{width:auto;font-size:var(--text-sm);gap:6px;padding:0 12px;font-weight:600}.page-action--with-badge{position:relative}.page-action-badge.pending-discoveries-badge{top:2px;right:2px}.feedback-overlay-surface{padding:var(--space-5);gap:var(--space-4)}.feedback-overlay-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.dashboard-shell{gap:16px;width:100%;min-width:0;display:grid}.dashboard-shell>*{min-width:0;max-width:100%}.dashboard-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.dashboard-row{grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}.dashboard-row>*{min-width:0}.dashboard-charts-stack{flex-direction:column;gap:16px;width:100%;min-width:0;display:flex}.panel,.dashboard-card,.hero-card,.table-card,.metric-card,.workflow-card,.chart-card,.summary-card{background:var(--surface-elevated);border-radius:var(--radius-panel);border:1px solid color-mix(in srgb,var(--foreground)5%,transparent);box-shadow:var(--shadow-card,var(--shadow-md));transition:box-shadow var(--duration-medium)var(--ease-out),transform var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);position:relative}.dashboard-card,.hero-card,.table-card,.metric-card,.workflow-card,.chart-card,.summary-card{padding:clamp(16px,3vw,24px)}.dashboard-card,.metric-card,.workflow-card,.chart-card,.summary-card{animation:card-enter .3s var(--ease-out-expo)}.dashboard-card:hover,.metric-card:hover,.workflow-card:hover,.chart-card:hover,.summary-card:hover,.table-card:hover{box-shadow:var(--shadow-card-hover,var(--shadow-lg));transform:translateY(-1px)}.hero-card{box-shadow:none;background:0 0;border:0;padding:0}.eyebrow,.card-kicker,.section-label,.kpi-label,.field-label,.table-heading{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.hero-copy,.card-copy,.section-copy,.empty-copy,.metric-copy{color:var(--muted);font-size:var(--text-base);margin:0}.dashboard-title-row,.card-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.card-heading{gap:6px;min-width:0;display:grid}.card-title-wrap{align-items:center;gap:10px;display:inline-flex}.card-title-icon,.metric-icon,.empty-icon{color:var(--muted)}.dashboard-title-row h2,.card-header h2,.card-heading h2,.card-heading h3,.section-title{font-size:var(--text-lg);margin:0;font-weight:700;line-height:1.2}.card-action,.dropdown-trigger,.ghost-button,.toolbar-chip{border:1px solid var(--border);min-height:32px;color:var(--muted);font-size:var(--text-sm);transition:background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-weight:600;display:inline-flex}.card-action:hover,.dropdown-trigger:hover,.ghost-button:hover,.toolbar-chip:hover,.toolbar-chip.is-active{background:var(--accent-soft);color:var(--foreground);border-color:#0000}.status-pill,.table-pill,.badge{min-height:28px;font-size:var(--text-sm);color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.status-pill.status-success,.table-pill.status-success,.badge.status-success{color:var(--status-success);background:color-mix(in srgb,var(--status-success)12%,transparent)}.status-pill.status-warning,.table-pill.status-warning,.badge.status-warning{color:var(--status-warning);background:color-mix(in srgb,var(--status-warning)14%,transparent)}.status-pill.status-error,.table-pill.status-error,.badge.status-error{color:var(--status-error);background:color-mix(in srgb,var(--status-error)12%,transparent)}.badge.positive{color:var(--status-success);background:color-mix(in srgb,var(--status-success)12%,transparent)}.badge.negative{color:var(--status-error);background:color-mix(in srgb,var(--status-error)12%,transparent)}.badge.neutral{color:var(--accent-strong);background:var(--accent-soft)}.primary-action,.secondary-action{min-height:40px;font-size:var(--text-sm);transition:transform var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out),filter var(--duration-normal)var(--ease-out);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:0 20px;font-weight:600;display:inline-flex}.primary-action{color:#fff;background:var(--accent);box-shadow:0 2px 4px color-mix(in srgb,var(--accent)28%,transparent)}.primary-action:hover{filter:brightness(1.08);transform:translateY(-1px)}.secondary-action{color:var(--muted);border-color:var(--border);background:0 0}.secondary-action:hover{background:var(--accent-soft);color:var(--foreground);transform:translateY(-1px)}.inline-action{margin-top:18px}.metric-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.metric-card{min-width:0}.dashboard-row>.metric-card{aspect-ratio:1;flex-direction:column;align-self:stretch;width:100%;max-width:100%;height:auto;display:flex;position:relative;overflow:visible;container:dashboard-metric/size}.card-capability-controls{z-index:32;position:absolute;top:8px;right:8px}.card-capability-toggle{min-height:24px;padding:2px 8px;font-size:11px}.card-capability-editor{z-index:30;border:1px solid var(--border);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);width:min(260px,100vw - 40px);box-shadow:0 8px 24px color-mix(in srgb,var(--foreground)18%,transparent);border-radius:12px;padding:8px;position:absolute;top:26px;right:0}.card-capability-editor--inline{width:100%;max-width:none;box-shadow:none;background:color-mix(in srgb,var(--surface)92%,var(--foreground)8%);border-radius:10px;position:static}.dashboard-card-picker{border-radius:var(--radius-panel);border:1px solid color-mix(in srgb,var(--foreground)8%,transparent);background:color-mix(in srgb,var(--surface-elevated)94%,var(--color-network)6%);box-shadow:var(--shadow-card,var(--shadow-md));margin-bottom:16px;padding:clamp(16px,3vw,20px)}.dashboard-card-picker__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;margin-bottom:14px;display:flex}.dashboard-card-picker__title{letter-spacing:-.02em;margin:0 0 6px;font-size:1.05rem;font-weight:700}.dashboard-card-picker__lede{max-width:52ch;color:var(--text-secondary,color-mix(in srgb,var(--foreground)62%,transparent));margin:0;font-size:.8125rem;line-height:1.5}.dashboard-card-picker__count{background:color-mix(in srgb,var(--color-network)12%,transparent);color:color-mix(in srgb,var(--foreground)78%,var(--color-network)22%);white-space:nowrap;border-radius:999px;margin:0;padding:6px 12px;font-size:.75rem;font-weight:600}.dashboard-card-picker__list{border:1px solid var(--border);background:var(--surface-elevated);border-radius:12px;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.dashboard-card-picker__item{border-top:1px solid var(--border)}.dashboard-card-picker__item:first-child{border-top:0}.dashboard-card-picker__item--on{background:color-mix(in srgb,var(--color-network)4%,var(--surface-elevated))}.dashboard-card-picker__item--editing{background:color-mix(in srgb,var(--color-network)8%,var(--surface-elevated))}.dashboard-card-picker__row{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:52px;padding:11px 14px;display:grid}.dashboard-card-picker__main{cursor:pointer;grid-template-columns:auto auto minmax(0,1fr);align-items:center;column-gap:12px;min-width:0;margin:0;display:grid}.dashboard-card-picker__checkbox{width:18px;height:18px;accent-color:var(--color-network,#0ea5e9);cursor:pointer;margin:0}.dashboard-card-picker__icon{width:32px;height:32px;color:var(--color-network,#0284c7);background:color-mix(in srgb,var(--color-network)10%,transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dashboard-card-picker__copy{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-card-picker__name{font-size:.9375rem;font-weight:600;line-height:1.3}.dashboard-card-picker__hint{color:var(--text-secondary,color-mix(in srgb,var(--foreground)55%,transparent));font-size:.75rem;line-height:1.4}.dashboard-card-picker__databron{border:1px solid color-mix(in srgb,var(--foreground)12%,transparent);background:var(--surface-elevated);min-height:32px;color:inherit;cursor:pointer;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s}.dashboard-card-picker__databron:hover{border-color:color-mix(in srgb,var(--color-network)40%,transparent);background:color-mix(in srgb,var(--color-network)8%,var(--surface-elevated))}.dashboard-card-picker__item--editing .dashboard-card-picker__databron{border-color:color-mix(in srgb,var(--color-network)55%,transparent);background:color-mix(in srgb,var(--color-network)14%,var(--surface-elevated))}.dashboard-card-picker__panel{border-top:1px dashed color-mix(in srgb,var(--border)80%,transparent);padding:0 14px 14px 56px}@media (max-width:520px){.dashboard-card-picker__main{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"check copy""icon copy";align-items:start;row-gap:4px}.dashboard-card-picker__checkbox{grid-area:check}.dashboard-card-picker__icon{grid-area:icon;width:28px;height:28px}.dashboard-card-picker__copy{grid-area:copy}.dashboard-card-picker__panel{padding-left:14px}}.dashboard-row>.metric-card .card-header{flex:none;margin-bottom:12px}.dashboard-row>.metric-card .metric-gauge-wrap{flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:center;width:100%;min-height:0;margin:0 0 12px;display:flex}.dashboard-row>.metric-card .production-vs-load-metric,.dashboard-row>.metric-card .battery-soc-metric,.dashboard-row>.metric-card .wind-turbine-metric,.dashboard-row>.metric-card .ev-charger-metric,.dashboard-row>.metric-card .solar-inverter-metric{flex:1 1 0;grid-template-rows:1fr auto 1fr auto;grid-template-columns:minmax(0,1fr);place-items:center;width:100%;min-width:0;max-width:100%;min-height:0;display:grid}.dashboard-row>.metric-card .production-vs-load-metric>:first-child,.dashboard-row>.metric-card .battery-soc-metric>:first-child,.dashboard-row>.metric-card .wind-turbine-metric>:first-child,.dashboard-row>.metric-card .ev-charger-metric>:first-child,.dashboard-row>.metric-card .solar-inverter-metric>:first-child{grid-row:2}.dashboard-row>.metric-card .production-vs-load-metric>:last-child,.dashboard-row>.metric-card .battery-soc-metric>:last-child,.dashboard-row>.metric-card .wind-turbine-metric>:last-child,.dashboard-row>.metric-card .ev-charger-metric>:last-child,.dashboard-row>.metric-card .solar-inverter-metric>:last-child{grid-row:4;place-self:stretch stretch;width:100%;margin-top:0}.metric-gauge-wrap{place-items:center;margin:10px 0 18px;display:grid}.gauge{--gauge-size:176px;--gauge-track:#dce3ec;--gauge-fill:var(--color-network);width:var(--gauge-size);height:var(--gauge-size);background:radial-gradient(circle at center,var(--surface)58%,transparent 59%),conic-gradient(from 135deg,var(--gauge-fill)calc(var(--value,0)*1%),var(--gauge-track)0);box-shadow:0 0 0 10px color-mix(in srgb,var(--surface)94%,transparent),0 12px 32px color-mix(in srgb,var(--gauge-fill)12%,transparent);animation:gauge-sweep var(--duration-gauge)var(--ease-chart);border-radius:50%;position:relative}.gauge:before{content:"";background:linear-gradient(145deg,color-mix(in srgb,var(--background)98%,transparent),var(--surface));box-shadow:inset 0 0 0 1px var(--border);border-radius:50%;position:absolute;inset:14px}.gauge-content{text-align:center;z-index:1;place-items:center;display:grid;position:absolute;inset:0}.gauge-value{gap:2px;line-height:1;display:grid}.gauge-number{font-size:var(--text-gauge);letter-spacing:-.03em;font-weight:800}.gauge-unit{font-size:var(--text-gauge-unit);color:var(--muted);font-weight:600}.battery-soc-knob{--battery-knob-size:176px;--battery-knob-accent:#f97316;--battery-knob-accent-glow:color-mix(in srgb,var(--battery-knob-accent)45%,transparent);width:var(--battery-knob-size);height:var(--battery-knob-size);isolation:isolate;animation:.78s cubic-bezier(.22,1,.36,1) both battery-knob-enter;position:relative}.battery-soc-knob--interactive{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.battery-soc-knob--interactive:active{cursor:grabbing}.battery-soc-knob--interactive:focus-visible{outline:2px solid var(--battery-soc-accent,var(--battery-knob-accent));outline-offset:4px}.battery-soc-knob__svg{z-index:1;width:100%;height:100%;display:block;position:relative;overflow:visible}.battery-soc-knob__tick-base{stroke:color-mix(in srgb,var(--foreground)6%,var(--surface-elevated));stroke-width:1.25px;stroke-linecap:round}.battery-soc-knob__tick-active{stroke:#0000;stroke-width:1.35px;stroke-linecap:round;filter:drop-shadow(0 0 2px color-mix(in srgb,var(--battery-soc-accent,var(--battery-knob-accent))50%,transparent))}.battery-soc-knob__needle{stroke:#0000;stroke-width:3.25px;stroke-linecap:round;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--battery-soc-accent,var(--battery-knob-accent))50%,transparent))}.battery-soc-knob__needle-layer{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.battery-soc-knob__needle-layer .battery-soc-knob__needle{stroke-width:1.75px}.battery-soc-knob__face{z-index:2;background:linear-gradient(135deg,color-mix(in srgb,var(--surface-elevated)98%,#fff)0%,color-mix(in srgb,var(--surface-elevated)90%,var(--surface-muted))100%);box-shadow:inset 0 1px 0 #ffffff8c,inset 1px 2px 6px color-mix(in srgb,var(--foreground)8%,transparent),inset 0 -2px 5px color-mix(in srgb,var(--foreground)4%,transparent);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;inset:11%}.battery-soc-knob__value{text-align:center;justify-content:center;align-items:baseline;gap:1px;line-height:1;display:flex}.battery-soc-knob__number{font-size:var(--text-gauge);letter-spacing:-.03em;color:#1a4a6e;font-weight:800}.battery-soc-knob__unit{font-size:var(--text-gauge-unit);color:color-mix(in srgb,#1a4a6e 55%,var(--muted));font-weight:600}.battery-soc-knob__face-stack{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.battery-soc-knob__flow-chip{letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,#14532d 88%,var(--foreground));background:color-mix(in srgb,#22c55e 14%,var(--surface-elevated));border:1px solid color-mix(in srgb,#22c55e 30%,var(--border));border-radius:999px;padding:3px 8px 2px;font-size:.5625rem;font-weight:800;line-height:1;display:inline-block}.battery-soc-knob--flow-discharging .battery-soc-knob__flow-chip{color:color-mix(in srgb,#7f1d1d 88%,var(--foreground));background:color-mix(in srgb,#ef4444 12%,var(--surface-elevated));border-color:color-mix(in srgb,#ef4444 30%,var(--border))}.battery-soc-knob--flow-idle .battery-soc-knob__flow-chip{color:color-mix(in srgb,var(--muted)92%,var(--foreground));background:color-mix(in srgb,var(--foreground)5%,var(--surface-elevated));border-color:color-mix(in srgb,var(--foreground)9%,var(--border))}@keyframes battery-flow-charge-breathe{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 5px #22c55e33}}.battery-soc-knob--flow-charging .battery-soc-knob__flow-chip{animation:2.6s ease-in-out infinite battery-flow-charge-breathe}.production-vs-load-knob .production-vs-load-knob__tick{stroke:color-mix(in srgb,var(--foreground)18%,var(--surface-elevated));stroke-width:1.25px;stroke-linecap:round;opacity:.82}.production-vs-load-knob__arc--solar{stroke:var(--color-solar);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-solar)40%,transparent))}.production-vs-load-knob__arc--load{stroke:var(--color-network);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-network)45%,transparent))}.production-vs-load-knob__junction{stroke:var(--color-network);stroke-width:3.5px;stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--color-network)50%,transparent))}.production-vs-load-knob__ring-layer{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.heatpump-current-knob__face-stack{text-align:center;flex-direction:column;align-items:center;gap:4px;max-width:88%;display:flex}.heatpump-current-knob__compressor-status{letter-spacing:.05em;color:color-mix(in srgb,#1a4a6e 82%,var(--muted));text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.5625rem;font-weight:700;line-height:1.25;overflow:hidden}.heatpump-current-metric .production-vs-load-knob__arc--solar{stroke:var(--color-heatpump);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-heatpump)42%,transparent))}.heatpump-current-metric .production-vs-load-metric__bar-fill--solar{background:linear-gradient(90deg,var(--color-heatpump),#ff8c42);box-shadow:0 0 6px color-mix(in srgb,var(--color-heatpump)36%,transparent)}.production-vs-load-metric,.battery-soc-metric,.wind-turbine-metric,.ev-charger-metric,.solar-inverter-metric{flex-direction:column;align-items:center;width:100%;max-width:100%;display:flex}.production-vs-load-metric__footer,.battery-soc-metric__footer,.wind-turbine-metric__footer,.ev-charger-metric__footer,.solar-inverter-metric__footer{align-self:stretch;width:100%}.production-vs-load-metric__stat--end,.battery-soc-metric__stat--end,.wind-turbine-metric__stat--end,.ev-charger-metric__stat--end,.solar-inverter-metric__stat--end{text-align:right}.metric-footer .metric-footer__stat-inner{flex-direction:column;gap:6px;width:65%;min-width:0;max-width:100%;display:flex}.metric-footer .metric-footer__stat-inner--align-start{margin-inline-end:auto}.metric-footer .metric-footer__stat-inner--align-end{margin-inline-start:auto}.metric-footer .metric-footer__stat-inner--align-start .kpi-label{text-align:left}.metric-footer .metric-footer__stat-inner--align-end .kpi-label{text-align:right}.metric-footer .metric-footer__stat-inner .production-vs-load-metric__bar-track,.metric-footer .metric-footer__stat-inner .battery-soc-metric__bar-track,.metric-footer .metric-footer__stat-inner .wind-turbine-metric__bar-track,.metric-footer .metric-footer__stat-inner .ev-charger-metric__bar-track,.metric-footer .metric-footer__stat-inner .solar-inverter-metric__bar-track{width:100%}.production-vs-load-metric__bar-track,.battery-soc-metric__bar-track,.wind-turbine-metric__bar-track,.ev-charger-metric__bar-track,.solar-inverter-metric__bar-track{--bar-track-shade:color-mix(in srgb,var(--foreground)14%,var(--surface-elevated));background:linear-gradient(180deg,color-mix(in srgb,var(--foreground)10%,var(--surface))0%,var(--bar-track-shade)55%,color-mix(in srgb,#000 8%,var(--bar-track-shade))100%);border-radius:999px;width:65%;height:5px;overflow:hidden;box-shadow:inset 0 2px 3px #00000038,inset 0 -1px 1px #ffffff2e,0 1px #ffffff59}.production-vs-load-metric__bar-fill,.battery-soc-metric__bar-fill,.wind-turbine-metric__bar-fill,.ev-charger-metric__bar-fill,.solar-inverter-metric__bar-fill{border-radius:999px;height:100%}.production-vs-load-metric__bar-fill--solar{background:var(--color-solar);box-shadow:0 0 6px color-mix(in srgb,var(--color-solar)35%,transparent)}.production-vs-load-metric__bar-fill--load{background:var(--color-network);box-shadow:0 0 6px color-mix(in srgb,var(--color-network)40%,transparent)}.battery-soc-metric__bar-fill--power-discharge{background:var(--color-consumption);box-shadow:0 0 6px color-mix(in srgb,var(--color-consumption)35%,transparent)}.battery-soc-metric__bar-fill--power-charge{background:var(--color-battery);box-shadow:0 0 6px color-mix(in srgb,var(--color-battery)38%,transparent)}.battery-soc-metric__bar-fill--power-idle{background:color-mix(in srgb,var(--muted)55%,var(--surface-elevated))}.battery-soc-metric__bar-fill--temperature{background:linear-gradient(90deg,var(--color-network)0%,var(--color-heatpump)100%);box-shadow:0 0 6px color-mix(in srgb,var(--color-heatpump)32%,transparent)}.wind-turbine-metric__bar-fill--power{background:var(--color-solar);box-shadow:0 0 6px color-mix(in srgb,var(--color-solar)35%,transparent)}.wind-turbine-metric__bar-fill--voltage{background:linear-gradient(90deg,var(--color-network)0%,#7dd3fc 100%);box-shadow:0 0 6px color-mix(in srgb,var(--color-network)38%,transparent)}.ev-charger-metric__bar-fill--power{background:var(--color-consumption);box-shadow:0 0 6px color-mix(in srgb,var(--color-consumption)34%,transparent)}.solar-inverter-metric__bar-fill--power{background:var(--color-solar);box-shadow:0 0 6px color-mix(in srgb,var(--color-solar)38%,transparent)}.solar-inverter-metric__bar-fill--dc{background:linear-gradient(90deg,#f59e0b 0%,#fbbf24 100%);box-shadow:0 0 6px #f59e0b52}.ev-charger-metric__bar-fill--state{box-shadow:0 0 5px color-mix(in srgb,var(--color-network)28%,transparent)}.ev-charger-metric__bar-fill--state-available{background:linear-gradient(90deg,var(--color-network)0%,#34d399 100%)}.ev-charger-metric__bar-fill--state-charging{background:linear-gradient(90deg,var(--color-consumption)0%,#fb923c 100%)}.ev-charger-metric__bar-fill--state-paused{background:linear-gradient(90deg,#f59e0b 0%,#fbbf24 100%)}.ev-charger-metric__bar-fill--state-faulted{background:linear-gradient(90deg,#dc2626 0%,#f87171 100%);box-shadow:0 0 6px #dc262659}.ev-charger-metric__bar-fill--state-disconnected{background:color-mix(in srgb,var(--muted)55%,var(--surface-elevated));box-shadow:none}.ev-charger-metric__bar-fill--state-unknown{background:color-mix(in srgb,var(--muted)70%,var(--surface-elevated));box-shadow:none}.solar-inverter-knob__arc{stroke:var(--color-solar);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--color-solar)45%,transparent))}.ev-charger-knob__ring-layer{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.ev-charger-knob .ev-charger-knob__tick{stroke:color-mix(in srgb,var(--foreground)18%,var(--surface-elevated));stroke-width:1.25px;stroke-linecap:round;opacity:.82}.ev-charger-knob__face{place-items:center;display:grid}.ev-charger-knob__center{text-align:center;flex-direction:column;align-items:center;gap:3px;max-width:78%;line-height:1.05;display:flex}.ev-charger-knob__state-line{letter-spacing:.1em;text-transform:uppercase;color:#1a4a6e;font-size:.65rem;font-weight:800}.ev-charger-knob__power-line{justify-content:center;align-items:baseline;gap:3px;display:flex}.ev-charger-knob__power-value{font-size:var(--text-gauge);letter-spacing:-.03em;color:#1a4a6e;font-weight:800}.ev-charger-knob__power-unit{font-size:var(--text-gauge-unit);color:color-mix(in srgb,#1a4a6e 55%,var(--muted));font-weight:600}.ev-charger-knob__arc--charging{stroke:var(--color-consumption);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-consumption)42%,transparent))}.ev-charger-knob__arc--available{stroke:#22c55e;filter:drop-shadow(0 0 3px #22c55e61)}.ev-charger-knob__arc--paused{stroke:#f59e0b;filter:drop-shadow(0 0 3px #f59e0b66)}.ev-charger-knob__arc--faulted{stroke:#dc2626;filter:drop-shadow(0 0 4px #dc262673)}.ev-charger-knob__arc--disconnected{stroke:color-mix(in srgb,var(--muted)65%,var(--foreground));filter:drop-shadow(0 0 2px color-mix(in srgb,var(--foreground)12%,transparent))}.ev-charger-knob__arc--unknown{stroke:var(--color-network);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-network)35%,transparent))}html.dark .battery-soc-knob:before{content:"";z-index:0;pointer-events:none;filter:blur(12px);opacity:.28;background:radial-gradient(circle at 50% 44%,#ffffff1f 0%,#ffffff0a 38%,#0000 68%);border-radius:50%;width:80%;height:80%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}html.dark .battery-soc-knob__tick-base{stroke:#14141498;stroke-width:1.15px}html.dark .production-vs-load-knob .production-vs-load-knob__tick{stroke:#ffffff67;stroke-width:1.2px;opacity:.78}html.dark .heatpump-current-knob__compressor-status{color:#acb6c1;text-shadow:0 1px #0000004d}html.dark .ev-charger-knob .ev-charger-knob__tick{stroke:#ffffff67;stroke-width:1.2px;opacity:.78}html.dark .ev-charger-knob__state-line,html.dark .ev-charger-knob__power-value{color:#b3bcc7;text-shadow:0 1px #00000059}html.dark .ev-charger-knob__power-unit{color:#8996a3;text-shadow:0 1px #00000047}html.dark .production-vs-load-metric__bar-track,html.dark .battery-soc-metric__bar-track,html.dark .wind-turbine-metric__bar-track,html.dark .ev-charger-metric__bar-track,html.dark .solar-inverter-metric__bar-track{--bar-track-shade:#1b1b1b93;background:linear-gradient(180deg,#0f0f0f95 0%,var(--bar-track-shade)45%,#000000d1 100%);box-shadow:inset 0 2px 4px #000000a6,inset 0 -1px 1px #ffffff24,0 1px #ffffff14}html.dark .battery-soc-knob__tick-active{stroke:#0000;stroke-width:1.45px;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--battery-soc-accent,var(--battery-knob-accent))55%,transparent))}html.dark .battery-soc-knob__needle{stroke:#0000;stroke-width:3.35px;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--battery-soc-accent,var(--battery-knob-accent))60%,transparent))}html.dark .battery-soc-knob__needle-layer .battery-soc-knob__needle{stroke-width:1.85px}html.dark .battery-soc-knob__face{background:linear-gradient(135deg,#32363e 0%,#2a2d34 42%,#1f2228 100%);box-shadow:inset 4px 6px 14px #0000008c,inset 1px 2px 4px #0006,inset -2px -3px 10px #ffffff0f,inset 0 0 0 1px #00000073}html.dark .battery-soc-knob__number{color:#b3bcc7;text-shadow:0 1px #00000059}html.dark .battery-soc-knob__unit{color:#8996a3;text-shadow:0 1px #00000047}html.dark .battery-soc-knob__flow-chip{color:#b0ebc5;background:#0a3b1c77;border-color:#4ade805c}html.dark .battery-soc-knob--flow-discharging .battery-soc-knob__flow-chip{color:#f3bebe;background:#411e1e74;border-color:#fca5a561}html.dark .battery-soc-knob--flow-idle .battery-soc-knob__flow-chip{color:#b8c2cf;background:#1c1c1c72;border-color:#ffffff1a}@media (prefers-reduced-motion:reduce){.battery-soc-knob,.battery-soc-knob--flow-charging .battery-soc-knob__flow-chip{animation:none}}@keyframes battery-knob-enter{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.metric-footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:23px;display:grid}.metric-stat{gap:6px;display:grid}.metric-bar{background:var(--color-network);border-radius:999px;width:54px;height:4px}.metric-bar.solar{background:var(--color-solar)}.metric-bar.battery{background:linear-gradient(90deg,var(--color-battery),#8bc34a)}.metric-bar.network{background:var(--color-network)}.metric-bar.consumption{background:var(--color-consumption)}.metric-bar.heatpump{background:linear-gradient(90deg,var(--color-heatpump),#ff8c42)}.workflow-card{min-height:312px}.history-card{width:100%;min-width:0;min-height:360px}.history-period-wrap{flex-shrink:0;position:relative}.history-period-menu{border:1px solid var(--border);background:var(--surface);min-width:140px;box-shadow:var(--shadow-md);z-index:40;border-radius:10px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.history-period-option{width:100%;font-size:var(--text-sm);color:var(--muted);cursor:pointer;transition:background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out);background:0 0;border:none;border-radius:6px;justify-content:flex-start;align-items:center;padding:8px 10px;font-weight:600;display:flex}.history-period-option:hover,.history-period-option.is-active{background:var(--accent-soft);color:var(--foreground)}.history-period-wrap .dropdown-trigger:disabled{opacity:.45;cursor:not-allowed}.history-layout--loading{pointer-events:none;opacity:.55}.history-layout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:18px;display:grid}.history-chart-layout{flex-direction:row;align-items:stretch;gap:clamp(12px,2vw,24px);width:100%;min-width:0;display:flex}.history-knob-rail{flex:0 clamp(160px,34vw,300px);justify-content:center;align-items:center;min-width:0;max-width:100%;padding:4px 8px 4px 2px;display:flex;overflow:visible}.history-chart-main{flex:1 1 0;width:100%;min-width:0;height:320px}@media (max-width:639px){.history-chart-layout{flex-direction:column;align-items:stretch}.history-knob-rail{flex:none;justify-content:center;min-width:0;padding:0 0 8px}.history-chart-main{height:280px}}.history-legend{gap:12px;display:grid}.history-disc{background:linear-gradient(145deg,color-mix(in srgb,var(--background)92%,transparent),var(--surface));width:146px;height:146px;box-shadow:0 14px 30px #0a0a0a8c,inset -16px -16px 30px color-mix(in srgb,var(--foreground)4%,transparent);border-radius:50%;position:relative}.history-disc:after{content:"";background:color-mix(in srgb,var(--color-network)60%,transparent);transform-origin:0;border-radius:999px;width:32px;height:1.2px;position:absolute;top:40%;left:70%;transform:translate(-50%,-50%)rotate(-40deg)}.legend-list{gap:10px;display:grid}.legend-item{color:var(--muted);font-size:var(--text-sm);align-items:center;gap:8px;font-weight:500;display:inline-flex}.legend-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.legend-line{background:currentColor;border-radius:999px;width:28px;height:2px}.chart-wrap,.chart-wrap-lg{width:100%;height:260px}.chart-wrap-lg{height:292px}.chart-card-wide{grid-column:1/-1;width:100%;min-width:0}.workflow-layout{grid-template-columns:minmax(0,1.05fr) minmax(220px,.95fr);align-items:center;gap:20px;display:grid}.workflow-list{gap:12px;display:grid}.workflow-item{border:1px solid var(--border);background:linear-gradient(90deg,color-mix(in srgb,var(--background)98%,transparent),var(--surface));animation:workflow-rise .28s var(--ease-out-expo);border-radius:12px;grid-template-columns:20px minmax(0,1fr) 36px;align-items:center;gap:12px;padding:10px 12px;display:grid;box-shadow:0 1px 2px #1a23323d}.workflow-item-index{color:var(--muted);font-size:var(--text-sm);font-weight:600}.workflow-item-text{font-size:var(--text-base);font-weight:500}.workflow-item-icon{width:36px;height:36px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.workflow-diagram{place-items:center;min-height:230px;display:grid;position:relative}.workflow-orbit{border:1.5px dashed color-mix(in srgb,var(--muted)35%,transparent);animation:orbit-draw .9s var(--ease-chart);border-radius:50%;position:absolute;inset:16px}.workflow-node{color:var(--muted);font-size:var(--text-sm);place-items:center;gap:4px;font-weight:600;display:grid;position:absolute}.workflow-node.center{width:110px;height:82px;box-shadow:var(--shadow-md);background:linear-gradient(145deg,#dfe6f1,#bcc9dd);border-radius:22px;position:relative}.workflow-node.center:before{content:"";background:linear-gradient(135deg,#2e6da8,#5d8fc7);width:34px;height:24px;position:absolute;top:12px;left:24px;transform:skew(-22deg);box-shadow:inset 0 0 0 2px #ffffff80}.workflow-node.center:after{content:"";background:#1a23321f;border-radius:4px;width:18px;height:28px;position:absolute;bottom:12px;right:12px}.workflow-node.top{top:0;right:18px}.workflow-node.right{top:50%;right:0;transform:translateY(-50%)}.workflow-node.bottom{bottom:0;left:50%;transform:translate(-50%)}.workflow-node.left{top:50%;left:0;transform:translateY(-50%)}.summary-grid,.page-card-grid,.secondary-grid,.stack-grid{gap:16px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card{min-height:148px}.summary-value{letter-spacing:-.03em;margin:0;font-size:2rem;font-weight:800}.summary-meta{color:var(--muted);font-size:var(--text-sm);align-items:center;gap:8px;font-weight:600;display:inline-flex}.summary-spark{background:var(--accent);border-radius:999px;width:42px;height:4px}.summary-card.stale,.metric-card.stale,.chart-card.stale{background:linear-gradient(135deg,var(--surface)0%,#f59e0b08 100%);border-left:3px solid #f59e0b;transition:all .3s}.summary-card.stale span[title="Data is stale"],.metric-card.stale span[title="Data is stale"],.chart-card.stale span[title="Data is stale"]{animation:2s infinite pulse-warning}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.5}}.table-card,section.table-card.registered-assets-section{overflow:visible}.page-card-grid>.table-card{min-width:0;overflow:hidden}.discovery-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table--discovery-review{table-layout:fixed;width:100%}.data-table--discovery-review th,.data-table--discovery-review td{vertical-align:top}.data-table--discovery-review th:first-child,.data-table--discovery-review td:first-child{word-break:break-word;overflow-wrap:anywhere;width:34%}.data-table--discovery-review th:nth-child(2),.data-table--discovery-review td:nth-child(2){width:12%}.data-table--discovery-review th:nth-child(3),.data-table--discovery-review td:nth-child(3){width:11%}.data-table--discovery-review th:nth-child(4),.data-table--discovery-review td:nth-child(4){width:12%}.data-table--discovery-review th:nth-child(5),.data-table--discovery-review td:nth-child(5){width:18%}.data-table--discovery-review th:nth-child(6),.data-table--discovery-review td:nth-child(6){width:13%}.data-table--discovery-review .table-pill{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.registered-assets-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar-group{flex-wrap:wrap;gap:8px;display:inline-flex}.data-table{border-collapse:collapse;width:100%}.data-table thead th{text-align:left;background:color-mix(in srgb,var(--foreground)2%,var(--surface));color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;padding:10px 16px;font-weight:700}.data-table tbody td{font-size:var(--text-sm);color:var(--foreground);border-top:1px solid var(--border);padding:12px 16px}.data-table tbody tr:hover td{background:var(--accent-soft)}.table-secondary{color:var(--muted)}.empty-state{text-align:center;place-items:center;gap:10px;min-height:220px;display:grid}.field-grid{gap:12px;display:grid}.field-row{gap:6px;display:grid}.field-input,.field-select,.field-textarea,.search-input{border:1px solid var(--border);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);width:100%;min-height:42px;color:var(--foreground);transition:border-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out),background-color var(--duration-fast)var(--ease-out);border-radius:12px;padding:10px 14px}.field-input:focus,.field-select:focus,.field-textarea:focus,.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-textarea{resize:vertical;min-height:120px}.search-shell{position:relative}.search-shell svg{width:18px;height:18px;color:var(--muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input{padding-left:40px}.settings-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px;display:grid}.toggle-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.toggle-row:first-child{border-top:0}.toggle-copy{gap:4px;display:grid}.toggle-switch{background:var(--accent);width:40px;height:22px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent)40%,transparent);border-radius:999px;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:2px;right:2px;box-shadow:0 1px 3px #00000026}.list-card{gap:12px;display:grid}.list-card>.card-header{margin-bottom:0}.card-list,.detail-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.card-list li,.detail-list li{color:var(--muted);font-size:var(--text-sm);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;display:flex}.card-list li:last-child,.detail-list li:last-child{border-bottom:0;padding-bottom:0}.value-strong{color:var(--foreground);font-weight:600}.page-section-title{color:var(--muted);font-size:var(--text-sm);margin:8px 0 0;font-weight:600}.panel-stack{gap:16px;display:grid}.terminal-log{border:1px solid color-mix(in srgb,var(--border)80%,#0a0f1a 20%);background:#0b1220;border-radius:12px;gap:0;display:grid;overflow:hidden}.terminal-log-header{background:linear-gradient(#0f172af5,#0f172ac2);border-bottom:1px solid #94a3b82e;align-items:center;gap:12px;padding:10px 14px;display:flex}.terminal-log-status{color:#cbd5e1;letter-spacing:.08em;border:1px solid #94a3b880;border-radius:999px;align-items:center;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;font-weight:700;display:inline-flex}.terminal-log-status.is-running{color:#22c55e;border-color:#22c55eb3;box-shadow:inset 0 0 0 1px #22c55e47}.terminal-log-meta{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;overflow:hidden}.terminal-log-body{scrollbar-gutter:stable;gap:0;max-height:min(520px,45vh);padding:8px 0;display:grid;overflow-y:auto}.terminal-log-line{color:#dbeafe;grid-template-columns:72px 48px minmax(0,1fr);align-items:start;gap:10px;padding:4px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.45;display:grid}.terminal-log-line:hover{background:#94a3b814}.terminal-log-time{color:#64748b}.terminal-log-level{color:#f59e0b;font-weight:700}.terminal-log-level.level-running{color:#22c55e}.terminal-log-message{color:#cbd5e1;overflow-wrap:anywhere}.terminal-log-live{background:#22c55e14;border-top:1px dashed #22c55e59}.terminal-log-cursor{background:#22c55e;align-self:center;width:8px;height:14px;margin-left:4px;animation:1s step-end infinite terminal-cursor-blink}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes workflow-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes orbit-draw{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes gauge-sweep{0%{opacity:.75;filter:saturate(.92);transform:scale(.98)}to{opacity:1;filter:saturate();transform:scale(1)}}@keyframes terminal-cursor-blink{0%,45%{opacity:1}46%,to{opacity:0}}@media (max-width:1279px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-layout,.settings-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width:768px){:root{--sidebar-width:240px}.sidebar-link,.sidebar-icon-button{justify-content:flex-start;gap:10px;width:100%;height:auto;min-height:40px;padding:8px 10px}.sidebar-link svg{flex-shrink:0}.sidebar-icon-button{width:100%}}@media (max-width:767px){.app-layout{grid-template-columns:1fr}.sidebar{border:1px solid var(--border);height:auto;box-shadow:var(--shadow-lg);background:color-mix(in srgb,var(--sidebar-bg)92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;flex-direction:row;justify-content:space-between;align-items:center;padding:8px 12px;position:fixed;inset:auto 16px 16px}.sidebar-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;flex:1;align-items:center;gap:4px;padding:0;overflow:auto hidden}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-section{display:contents}.sidebar-section-label,.sidebar-link-label{display:none}.sidebar-section-list,.sidebar-section-list>li{display:contents}.sidebar-group{flex-direction:row;align-items:center;gap:4px;padding:0}.sidebar-group.sidebar-bottom,.brand-mark,.sidebar-link--desktop-only{display:none}.sidebar-link,.sidebar-icon-button{flex-shrink:0;justify-content:center;width:40px;height:40px;padding:0}.app-main{padding:18px 16px 92px}.dashboard-row,.dashboard-grid,.metric-grid,.history-layout{grid-template-columns:minmax(0,1fr)}.history-layout{gap:24px}}@media (min-width:768px){.dashboard-row.history-row{grid-template-columns:minmax(0,1fr)}.dashboard-row.dashboard-metrics-row{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));justify-items:stretch;width:100%;max-width:none;margin-inline:0}.dashboard-row.dashboard-metrics-row>.metric-card{justify-self:center;width:100%;max-width:520px}.dashboard-row.dashboard-metrics-row[data-metric-count="1"],.dashboard-row.dashboard-metrics-row[data-metric-count="2"],.dashboard-row.dashboard-metrics-row[data-metric-count="3"]{justify-items:stretch}.dashboard-row.dashboard-metrics-row[data-metric-count="1"]{grid-template-columns:minmax(0,1fr)}.dashboard-row.dashboard-metrics-row[data-metric-count="1"]>.metric-card,.dashboard-row.dashboard-metrics-row[data-metric-count="2"]>.metric-card,.dashboard-row.dashboard-metrics-row[data-metric-count="3"]>.metric-card{justify-self:stretch;max-width:none}.dashboard-row.dashboard-metrics-row[data-metric-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-row.dashboard-metrics-row[data-metric-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.page-card-grid.two-col,.secondary-grid.two-col,.stack-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.page-card-grid.three-col,.secondary-grid.three-col,.stack-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:767px){.dashboard-row.dashboard-metrics-row[data-metric-count="1"]>.metric-card,.dashboard-row.dashboard-metrics-row[data-metric-count="2"]>.metric-card{width:100%;max-width:none}.page-topbar{align-items:center}.page-brand .stroomr-logo{height:26px!important}.summary-grid,.metric-footer{grid-template-columns:minmax(0,1fr)}.dashboard-row>.metric-card .metric-footer,.dashboard-row>.metric-card .production-vs-load-metric__footer,.dashboard-row>.metric-card .battery-soc-metric__footer,.dashboard-row>.metric-card .wind-turbine-metric__footer,.dashboard-row>.metric-card .ev-charger-metric__footer,.dashboard-row>.metric-card .solar-inverter-metric__footer{flex-direction:column}.dashboard-row>.metric-card .metric-footer .kpi-label{text-align:center;width:100%}.dashboard-row>.metric-card .metric-footer .production-vs-load-metric__stat--end .kpi-label,.dashboard-row>.metric-card .metric-footer .battery-soc-metric__stat--end .kpi-label,.dashboard-row>.metric-card .metric-footer .wind-turbine-metric__stat--end .kpi-label,.dashboard-row>.metric-card .metric-footer .ev-charger-metric__stat--end .kpi-label,.dashboard-row>.metric-card .metric-footer .solar-inverter-metric__stat--end .kpi-label,.dashboard-row>.metric-card .battery-soc-metric__stat--end,.dashboard-row>.metric-card .wind-turbine-metric__stat--end,.dashboard-row>.metric-card .ev-charger-metric__stat--end,.dashboard-row>.metric-card .solar-inverter-metric__stat--end{text-align:center}.dashboard-row>.metric-card .metric-footer .metric-footer__stat-inner--align-start .kpi-label{text-align:left}.dashboard-row>.metric-card .metric-footer .metric-footer__stat-inner--align-end .kpi-label{text-align:right}.history-card .card-header{flex-wrap:wrap;row-gap:10px}.history-disc{width:132px;height:132px}.gauge{--gauge-size:152px}.chart-wrap,.chart-wrap-lg{height:224px}}.dashboard-row>.metric-card .battery-soc-knob{--battery-knob-size:clamp(112px,min(68cqmin,100cqmin - 122px),280px)}.dashboard-row>.metric-card .battery-soc-knob__number{font-size:clamp(1.3125rem,9.25cqmin + .3rem,2.375rem)}.dashboard-row>.metric-card .battery-soc-knob__unit{font-size:clamp(.6875rem,2.65cqmin + .06rem,.9375rem)}.dashboard-row>.metric-card .ev-charger-knob__power-value{font-size:clamp(1.3125rem,9.25cqmin + .3rem,2.375rem)}.dashboard-row>.metric-card .ev-charger-knob__power-unit{font-size:clamp(.6875rem,2.65cqmin + .06rem,.9375rem)}.dashboard-row>.metric-card .production-vs-load-metric__footer .production-vs-load-metric__bar-track,.dashboard-row>.metric-card .battery-soc-metric__footer .battery-soc-metric__bar-track,.dashboard-row>.metric-card .wind-turbine-metric__footer .wind-turbine-metric__bar-track,.dashboard-row>.metric-card .ev-charger-metric__footer .ev-charger-metric__bar-track,.dashboard-row>.metric-card .solar-inverter-metric__footer .solar-inverter-metric__bar-track{margin-inline:0;width:100%;max-width:100%;height:7px;margin-top:0}.dashboard-row>.metric-card .metric-footer,.dashboard-row>.metric-card .production-vs-load-metric__footer,.dashboard-row>.metric-card .battery-soc-metric__footer,.dashboard-row>.metric-card .wind-turbine-metric__footer,.dashboard-row>.metric-card .ev-charger-metric__footer,.dashboard-row>.metric-card .solar-inverter-metric__footer{flex-direction:row;align-items:stretch;gap:16px;display:flex}.dashboard-row>.metric-card .metric-footer .metric-stat{flex-direction:column;flex:1;gap:6px;min-width:0;max-width:100%;display:flex}.dashboard-row>.metric-card .metric-footer .kpi-label{overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}.dashboard-row>.metric-card .metric-footer .metric-footer__stat-inner{width:100%;margin-inline:0}.support-form{gap:16px;display:grid}.support-form .field-label{gap:6px;display:grid}.checkbox-row{font-size:var(--text-sm);color:var(--muted);align-items:flex-start;gap:10px;display:flex}.checkbox-row input{margin-top:2px}.field-error{color:var(--status-error,#c0392b);font-size:var(--text-sm);margin:0}.faq-list{gap:8px;display:grid}.faq-item{border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden}.faq-question{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;padding:14px 16px;font-weight:600}.faq-question:hover{background:color-mix(in srgb,var(--surface)92%,var(--foreground)8%)}.faq-answer{color:var(--muted);font-size:var(--text-sm);white-space:pre-wrap;padding:0 16px 14px}
.activation-gate-modal{max-width:440px}.activation-gate-icon{border-radius:var(--radius-md);background:color-mix(in srgb,var(--status-warning)14%,var(--surface));width:44px;height:44px;color:var(--status-warning);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.activation-gate-modal .wizard-body p{font-size:var(--text-sm);color:var(--muted);margin:0;line-height:1.55}.activation-gate-id{border-radius:var(--radius-md);background:color-mix(in srgb,var(--foreground)4%,var(--surface));font-size:var(--text-xs);color:var(--muted);gap:4px;padding:10px 12px;display:grid}.activation-gate-id code{color:var(--foreground);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.wizard-backdrop{z-index:50;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:wizard-fade-in .2s var(--ease-out);background:#141b2d80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes wizard-fade-in{0%{opacity:0}to{opacity:1}}.wizard-modal{border-radius:var(--radius-xl);width:100%;max-width:680px;animation:wizard-modal-enter .25s var(--ease-out-expo);flex-direction:column;display:flex;overflow:visible;box-shadow:0 24px 48px #00000026}.wizard-modal-surface{background:var(--surface);border:1px solid var(--border);border-radius:inherit;flex-direction:column;min-height:0;max-height:90vh;display:flex;overflow:hidden}@keyframes wizard-modal-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.wizard-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5)var(--space-6);border-bottom:1px solid var(--border);display:flex}.wizard-header-text{gap:var(--space-1);flex:1;min-width:0;display:grid}.wizard-header-text h2{font-size:var(--text-xl);color:var(--foreground);margin:0;font-weight:700;line-height:1.2}.wizard-header-text p{font-size:var(--text-sm);color:var(--muted);margin:0}.wizard-close{width:36px;height:36px;color:var(--muted);border-radius:var(--radius-sm);transition:color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wizard-close:hover{color:var(--foreground);background:var(--accent-soft)}.wizard-close svg{stroke-width:1.8px;width:20px;height:20px}.wizard-stepper{align-items:center;gap:var(--space-2);padding:var(--space-4)var(--space-6);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);display:flex}.wizard-step-dot{border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--text-xs);transition:background-color var(--duration-slow)var(--ease-out),color var(--duration-slow)var(--ease-out),box-shadow var(--duration-slow)var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.wizard-step-dot.completed{background:var(--status-success);color:#fff}.wizard-step-dot.active{background:var(--accent);color:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.wizard-step-dot.pending{background:color-mix(in srgb,var(--muted)20%,transparent);color:var(--muted)}.wizard-step-dot svg{stroke-width:2.5px;width:14px;height:14px}.wizard-step-line{border-radius:var(--radius-full);height:2px;transition:background-color var(--duration-slow)var(--ease-out);flex:1}.wizard-step-line.completed{background:var(--status-success)}.wizard-step-line.pending{background:color-mix(in srgb,var(--muted)20%,transparent)}.wizard-step-label{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);font-weight:500}.wizard-body{padding:var(--space-6);flex:1;overflow-y:auto}.wizard-section{gap:var(--space-5);display:grid}.wizard-footer{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4)var(--space-6);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);display:flex}.wizard-btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-height:40px;font-size:var(--text-sm);cursor:pointer;transition:transform var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out),filter var(--duration-normal)var(--ease-out),opacity var(--duration-normal)var(--ease-out);border:1px solid #0000;padding:0 20px;font-weight:600;display:inline-flex}.wizard-btn:active{transform:scale(.98)}.wizard-btn:disabled{opacity:.5;cursor:not-allowed}.wizard-btn svg{stroke-width:2px;width:16px;height:16px}.wizard-btn.primary{color:#fff;background:var(--accent);box-shadow:0 2px 4px color-mix(in srgb,var(--accent)28%,transparent)}.wizard-btn.primary:hover:not(:disabled){filter:brightness(1.08)}.wizard-btn.primary.success{background:var(--status-success);box-shadow:0 2px 4px color-mix(in srgb,var(--status-success)28%,transparent)}.wizard-btn.secondary{color:var(--muted);background:var(--surface);border-color:var(--border)}.wizard-btn.secondary:hover:not(:disabled){background:var(--accent-soft);color:var(--foreground)}.wizard-btn.ghost{color:var(--muted);border-color:var(--border);background:0 0}.wizard-btn.ghost:hover:not(:disabled){background:var(--accent-soft);color:var(--foreground)}.wizard-btn.full-width{width:100%}.protocol-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.protocol-card{align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),box-shadow var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);display:flex;position:relative}.protocol-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #2c5fd11f}.protocol-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent)12%,transparent)}.protocol-card-icon{border-radius:var(--radius-md);border:1px solid var(--border);background:color-mix(in srgb,var(--foreground)2%,var(--surface));width:48px;height:48px;color:var(--muted);transition:background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.protocol-card:hover .protocol-card-icon{background:color-mix(in srgb,var(--accent)8%,var(--surface));color:var(--accent)}.protocol-card.selected .protocol-card-icon{background:var(--accent);color:#fff;border-color:var(--accent)}.protocol-card-icon svg{stroke-width:1.5px;width:24px;height:24px}.protocol-card-text{flex:1;min-width:0}.protocol-card-text h3{font-size:var(--text-base);color:var(--foreground);margin:0;font-weight:600;line-height:1.3}.protocol-card-text p{margin:var(--space-2)0 0;font-size:var(--text-sm);color:var(--muted);line-height:1.5}.protocol-check{top:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);background:var(--accent);color:#fff;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;box-shadow:0 2px 4px #2c5fd140}.protocol-check svg{stroke-width:2.5px;width:14px;height:14px}.protocol-grid-full{gap:var(--space-3);grid-template-columns:1fr;max-width:600px;display:grid}.protocol-card-full{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),box-shadow var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);display:flex;position:relative}.protocol-card-full:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #2c5fd11f}.protocol-card-full.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent)12%,transparent)}.protocol-card-full-header{align-items:flex-start;gap:var(--space-4);flex:1;min-width:0;display:flex}.protocol-card-full-icon{border-radius:var(--radius-md);border:1px solid var(--border);background:color-mix(in srgb,var(--foreground)2%,var(--surface));width:48px;height:48px;color:var(--muted);transition:background-color var(--duration-normal)var(--ease-out),color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.protocol-card-full:hover .protocol-card-full-icon{background:color-mix(in srgb,var(--accent)8%,var(--surface));color:var(--accent)}.protocol-card-full.selected .protocol-card-full-icon{background:var(--accent);color:#fff;border-color:var(--accent)}.protocol-card-full-icon svg{stroke-width:1.5px;width:24px;height:24px}.protocol-card-full-title-group{flex:1;min-width:0}.protocol-card-full-title{font-size:var(--text-base);color:var(--foreground);margin:0;font-weight:600;line-height:1.3}.protocol-card-full-description{margin:var(--space-1)0 0;font-size:var(--text-sm);color:var(--muted);line-height:1.4}.protocol-recommended-badge{border-radius:var(--radius-sm);background:color-mix(in srgb,var(--status-success)12%,transparent);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--status-success);flex-shrink:0;padding:4px 10px;font-weight:700;display:inline-flex}.protocol-check-full{border-radius:var(--radius-full);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:relative;box-shadow:0 2px 4px #2c5fd140}.protocol-check-full svg{stroke-width:2.5px;width:16px;height:16px}.wizard-info-box,.wizard-error-box,.wizard-success-box,.wizard-warning-box{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);display:flex}.wizard-info-box{border-left:4px solid var(--status-info);background:color-mix(in srgb,var(--status-info)6%,var(--surface))}.wizard-error-box{border-left:4px solid var(--status-error);background:color-mix(in srgb,var(--status-error)6%,var(--surface))}.wizard-success-box{border-left:4px solid var(--status-success);background:color-mix(in srgb,var(--status-success)6%,var(--surface))}.wizard-warning-box{border-left:4px solid var(--status-warning);background:color-mix(in srgb,var(--status-warning)6%,var(--surface))}.wizard-info-box>svg,.wizard-error-box>svg,.wizard-success-box>svg,.wizard-warning-box>svg{stroke-width:1.8px;flex-shrink:0;width:18px;height:18px;margin-top:1px}.wizard-info-box>svg{color:var(--status-info)}.wizard-error-box>svg{color:var(--status-error)}.wizard-success-box>svg{color:var(--status-success)}.wizard-warning-box>svg{color:var(--status-warning)}.wizard-alert-content{flex:1;min-width:0}.wizard-alert-content p{font-size:var(--text-sm);color:var(--foreground);margin:0;line-height:1.5}.wizard-alert-content p strong{font-weight:600}.wizard-alert-content p+p{margin-top:var(--space-1)}.wizard-alert-content ul{margin:var(--space-2)0 0 var(--space-4);font-size:var(--text-sm);color:var(--foreground);padding:0;line-height:1.6}.wizard-field{gap:var(--space-2);display:grid}.wizard-field label{font-size:var(--text-sm);color:var(--foreground);font-weight:600}.wizard-field label .required{color:var(--status-error);margin-left:2px}.wizard-field label .optional{color:var(--muted);margin-left:4px;font-weight:400}.wizard-field .field-error{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--status-error);display:flex}.wizard-field .field-error svg{stroke-width:2px;width:14px;height:14px}.wizard-field .field-hint{font-size:var(--text-xs);color:var(--muted)}.wizard-input,.wizard-select{border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);width:100%;min-height:42px;color:var(--foreground);font-size:var(--text-base);transition:border-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out);padding:10px 14px}.wizard-input:focus,.wizard-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.wizard-input.has-error,.wizard-select.has-error{border-color:var(--status-error)}.wizard-input.has-error:focus,.wizard-select.has-error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--status-error)12%,transparent)}.wizard-input::placeholder{color:var(--muted-light)}.wizard-input:disabled,.wizard-select:disabled{opacity:.6;cursor:not-allowed}.wizard-field-row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.wizard-select-wrap{position:relative}.wizard-select-wrap .wizard-select{appearance:none;padding-right:36px}.wizard-select-wrap>svg{width:16px;height:16px;color:var(--muted);pointer-events:none;stroke-width:1.8px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.discovery-toggle{align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border:2px dashed color-mix(in srgb,var(--accent)40%,transparent);border-radius:var(--radius-md);background:var(--accent-soft);text-align:left;cursor:pointer;transition:background-color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);display:flex}.discovery-toggle:hover{background:color-mix(in srgb,var(--accent)12%,transparent);border-color:var(--accent)}.discovery-toggle>svg{width:18px;height:18px;color:var(--accent);stroke-width:1.8px;flex-shrink:0}.discovery-toggle-text{flex:1;min-width:0}.discovery-toggle-text p{margin:0}.discovery-toggle-text p:first-child{font-size:var(--text-sm);color:var(--foreground);font-weight:600}.discovery-toggle-text p:last-child:not(:first-child){font-size:var(--text-xs);color:var(--muted);margin-top:2px}.discovery-panel{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%)}.discovery-search{margin-bottom:var(--space-3);position:relative}.discovery-search>svg{width:18px;height:18px;color:var(--muted);stroke-width:1.8px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.discovery-search input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:42px;color:var(--foreground);font-size:var(--text-base);transition:border-color var(--duration-fast)var(--ease-out),box-shadow var(--duration-fast)var(--ease-out);padding:10px 14px 10px 40px}.discovery-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.discovery-search input::placeholder{color:var(--muted-light)}.discovery-list{gap:var(--space-2);max-height:256px;display:grid;overflow:hidden auto}.discovery-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3)var(--space-4);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out);min-width:0;display:flex}.discovery-item:hover{border-color:color-mix(in srgb,var(--muted)30%,transparent)}.discovery-item.selected{border-color:var(--accent);background:var(--accent-soft)}.discovery-item-icon{flex-shrink:0;margin-top:2px}.discovery-item-icon svg{stroke-width:1.8px;width:18px;height:18px}.discovery-item-body{flex:1;min-width:0;max-width:100%}.discovery-item-header{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.discovery-item-header p{font-size:var(--text-sm);color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.discovery-item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.discovery-item-badge{border-radius:var(--radius-sm);background:color-mix(in srgb,var(--foreground)6%,transparent);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-shrink:0;padding:2px 8px;font-weight:700;display:inline-flex}.discovery-item-meta{margin:var(--space-1)0 0;font-size:var(--text-xs);color:var(--muted)}.discovery-item-stats{align-items:center;gap:var(--space-4);margin-top:var(--space-2);display:flex}.discovery-item-stat{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--muted);display:inline-flex}.discovery-item-stat .dot{border-radius:var(--radius-full);background:var(--status-success);width:6px;height:6px}.discovery-item-check{flex-shrink:0;margin-top:2px}.discovery-item-check svg{width:18px;height:18px;color:var(--accent);stroke-width:2px}.discovery-device-grid{gap:var(--space-3);grid-template-columns:1fr;max-width:600px;display:grid}.discovery-device-card{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out),box-shadow var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);display:flex;position:relative}.discovery-device-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #2c5fd11f}.discovery-device-header{justify-content:space-between;align-items:center;gap:var(--space-4);flex:1;min-width:0;display:flex}.discovery-device-info{flex:1;min-width:0}.discovery-device-address{font-size:var(--text-sm);color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;width:300px;margin:0;font-family:SF Mono,JetBrains Mono,Fira Code,monospace;font-weight:600;line-height:1.3;overflow:hidden}.discovery-device-protocol{margin:var(--space-1)0 0;font-size:var(--text-xs);color:var(--muted);line-height:1.4}.discovery-device-stats{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.discovery-device-confidence{text-align:right}.discovery-confidence-value{font-size:var(--text-sm);margin:0;font-weight:700;line-height:1.2}.discovery-confidence-label{margin:var(--space-1)0 0;font-size:var(--text-xs);color:var(--muted);font-weight:500}.discovery-device-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.wizard-skeleton{gap:var(--space-3);display:grid}.wizard-skeleton-bar{border-radius:var(--radius-md);background:color-mix(in srgb,var(--muted)12%,transparent);height:64px;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.wizard-loading{padding:var(--space-10)0;justify-content:center;align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;display:flex}.wizard-loading>svg{width:40px;height:40px;color:var(--accent);stroke-width:1.8px;animation:1s linear infinite wizard-spin}@keyframes wizard-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.wizard-loading p{font-size:var(--text-base);color:var(--foreground);margin:0;font-weight:500}.wizard-loading .sub{font-size:var(--text-sm);color:var(--muted);font-weight:400}.wizard-summary{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%)}.wizard-summary-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2)0;display:flex}.wizard-summary-row+.wizard-summary-row{border-top:1px solid var(--border)}.wizard-summary-row .label{font-size:var(--text-sm);color:var(--muted);font-weight:500}.wizard-summary-row .value{font-size:var(--text-sm);color:var(--foreground);font-weight:600}.wizard-summary-row .value.mono{font-family:SF Mono,JetBrains Mono,Fira Code,monospace}.capability-list{gap:var(--space-2);display:grid}.capability-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-normal)var(--ease-out),border-color var(--duration-normal)var(--ease-out);display:flex}.capability-item:hover{background:var(--accent-soft)}.capability-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.capability-item-text{flex:1;min-width:0}.capability-item-text p{margin:0}.capability-item-text p:first-child{font-size:var(--text-sm);color:var(--foreground);text-transform:capitalize;font-weight:600}.capability-item-text p:last-child:not(:first-child){font-size:var(--text-xs);color:var(--muted);margin-top:2px}.device-class-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.device-class-card{padding:var(--space-3);border:2px solid var(--border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:border-color var(--duration-normal)var(--ease-out),background-color var(--duration-normal)var(--ease-out)}.device-class-card:hover{border-color:color-mix(in srgb,var(--muted)30%,transparent)}.device-class-card.selected{border-color:var(--accent);background:var(--accent-soft)}.device-class-card p{margin:0}.device-class-card p:first-child{font-size:var(--text-sm);color:var(--foreground);font-weight:600}.device-class-card p:last-child:not(:first-child){font-size:var(--text-xs);color:var(--muted);margin-top:2px}.telemetry-timer{padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid var(--status-info);background:color-mix(in srgb,var(--status-info)6%,var(--surface))}.telemetry-timer-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.telemetry-timer-header p{font-size:var(--text-sm);color:var(--foreground);margin:0;font-weight:600}.telemetry-progress-track{border-radius:var(--radius-full);background:color-mix(in srgb,var(--status-info)20%,transparent);width:100%;height:6px;overflow:hidden}.telemetry-progress-fill{border-radius:var(--radius-full);background:var(--status-info);height:100%;transition:width 1s linear}.telemetry-timer .hint{margin:var(--space-2)0 0;font-size:var(--text-xs);color:var(--muted)}.telemetry-table{border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius-md);width:100%;overflow:hidden}.telemetry-table thead th{text-align:left;background:color-mix(in srgb,var(--foreground)2%,var(--surface));color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;padding:10px 16px;font-weight:700}.telemetry-table tbody td{font-size:var(--text-sm);color:var(--foreground);border-top:1px solid var(--border);padding:10px 16px}.telemetry-table tbody tr:hover td{background:var(--accent-soft)}.telemetry-table .mono{font-family:SF Mono,JetBrains Mono,Fira Code,monospace;font-size:var(--text-xs)}.telemetry-table .bold{font-weight:600}.wizard-empty{padding:var(--space-6);text-align:center;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface)96%,var(--foreground)4%);flex-direction:column;justify-content:center;align-items:center;display:flex}.wizard-empty>svg{width:32px;height:32px;color:var(--muted);stroke-width:1.5px;margin-bottom:var(--space-3)}.wizard-empty p{font-size:var(--text-sm);color:var(--muted);margin:0}.wizard-empty p+p{margin-top:var(--space-1);font-size:var(--text-xs)}.wizard-section-title{font-size:var(--text-sm);color:var(--foreground);margin:0;font-weight:600}.confidence-high{color:var(--status-success)}.confidence-medium{color:var(--status-warning)}.confidence-low{color:var(--status-error)}@media (max-width:768px){.protocol-card-full{flex-direction:column;align-items:flex-start}.protocol-card-full-header{width:100%}.protocol-check-full{top:var(--space-4);right:var(--space-4);position:absolute}.discovery-device-card{flex-direction:column;align-items:flex-start}.discovery-device-header{flex-direction:column;width:100%}.discovery-device-stats{width:100%;margin-top:var(--space-4);justify-content:space-between}}@media (max-width:640px){.protocol-grid{grid-template-columns:minmax(0,1fr)}.protocol-grid-full{gap:var(--space-3)}.protocol-card-full{padding:var(--space-4);gap:var(--space-4)}.protocol-card-full-header{gap:var(--space-4)}.protocol-card-full-icon{width:48px;height:48px}.protocol-card-full-icon svg{width:24px;height:24px}.protocol-card-full-title{font-size:var(--text-base)}.discovery-device-grid{gap:var(--space-3)}.discovery-device-card{padding:var(--space-4);gap:var(--space-4)}.discovery-device-address{font-size:var(--text-sm)}.discovery-device-protocol{font-size:var(--text-xs)}.discovery-confidence-value{font-size:var(--text-sm)}.wizard-field-row,.device-class-grid{grid-template-columns:minmax(0,1fr)}.wizard-modal{border-radius:var(--radius-lg);max-height:100vh}.wizard-header,.wizard-body{padding:var(--space-4)}.wizard-footer,.wizard-stepper{padding:var(--space-3)var(--space-4)}}
