:root{color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#102a43;background:#f4f7fa;--navy:#0d3154;--blue:#2768b6;--line:#dce6ee;--muted:#687b8d;--green:#15935a;--shadow:0 24px 70px rgba(13,49,84,.10)}
*{box-sizing:border-box}html{min-height:100%;background:#f4f7fa}body{min-height:100vh;margin:0;background:radial-gradient(circle at 88% 2%,rgba(123,186,235,.20),transparent 31rem),linear-gradient(180deg,#fbfdff 0,#f2f6f9 46rem);display:flex;flex-direction:column}button,input{font:inherit}.topbar{height:78px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(183,201,216,.7);background:rgba(251,253,255,.86);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);text-decoration:none}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#164a76,#0b2d4e);font-weight:900;font-size:20px;box-shadow:0 8px 22px rgba(13,49,84,.22)}.brand>span:last-child{display:grid;line-height:1}.brand b{font-size:18px;letter-spacing:.04em}.brand small{font-size:9px;letter-spacing:.28em;color:#658099;margin-top:5px}.top-actions{display:flex;align-items:center;gap:16px}.badge{padding:8px 12px;border:1px solid #cfe0ee;border-radius:999px;color:#315d82;background:#f5faff;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.text-button{border:0;background:transparent;color:#375c7d;font-weight:750;cursor:pointer;padding:8px}.view{width:min(1280px,100%);margin:0 auto;padding:clamp(38px,6vw,82px) clamp(20px,5vw,72px)}.hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:54px;align-items:end;margin-bottom:42px}.eyebrow{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.17em}.hero h1,.dashboard-head h1,.login-copy h1{font-size:clamp(42px,7vw,72px);line-height:.98;letter-spacing:-.055em;margin:13px 0 20px;color:var(--navy)}h1 em{font-style:normal;color:var(--blue)}.hero p,.login-copy>p,.dashboard-head p{max-width:690px;color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.6;margin:0}.live-card,.refresh-state{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px 20px;box-shadow:0 13px 38px rgba(13,49,84,.07)}.live-card small,.refresh-state small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.live-card strong,.refresh-state strong{display:block;margin-top:4px;color:var(--navy)}.pulse{width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px rgba(21,147,90,.12);flex:none}.pulse.warning{background:#d18b19}.demo-notice{display:flex;align-items:center;gap:13px;background:#fff8e9;border:1px solid #f2d99d;color:#6d5422;border-radius:15px;padding:14px 17px;margin-bottom:28px;font-size:14px}.demo-notice strong{background:#f1c45f;color:#503b10;border-radius:8px;padding:5px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.section-block{margin-top:48px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px}.section-title span:first-child{color:#6c8296;font-size:10px;font-weight:900;letter-spacing:.15em}.section-title h2{color:var(--navy);font-size:clamp(25px,3vw,34px);letter-spacing:-.035em;margin:5px 0 0}.section-title time{color:#6c8296;font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{position:relative;min-height:230px;padding:24px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.9);box-shadow:0 12px 34px rgba(13,49,84,.06);overflow:hidden}.metric.primary{color:#fff;background:linear-gradient(145deg,#154d7c,#0c3155);border-color:transparent}.metric small{display:block;color:#6d8193;font-weight:720;margin-top:25px}.metric.primary small,.metric.primary p{color:#c7dcee}.metric strong{display:block;font-size:33px;letter-spacing:-.04em;margin-top:10px;color:var(--navy)}.metric.primary strong{color:#fff}.metric strong i{font-size:15px;font-style:normal;letter-spacing:0}.metric p{color:#718396;font-size:12px;margin:20px 0 0}.metric-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#e8f2fb;color:#1d639f;font-size:20px}.metric.primary .metric-icon{background:rgba(255,255,255,.13);color:#fff}.metric-icon.sun{color:#b9790d;background:#fff2ce}.metric-icon.battery{color:#13754a;background:#e5f6ed}.meter{height:6px;border-radius:5px;background:#e8eef3;margin-top:25px;overflow:hidden}.meter i{height:100%;display:block;background:linear-gradient(90deg,#2b70bd,#66b1e8);border-radius:inherit}.meter.quiet i{background:#8aa6bd}.meter .w78{width:78%}.meter .w74{width:74%}.meter .w34{width:34%}.spark{height:40px;display:flex;align-items:flex-end;gap:4px;margin-top:16px}.spark i{display:block;width:12.5%;background:#6eb4ec;border-radius:3px 3px 0 0;opacity:.9}.spark i:nth-child(1){height:35%}.spark i:nth-child(2){height:50%}.spark i:nth-child(3){height:44%}.spark i:nth-child(4){height:70%}.spark i:nth-child(5){height:56%}.spark i:nth-child(6){height:84%}.spark i:nth-child(7){height:65%}.spark i:nth-child(8){height:76%}.healthy{display:flex;align-items:center;gap:8px!important;color:#167547!important;background:#e8f7ef;border-radius:999px;padding:8px 12px;font-size:11px!important;letter-spacing:0!important}.healthy i{width:7px;height:7px;border-radius:50%;background:#18a362}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.room-grid article{padding:23px;border-radius:20px;border:1px solid var(--line);background:#fff}.room-head{display:flex;align-items:center;justify-content:space-between}.room-head span{font-size:24px;color:var(--blue)}.room-head i{font-style:normal;color:#6d8193;font-size:12px}.room-grid strong{display:block;color:var(--navy);font-size:26px;margin-top:29px}.room-grid p{color:#607487;margin:7px 0 19px}.room-grid small{color:#8494a3}.home-view{padding-top:clamp(35px,6vw,76px)}.login-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.65fr);gap:clamp(40px,8vw,120px);align-items:center;min-height:calc(100vh - 230px)}.login-copy ul{list-style:none;padding:0;margin:30px 0 0;display:flex;gap:22px;flex-wrap:wrap;color:#456278;font-size:13px;font-weight:700}.login-copy li{display:flex;align-items:center;gap:8px}.login-copy li i{width:8px;height:8px;border-radius:50%;background:#3d8ccb}.login-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:clamp(25px,4vw,40px);box-shadow:var(--shadow);display:grid;gap:20px}.login-card h2{font-size:32px;letter-spacing:-.04em;color:var(--navy);margin:7px 0}.login-card>div p{color:var(--muted);margin:0}.login-card label{display:grid;gap:8px;color:#3e566b;font-size:12px;font-weight:800}.login-card input{width:100%;height:50px;border:1px solid #cbd9e4;border-radius:12px;padding:0 14px;color:#17354f;background:#fbfdff;outline:none}.login-card input:focus{border-color:#4085c5;box-shadow:0 0 0 4px rgba(64,133,197,.12)}.primary-button{height:52px;border:0;border-radius:13px;background:linear-gradient(135deg,#2369b6,#164f88);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer}.primary-button:disabled{opacity:.65;cursor:wait}.privacy{text-align:center;color:#8493a1}.form-error{padding:11px 13px;border-radius:10px;background:#fff0ef;color:#a52b23;font-size:13px;margin:0}.dashboard-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.dashboard-head h1{margin-bottom:13px}.live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.live-tile{padding:23px;border-radius:20px;background:#fff;border:1px solid var(--line);min-height:175px}.live-tile .tile-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#6a7e91}.live-tile .tile-top strong{font-size:13px;color:#3c5870}.live-tile .quality{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#157549;background:#e8f7ef;padding:5px 8px;border-radius:999px}.live-tile.stale .quality{color:#8b6215;background:#fff3d9}.live-tile>strong{display:block;color:var(--navy);font-size:34px;letter-spacing:-.04em;margin-top:30px}.live-tile>strong i{font-size:15px;font-style:normal}.live-tile p{font-size:12px;color:#8090a0;margin:11px 0 0}.empty-state{text-align:center;padding:70px 24px;border:1px dashed #cbdbe7;border-radius:22px;background:rgba(255,255,255,.65)}.empty-state span{font-size:36px;color:#4d88bb}.empty-state h2{color:var(--navy)}.empty-state p{color:var(--muted);max-width:600px;margin:0 auto}.read-only-note{text-align:center;color:#8090a0;font-size:12px;margin-top:27px}.page-footer{margin-top:auto;display:flex;justify-content:space-between;gap:20px;padding:25px clamp(20px,5vw,72px);color:#8393a1;border-top:1px solid #dce5ec;font-size:11px;letter-spacing:.05em}[hidden]{display:none!important}
.site-location{font-size:13px!important;margin-top:8px!important}.refresh-state{min-width:290px}.refresh-button{width:38px;height:38px;margin-left:auto;border:1px solid #d6e2ec;border-radius:11px;background:#f5f9fc;color:#2369a8;font-size:21px;line-height:1;cursor:pointer}.refresh-button:disabled{opacity:.6}.refresh-button.spinning{animation:rotate .8s linear infinite}.badge.warning{color:#8b6215;background:#fff6df;border-color:#ecd59b}.live-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.live-overview article{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.9)}.live-overview small,.live-overview strong{display:block}.live-overview small{color:#788b9c;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.live-overview strong{color:var(--navy);font-size:22px;margin-top:2px}.status-dot{width:10px;height:10px;border-radius:50%;background:#8294a3;box-shadow:0 0 0 6px rgba(130,148,163,.1)}.status-dot.live{background:#15935a;box-shadow:0 0 0 6px rgba(21,147,90,.11)}.status-dot.stale{background:#d18b19;box-shadow:0 0 0 6px rgba(209,139,25,.11)}.status-dot.offline{background:#a94c47;box-shadow:0 0 0 6px rgba(169,76,71,.1)}.status-dot.rooms{background:#347bb9;box-shadow:0 0 0 6px rgba(52,123,185,.1)}.visual-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px}.visual-search{height:46px;min-width:min(390px,100%);display:flex;align-items:center;gap:9px;border:1px solid #ccdbe7;background:#fff;border-radius:13px;padding:0 13px;color:#6d8294}.visual-search:focus-within{border-color:#4085c5;box-shadow:0 0 0 4px rgba(64,133,197,.1)}.visual-search input{width:100%;border:0;outline:0;background:transparent;color:#17354f}.status-filters{display:flex;gap:5px;padding:4px;border:1px solid var(--line);background:#fff;border-radius:12px}.status-filters button{border:0;background:transparent;color:#61778b;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:800;cursor:pointer}.status-filters button.active{background:#eaf3fb;color:#1a609d}.room-sections{display:grid;gap:38px}.room-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.room-section-head span{display:block;color:#6c8296;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.room-section-head h2{margin:4px 0 0;color:var(--navy);font-size:25px;letter-spacing:-.03em}.room-section-head small{color:#7c8e9d}.live-tile{box-shadow:0 9px 28px rgba(13,49,84,.045)}.tile-identity{display:flex;align-items:center;gap:10px;min-width:0}.tile-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;color:#2167a4;background:#e9f3fb;font-size:18px;flex:none}.live-tile .tile-top strong{overflow-wrap:anywhere}.live-tile.offline .quality{color:#98423d;background:#fcebea}.live-tile.stale,.live-tile.offline{background:#fffdf9}.live-tile .tile-value{display:block;color:var(--navy);font-size:34px;letter-spacing:-.04em;margin-top:27px}.live-tile .tile-value i{font-size:15px;font-style:normal}.empty-state.compact{padding:42px 20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:960px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:1fr;min-height:auto}.login-copy{text-align:center}.login-copy>p{margin-inline:auto}.login-copy ul{justify-content:center}.live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.topbar{height:68px;padding-inline:16px}.badge{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view{padding:34px 16px}.hero{grid-template-columns:1fr;gap:24px}.hero h1,.login-copy h1,.dashboard-head h1{font-size:40px}.live-card{width:100%}.demo-notice{align-items:flex-start;flex-direction:column}.metric-grid,.room-grid,.live-grid{grid-template-columns:1fr}.metric{min-height:205px}.section-title{align-items:flex-start}.section-title time{margin-top:8px}.dashboard-head{align-items:flex-start;flex-direction:column;margin-bottom:22px}.refresh-state{width:100%;min-width:0}.visual-toolbar{align-items:stretch;flex-direction:column}.visual-search{min-width:0;width:100%}.status-filters{display:grid;grid-template-columns:repeat(3,1fr)}.live-overview{gap:8px}.live-overview article{padding:12px}.room-section-head{align-items:flex-start}.live-tile{min-height:165px}.page-footer{padding:20px 16px;flex-direction:column}.login-card{border-radius:20px}.login-copy ul{display:grid;justify-content:start;text-align:left}}
@media(prefers-reduced-motion:no-preference){.pulse{animation:pulse 2s infinite}@keyframes pulse{0%,100%{box-shadow:0 0 0 5px rgba(21,147,90,.12)}50%{box-shadow:0 0 0 10px rgba(21,147,90,0)}}}@keyframes rotate{to{transform:rotate(360deg)}}

/* Public VISUAL showcase: the same calm, residential design language as the
   private customer view, with synthetic data and no device-side effects. */
.demo-app{width:min(1460px,100%);padding-top:clamp(28px,4vw,52px)}
.demo-commandbar{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:25px}
.demo-commandbar h1{margin:7px 0 3px;color:var(--navy);font-size:clamp(36px,5vw,56px);line-height:1;letter-spacing:-.052em}
.demo-commandbar>div>p{margin:0;color:var(--muted);font-size:16px}
.weather-cluster{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:13px;padding:12px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(13,49,84,.055)}
.weather-cluster .weather-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;color:#a76b00;background:#fff1c9;font-size:21px}
.weather-cluster strong,.weather-cluster small{display:block}.weather-cluster strong{color:var(--navy);font-size:17px}.weather-cluster small{margin-top:2px;color:#778a9a;font-size:10px}.weather-cluster time{padding-left:14px;border-left:1px solid var(--line);color:#45627b;font-size:12px;font-weight:750;white-space:nowrap}
.demo-nav{position:sticky;top:90px;z-index:15;display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin:0 auto 25px;padding:6px;border:1px solid rgba(199,216,228,.9);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 12px 34px rgba(13,49,84,.09);backdrop-filter:blur(18px);overflow-x:auto}
.demo-nav button{height:42px;display:flex;align-items:center;gap:8px;padding:0 16px;border:0;border-radius:11px;background:transparent;color:#61788b;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}
.demo-nav button span{font-size:16px}.demo-nav button.active{color:#fff;background:linear-gradient(135deg,#1b5f9b,#0f3d68);box-shadow:0 7px 17px rgba(17,67,110,.18)}
.demo-disclaimer{margin-bottom:22px;background:#eef7ff;border-color:#cfe3f4;color:#355d7c}.demo-disclaimer strong{background:#2468a7;color:#fff}
.demo-anchor{scroll-margin-top:155px}
.clevr-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(440px,.92fr);gap:45px;min-height:480px;padding:clamp(32px,5vw,64px);border-radius:32px;color:#fff;background:radial-gradient(circle at 84% 20%,rgba(89,174,235,.32),transparent 21rem),linear-gradient(135deg,#0a2a49 0%,#124872 58%,#1c6498 100%);box-shadow:0 28px 80px rgba(9,42,73,.2);overflow:hidden}
.clevr-hero:before,.clevr-hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.09);border-radius:50%}.clevr-hero:before{width:390px;height:390px;right:-120px;top:-175px}.clevr-hero:after{width:260px;height:260px;left:42%;bottom:-205px}
.clevr-hero-copy{position:relative;z-index:1;align-self:center}.hero-status{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid rgba(180,238,209,.25);border-radius:999px;background:rgba(20,150,91,.18);color:#c7f5dc;font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.hero-status i{width:7px;height:7px;border-radius:50%;background:#53dda0;box-shadow:0 0 0 5px rgba(83,221,160,.13)}
.clevr-hero h2{margin:22px 0 18px;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-.055em}.clevr-hero h2 em{color:#84c8f3;font-style:normal}.clevr-hero-copy>p{max-width:610px;margin:0;color:#c7d9e8;font-size:17px;line-height:1.62}
.presence-row{display:flex;align-items:center;margin-top:36px}.presence-row>span{width:38px;height:38px;display:grid;place-items:center;margin-right:-7px;border:3px solid #194e77;border-radius:50%;background:#e8f3fb;color:#184e77;font-size:10px;font-weight:900}.presence-row p{display:grid;margin:0 0 0 17px}.presence-row strong{font-size:12px}.presence-row small{margin-top:3px;color:#a9c2d6;font-size:10px}
.home-snapshot{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-self:center}.home-snapshot article{min-height:158px;padding:22px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.1);backdrop-filter:blur(13px)}.home-snapshot span,.home-snapshot small{display:block}.home-snapshot span{color:#bcd2e3;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.home-snapshot strong{display:block;margin-top:19px;font-size:29px;letter-spacing:-.04em}.home-snapshot strong i{font-size:13px;font-style:normal}.home-snapshot small{margin-top:8px;color:#aac3d7;font-size:10px}
.quick-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:15px}.quick-status article{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 9px 26px rgba(13,49,84,.045)}.quick-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;font-size:18px;flex:none}.quick-icon.light{color:#966000;background:#fff2cf}.quick-icon.shade{color:#285d91;background:#eaf3fb}.quick-icon.climate{color:#9a4b2b;background:#fff0e8}.quick-icon.secure{color:#127148;background:#e4f6ed}.quick-status strong,.quick-status small{display:block}.quick-status strong{color:#24435d;font-size:12px}.quick-status small{margin-top:4px;color:#8494a1;font-size:10px}
.energy-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.45fr);gap:16px}.energy-flow-card{position:relative;display:grid;grid-template-columns:1fr 1.2fr 1fr;grid-template-rows:1fr 1fr;align-items:center;min-height:450px;padding:34px;border:1px solid var(--line);border-radius:27px;background:linear-gradient(145deg,#fafdff,#eef5fa);box-shadow:0 13px 40px rgba(13,49,84,.065);overflow:hidden}.energy-flow-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(61,141,199,.1),transparent 13rem);pointer-events:none}
.flow-node,.flow-center{position:relative;z-index:3;text-align:center}.flow-node span{width:47px;height:47px;display:grid;place-items:center;margin:0 auto 9px;border-radius:15px;font-size:23px}.flow-node small,.flow-node strong{display:block}.flow-node small{color:#6c8193;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.flow-node strong{margin-top:6px;color:#173f62;font-size:13px}.flow-node.solar{grid-column:1;grid-row:1}.flow-node.grid{grid-column:1;grid-row:2}.flow-node.battery{grid-column:3;grid-row:1}.flow-node.car{grid-column:3;grid-row:2}.flow-node.solar span{color:#a96f08;background:#fff0c4}.flow-node.grid span{color:#3974a6;background:#e6f1fa}.flow-node.battery span{color:#14764b;background:#e3f5eb}.flow-node.car span{color:#3b58a4;background:#e8edff}
.flow-center{grid-column:2;grid-row:1/3;display:grid;justify-items:center}.house-glyph{position:relative;width:118px;height:96px;margin-bottom:19px;border:2px solid #5f99c7;border-radius:23px;background:linear-gradient(145deg,#174f7c,#0c3458);box-shadow:0 16px 35px rgba(13,54,89,.21)}.house-glyph:before{content:"";position:absolute;width:70px;height:70px;left:22px;top:-27px;border-top:2px solid #77acd5;border-left:2px solid #77acd5;border-radius:15px 0 0 0;transform:rotate(45deg);background:#174f7c}.house-glyph span{position:absolute;z-index:2;width:27px;height:44px;left:45px;bottom:0;border:2px solid #74a9d2;border-bottom:0;border-radius:8px 8px 0 0}.house-glyph i{position:absolute;z-index:2;width:21px;height:21px;right:19px;top:29px;border:2px solid #74a9d2;border-radius:5px}.flow-center small{color:#6f8292;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.flow-center strong{margin-top:5px;color:var(--navy);font-size:27px;letter-spacing:-.04em}.flow-center em{margin-top:7px;padding:6px 9px;border-radius:999px;color:#156e48;background:#e2f5eb;font-size:10px;font-style:normal;font-weight:750}
.flow-line{position:absolute;z-index:1;height:2px;width:22%;background:linear-gradient(90deg,rgba(72,139,191,.15),#4089c2,rgba(72,139,191,.15));overflow:visible}.flow-line:after{content:"";position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:#4792c9;animation:flowPulse 2s ease-in-out infinite}.line-solar{left:23%;top:28%;transform:rotate(22deg)}.line-grid{left:23%;top:72%;transform:rotate(-22deg)}.line-battery{right:23%;top:28%;transform:rotate(-22deg)}.line-car{right:23%;top:72%;transform:rotate(22deg)}.line-grid:after,.line-car:after{animation-delay:.8s}
.energy-kpis{display:grid;gap:12px}.energy-kpis article{padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff}.energy-kpis span,.energy-kpis small{display:block}.energy-kpis span{color:#687f92;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.energy-kpis strong{display:block;margin:15px 0 14px;color:var(--navy);font-size:27px;letter-spacing:-.04em}.energy-kpis strong i{font-size:13px;font-style:normal}.energy-kpis small{margin-top:11px;color:#8495a3;font-size:10px}.progress{display:block;width:100%;height:6px;border:0;border-radius:6px;background:#e9eff4;overflow:hidden;appearance:none}.progress::-webkit-progress-bar{background:#e9eff4;border-radius:6px}.progress::-webkit-progress-value{background:linear-gradient(90deg,#2e74b8,#67b4e9);border-radius:6px}.progress::-moz-progress-bar{background:linear-gradient(90deg,#2e74b8,#67b4e9);border-radius:6px}.progress.green::-webkit-progress-value{background:linear-gradient(90deg,#198155,#55c48b)}.progress.green::-moz-progress-bar{background:linear-gradient(90deg,#198155,#55c48b)}
.history-card{margin-top:16px;padding:clamp(22px,3vw,32px);border:1px solid var(--line);border-radius:27px;background:#fff;box-shadow:0 13px 40px rgba(13,49,84,.055)}.history-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.history-head span{color:#6e8497;font-size:9px;font-weight:900;letter-spacing:.12em}.history-head h3{margin:5px 0 0;color:var(--navy);font-size:20px}.range-switch,.floor-filter{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f7fafc}.range-switch button,.floor-filter button{border:0;border-radius:8px;background:transparent;color:#6a8092;padding:7px 12px;font-size:10px;font-weight:850;cursor:pointer}.range-switch button.active,.floor-filter button.active{color:#fff;background:#1d5e96;box-shadow:0 5px 12px rgba(29,94,150,.16)}
.chart-legend{display:flex;justify-content:flex-end;gap:17px;margin:21px 0 7px}.chart-legend span{display:flex;align-items:center;gap:6px;color:#728597;font-size:9px;font-weight:750}.chart-legend span:before{content:"";width:9px;height:3px;border-radius:3px}.chart-legend .consumption:before{background:#163f66}.chart-legend .production:before{background:#e3a928}.chart-legend .grid-use:before{background:#84a7c1}
.energy-chart{position:relative;height:280px;padding:0 0 23px 43px}.chart-axis{position:absolute;inset:0 auto 23px 0;display:flex;flex-direction:column;justify-content:space-between;color:#8a99a6;font-size:9px}.energy-chart svg{width:100%;height:100%;overflow:visible}.chart-grid line{stroke:#e6edf2;stroke-width:1;vector-effect:non-scaling-stroke}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-line.consumption{stroke:#163f66}.chart-line.production{stroke:#e3a928}.chart-line.grid-use{stroke:#84a7c1;stroke-dasharray:6 6}.chart-area{fill:rgba(227,169,40,.09);stroke:none}.chart-labels{position:absolute;left:43px;right:0;bottom:0;display:flex;justify-content:space-between;color:#8a99a6;font-size:9px}.history-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding-top:18px;border-top:1px solid #e7eef3}.history-summary article{padding:12px;border-radius:13px;background:#f6f9fb}.history-summary span,.history-summary strong{display:block}.history-summary span{color:#7b8e9e;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.history-summary strong{margin-top:5px;color:#274b68;font-size:15px}
.rooms-title{align-items:center}.clevr-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.clevr-room{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 11px 32px rgba(13,49,84,.05);transition:transform .2s ease,box-shadow .2s ease}.clevr-room:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(13,49,84,.09)}.room-visual{position:relative;height:132px;display:flex;align-items:flex-end;padding:15px;background-color:#d6e4ee;overflow:hidden}.room-visual:before,.room-visual:after{content:"";position:absolute}.room-visual:before{inset:0;background:linear-gradient(140deg,rgba(9,45,75,.02),rgba(9,45,75,.54))}.room-visual:after{width:78%;height:66%;right:-7%;bottom:-25%;border-radius:100% 0 0 0;background:rgba(255,255,255,.18);transform:rotate(-7deg)}.room-visual span{position:relative;z-index:2;color:#fff;font-size:9px;font-weight:900;letter-spacing:.15em}.room-visual.living{background:linear-gradient(135deg,#8db0c9,#315f7c)}.room-visual.kitchen{background:linear-gradient(135deg,#b6c5ca,#647f88)}.room-visual.office{background:linear-gradient(135deg,#9db9cf,#486f8d)}.room-visual.bedroom{background:linear-gradient(135deg,#8e9eb9,#515d7c)}.room-visual.bath{background:linear-gradient(135deg,#a9ced8,#527f8d)}.room-visual.garden{background:linear-gradient(135deg,#91b49b,#436f55)}.clevr-room-body{padding:20px}.clevr-room-body>div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.clevr-room-body>div span{color:#7890a2;font-size:8px;font-weight:900;letter-spacing:.11em}.clevr-room-body h3{margin:4px 0 0;color:var(--navy);font-size:18px}.clevr-room-body>strong{display:block;margin-top:19px;color:#1b4c73;font-size:26px;letter-spacing:-.035em}.clevr-room-body ul{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:17px 0 0;padding:14px 0 0;border-top:1px solid #e7edf2;list-style:none}.clevr-room-body li{color:#7b8d9c;font-size:9px;line-height:1.35}.clevr-room-body li i{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#94a4b0}.clevr-room-body li i.on{background:#e5aa2d;box-shadow:0 0 0 3px rgba(229,170,45,.12)}
.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.system-grid>article{position:relative;padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 9px 28px rgba(13,49,84,.045)}.system-grid>article>div{min-height:52px;padding-left:53px}.system-grid small{color:#7a8e9f;font-size:8px;font-weight:900;letter-spacing:.1em}.system-grid h3{margin:4px 0 0;color:#294a64;font-size:14px}.system-icon{position:absolute;top:20px;left:20px;width:39px;height:39px;display:grid;place-items:center;border-radius:13px;font-size:18px}.system-icon.heat{color:#a14d2d;background:#fff0e8}.system-icon.storage{color:#117449;background:#e3f5ec}.system-icon.charge{color:#3d58a3;background:#e9edff}.system-icon.water{color:#24749c;background:#e3f4fb}.system-icon.network{color:#245d92;background:#e6f1fa}.system-icon.air{color:#896418;background:#fff3d7}.system-grid>article>strong{display:block;margin-top:18px;color:var(--navy);font-size:25px;letter-spacing:-.035em}.system-grid dl{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:17px 0 16px}.system-grid dl div{padding:9px 7px;border-radius:10px;background:#f5f8fa}.system-grid dt,.system-grid dd{margin:0}.system-grid dt{color:#8394a2;font-size:8px}.system-grid dd{margin-top:4px;color:#405d74;font-size:10px;font-weight:800}.system-grid em{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;font-size:9px;font-style:normal;font-weight:800}.system-ok{color:#127248;background:#e5f6ed}.system-idle{color:#5b7082;background:#edf2f5}
.security-layout{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:16px}.security-state,.event-card{border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:0 11px 32px rgba(13,49,84,.05)}.security-state{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:27px}.security-ring{width:74px;height:74px;display:grid;place-items:center;border:7px solid #d7f1e3;border-radius:50%;background:#eefaf4;color:#11804d;font-size:29px}.security-state small,.event-card small{color:#7c90a0;font-size:8px;font-weight:900;letter-spacing:.1em}.security-state h3,.event-card h3{margin:5px 0 0;color:var(--navy);font-size:20px}.security-state p{margin:10px 0 0;color:#718596;font-size:11px;line-height:1.55}.security-state ul{grid-column:1/3;display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:5px 0 0;padding:14px 0 0;border-top:1px solid #e7eef3;list-style:none}.security-state li{display:flex;align-items:center;gap:9px;color:#60788a;font-size:10px}.security-state li span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#edf5fa;color:#245f8d;font-weight:900}
.event-card{padding:25px}.event-head{display:flex;justify-content:space-between;align-items:flex-start}.event-head>span{color:#306a98;font-size:9px;font-weight:800}.event-card ol{display:grid;gap:0;margin:17px 0 0;padding:0;list-style:none}.event-card li{display:grid;grid-template-columns:37px 33px 1fr;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #edf1f4}.event-card time{color:#8494a2;font-size:9px}.event-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;font-size:13px}.event-icon.person{color:#276391;background:#e8f2f9}.event-icon.energy{color:#976607;background:#fff1cb}.event-icon.secure{color:#127148;background:#e4f6ed}.event-icon.water{color:#24749c;background:#e3f4fb}.event-card strong,.event-card li small{display:block}.event-card strong{color:#39566e;font-size:11px}.event-card li small{margin-top:3px;letter-spacing:0;font-weight:500;text-transform:none}
.scene-title{align-items:center;margin-top:40px}.scene-title>small{color:#718698;font-size:10px}.scene-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.scene-grid button{display:grid;grid-template-columns:auto 1fr;column-gap:12px;text-align:left;padding:17px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#34536b;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.scene-grid button:hover,.scene-grid button.active{transform:translateY(-2px);border-color:#8eb8d8;box-shadow:0 12px 28px rgba(13,49,84,.08)}.scene-grid button>span{grid-row:1/3;width:37px;height:37px;display:grid;place-items:center;border-radius:12px;color:#1f6198;background:#e8f2fa;font-size:17px}.scene-grid strong{align-self:end;font-size:12px}.scene-grid small{color:#8495a2;font-size:9px}.demo-toast{position:fixed;right:22px;bottom:22px;z-index:50;max-width:min(390px,calc(100vw - 32px));padding:14px 17px;border:1px solid #bcd8eb;border-radius:14px;color:#174a72;background:#f1f9ff;box-shadow:0 18px 45px rgba(13,49,84,.18);font-size:12px;font-weight:750}
@keyframes flowPulse{0%{left:0;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:calc(100% - 8px);opacity:0}}
@media(max-width:1100px){.clevr-hero{grid-template-columns:1fr;min-height:auto}.home-snapshot{grid-template-columns:repeat(4,minmax(0,1fr))}.home-snapshot article{min-height:132px}.energy-layout{grid-template-columns:1fr}.energy-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.clevr-room-grid,.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.security-layout{grid-template-columns:1fr}}
@media(max-width:820px){.demo-commandbar{align-items:flex-start;flex-direction:column}.weather-cluster{width:100%}.weather-cluster time{margin-left:auto}.demo-nav{top:78px;margin-inline:0;width:100%}.home-snapshot{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-status{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-flow-card{min-height:400px;padding:20px}.history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-title{align-items:flex-start;flex-direction:column}.floor-filter{max-width:100%;overflow-x:auto}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.demo-app{padding-top:25px}.demo-commandbar h1{font-size:38px}.weather-cluster{grid-template-columns:auto 1fr}.weather-cluster time{grid-column:1/3;width:100%;padding:9px 0 0;border-top:1px solid var(--line);border-left:0}.demo-nav{top:74px;padding:4px;border-radius:13px}.demo-nav button{height:39px;padding:0 12px}.demo-nav button span{display:none}.clevr-hero{gap:27px;padding:27px 21px;border-radius:24px}.clevr-hero h2{font-size:40px}.clevr-hero-copy>p{font-size:14px}.presence-row{margin-top:25px}.home-snapshot{gap:8px}.home-snapshot article{min-height:125px;padding:16px}.home-snapshot strong{font-size:21px}.quick-status{gap:8px}.quick-status article{padding:12px}.quick-icon{width:34px;height:34px}.energy-flow-card{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:25px 8px;min-height:auto;padding:28px 12px}.flow-center{grid-column:1/3;grid-row:1}.flow-node.solar{grid-column:1;grid-row:2}.flow-node.battery{grid-column:2;grid-row:2}.flow-node.grid{grid-column:1;grid-row:3}.flow-node.car{grid-column:2;grid-row:3}.flow-line{display:none}.house-glyph{width:94px;height:78px}.house-glyph:before{width:58px;height:58px;left:17px}.house-glyph span{left:34px}.house-glyph i{right:14px;top:22px}.energy-kpis{grid-template-columns:1fr}.history-head{align-items:flex-start;flex-direction:column}.range-switch{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.energy-chart{height:230px;padding-left:36px}.chart-labels{left:36px}.chart-legend{justify-content:flex-start;flex-wrap:wrap}.clevr-room-grid,.system-grid{grid-template-columns:1fr}.clevr-room-body ul{grid-template-columns:1fr}.security-state{grid-template-columns:1fr}.security-ring{width:60px;height:60px}.security-state ul{grid-column:1;grid-template-columns:1fr}.event-card{padding:19px}.event-card li{grid-template-columns:31px 29px 1fr}.scene-grid{grid-template-columns:1fr}.section-title h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.flow-line:after{animation:none}.clevr-room,.scene-grid button{transition:none}}

/* VISUAL Leitstand theme, derived from the supplied Syrwatka reference. */
body.demo-runtime{--console-bg:#020a11;--console-panel:#06131d;--console-panel-2:#081a25;--console-line:#123448;--console-text:#d9edf7;--console-muted:#678596;--console-cyan:#19c9f4;--console-green:#27e0a1;--console-yellow:#efb832;--console-violet:#a66cf4;color:var(--console-text);background-color:var(--console-bg);background-image:linear-gradient(rgba(20,65,86,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(20,65,86,.075) 1px,transparent 1px),radial-gradient(circle at 72% 5%,rgba(35,91,132,.14),transparent 35rem);background-size:32px 32px,32px 32px,auto}
.demo-runtime .topbar,.demo-runtime .page-footer{display:none}.demo-runtime main{width:100%;min-height:100vh}.demo-runtime .demo-app{width:auto;max-width:none;margin:0 0 0 76px;padding:78px clamp(14px,1.7vw,28px) 40px;background:transparent}.demo-runtime .demo-disclaimer{margin:10px 0 14px;padding:8px 12px;border-color:#17435a;border-radius:7px;color:#6f9caf;background:rgba(7,29,41,.92);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;letter-spacing:.055em}.demo-runtime .demo-disclaimer strong{border-radius:4px;color:#001018;background:var(--console-cyan);font-size:8px}.demo-runtime .demo-anchor{scroll-margin-top:80px}
.demo-runtime .demo-nav{position:fixed;inset:0 auto 0 0;z-index:40;width:76px;max-width:none;margin:0;padding:10px 7px;display:flex;flex-direction:column;gap:9px;border:0;border-right:1px solid #102b3a;border-radius:0;background:rgba(2,11,18,.98);box-shadow:10px 0 35px rgba(0,0,0,.15);overflow:visible;backdrop-filter:blur(18px)}.demo-runtime .demo-rail-logo{display:grid;place-items:center;gap:4px;margin-bottom:16px;color:#32d2f6;text-decoration:none}.demo-runtime .demo-rail-logo>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid #12637b;border-radius:8px;background:#062231;box-shadow:inset 0 0 15px rgba(25,201,244,.08);font-size:16px}.demo-runtime .demo-rail-logo small{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;letter-spacing:.22em}.demo-runtime .demo-nav button{width:62px;height:65px;display:grid;place-items:center;align-content:center;gap:6px;padding:0;border:1px solid transparent;border-radius:8px;color:#4f7182;background:transparent;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.demo-runtime .demo-nav button>span{font-size:18px}.demo-runtime .demo-nav button>small{font-size:7px;font-weight:800}.demo-runtime .demo-nav button:hover{color:#a9d9e9;border-color:#11394d}.demo-runtime .demo-nav button.active{color:#2ed8fa;border-color:#13708b;background:linear-gradient(135deg,rgba(13,61,78,.85),rgba(4,27,38,.9));box-shadow:inset 3px 0 0 #1ed3f5,0 0 22px rgba(25,201,244,.08)}.demo-edge-state{display:grid;place-items:center;gap:5px;margin-top:auto;padding-bottom:5px;color:#4d7181;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.demo-edge-state i{width:7px;height:7px;border-radius:50%;background:var(--console-green);box-shadow:0 0 10px var(--console-green)}.demo-edge-state small{font-size:6px;letter-spacing:.1em}
.demo-workbar{position:fixed;top:0;right:0;left:76px;z-index:35;height:64px;display:grid;grid-template-columns:minmax(190px,.7fr) minmax(250px,.8fr) minmax(260px,1fr) auto;align-items:center;gap:13px;padding:0 clamp(14px,1.7vw,28px);border-bottom:1px solid #102d3d;background:rgba(2,10,17,.94);backdrop-filter:blur(16px);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.demo-breadcrumb{display:flex;gap:9px;color:#426475;font-size:8px;letter-spacing:.13em}.demo-breadcrumb b{color:#6f95a7}.demo-breadcrumb strong{color:#b9d4df}.demo-project{position:relative;display:grid;padding:8px 35px 8px 38px;border:1px solid #123347;border-radius:7px;background:#06141f}.demo-project:before{content:"⌂";position:absolute;left:13px;top:13px;color:var(--console-cyan)}.demo-project small{color:#416779;font-size:6px;letter-spacing:.17em}.demo-project strong{margin-top:3px;color:#a7c8d7;font-size:8px}.demo-global-search{height:37px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #123347;border-radius:7px;background:#06141f;color:#426b7e}.demo-global-search input{width:100%;border:0;outline:0;color:#b8d3df;background:transparent;font-family:inherit;font-size:8px}.demo-global-search input::placeholder{color:#3e6171}.demo-workbar>time{color:#c2dbe5;font-size:15px;white-space:nowrap}
.leitstand-hero{position:relative;display:grid;grid-template-columns:minmax(290px,1.35fr) minmax(155px,.6fr) minmax(130px,.48fr) minmax(130px,.48fr) minmax(230px,.9fr);align-items:center;min-height:160px;border:1px solid #15445a;border-radius:9px;background:linear-gradient(100deg,rgba(5,25,36,.97),rgba(6,22,35,.96) 63%,rgba(13,17,36,.94));box-shadow:inset 0 0 45px rgba(20,115,142,.055),0 12px 35px rgba(0,0,0,.22);overflow:hidden}.leitstand-hero:after{content:"";position:absolute;right:0;bottom:7px;left:0;height:2px;background:linear-gradient(90deg,var(--console-cyan),#386ceb 68%,var(--console-yellow));box-shadow:0 0 12px rgba(25,201,244,.5)}.leitstand-title,.leitstand-clock,.leitstand-climate,.leitstand-health,.leitstand-status{height:100%;padding:24px;border-right:1px solid rgba(21,59,77,.7)}.leitstand-title small{color:#3f778e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;letter-spacing:.18em}.leitstand-title h1{margin:16px 0 12px;color:#d9ebf2;font-family:"Segoe UI",sans-serif;font-size:34px;font-weight:300;line-height:.84;letter-spacing:.03em}.leitstand-title h1 strong{color:var(--console-cyan);font-weight:700;letter-spacing:.16em}.leitstand-title>span{display:flex;align-items:center;gap:7px;color:#527789;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;letter-spacing:.1em}.leitstand-title>span i{width:6px;height:6px;border-radius:50%;background:var(--console-green);box-shadow:0 0 9px var(--console-green)}.leitstand-clock{display:grid;align-content:center}.leitstand-clock strong{color:#e0eff5;font-size:48px;font-weight:250;letter-spacing:-.06em}.leitstand-clock small{margin-top:8px;color:#496c7d;font-size:8px}.leitstand-climate{display:flex;align-items:center;gap:12px}.leitstand-climate>span{color:var(--console-cyan);font-size:25px}.leitstand-climate small,.leitstand-climate strong,.leitstand-climate em{display:block}.leitstand-climate small,.leitstand-health small{color:#416a7e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.15em}.leitstand-climate strong{margin-top:6px;color:#d4e9f2;font-size:18px;font-weight:400}.leitstand-climate em{margin-top:3px;color:#58798a;font-size:7px;font-style:normal}.leitstand-health{display:grid;align-content:center}.leitstand-health strong{margin-top:7px;color:#d7ebf3;font-size:39px;font-weight:300}.leitstand-health strong em{color:var(--console-green);font-size:15px;font-style:normal}.leitstand-health progress{width:100%;height:4px;border:0;background:#102b39;appearance:none}.leitstand-health progress::-webkit-progress-bar{background:#102b39}.leitstand-health progress::-webkit-progress-value{background:linear-gradient(90deg,var(--console-green),var(--console-cyan));box-shadow:0 0 8px var(--console-cyan)}.leitstand-health progress::-moz-progress-bar{background:linear-gradient(90deg,var(--console-green),var(--console-cyan))}.leitstand-status{border:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:18px}.leitstand-status article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:9px;border:1px solid #123549;border-radius:6px;background:rgba(5,21,33,.82)}.leitstand-status article>span{color:var(--console-cyan)}.leitstand-status article small{color:#496c7c;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:5px;letter-spacing:.1em}.leitstand-status article strong{color:#c7e0ea;font-size:13px;font-weight:400}
.leitstand-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:9px}.leitstand-kpis article{position:relative;min-height:94px;padding:15px;border:1px solid #16455a;border-radius:7px;background:linear-gradient(145deg,#071923,#06111a);box-shadow:inset 0 -2px 0 currentColor,0 8px 20px rgba(0,0,0,.18);overflow:hidden}.leitstand-kpis article:after{content:"";position:absolute;top:12px;right:12px;width:6px;height:6px;border-radius:50%;background:var(--console-green);box-shadow:0 0 10px var(--console-green)}.leitstand-kpis article.cyan{color:var(--console-cyan)}.leitstand-kpis article.yellow{color:var(--console-yellow)}.leitstand-kpis article.green,.leitstand-kpis article.mint{color:var(--console-green)}.leitstand-kpis article.violet{color:var(--console-violet)}.leitstand-kpis small,.leitstand-kpis strong{display:block}.leitstand-kpis small{color:#456c7e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.12em}.leitstand-kpis strong{margin-top:11px;color:#cce4ee;font-size:18px;font-weight:300}.mini-bars{height:15px;display:flex;align-items:flex-end;gap:3px;margin-top:8px}.mini-bars i{width:8px;height:45%;background:currentColor;opacity:.75;box-shadow:0 0 5px currentColor}.mini-bars i:nth-child(2){height:65%}.mini-bars i:nth-child(3){height:82%}.mini-bars i:nth-child(4){height:60%}.mini-bars i:nth-child(5){height:95%}.mini-bars i:nth-child(6){height:73%}
.demo-runtime .section-block{margin-top:14px}.demo-runtime .section-title{margin:0;padding:13px 15px;border:1px solid #123548;border-bottom:0;border-radius:8px 8px 0 0;background:#06131d}.demo-runtime .section-title span:first-child{color:#47778c;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.17em}.demo-runtime .section-title h2{margin:4px 0 0;color:#d1e6ef;font-size:16px;font-weight:500;letter-spacing:0}.demo-runtime .healthy{color:var(--console-green)!important;background:rgba(18,105,75,.13);border:1px solid #15543e;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px!important}.demo-runtime .healthy i{background:var(--console-green);box-shadow:0 0 8px var(--console-green)}
.leitstand-energy-grid{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(0,1.18fr);gap:9px}.demo-runtime .energy-flow-card,.demo-runtime .history-card{margin:0;border-color:#123548;border-radius:0 0 8px 8px;background:rgba(4,16,25,.94);box-shadow:inset 0 0 38px rgba(17,89,113,.035),0 10px 30px rgba(0,0,0,.2)}.demo-runtime .energy-flow-card{min-height:440px}.demo-runtime .energy-flow-card:before{background:radial-gradient(circle at 50% 50%,rgba(25,201,244,.09),transparent 10rem)}.demo-runtime .flow-node span{border:1px solid #144359;background:#071c28}.demo-runtime .flow-node small{color:#4d7587;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px}.demo-runtime .flow-node strong{color:#cce3ed;font-size:11px;font-weight:400}.demo-runtime .flow-node.solar span{color:var(--console-yellow);background:#1c190c}.demo-runtime .flow-node.grid span{color:var(--console-cyan)}.demo-runtime .flow-node.battery span{color:var(--console-green);background:#071e18}.demo-runtime .flow-node.car span{color:var(--console-violet);background:#161125}.demo-runtime .house-glyph{border-color:#137695;background:#071c28;box-shadow:0 0 0 12px rgba(17,98,124,.09),0 0 0 24px rgba(17,98,124,.04),0 0 30px rgba(25,201,244,.12)}.demo-runtime .house-glyph:before{border-color:#1c8dab;background:#071c28}.demo-runtime .flow-center small{color:#547788;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px}.demo-runtime .flow-center strong{color:#d4e9f2;font-size:24px;font-weight:300}.demo-runtime .flow-center em{color:var(--console-green);background:rgba(12,82,57,.22);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px}.demo-runtime .flow-line{background:linear-gradient(90deg,rgba(25,201,244,.05),#13718d,rgba(25,201,244,.05))}.demo-runtime .flow-line:after{background:var(--console-cyan);box-shadow:0 0 9px var(--console-cyan)}
.demo-runtime .history-card{padding:18px}.demo-runtime .history-head span{color:#416d80;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.demo-runtime .history-head h3{color:#cee3ec;font-size:14px;font-weight:500}.demo-runtime .range-switch,.demo-runtime .floor-filter{border-color:#14394c;background:#061923}.demo-runtime .range-switch button,.demo-runtime .floor-filter button{color:#547789}.demo-runtime .range-switch button.active,.demo-runtime .floor-filter button.active{color:#001018;background:var(--console-cyan);box-shadow:0 0 12px rgba(25,201,244,.25)}.demo-runtime .chart-legend span{color:#587989}.demo-runtime .chart-grid line{stroke:#102c3a}.demo-runtime .chart-line.consumption{stroke:var(--console-cyan);filter:drop-shadow(0 0 4px rgba(25,201,244,.4))}.demo-runtime .chart-line.production{stroke:var(--console-yellow)}.demo-runtime .chart-line.grid-use{stroke:var(--console-green)}.demo-runtime .chart-area{fill:rgba(239,184,50,.045)}.demo-runtime .chart-axis,.demo-runtime .chart-labels{color:#3e6273}.demo-runtime .history-summary{border-color:#12303f}.demo-runtime .history-summary article{background:#071823}.demo-runtime .history-summary span{color:#476b7b}.demo-runtime .history-summary strong{color:#acd3e2}.demo-runtime .energy-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}.demo-runtime .energy-kpis article{border-color:#143b4d;border-radius:7px;background:#06151f}.demo-runtime .energy-kpis span{color:#4e7485}.demo-runtime .energy-kpis strong{color:#c9e2ec}.demo-runtime .energy-kpis small{color:#4f7180}.demo-runtime .progress{background:#102b39}.demo-runtime .progress::-webkit-progress-bar{background:#102b39}
.demo-runtime .rooms-title{border-radius:8px}.demo-runtime .clevr-room{border-color:#14394c;border-radius:8px;background:#06131d;box-shadow:0 10px 28px rgba(0,0,0,.18)}.demo-runtime .clevr-room:hover{border-color:#1c7d9a;box-shadow:0 0 22px rgba(25,201,244,.08)}.demo-runtime .room-visual{height:108px;filter:saturate(.72) brightness(.67)}.demo-runtime .clevr-room-body>div span{color:#47778b;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.demo-runtime .clevr-room-body h3{color:#c9e1eb}.demo-runtime .clevr-room-body>strong{color:var(--console-cyan);font-weight:300}.demo-runtime .clevr-room-body ul{border-color:#123241}.demo-runtime .clevr-room-body li{color:#58788a}.demo-runtime .system-grid>article,.demo-runtime .security-state,.demo-runtime .event-card{border-color:#14394c;border-radius:8px;background:#06131d;box-shadow:0 10px 28px rgba(0,0,0,.18)}.demo-runtime .system-grid h3,.demo-runtime .security-state h3,.demo-runtime .event-card h3{color:#c9e1eb}.demo-runtime .system-grid>article>strong{color:var(--console-cyan);font-weight:300}.demo-runtime .system-grid dl div{background:#081c27}.demo-runtime .system-grid dt,.demo-runtime .system-grid small,.demo-runtime .security-state small,.demo-runtime .event-card small{color:#476f81}.demo-runtime .system-grid dd{color:#9fc3d2}.demo-runtime .system-ok{color:var(--console-green);background:rgba(20,105,75,.18)}.demo-runtime .system-idle{color:#7e91a0;background:#10212b}.demo-runtime .security-ring{border-color:#104d3a;color:var(--console-green);background:#082219;box-shadow:0 0 24px rgba(39,224,161,.08)}.demo-runtime .security-state p,.demo-runtime .security-state li{color:#5b7a8b}.demo-runtime .security-state ul,.demo-runtime .event-card li{border-color:#12303e}.demo-runtime .security-state li span{color:var(--console-cyan);background:#09202c}.demo-runtime .event-card strong{color:#aacbd8}.demo-runtime .scene-title{border-radius:8px}.demo-runtime .scene-grid button{border-color:#14394c;border-radius:7px;color:#a9cbd8;background:#06131d}.demo-runtime .scene-grid button:hover,.demo-runtime .scene-grid button.active{border-color:var(--console-cyan);box-shadow:0 0 18px rgba(25,201,244,.11)}.demo-runtime .scene-grid button>span{color:var(--console-cyan);background:#09202c}.demo-runtime .scene-grid small{color:#507183}.demo-runtime .demo-toast{border-color:#17627b;color:#a9dfee;background:#071c28;box-shadow:0 0 25px rgba(25,201,244,.14)}
@media(max-width:1180px){.leitstand-hero{grid-template-columns:1.3fr .65fr .55fr .55fr}.leitstand-status{grid-column:1/5;height:auto;border-top:1px solid #123648;grid-template-columns:repeat(4,1fr)}.leitstand-kpis{grid-template-columns:repeat(3,1fr)}.leitstand-energy-grid{grid-template-columns:1fr}.demo-runtime .energy-flow-card,.demo-runtime .history-card{border-radius:8px}}
@media(max-width:850px){.demo-runtime .demo-app{margin-left:0;padding:62px 10px 90px}.demo-runtime .demo-nav{inset:auto 0 0 0;width:auto;height:70px;flex-direction:row;justify-content:space-around;padding:5px 7px;border-top:1px solid #123548;border-right:0}.demo-runtime .demo-rail-logo,.demo-edge-state{display:none}.demo-runtime .demo-nav button{width:min(70px,19vw);height:58px}.demo-workbar{left:0;height:53px;grid-template-columns:1fr auto;padding:0 12px}.demo-breadcrumb,.demo-project{display:none}.demo-global-search{height:34px}.demo-runtime .demo-disclaimer{margin-top:0}.leitstand-hero{grid-template-columns:1.2fr .8fr}.leitstand-title,.leitstand-clock,.leitstand-climate,.leitstand-health{min-height:140px}.leitstand-climate,.leitstand-health{border-top:1px solid #123648}.leitstand-status{grid-column:1/3;grid-template-columns:repeat(2,1fr)}.leitstand-kpis{grid-template-columns:repeat(2,1fr)}.demo-runtime .clevr-room-grid,.demo-runtime .system-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.demo-workbar{grid-template-columns:1fr auto}.demo-global-search{min-width:0}.demo-global-search input{font-size:7px}.demo-workbar>time{font-size:12px}.leitstand-hero{grid-template-columns:1fr}.leitstand-title,.leitstand-clock,.leitstand-climate,.leitstand-health{height:auto;min-height:115px;border-right:0;border-top:1px solid #123648;padding:18px}.leitstand-title{border-top:0}.leitstand-clock strong{font-size:41px}.leitstand-status{grid-column:1;grid-template-columns:1fr 1fr}.leitstand-kpis{grid-template-columns:1fr 1fr}.demo-runtime .energy-flow-card{min-height:390px}.demo-runtime .energy-kpis{grid-template-columns:1fr}.demo-runtime .clevr-room-grid,.demo-runtime .system-grid{grid-template-columns:1fr}.demo-runtime .history-summary{grid-template-columns:1fr 1fr}.demo-runtime .section-title{align-items:flex-start}.demo-runtime .section-title h2{font-size:14px}.demo-runtime .healthy{max-width:120px;text-align:right}.demo-runtime .scene-grid{grid-template-columns:1fr}.demo-runtime .demo-nav button>small{font-size:6px}}

/* Gewerbepark-Demo */
.demo-runtime .demo-workbar{grid-template-columns:minmax(150px,.55fr) minmax(210px,.75fr) minmax(200px,1fr) auto auto}.demo-mode-switch{display:flex;padding:3px;border:1px solid #16465b;border-radius:7px;background:#04131d}.demo-mode-switch button{height:29px;padding:0 10px;border:0;border-radius:4px;color:#52798b;background:transparent;font-family:inherit;font-size:7px;font-weight:800;letter-spacing:.08em;cursor:pointer}.demo-mode-switch button.active{color:#001018;background:var(--console-cyan);box-shadow:0 0 12px rgba(25,201,244,.24)}
.commercial-hero{display:grid;grid-template-columns:minmax(310px,1.45fr) repeat(3,minmax(150px,.55fr));min-height:158px;border:1px solid #16485e;border-radius:9px;background:linear-gradient(105deg,#061a26,#071725 65%,#11142a);box-shadow:inset 0 -2px 0 var(--console-cyan),0 12px 35px rgba(0,0,0,.24);overflow:hidden}.commercial-hero>div,.commercial-hero>article{display:grid;align-content:center;padding:22px;border-right:1px solid #15384a}.commercial-hero small,.commercial-kpis span,.storage-grid small{color:#47798d;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.14em}.commercial-hero h1{margin:13px 0 11px;color:#dceef5;font-size:30px;font-weight:300;line-height:.87}.commercial-hero h1 strong{color:var(--console-cyan);letter-spacing:.13em}.commercial-hero>div>span{color:#557b8d;font-size:7px}.commercial-hero>div>span i{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--console-green);box-shadow:0 0 9px var(--console-green)}.commercial-hero article strong{margin-top:10px;color:#d8edf5;font-size:27px;font-weight:300}.commercial-hero article em{margin-top:8px;color:#5f8495;font-size:8px;font-style:normal}.commercial-hero article:nth-child(3) strong{color:var(--console-yellow)}
.commercial-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:9px}.commercial-kpis article{min-height:112px;padding:14px;border:1px solid #154357;border-radius:7px;background:linear-gradient(145deg,#071923,#06111a)}.commercial-kpis span,.commercial-kpis strong,.commercial-kpis small{display:block}.commercial-kpis strong{margin-top:9px;color:#d0e6ee;font-size:18px;font-weight:300}.commercial-kpis small{min-height:20px;margin-top:5px;color:#476979;font-size:7px}.commercial-kpis progress,.charging-control progress,.media-grid progress,.storage-grid progress{width:100%;height:4px;margin-top:10px;border:0;appearance:none;background:#102b39}.commercial-kpis progress::-webkit-progress-bar,.charging-control progress::-webkit-progress-bar,.media-grid progress::-webkit-progress-bar,.storage-grid progress::-webkit-progress-bar{background:#102b39}.commercial-kpis progress::-webkit-progress-value,.charging-control progress::-webkit-progress-value,.media-grid progress::-webkit-progress-value,.storage-grid progress::-webkit-progress-value{background:var(--console-cyan)}.commercial-spark{height:19px;display:flex;align-items:flex-end;gap:3px;margin-top:8px;color:var(--console-cyan)}.commercial-spark.green{color:var(--console-green)}.commercial-spark.yellow{color:var(--console-yellow)}.commercial-spark i{width:10%;height:35%;background:currentColor}.commercial-spark i:nth-child(2n){height:65%}.commercial-spark i:nth-child(3n){height:90%}
.campus-energy-layout{display:grid;grid-template-columns:minmax(330px,.76fr) minmax(0,1.24fr);gap:9px}.campus-flow,.commercial-chart-card,.tenant-list,.tenant-compare,.parking-occupancy,.charging-control,.media-grid>article,.storage-grid>article{border:1px solid #143b4e;background:rgba(4,17,26,.95);box-shadow:0 10px 28px rgba(0,0,0,.18)}.campus-flow{position:relative;min-height:390px;border-radius:0 0 8px 8px;overflow:hidden}.campus-flow:before,.campus-flow:after{content:"";position:absolute;top:50%;right:14%;left:14%;height:1px;background:linear-gradient(90deg,var(--console-yellow),var(--console-cyan),var(--console-green))}.campus-flow:after{top:14%;bottom:14%;left:50%;width:1px;height:auto}.campus-flow-node,.campus-flow-center{position:absolute;z-index:2;display:grid;place-items:center;text-align:center}.campus-flow-node{width:128px;padding:10px;border:1px solid #154359;border-radius:7px;background:#071c28}.campus-flow-node>span{color:var(--console-cyan);font-size:22px}.campus-flow-node small{margin-top:5px;color:#51798b;font-size:6px}.campus-flow-node strong{margin-top:4px;color:#cae2eb;font-size:11px;font-weight:400}.campus-flow-node em{color:#5c7f8e;font-size:6px;font-style:normal}.campus-flow-node.pv{top:20px;left:calc(50% - 64px)}.campus-flow-node.pv>span{color:var(--console-yellow)}.campus-flow-node.grid{top:calc(50% - 52px);left:18px}.campus-flow-node.storage{right:18px;bottom:20px}.campus-flow-node.charging{bottom:20px;left:18px}.campus-flow-center{top:calc(50% - 57px);left:calc(50% - 58px);width:116px;height:116px;border:1px solid #16809d;border-radius:50%;background:#07202c;box-shadow:0 0 0 10px rgba(25,201,244,.06)}.campus-flow-center span,.campus-flow-center small{color:#517a8b;font-size:6px}.campus-flow-center strong{color:#d7eaf1;font-size:21px;font-weight:300}.campus-flow-center em{color:var(--console-green);font-size:7px;font-style:normal}.commercial-chart-card{padding:17px;border-radius:0 0 8px 8px}.commercial-chart-card>header{display:flex;justify-content:space-between;gap:12px}.commercial-chart-card header small,.tenant-compare small,.parking-layout small,.media-grid small{color:#47778a;font-size:6px;letter-spacing:.12em}.commercial-chart-card h3,.tenant-compare h3,.parking-layout h3{margin:4px 0;color:#cfe5ed;font-size:14px;font-weight:500}.commercial-legend{display:flex;gap:17px;margin:17px 0 7px;font-size:7px}.commercial-legend span:before{content:"";display:inline-block;width:15px;height:2px;margin-right:6px;background:currentColor}.commercial-legend .load{color:var(--console-cyan)}.commercial-legend .pv{color:var(--console-yellow)}.commercial-legend .import{color:var(--console-green)}.commercial-legend .export{color:var(--console-violet)}.commercial-chart svg{width:100%;height:205px}.commercial-chart line{stroke:#102d3b}.commercial-chart polyline{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.commercial-chart polyline.load{stroke:var(--console-cyan)}.commercial-chart polyline.pv{stroke:var(--console-yellow)}.commercial-chart polyline.import{stroke:var(--console-green)}.commercial-chart polyline.export{stroke:var(--console-violet);stroke-dasharray:6 5}.commercial-chart>div{display:flex;justify-content:space-between;color:#3f6575;font-size:7px}.commercial-comparison{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:13px}.commercial-comparison article,.load-budget div{padding:10px;background:#071b26}.commercial-comparison span,.commercial-comparison strong,.commercial-comparison small{display:block}.commercial-comparison span,.commercial-comparison small{color:#4d7181;font-size:6px}.commercial-comparison strong{margin-top:5px;color:#bcdbe6;font-size:13px;font-weight:400}
.storage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.storage-grid>article{padding:15px;border-radius:7px}.storage-grid header{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.storage-grid header>span{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;color:var(--console-green);background:#09231b}.storage-grid .hydrogen-store header>span{color:var(--console-violet);background:#171126}.storage-grid .ice-store header>span{color:var(--console-cyan);background:#092331}.storage-grid h3{margin:4px 0;color:#c8e0e9;font-size:10px;font-weight:400}.storage-grid header>b{padding:4px 6px;border:1px solid #15543e;border-radius:4px;color:var(--console-green);font-size:6px}.storage-grid>article>strong{display:block;margin-top:15px;color:#d6eaf1;font-size:24px;font-weight:300}.storage-grid>article>strong i{color:#5a7d8c;font-size:8px;font-style:normal}.storage-grid p{margin:5px 0;color:#557788;font-size:7px}.storage-grid footer{display:flex;justify-content:space-between;margin-top:11px;color:#4c7080;font-size:7px}.storage-grid footer b{color:#a8cad7;font-weight:400}.hydrogen-store progress::-webkit-progress-value{background:var(--console-violet)}.ice-store progress::-webkit-progress-value{background:var(--console-cyan)}
.tenant-layout,.parking-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:9px}.tenant-list,.tenant-compare,.parking-occupancy,.charging-control{border-radius:0 0 8px 8px}.tenant-list article{display:grid;grid-template-columns:50px 1fr auto;gap:12px;align-items:center;padding:15px;border-bottom:1px solid #113344}.tenant-rank{color:#2c7089;font-size:15px}.tenant-list h3{margin:5px 0;color:#c9e1ea;font-size:13px}.tenant-list p{margin:0;color:#527687;font-size:8px}.tenant-list article>strong{color:var(--console-cyan);font-weight:300}.tenant-list article>em{grid-column:3;color:#466979;font-size:6px}.tenant-compare,.parking-occupancy,.charging-control{padding:18px}.tenant-bars{display:grid;gap:17px;margin-top:18px}.tenant-bars div{display:grid;grid-template-columns:80px 1fr auto;gap:8px;color:#527586;font-size:7px}.tenant-bars i{height:6px;width:var(--value);background:var(--console-cyan)}.tenant-compare footer{display:flex;justify-content:space-between;margin-top:24px;color:#557889;font-size:7px}.parking-occupancy{display:flex;align-items:center;gap:24px}.occupancy-ring{--ring:calc(var(--occupancy)*3.6deg);width:140px;height:140px;flex:none;display:grid;place-content:center;text-align:center;border-radius:50%;background:radial-gradient(circle,#06151f 56%,transparent 58%),conic-gradient(var(--console-cyan) var(--ring),#102b39 0)}.occupancy-ring strong{font-size:24px;font-weight:300}.occupancy-ring span{color:#517586;font-size:7px}.parking-occupancy ul{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;list-style:none;color:#547888;font-size:7px}.load-budget,.charge-points{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.charge-points{grid-template-columns:repeat(6,1fr);margin-top:15px}.charge-points span{padding:9px 5px;border:1px solid #14384a;color:#57798a;background:linear-gradient(0deg,rgba(166,108,244,.13) var(--load),#071923 var(--load));font-size:7px;text-align:center}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.media-grid>article{display:grid;grid-template-columns:auto 1fr;gap:9px;min-height:150px;padding:15px;border-radius:7px}.media-grid>article>span{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;color:var(--console-cyan);background:#092331}.media-grid h3{margin:4px 0;color:#bcd8e3;font-size:10px}.media-grid strong,.media-grid p,.media-grid em,.media-grid progress{grid-column:1/3}.media-grid strong{font-size:20px;font-weight:300}.media-grid p,.media-grid em{margin:0;color:#527687;font-size:7px}.media-grid em{color:#4b987a;font-style:normal}
@media(max-width:1180px){.demo-runtime .demo-workbar{grid-template-columns:minmax(200px,.7fr) minmax(190px,1fr) auto auto}.demo-breadcrumb{display:none}.commercial-hero{grid-template-columns:1.3fr repeat(3,.6fr)}.commercial-kpis{grid-template-columns:repeat(3,1fr)}.campus-energy-layout{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.demo-runtime .demo-workbar{grid-template-columns:1fr auto auto}.demo-mode-switch button{padding:0 7px}.commercial-hero{grid-template-columns:1fr 1fr}.commercial-hero>div{grid-column:1/3}.commercial-kpis{grid-template-columns:repeat(2,1fr)}.storage-grid{grid-template-columns:1fr}.tenant-layout,.parking-layout{grid-template-columns:1fr}.charge-points{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.demo-runtime .demo-workbar{grid-template-columns:1fr auto}.demo-runtime .demo-workbar>time{display:none}.commercial-hero{grid-template-columns:1fr}.commercial-hero>div{grid-column:1}.commercial-kpis,.media-grid{grid-template-columns:1fr}.commercial-comparison{grid-template-columns:1fr 1fr}.parking-occupancy{align-items:flex-start;flex-direction:column}.load-budget,.charge-points{grid-template-columns:1fr 1fr}}
.tenant-bars .value-92{width:92%}.tenant-bars .value-68{width:68%}.tenant-bars .value-51{width:51%}.tenant-bars .value-34{width:34%}.occupancy-ring.occupancy-78{--occupancy:77.5}.charge-points .load-90{--load:90%}.charge-points .load-72{--load:72%}.charge-points .load-58{--load:58%}.charge-points .load-44{--load:44%}.charge-points .load-34{--load:34%}.charge-points .load-20{--load:20%}.demo-mode-switch{position:relative;z-index:2}
.mieterstrom-anchor{padding:18px 0 42px}.ms-shell{color:#c9e1eb;background:#06131d;border:1px solid #14394c;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.24);overflow:hidden}.ms-shell *{box-sizing:border-box}.ms-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:25px 28px 20px;border-bottom:1px solid #14394c}.ms-header small,.ms-panel>header small,.ms-unit-hero small{display:block;color:#47778b;font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.ms-header h1{margin:7px 0 0;color:#e5f2f5;font-size:28px;font-weight:400;letter-spacing:-.04em}.ms-header p{max-width:590px;margin:8px 0 0;color:#6d91a1;font-size:11px}.ms-header-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.ms-source{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #1d4b5d;border-radius:7px;color:#efc064;background:#172d2c;font-size:9px;font-weight:800;white-space:nowrap}.ms-source:before{width:6px;height:6px;border-radius:50%;background:#efc064;content:""}.ms-view-switch{display:flex;padding:3px;border:1px solid #16465b;border-radius:7px;background:#04131d}.ms-view-switch button{min-height:29px;padding:0 11px;border:0;border-radius:4px;color:#52798b;background:transparent;font-family:inherit;font-size:9px;font-weight:800;letter-spacing:.08em;cursor:pointer}.ms-view-switch button:hover,.ms-view-switch button:focus-visible{color:#d7edf2;outline:1px solid #19c9f4;outline-offset:1px}.ms-view-switch button.active{color:#001018;background:#19c9f4;box-shadow:0 0 12px rgba(25,201,244,.24)}.ms-mode-note{display:flex;align-items:center;gap:8px;margin:14px 28px -2px;padding:9px 11px;border:1px solid #1b4a5d;border-radius:7px;color:#7898a6;background:#071d28;font-size:10px}.ms-mode-note>span:first-child{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#19c9f4;background:#092d3c;font-weight:900}.ms-mode-note strong{color:#d8edf1}.ms-live-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 19px;padding:9px 28px;border-bottom:1px solid #14394c;color:#587c8b;background:#061923;font-size:9px}.ms-live-strip span{display:inline-flex;align-items:center;gap:6px}.ms-live-strip i{width:6px;height:6px;border-radius:50%;background:#3be1a4;box-shadow:0 0 0 4px rgba(59,225,164,.1)}.ms-view{padding:22px 28px 30px}.ms-toolbar{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;margin-bottom:14px}.ms-toolbar label,.ms-inline-select{display:grid;gap:5px;min-width:0}.ms-toolbar label>span,.ms-inline-select>span{color:#52798b;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ms-toolbar select,.ms-inline-select select{width:100%;min-height:33px;padding:0 9px;border:1px solid #1b4a5d;border-radius:6px;color:#c9e1eb;background:#071c27;font-family:inherit;font-size:10px;outline:none}.ms-toolbar select:focus,.ms-inline-select select:focus{border-color:#19c9f4;box-shadow:0 0 0 3px rgba(25,201,244,.1)}.ms-button{min-height:33px;padding:0 12px;border:1px solid #19c9f4;border-radius:6px;color:#001018;background:#19c9f4;font-family:inherit;font-size:9px;font-weight:900;letter-spacing:.06em;cursor:pointer;white-space:nowrap}.ms-button.secondary{border-color:#1b4a5d;color:#84aebd;background:#071c27}.ms-button:hover,.ms-button:focus-visible{border-color:#72e8ff;box-shadow:0 0 18px rgba(25,201,244,.15);outline:none}.ms-button.spinning{animation:msRotate .7s linear infinite}@keyframes msRotate{to{transform:rotate(360deg)}}.ms-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:14px}.ms-kpis article{min-width:0;padding:12px;border:1px solid #14394c;border-radius:8px;background:#061c28;box-shadow:0 8px 24px rgba(0,0,0,.13)}.ms-kpis article span{display:block;color:#6b92a2;font-size:8px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-kpis article strong{display:block;margin-top:9px;color:#dceef3;font-size:20px;font-weight:300;letter-spacing:-.04em}.ms-kpis article small{display:block;margin-top:4px;color:#52798b;font-size:8px;line-height:1.35}.ms-kpis article.green strong{color:#61d0a0}.ms-kpis article.blue strong{color:#77c4e0}.ms-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr);gap:14px;margin-bottom:14px}.ms-grid.lower{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}.ms-panel{min-width:0;padding:16px;border:1px solid #14394c;border-radius:9px;background:#06131d;box-shadow:0 10px 28px rgba(0,0,0,.16)}.ms-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ms-panel h2{margin:5px 0 0;color:#d7e9ee;font-size:15px;font-weight:400;letter-spacing:-.025em}.ms-panel p{margin:5px 0 0;color:#5b8190;font-size:9px;line-height:1.45}.ms-panel-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid #1b4a5d;border-radius:7px;color:#19c9f4;background:#09202c;font-size:15px}.ms-legend{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 3px}.ms-legend button{display:inline-flex;align-items:center;gap:5px;padding:5px 6px;border:0;border-radius:5px;color:#6e94a3;background:transparent;font-family:inherit;font-size:8px;cursor:pointer}.ms-legend button:hover,.ms-legend button:focus-visible{color:#d5edf2;background:#09202c;outline:none}.ms-legend button.muted{opacity:.35}.ms-legend i{width:7px;height:7px;border-radius:2px;background:#19c9f4}.ms-legend i.pv{background:#efc064}.ms-legend i.demand{background:#79a7ff}.ms-legend i.grid{background:#ff8794}.ms-legend i.direct{background:#61d0a0}.ms-chart-wrap{min-width:0}.ms-chart-wrap svg{display:block;width:100%;height:auto;min-height:205px;overflow:visible}.ms-chart-selected{fill:#153653;opacity:.55}.ms-chart-gridline{stroke:#14394c;stroke-dasharray:3 4;stroke-width:1}.ms-chart-axis{stroke:#285265;stroke-width:1}.ms-chart-label{fill:#52798b;font-family:inherit;font-size:10px}.ms-chart-bar{fill:#efc064;opacity:.82;cursor:pointer}.ms-chart-bar:hover{opacity:1}.ms-chart-demand,.ms-chart-grid,.ms-chart-direct{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4}.ms-chart-demand{stroke:#79a7ff}.ms-chart-grid{stroke:#ff8794;stroke-dasharray:4 3}.ms-chart-direct{stroke:#61d0a0}.ms-month-focus{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:0 24px 0 42px}.ms-month-focus button{height:24px;padding:0 2px;border:1px solid transparent;border-radius:4px;color:#52798b;background:transparent;font-family:inherit;font-size:8px;cursor:pointer}.ms-month-focus button:hover,.ms-month-focus button:focus-visible,.ms-month-focus button.active{border-color:#1b4a5d;color:#19c9f4;background:#09202c;outline:none}.ms-chart-summary{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:10px;padding-top:9px;border-top:1px solid #14394c;color:#52798b;font-size:8px}.ms-chart-summary span{display:inline-flex;gap:5px}.ms-chart-summary strong{color:#d7e9ee;font-size:9px}.ms-range{display:grid;gap:7px;padding:10px 0;border-bottom:1px solid #14394c}.ms-range>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:#6b92a2;font-size:9px}.ms-range output{color:#19c9f4;font-weight:900}.ms-range input{width:100%;accent-color:#19c9f4;cursor:pointer}.ms-cost-compare{display:grid;gap:12px;margin-top:15px}.ms-cost-compare>div{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}.ms-cost-compare span{color:#6b92a2;font-size:9px}.ms-cost-compare strong{color:#d7e9ee;font-size:11px}.ms-cost-compare i{grid-column:1/-1;display:block;height:6px;border-radius:99px;background:#102b39}.ms-cost-compare i b{display:block;height:100%;min-width:3px;border-radius:inherit;background:#19c9f4}.ms-cost-compare>div:nth-child(2) i b{background:#7893a2}.ms-insight{margin-top:14px;padding:10px;border:1px solid #17513f;border-radius:7px;color:#61d0a0;background:#08291f;font-size:9px;line-height:1.45}.ms-footnote{display:block;margin-top:11px;color:#52798b;font-size:8px;line-height:1.45}.ms-table-wrap{width:100%;overflow-x:auto;border:1px solid #14394c;border-radius:7px}.ms-table{width:100%;min-width:610px;border-collapse:collapse;font-family:inherit;font-size:9px}.ms-table th{padding:8px;color:#52798b;background:#071c27;font-size:8px;text-align:left;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.ms-table td{padding:9px 8px;border-top:1px solid #123241;color:#bad4de;vertical-align:middle}.ms-table tbody tr:hover,.ms-table tbody tr.selected{background:#09202c}.ms-table td:first-child{min-width:122px}.ms-table td:first-child button{display:block;padding:0;border:0;color:#19c9f4;background:transparent;font-family:inherit;font-size:inherit;font-weight:800;cursor:pointer;text-align:left}.ms-table td:first-child button:hover,.ms-table td:first-child button:focus-visible{text-decoration:underline;outline:none}.ms-table td:first-child small{display:block;margin-top:3px;color:#52798b;font-size:8px}.ms-status{display:inline-flex;padding:4px 6px;border:1px solid #775d2a;border-radius:99px;color:#efc064;background:#2d2515;font-size:8px;white-space:nowrap}.ms-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;color:#52798b;font-size:8px}.ms-icon-button{display:inline-grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid #1b4a5d;border-radius:6px;color:#84aebd;background:#071c27;font-family:inherit;font-size:17px;cursor:pointer}.ms-icon-button:hover:not(:disabled),.ms-icon-button:focus-visible:not(:disabled){border-color:#19c9f4;color:#19c9f4;outline:none}.ms-icon-button:disabled{cursor:not-allowed;opacity:.38}.ms-checks{display:grid;gap:2px}.ms-checks>div{display:flex;align-items:flex-start;gap:8px;padding:9px 0;border-bottom:1px solid #14394c}.ms-checks>div>b{color:#61d0a0;font-size:12px}.ms-checks span{display:grid;gap:3px}.ms-checks strong{color:#c9e1eb;font-size:9px}.ms-checks small{color:#52798b;font-size:8px}.ms-callout{margin-top:12px;padding:9px;border-radius:6px;color:#6d91a1;background:#071c27;font-size:8px;line-height:1.45}.ms-unit-toolbar{display:flex;align-items:end;gap:8px;margin-bottom:14px}.ms-unit-toolbar label{display:grid;gap:5px;flex:1;max-width:310px}.ms-unit-toolbar label>span{color:#52798b;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ms-unit-toolbar select{width:100%;min-height:33px;padding:0 9px;border:1px solid #1b4a5d;border-radius:6px;color:#c9e1eb;background:#071c27;font-family:inherit;font-size:10px}.ms-unit-hero{display:flex;align-items:center;gap:11px;margin-bottom:14px;padding:14px 16px;border:1px solid #1d5263;border-radius:8px;background:linear-gradient(110deg,#092d3c,#06131d)}.ms-unit-hero>span{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;color:#19c9f4;background:#09202c;font-size:22px}.ms-unit-hero h2{margin:5px 0 0;color:#dceef3;font-size:18px;font-weight:400}.ms-unit-hero p{margin:4px 0 0;color:#6d91a1;font-size:9px}.ms-unit-hero>b{margin-left:auto;padding:6px 8px;border:1px solid #775d2a;border-radius:99px;color:#efc064;background:#2d2515;font-size:8px;white-space:nowrap}.ms-kpis.unit{grid-template-columns:repeat(4,minmax(0,1fr))}.ms-inline-select{flex:0 0 125px}.ms-bill-panel dl{display:grid;gap:0;margin:0}.ms-bill-panel dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #14394c;font-size:9px}.ms-bill-panel dt{color:#6b92a2}.ms-bill-panel dd{margin:0;color:#d7e9ee;font-weight:800;text-align:right;white-space:nowrap}.ms-bill-panel .green-text,.ms-bill-panel .saving dd{color:#61d0a0}.ms-bill-panel .total{padding-top:11px;color:#dceef3;font-size:10px;font-weight:800}.ms-meter-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px;padding:5px 0 15px}.ms-meter-flow>span{display:grid;justify-items:center;gap:5px;min-width:0;color:#19c9f4;font-size:18px;text-align:center}.ms-meter-flow>span:nth-of-type(1){color:#efc064}.ms-meter-flow>span:nth-of-type(3){color:#ff8794}.ms-meter-flow b{color:#c9e1eb;font-size:8px}.ms-meter-flow small{width:100%;overflow:hidden;color:#52798b;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.ms-meter-flow i{color:#47778b;font-size:13px;font-style:normal}.ms-detail-rows{display:grid;border-top:1px solid #14394c}.ms-detail-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #14394c;font-size:9px}.ms-detail-rows span{color:#6b92a2}.ms-detail-rows b{color:#c9e1eb;text-align:right}.ms-transparency{display:grid;gap:3px}.ms-transparency>div{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #14394c}.ms-transparency b{color:#c9e1eb;font-size:9px}.ms-transparency span{color:#6b92a2;font-size:8px;line-height:1.4}
@media(max-width:1050px){.ms-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.ms-grid,.ms-grid.lower{grid-template-columns:1fr}}
@media(max-width:700px){.mieterstrom-anchor{padding-inline:0}.ms-header{align-items:flex-start;flex-direction:column;padding:20px 16px 16px}.ms-header-actions{justify-content:flex-start;width:100%}.ms-header-actions>*{width:100%}.ms-view-switch{display:grid;grid-template-columns:1fr 1fr}.ms-view-switch button{width:100%}.ms-live-strip{align-items:flex-start;flex-direction:column;padding-inline:16px}.ms-view{padding:16px}.ms-toolbar{grid-template-columns:1fr}.ms-toolbar .ms-button{width:100%}.ms-kpis,.ms-kpis.unit{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ms-kpis article{padding:10px}.ms-kpis article strong{font-size:17px}.ms-panel{padding:12px}.ms-month-focus{margin-inline:30px 10px}.ms-unit-toolbar{align-items:stretch;flex-wrap:wrap}.ms-unit-toolbar .ms-button{order:3}.ms-unit-toolbar label{max-width:none;flex-basis:100%}.ms-unit-hero{align-items:flex-start;flex-wrap:wrap}.ms-unit-hero>b{margin-left:51px}.ms-inline-select{flex-basis:112px}.ms-meter-flow{gap:3px}.ms-meter-flow i{font-size:10px}.ms-meter-flow b{font-size:7px}.ms-meter-flow small{font-size:6px}}
@media(max-width:430px){.ms-kpis article span{font-size:7px}.ms-kpis article strong{font-size:15px}.ms-chart-summary{gap:6px 10px}.ms-chart-summary strong{font-size:8px}.ms-inline-select{flex-basis:100px}.ms-unit-hero h2{font-size:16px}}
.campus-twin{margin-top:9px;border:1px solid #154357;border-radius:8px;background:#06131d;overflow:hidden}.campus-twin>header{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid #123548}.campus-twin header small{color:#47798d;font-size:6px;letter-spacing:.14em}.campus-twin h2{margin:4px 0 0;color:#cfe5ed;font-size:15px;font-weight:500}.campus-twin header>span{color:var(--console-green);font-size:7px}.campus-map{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:330px;padding:42px;background-image:linear-gradient(rgba(25,201,244,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(25,201,244,.05) 1px,transparent 1px);background-size:24px 24px}.campus-map:before{content:"";position:absolute;top:51%;right:8%;left:8%;height:4px;background:#172b35;box-shadow:0 0 0 1px #254454}.campus-map article{position:relative;z-index:2;min-height:110px;padding:15px;border:1px solid #1a5870;background:linear-gradient(145deg,#092332,#061720);box-shadow:inset 0 3px var(--console-yellow);cursor:pointer}.campus-map article b,.campus-map article small,.campus-map article span,.campus-map article em{display:block}.campus-map article b{color:#cfe5ed;font-size:12px}.campus-map article small{margin-top:7px;color:#608494;font-size:7px}.campus-map article span{margin-top:16px;color:var(--console-yellow);font-size:7px}.campus-map article em{position:absolute;right:10px;bottom:10px;color:#466c7c;font-size:6px;font-style:normal}.campus-map .plant{position:relative;z-index:2;align-self:end;min-height:76px;padding:11px;border:1px solid #27526a;background:#081c27;cursor:pointer}.campus-map .plant>span{float:left;width:30px;height:30px;margin-right:9px;display:grid;place-items:center;border:1px solid var(--console-cyan);color:var(--console-cyan);font-size:7px}.campus-map .plant b,.campus-map .plant small{display:block}.campus-map .plant b{color:#b9d5df;font-size:8px}.campus-map .plant small{margin-top:5px;color:#537687;font-size:6px}.utility-legend{position:absolute;right:18px;bottom:12px;display:flex;gap:12px;color:#5a7d8d;font-size:6px}.utility-legend span:before{content:"";display:inline-block;width:12px;height:2px;margin-right:5px;background:var(--console-cyan)}.utility-legend .thermal:before{background:var(--console-yellow)}.utility-legend .waterline:before{background:#55a8ef}.utility-legend .data:before{background:var(--console-violet)}
.visual-detail-dialog{width:min(520px,calc(100% - 28px));padding:28px;border:1px solid #275b72;border-radius:10px;color:#d5e9f1;background:#06151f;box-shadow:0 35px 100px rgba(0,0,0,.65)}.visual-detail-dialog::backdrop{background:rgba(0,8,14,.78);backdrop-filter:blur(6px)}.visual-detail-dialog form{position:absolute;top:12px;right:12px}.visual-detail-dialog form button{width:32px;height:32px;border:1px solid #1a4659;border-radius:5px;color:#8bb0bf;background:#09202b;cursor:pointer}.visual-detail-dialog>small{color:#4c7a8e;font-size:7px;letter-spacing:.15em}.visual-detail-dialog h2{margin:8px 0 18px;color:#d6ebf3;font-size:23px;font-weight:400}.visual-detail-dialog>strong{display:block;color:var(--console-cyan);font-size:30px;font-weight:300}.visual-detail-dialog>p{color:#6e93a2;font-size:10px;line-height:1.6}.visual-detail-dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:20px 0;background:#143244}.visual-detail-dialog dl div{padding:12px;background:#081c27}.visual-detail-dialog dt{color:#4e7485;font-size:7px}.visual-detail-dialog dd{margin:5px 0 0;color:#bad4de;font-size:9px}.visual-detail-dialog .visual-detail-note{margin:18px 0 0;padding-top:14px;border-top:1px solid #143244;color:#527686;font-size:8px}.live-tile[role="button"],.campus-twin [role="button"],.commercial-kpis [role="button"],.media-grid [role="button"],.storage-grid [role="button"],.parking-layout [role="button"]{cursor:pointer}.campus-twin [role="button"]:hover,.commercial-kpis [role="button"]:hover,.media-grid [role="button"]:hover,.storage-grid [role="button"]:hover,.parking-layout [role="button"]:hover{border-color:var(--console-cyan);box-shadow:0 0 22px rgba(25,201,244,.12)}@media(max-width:850px){.campus-map{grid-template-columns:1fr 1fr;padding:24px}.utility-legend{position:static;grid-column:1/3;flex-wrap:wrap}}@media(max-width:560px){.campus-map{grid-template-columns:1fr}.utility-legend{grid-column:1}.visual-detail-dialog dl{grid-template-columns:1fr}}
.forecast-card{margin-top:9px;padding:18px;border:1px solid #154357;border-radius:8px;background:rgba(4,17,26,.95)}.forecast-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.forecast-card header small{color:#47798d;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.14em}.forecast-card h3{margin:5px 0;color:#cfe5ed;font-size:15px;font-weight:500}.forecast-card header p{margin:5px 0 0;color:#507586;font-size:7px}.forecast-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:14px;margin-top:14px}.forecast-legend{display:flex;gap:16px;color:#527586;font-size:7px}.forecast-legend span:before{content:"";display:inline-block;width:14px;height:2px;margin-right:6px;vertical-align:middle;background:#668190}.forecast-legend span:nth-child(2):before{background:var(--console-cyan)}.forecast-legend span:nth-child(3):before{background:var(--console-yellow)}.forecast-card svg{width:100%;height:220px;margin-top:7px}.forecast-card svg line{stroke:#102d3b;stroke-width:1}.forecast-card svg polyline{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.forecast-card .history{stroke:#668190}.forecast-card .use{stroke:var(--console-cyan);stroke-dasharray:7 4}.forecast-card .pv{stroke:var(--console-yellow);stroke-dasharray:7 4}.forecast-card .now{stroke:var(--console-violet);stroke-dasharray:3 4}.forecast-labels{display:flex;justify-content:space-between;color:#3f6575;font-size:7px}.forecast-results{display:grid;grid-template-columns:1fr 1fr;gap:7px}.forecast-results article{padding:12px;background:#071b26}.forecast-results span,.forecast-results strong,.forecast-results small{display:block}.forecast-results span{color:#4d7181;font-size:6px}.forecast-results strong{margin-top:7px;color:#cce3ec;font-size:17px;font-weight:300}.forecast-results small{margin-top:5px;color:#4b987a;font-size:6px}@media(max-width:850px){.forecast-card>header{display:grid}.forecast-grid{grid-template-columns:1fr}}@media(max-width:560px){.forecast-results{grid-template-columns:1fr 1fr}.forecast-card .range-switch{flex-wrap:wrap}}
.security-command{display:grid;grid-template-columns:1.25fr 1fr;gap:14px}.security-command>article{border:1px solid #17445a;background:#071923}.security-command header{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid #14394b}.security-command header small{color:#4b788b;font-size:7px}.security-command h3{margin:5px 0 0;color:#cde4ec;font-size:15px}.security-command header b{color:var(--console-green);font-size:7px}.privacy-camera-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#173849}.privacy-camera-grid button{min-height:128px;padding:18px;border:0;color:#b9d4de;background:linear-gradient(145deg,#0c2d3d,#071720);text-align:left;cursor:pointer}.privacy-camera-grid button span,.privacy-camera-grid button strong,.privacy-camera-grid button i{display:block}.privacy-camera-grid button span{font-size:8px}.privacy-camera-grid button strong{margin-top:25px;color:var(--console-cyan);font-size:11px}.privacy-camera-grid button i{margin-top:8px;color:#557c8d;font-size:6px;font-style:normal}.security-command footer{display:flex;gap:20px;padding:14px;color:#628293;font-size:7px}.access-points{padding:10px}.access-points button{display:grid;grid-template-columns:1fr auto;gap:5px;width:100%;padding:14px;border:0;border-bottom:1px solid #163746;color:#bcd5de;background:transparent;text-align:left;cursor:pointer}.access-points button strong{color:var(--console-green);font-size:7px}.access-points button small{grid-column:1/3;color:#54798a;font-size:7px}.security-operations,.live-integrations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.security-operations article,.integration-card{padding:16px;border:1px solid #17445a;background:#071923}.security-operations small,.integration-card small{color:#4f788a;font-size:7px}.security-operations strong,.security-operations span{display:block}.security-operations strong{margin-top:8px;color:#c5dfe8;font-size:11px}.security-operations span{margin-top:5px;color:#537888;font-size:7px}.live-integrations{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}.integration-card{border-radius:16px;background:#fff;color:#17364b;box-shadow:0 14px 34px rgba(15,45,70,.08)}.integration-card header{display:flex;justify-content:space-between;gap:12px}.integration-card h2{margin:5px 0 0;font-size:18px}.integration-card header b{height:max-content;padding:5px 8px;border-radius:999px;color:#087553;background:#dff7ed;font-size:10px}.integration-card>p{color:#597487;font-size:12px}.integration-items{display:grid;gap:6px}.integration-items button{display:flex;justify-content:space-between;gap:15px;width:100%;padding:11px;border:1px solid #deebf3;border-radius:9px;color:#17364b;background:#f7fbfd;text-align:left;cursor:pointer}.integration-items button span{color:#698394;font-size:11px}@media(max-width:850px){.security-command{grid-template-columns:1fr}.security-operations,.live-integrations{grid-template-columns:1fr}}@media(max-width:560px){.privacy-camera-grid{grid-template-columns:1fr}}

/* Runde Echtzeitkurven, saubere Energiepfade und zusätzliche Interaktion. */
.campus-flow:before,.campus-flow:after{content:none}.campus-flow-lines{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.campus-flow-lines path{fill:none;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 9;vector-effect:non-scaling-stroke;animation:signalFlow 1.8s linear infinite}.campus-flow-lines .solar{stroke:var(--console-yellow)}.campus-flow-lines .grid{stroke:var(--console-cyan)}.campus-flow-lines .charging{stroke:var(--console-violet)}.campus-flow-lines .storage{stroke:var(--console-green)}
.commercial-chart path,.forecast-card svg path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:opacity .25s ease,filter .25s ease}.commercial-chart path.load{stroke:var(--console-cyan)}.commercial-chart path.pv{stroke:var(--console-yellow)}.commercial-chart path.import{stroke:var(--console-green)}.commercial-chart path.export{stroke:var(--console-violet);stroke-dasharray:6 5}.forecast-card svg path.history{stroke:#668190}.forecast-card svg path.use{stroke:var(--console-cyan);stroke-dasharray:7 4}.forecast-card svg path.pv{stroke:var(--console-yellow);stroke-dasharray:7 4}.chart-refresh{animation:chartRefresh .55s ease-out}.commercial-chart path.series-muted{opacity:.08;filter:none}.commercial-legend span{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.commercial-legend span:hover{transform:translateY(-1px)}.commercial-legend span.muted{opacity:.32;text-decoration:line-through}
.campus-flow-node,.campus-flow-center,.commercial-comparison article,.forecast-results article{cursor:pointer;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.campus-flow-node:hover,.campus-flow-center:hover,.commercial-comparison article:hover,.forecast-results article:hover{z-index:4;transform:translateY(-3px);border-color:var(--console-cyan);box-shadow:0 0 24px rgba(25,201,244,.15)}.campus-flow-center{animation:liveGlow 2.8s ease-in-out infinite}
@keyframes signalFlow{to{stroke-dashoffset:-32}}@keyframes chartRefresh{from{opacity:.15;filter:blur(2px)}to{opacity:1;filter:none}}@keyframes liveGlow{50%{box-shadow:0 0 0 13px rgba(25,201,244,.025),0 0 28px rgba(25,201,244,.13)}}
@media(prefers-reduced-motion:reduce){.campus-flow-lines path,.campus-flow-center,.chart-refresh{animation:none}}

/* Mieterstrom fokussiert auf Rechtsmodell, Messkonzept und Abrechnung. */
.ms-legal-panel{margin:14px 28px 0;padding:18px;border:1px solid #1c4a5d;border-radius:9px;background:linear-gradient(145deg,#071d28,#061720);color:#bfd8e0}.ms-legal-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.ms-legal-panel header small{display:block;color:#4b8295;font-size:8px;font-weight:900;letter-spacing:.15em}.ms-legal-panel h2{margin:6px 0 0;color:#e1f0f3;font-size:19px;font-weight:500;letter-spacing:-.03em}.ms-legal-panel header p{max-width:720px;margin:7px 0 0;color:#789ba9;font-size:10px;line-height:1.5}.ms-legal-state{display:inline-flex;flex:none;padding:7px 9px;border:1px solid #2e6b70;border-radius:999px;color:#efc064;background:#172e2d;font-size:8px;font-weight:900;letter-spacing:.05em;white-space:nowrap}.ms-legal-state.ok{border-color:#2e8467;color:#8ce0b5;background:#102d29}.ms-legal-state.blocked{border-color:#9a4f5b;color:#ffacb7;background:#321c27}.ms-legal-model{display:grid;gap:3px;margin-top:13px;padding:10px 12px;border-left:3px solid #19c9f4;background:#092a38;font-size:10px;line-height:1.45}.ms-legal-model strong{color:#e1f0f3;font-size:11px}.ms-legal-model span{color:#83a9b5}.ms-legal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.ms-legal-grid article{display:grid;align-content:start;gap:5px;min-height:108px;padding:10px;border:1px solid #164254;border-radius:7px;background:#071a24}.ms-legal-grid article>b{color:#19c9f4;font-size:9px}.ms-legal-grid article strong{color:#d2e9ee;font-size:10px}.ms-legal-grid article span{color:#7195a2;font-size:8px;line-height:1.45}.ms-legal-price{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #254d59;border-radius:7px;background:#0a222c}.ms-legal-price span{display:grid;gap:3px}.ms-legal-price strong{color:#d7edf1;font-size:10px}.ms-legal-price small{color:#7296a2;font-size:8px}.ms-legal-price>b{padding:6px 8px;border-radius:5px;color:#8ce0b5;background:#10362e;font-size:8px;text-transform:uppercase}.ms-legal-price>b.blocked{color:#ffacb7;background:#3a1e28}.ms-legal-panel details{margin-top:10px;border-top:1px solid #174254;padding-top:9px}.ms-legal-panel summary{color:#6fb2c6;cursor:pointer;font-size:9px;font-weight:800}.ms-legal-panel details p{margin:8px 0 0;color:#789aa6;font-size:9px;line-height:1.55}@media(max-width:900px){.ms-legal-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.ms-legal-panel{margin-left:16px;margin-right:16px;padding:14px}.ms-legal-panel>header{display:grid}.ms-legal-grid{grid-template-columns:1fr}.ms-legal-price{align-items:flex-start;flex-direction:column}}

/* Shared Pernice ONE theme bridge. The gateway uses the same theme key and
   console token names as the React shell, so both surfaces stay in sync. */
:root{
  --visual-bg:#f4f1e9;--visual-surface:#fbfaf6;--visual-surface-2:#e9e5da;--visual-surface-3:#e9e5da;
  --visual-ink:#101512;--visual-muted:#5e655f;--visual-line:#1015122e;--visual-line-strong:#1015124d;
  --visual-primary:#101512;--visual-primary-hover:#28302b;--visual-primary-soft:#d8ff4540;
  --visual-cyan:#28302b;--visual-green:#2e6b3c;--visual-green-soft:#e4f1e5;
  --visual-amber:#8a5c00;--visual-amber-soft:#f4eacb;--visual-red:#a33425;--visual-red-soft:#f6e5e0;
  --visual-rail:#101512;--visual-rail-surface:#182019;--visual-rail-line:#ffffff24;--visual-rail-muted:#aeb7b0;
  --visual-shadow:0 18px 45px rgba(16,21,18,.08);--visual-color-scheme:light;
  --console-bg:var(--visual-bg);--console-surface:var(--visual-surface);--console-surface-2:var(--visual-surface-2);--console-surface-3:var(--visual-surface-3);
  --console-ink:var(--visual-ink);--console-muted:var(--visual-muted);--console-line:var(--visual-line);--console-line-strong:var(--visual-line-strong);
  --console-primary:var(--visual-primary);--console-primary-hover:var(--visual-primary-hover);--console-primary-soft:var(--visual-primary-soft);
  --console-cyan:var(--visual-cyan);--console-green:var(--visual-green);--console-green-soft:var(--visual-green-soft);--console-amber:var(--visual-amber);--console-amber-soft:var(--visual-amber-soft);--console-red:var(--visual-red);--console-red-soft:var(--visual-red-soft);
  --console-rail:var(--visual-rail);--console-rail-surface:var(--visual-rail-surface);--console-rail-line:var(--visual-rail-line);--console-rail-muted:var(--visual-rail-muted);--console-shadow:var(--visual-shadow);
  --console-panel:var(--console-surface);--console-panel-2:var(--console-surface-2);--console-text:var(--console-ink);--console-yellow:var(--console-amber);--console-violet:var(--console-primary);
  --navy:var(--console-ink);--blue:var(--console-primary);--line:var(--console-line);--muted:var(--console-muted);--green:var(--console-green);--shadow:var(--console-shadow);
}
/* Legacy data-theme values deliberately have no separate palettes. The
   runtime canonicalizes every request to the single Pernice ONE theme. */
html[data-theme="one"]{color-scheme:light}
html[data-theme]{background:var(--visual-bg)}
body:not(.demo-runtime){color:var(--console-ink);background:radial-gradient(circle at 88% 2%,color-mix(in srgb,var(--console-cyan) 16%,transparent),transparent 31rem),linear-gradient(180deg,var(--console-surface) 0,var(--console-bg) 46rem)}
body:not(.demo-runtime) .topbar{background:color-mix(in srgb,var(--console-surface) 88%,transparent);border-color:var(--console-line)}
body:not(.demo-runtime) .brand{color:var(--console-ink)}
body:not(.demo-runtime) .brand-mark{background:linear-gradient(145deg,var(--console-primary),color-mix(in srgb,var(--console-primary) 54%,var(--console-ink)))}
body:not(.demo-runtime) .badge{color:var(--console-primary);background:var(--console-primary-soft);border-color:var(--console-line)}
body:not(.demo-runtime) .login-card,body:not(.demo-runtime) .live-card,body:not(.demo-runtime) .refresh-state,body:not(.demo-runtime) .metric,body:not(.demo-runtime) .room-grid article,body:not(.demo-runtime) .live-tile,body:not(.demo-runtime) .live-overview article{color:var(--console-ink);background:var(--console-surface);border-color:var(--console-line)}
body:not(.demo-runtime) .login-card input,body:not(.demo-runtime) .visual-search{color:var(--console-ink);background:var(--console-surface-2);border-color:var(--console-line-strong)}
body:not(.demo-runtime) .primary-button{background:var(--console-primary);color:#fff}.primary-button:hover{background:var(--console-primary-hover)}
body:not(.demo-runtime) .page-footer{color:var(--console-muted);border-color:var(--console-line)}

body:not(.demo-runtime) .home-dashboard-shell{display:grid;grid-template-columns:86px minmax(0,1fr);gap:22px;align-items:start;max-width:1440px;margin:0 auto}
body:not(.demo-runtime) .home-rail{position:sticky;top:98px;display:flex;flex-direction:column;gap:26px;min-height:calc(100vh - 150px);padding:16px 10px;border:1px solid var(--console-line);border-radius:22px;background:var(--console-rail);box-shadow:var(--console-shadow);color:#fff}
body:not(.demo-runtime) .home-rail-brand{display:grid;justify-items:center;gap:5px;padding:7px 0 10px;border-bottom:1px solid var(--console-rail-line)}
body:not(.demo-runtime) .home-rail-brand span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--console-primary);border-radius:13px;background:var(--console-rail-surface);color:var(--console-primary);font-size:12px;font-weight:950;letter-spacing:.08em}
body:not(.demo-runtime) .home-rail-brand small{color:var(--console-rail-muted);font-size:7px;font-weight:850;letter-spacing:.12em;writing-mode:vertical-rl;transform:rotate(180deg)}
body:not(.demo-runtime) .home-navigation{display:grid;gap:8px}
body:not(.demo-runtime) .home-navigation button{display:grid;justify-items:center;gap:6px;min-height:62px;padding:8px 4px;border:1px solid transparent;border-radius:13px;background:transparent;color:var(--console-rail-muted);cursor:pointer}
body:not(.demo-runtime) .home-navigation button:hover{border-color:var(--console-rail-line);color:#fff;background:var(--console-rail-surface)}
body:not(.demo-runtime) .home-navigation button.active{border-color:var(--console-primary);background:var(--console-primary);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--console-primary) 20%,transparent)}
body:not(.demo-runtime) .home-navigation button span{font-size:21px;line-height:1}
body:not(.demo-runtime) .home-navigation button small{font-size:8px;font-weight:850;letter-spacing:.03em}
body:not(.demo-runtime) .home-rail-status{display:grid;justify-items:center;gap:7px;margin-top:auto;padding-top:18px;border-top:1px solid var(--console-rail-line);text-align:center}
body:not(.demo-runtime) .home-rail-status .pulse{width:9px;height:9px;box-shadow:0 0 0 5px color-mix(in srgb,var(--console-green) 24%,transparent)}
body:not(.demo-runtime) .home-rail-status small{color:var(--console-rail-muted);font-size:7px;font-weight:900;letter-spacing:.12em}
body:not(.demo-runtime) .home-rail-status strong{color:#fff;font-size:9px;line-height:1.3}
body:not(.demo-runtime) .home-main{min-width:0}
body:not(.demo-runtime) .home-main .dashboard-head{margin-bottom:25px;padding:4px 0}
body:not(.demo-runtime) .home-main .dashboard-head h1{font-size:clamp(36px,5vw,62px)}
body:not(.demo-runtime) .home-main .live-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
body:not(.demo-runtime) .home-main .live-overview article{min-height:76px;padding:13px 15px;border-radius:15px;box-shadow:none}
body:not(.demo-runtime) .home-main .visual-toolbar{padding:10px;border-radius:15px;background:var(--console-surface);border-color:var(--console-line);box-shadow:none}
body:not(.demo-runtime) .home-main .live-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body:not(.demo-runtime) .home-main .live-tile{min-height:155px;padding:18px;border-radius:16px;box-shadow:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
body:not(.demo-runtime) .home-main .live-tile:hover{transform:translateY(-2px);border-color:var(--console-primary);box-shadow:0 12px 26px color-mix(in srgb,var(--console-ink) 10%,transparent)}
body:not(.demo-runtime) .home-main .room-section{padding:19px 0 0}
body:not(.demo-runtime) .home-main .room-section-head{margin-bottom:10px}
body:not(.demo-runtime) .home-main .room-section-head h2{font-size:22px}
body:not(.demo-runtime) .home-main .tile-icon{background:var(--console-primary-soft);color:var(--console-primary)}
@media(max-width:900px){body:not(.demo-runtime) .home-dashboard-shell{grid-template-columns:1fr}.home-rail{position:static;min-height:0;flex-direction:row;align-items:center;gap:12px;padding:10px}.home-rail-brand{display:flex;align-items:center;gap:8px;padding:0 8px;border:0}.home-rail-brand small{writing-mode:initial;transform:none}.home-navigation{display:flex!important;flex:1;gap:5px!important;overflow:auto}.home-navigation button{flex:1;min-width:72px;min-height:50px!important}.home-rail-status{display:none!important}}
@media(max-width:620px){body:not(.demo-runtime) .home-main .live-overview{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.demo-runtime) .home-main .live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-rail-brand span{width:36px;height:36px}.home-rail-brand small{display:none}}

body.demo-runtime{
  color-scheme:var(--visual-color-scheme);color:var(--visual-ink);background-color:var(--visual-bg);
  --console-bg:var(--visual-bg);--console-surface:var(--visual-surface);--console-surface-2:var(--visual-surface-2);--console-surface-3:var(--visual-surface-3);--console-ink:var(--visual-ink);--console-muted:var(--visual-muted);--console-line:var(--visual-line);--console-line-strong:var(--visual-line-strong);--console-primary:var(--visual-primary);--console-primary-hover:var(--visual-primary-hover);--console-primary-soft:var(--visual-primary-soft);--console-cyan:var(--visual-cyan);--console-green:var(--visual-green);--console-green-soft:var(--visual-green-soft);--console-amber:var(--visual-amber);--console-amber-soft:var(--visual-amber-soft);--console-red:var(--visual-red);--console-red-soft:var(--visual-red-soft);--console-rail:var(--visual-rail);--console-rail-surface:var(--visual-rail-surface);--console-rail-line:var(--visual-rail-line);--console-rail-muted:var(--visual-rail-muted);--console-panel:var(--visual-surface);--console-panel-2:var(--visual-surface-2);--console-text:var(--visual-ink);--console-yellow:var(--visual-amber);--console-violet:var(--visual-primary);--console-shadow:var(--visual-shadow);
  background-image:linear-gradient(color-mix(in srgb,var(--console-primary) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--console-primary) 7%,transparent) 1px,transparent 1px),radial-gradient(circle at 72% 5%,color-mix(in srgb,var(--console-primary) 13%,transparent),transparent 35rem);background-size:32px 32px,32px 32px,auto
}
body.demo-runtime .demo-app{color:var(--console-ink)}
body.demo-runtime .demo-workbar{color:var(--console-ink);background:color-mix(in srgb,var(--console-surface) 93%,transparent);border-color:var(--console-line)}
body.demo-runtime .demo-nav{background:color-mix(in srgb,var(--console-rail) 96%,transparent);border-color:var(--console-rail-line)}
body.demo-runtime .demo-rail-logo{color:var(--console-primary)}
body.demo-runtime .demo-rail-logo>span{border-color:var(--console-primary);background:var(--console-rail-surface);box-shadow:inset 0 0 15px color-mix(in srgb,var(--console-primary) 12%,transparent)}
body.demo-runtime .demo-nav button{color:var(--console-rail-muted)}
body.demo-runtime .demo-nav button:hover{color:var(--console-ink);border-color:var(--console-line)}
body.demo-runtime .demo-nav button.active{color:#fff;border-color:var(--console-primary);background:var(--console-primary);box-shadow:inset 3px 0 0 var(--console-primary),0 0 22px color-mix(in srgb,var(--console-primary) 14%,transparent)}
body.demo-runtime .demo-breadcrumb{color:var(--console-muted)}
body.demo-runtime .demo-breadcrumb b,body.demo-runtime .demo-breadcrumb strong,body.demo-runtime .demo-project strong,body.demo-runtime .demo-workbar>time{color:var(--console-ink)}
body.demo-runtime .demo-project,body.demo-runtime .demo-global-search,body.demo-runtime .demo-mode-switch{background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .demo-project small,body.demo-runtime .demo-global-search{color:var(--console-muted)}
body.demo-runtime .demo-global-search input{color:var(--console-ink)}
body.demo-runtime .demo-global-search input::placeholder{color:var(--console-muted)}
body.demo-runtime .demo-mode-switch button{color:var(--console-muted)}
body.demo-runtime .demo-mode-switch button.active{color:#fff;background:var(--console-primary);box-shadow:0 0 12px color-mix(in srgb,var(--console-primary) 24%,transparent)}
body.demo-runtime .demo-runtime .demo-workbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}
body.demo-runtime .demo-disclaimer{color:var(--console-muted);background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .demo-disclaimer strong{color:#fff;background:var(--console-primary)}
body.demo-runtime .leitstand-hero,body.demo-runtime .commercial-hero,body.demo-runtime .clevr-hero{color:var(--console-ink);border-color:var(--console-line);background:radial-gradient(circle at 84% 20%,color-mix(in srgb,var(--console-cyan) 24%,transparent),transparent 21rem),linear-gradient(135deg,color-mix(in srgb,var(--console-rail) 72%,var(--console-primary) 28%),color-mix(in srgb,var(--console-primary) 58%,var(--console-surface) 42%))}
body.demo-runtime .leitstand-title,body.demo-runtime .leitstand-clock,body.demo-runtime .leitstand-climate,body.demo-runtime .leitstand-health{border-color:var(--console-line)}
body.demo-runtime .leitstand-title h1,body.demo-runtime .leitstand-clock strong,body.demo-runtime .leitstand-climate strong,body.demo-runtime .leitstand-health strong,body.demo-runtime .leitstand-status article strong,body.demo-runtime .leitstand-kpis strong{color:var(--console-ink)}
body.demo-runtime .leitstand-title h1 strong,body.demo-runtime .leitstand-climate>span,body.demo-runtime .leitstand-status article>span{color:var(--console-cyan)}
body.demo-runtime .leitstand-title small,body.demo-runtime .leitstand-title>span,body.demo-runtime .leitstand-clock small,body.demo-runtime .leitstand-climate small,body.demo-runtime .leitstand-climate em,body.demo-runtime .leitstand-health small,body.demo-runtime .leitstand-status article small,body.demo-runtime .leitstand-kpis small{color:var(--console-muted)}
body.demo-runtime .leitstand-status article,body.demo-runtime .leitstand-kpis article{background:color-mix(in srgb,var(--console-surface) 88%,transparent);border-color:var(--console-line)}
body.demo-runtime .leitstand-kpis article{box-shadow:inset 0 -2px 0 currentColor,0 8px 20px color-mix(in srgb,var(--console-ink) 12%,transparent)}
body.demo-runtime .section-title,body.demo-runtime .energy-flow-card,body.demo-runtime .history-card,body.demo-runtime .energy-kpis article,body.demo-runtime .clevr-room,body.demo-runtime .system-grid>article,body.demo-runtime .security-state,body.demo-runtime .event-card,body.demo-runtime .scene-grid button,body.demo-runtime .commercial-kpis article,body.demo-runtime .campus-flow,body.demo-runtime .commercial-chart-card,body.demo-runtime .tenant-list,body.demo-runtime .tenant-compare,body.demo-runtime .parking-occupancy,body.demo-runtime .charging-control,body.demo-runtime .media-grid article,body.demo-runtime .storage-grid article,body.demo-runtime .security-command>article,body.demo-runtime .security-operations article,body.demo-runtime .forecast-card,body.demo-runtime .campus-twin,body.demo-runtime .ms-shell,body.demo-runtime .ms-panel,body.demo-runtime .ms-legal-panel,body.demo-runtime .ms-legal-grid article{color:var(--console-ink);background:var(--console-surface);border-color:var(--console-line);box-shadow:var(--console-shadow)}
body.demo-runtime .section-title h2,body.demo-runtime .history-head h3,body.demo-runtime .flow-node strong,body.demo-runtime .flow-center strong,body.demo-runtime .clevr-room-body h3,body.demo-runtime .system-grid h3,body.demo-runtime .security-state h3,body.demo-runtime .event-card h3,body.demo-runtime .commercial-chart-card h3,body.demo-runtime .forecast-card h3,body.demo-runtime .campus-twin h2,body.demo-runtime .ms-panel h2,body.demo-runtime .ms-legal-panel h2,body.demo-runtime .ms-legal-grid article strong{color:var(--console-ink)}
body.demo-runtime .section-title span:first-child,body.demo-runtime .history-head span,body.demo-runtime .flow-node small,body.demo-runtime .flow-center small,body.demo-runtime .clevr-room-body>div span,body.demo-runtime .system-grid dt,body.demo-runtime .system-grid small,body.demo-runtime .security-state small,body.demo-runtime .event-card small,body.demo-runtime .commercial-chart-card small,body.demo-runtime .forecast-card header small,body.demo-runtime .ms-panel header small,body.demo-runtime .ms-legal-panel header small,body.demo-runtime .ms-legal-grid article span{color:var(--console-muted)}
body.demo-runtime .flow-center em,body.demo-runtime .system-grid>article>strong,body.demo-runtime .clevr-room-body>strong,body.demo-runtime .ms-panel-mark,body.demo-runtime .ms-legal-grid article>b{color:var(--console-cyan)}
body.demo-runtime .range-switch,body.demo-runtime .floor-filter,body.demo-runtime .commercial-legend,body.demo-runtime .forecast-legend,body.demo-runtime .ms-legend{border-color:var(--console-line);background:var(--console-surface-2);color:var(--console-muted)}
body.demo-runtime .range-switch button,body.demo-runtime .floor-filter button,body.demo-runtime .ms-legend button{color:var(--console-muted)}
body.demo-runtime .range-switch button.active,body.demo-runtime .floor-filter button.active,body.demo-runtime .ms-legend button.active{color:#fff;background:var(--console-primary);box-shadow:0 0 12px color-mix(in srgb,var(--console-primary) 24%,transparent)}
body.demo-runtime .chart-grid line,body.demo-runtime .commercial-chart line,body.demo-runtime .forecast-card svg line{stroke:var(--console-line)}
body.demo-runtime .chart-axis,body.demo-runtime .chart-labels,body.demo-runtime .history-summary span,body.demo-runtime .forecast-card header p,body.demo-runtime .forecast-labels,body.demo-runtime .forecast-legend{color:var(--console-muted)}
body.demo-runtime .chart-line.consumption,body.demo-runtime .commercial-chart path.load,body.demo-runtime .forecast-card svg path.use{stroke:var(--console-cyan)}
body.demo-runtime .chart-line.production,body.demo-runtime .commercial-chart path.pv,body.demo-runtime .forecast-card svg path.pv{stroke:var(--console-amber)}
body.demo-runtime .chart-line.grid-use,body.demo-runtime .commercial-chart path.import{stroke:var(--console-green)}
body.demo-runtime .commercial-chart path.export{stroke:var(--console-primary)}
body.demo-runtime .chart-area{fill:color-mix(in srgb,var(--console-amber) 9%,transparent)}
body.demo-runtime .history-summary article,body.demo-runtime .forecast-results article,body.demo-runtime .system-grid dl div,body.demo-runtime .campus-map .plant,body.demo-runtime .ms-legal-model,body.demo-runtime .ms-legal-price{background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .history-summary strong,body.demo-runtime .forecast-results strong,body.demo-runtime .ms-legal-model strong,body.demo-runtime .ms-legal-price strong{color:var(--console-ink)}
body.demo-runtime .history-summary span,body.demo-runtime .forecast-results span,body.demo-runtime .forecast-results small,body.demo-runtime .ms-legal-model span,body.demo-runtime .ms-legal-price small{color:var(--console-muted)}
body.demo-runtime .campus-map{background-image:linear-gradient(color-mix(in srgb,var(--console-primary) 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--console-primary) 8%,transparent) 1px,transparent 1px)}
body.demo-runtime .campus-map article,body.demo-runtime .campus-map .plant{color:var(--console-ink);border-color:var(--console-line);background:var(--console-surface-2)}
body.demo-runtime .campus-map article b,body.demo-runtime .campus-map article small,body.demo-runtime .campus-map article em,body.demo-runtime .campus-map .plant b,body.demo-runtime .campus-map .plant small{color:var(--console-muted)}
body.demo-runtime .campus-map article span,body.demo-runtime .utility-legend span:before{color:var(--console-cyan);background:var(--console-cyan)}
body.demo-runtime .parking-layout article,body.demo-runtime .storage-grid article,body.demo-runtime .media-grid article,body.demo-runtime .security-command>article,body.demo-runtime .security-operations article{color:var(--console-ink)}
body.demo-runtime .security-command header,body.demo-runtime .security-command footer,body.demo-runtime .security-state ul,body.demo-runtime .event-card li,body.demo-runtime .access-points button{border-color:var(--console-line)}
body.demo-runtime .security-command h3,body.demo-runtime .security-operations strong,body.demo-runtime .access-points button span{color:var(--console-ink)}
body.demo-runtime .security-command small,body.demo-runtime .security-command footer,body.demo-runtime .security-operations small,body.demo-runtime .security-operations span,body.demo-runtime .access-points button small{color:var(--console-muted)}
body.demo-runtime .privacy-camera-grid button,body.demo-runtime .access-points button,body.demo-runtime .integration-items button{color:var(--console-ink);background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .integration-card{color:var(--console-ink);background:var(--console-surface);border-color:var(--console-line)}
body.demo-runtime .integration-card h2,body.demo-runtime .integration-items button strong{color:var(--console-ink)}
body.demo-runtime .integration-card>p,body.demo-runtime .integration-items button span{color:var(--console-muted)}
body.demo-runtime .ms-live-strip,body.demo-runtime .ms-source,body.demo-runtime .ms-toolbar label>span,body.demo-runtime .ms-toolbar,body.demo-runtime .ms-kpis article span,body.demo-runtime .ms-kpis article small,body.demo-runtime .ms-footnote,body.demo-runtime .ms-callout,body.demo-runtime .ms-table td small{color:var(--console-muted)}
body.demo-runtime .ms-toolbar select,body.demo-runtime .ms-range input,body.demo-runtime .ms-unit-toolbar select{color:var(--console-ink);background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .ms-kpis article,body.demo-runtime .ms-table-wrap,body.demo-runtime .ms-checks>div,body.demo-runtime .ms-detail-rows>div,body.demo-runtime .ms-transparency>div{border-color:var(--console-line);background:var(--console-surface-2)}
body.demo-runtime .ms-kpis article strong,body.demo-runtime .ms-table th,body.demo-runtime .ms-table td,body.demo-runtime .ms-checks strong,body.demo-runtime .ms-detail-rows b,body.demo-runtime .ms-transparency b{color:var(--console-ink)}
body.demo-runtime .ms-legal-panel{color:var(--console-ink);background:linear-gradient(145deg,var(--console-surface-2),var(--console-surface))}
body.demo-runtime .ms-legal-panel header p,body.demo-runtime .ms-legal-panel details p,body.demo-runtime .ms-legal-panel summary,body.demo-runtime .ms-legal-price small{color:var(--console-muted)}
body.demo-runtime .ms-legal-state,body.demo-runtime .ms-legal-price>b{color:var(--console-green);background:var(--console-green-soft);border-color:var(--console-line)}
body.demo-runtime .visual-detail-dialog{color:var(--console-ink);background:var(--console-surface);border-color:var(--console-line-strong);box-shadow:0 35px 100px color-mix(in srgb,var(--console-ink) 28%,transparent)}
body.demo-runtime .visual-detail-dialog h2,body.demo-runtime .visual-detail-dialog dd{color:var(--console-ink)}
body.demo-runtime .visual-detail-dialog>small,body.demo-runtime .visual-detail-dialog>p,body.demo-runtime .visual-detail-dialog dt,body.demo-runtime .visual-detail-dialog .visual-detail-note{color:var(--console-muted)}
body.demo-runtime .visual-detail-dialog dl{background:var(--console-line)}
body.demo-runtime .visual-detail-dialog dl div{background:var(--console-surface-2)}

/* Theme picker controls deliberately share the main shell's vocabulary. */
.visual-theme-picker{position:relative;z-index:80}.visual-theme-toggle{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--console-line);border-radius:10px;color:var(--console-ink);background:var(--console-surface);cursor:pointer;font-size:11px;font-weight:800}.visual-theme-toggle:hover,.visual-theme-toggle:focus-visible{border-color:var(--console-primary);background:var(--console-primary-soft);outline:0}.visual-theme-swatch{width:18px;height:18px;border:1px solid color-mix(in srgb,var(--console-ink) 18%,transparent);border-radius:50%;background:linear-gradient(135deg,var(--theme-swatch-a,#f4f8fc) 0 50%,var(--theme-swatch-b,var(--console-primary)) 50%);flex:none}.visual-theme-toggle[data-theme="one"] .visual-theme-swatch{--theme-swatch-a:#101512;--theme-swatch-b:#d8ff45}.visual-theme-toggle[data-theme="light"] .visual-theme-swatch{--theme-swatch-a:#f5f7fa;--theme-swatch-b:#3267b1}.visual-theme-toggle[data-theme="warm"] .visual-theme-swatch{--theme-swatch-a:#f0e9df;--theme-swatch-b:#ad5d3f}.visual-theme-toggle[data-theme="sage"] .visual-theme-swatch{--theme-swatch-a:#e9f0ea;--theme-swatch-b:#39765f}.visual-theme-toggle[data-theme="graphite"] .visual-theme-swatch{--theme-swatch-a:#e9edef;--theme-swatch-b:#526771}.visual-theme-toggle[data-theme="dark"] .visual-theme-swatch{--theme-swatch-a:#071421;--theme-swatch-b:#66a8ff}.visual-theme-menu{position:absolute;top:calc(100% + 8px);right:0;width:250px;display:grid;gap:4px;padding:8px;border:1px solid var(--console-line-strong);border-radius:14px;background:var(--console-surface);box-shadow:0 24px 70px color-mix(in srgb,var(--console-ink) 20%,transparent)}.visual-theme-menu[hidden]{display:none}.visual-theme-menu-head{display:grid;gap:2px;padding:5px 8px 8px;border-bottom:1px solid var(--console-line)}.visual-theme-menu-head strong{color:var(--console-ink);font-size:11px}.visual-theme-menu-head span{color:var(--console-muted);font-size:9px}.visual-theme-choice{min-height:42px;display:grid;grid-template-columns:22px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:8px;color:var(--console-ink);background:transparent;text-align:left;cursor:pointer}.visual-theme-choice:hover,.visual-theme-choice.active{border-color:var(--console-line);background:var(--console-surface-2)}.visual-theme-choice.active{color:var(--console-primary)}.visual-theme-choice>span:nth-child(2){display:grid;gap:1px}.visual-theme-choice strong{font-size:11px}.visual-theme-choice small{color:var(--console-muted);font-size:9px}.visual-theme-choice-swatch{width:20px;height:20px;border:1px solid color-mix(in srgb,var(--console-ink) 18%,transparent);border-radius:50%;background:linear-gradient(135deg,var(--theme-swatch-a) 0 50%,var(--theme-swatch-b) 50%)}.visual-theme-choice-swatch.one{--theme-swatch-a:#101512;--theme-swatch-b:#d8ff45}.visual-theme-choice-swatch.light{--theme-swatch-a:#f5f7fa;--theme-swatch-b:#3267b1}.visual-theme-choice-swatch.warm{--theme-swatch-a:#f0e9df;--theme-swatch-b:#ad5d3f}.visual-theme-choice-swatch.sage{--theme-swatch-a:#e9f0ea;--theme-swatch-b:#39765f}.visual-theme-choice-swatch.graphite{--theme-swatch-a:#e9edef;--theme-swatch-b:#526771}.visual-theme-choice-swatch.dark{--theme-swatch-a:#071421;--theme-swatch-b:#66a8ff}.visual-theme-check{visibility:hidden;color:var(--console-primary);font-size:14px}.visual-theme-choice.active .visual-theme-check{visibility:visible}.demo-workbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}.demo-workbar-actions time{color:var(--console-ink)}
.brand-standard-badge{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border:1px solid var(--console-line);background:var(--visual-accent,#d8ff45);color:var(--visual-accent-ink,#101512);font-size:9px;font-weight:900;letter-spacing:.08em;white-space:nowrap}
@media(max-width:850px){.visual-theme-label{display:none}.visual-theme-toggle{width:36px;justify-content:center;padding-inline:7px}.visual-theme-menu{right:-4px}.demo-workbar-actions{gap:6px}}

/* Mieterstrom detail surfaces: consume the same shell tokens as every other
   demo mode, including descendants that originally carried dark-demo literals. */
:root{--visual-on-primary:#fff}
body.demo-runtime .ms-shell,
body.demo-runtime .ms-header,
body.demo-runtime .ms-panel,
body.demo-runtime .ms-kpis article,
body.demo-runtime .ms-table-wrap,
body.demo-runtime .ms-unit-hero,
body.demo-runtime .ms-legal-panel,
body.demo-runtime .ms-legal-grid article,
body.demo-runtime .ms-legal-price{color:var(--console-ink);border-color:var(--console-line)}
body.demo-runtime .ms-shell{background:var(--console-surface)}
body.demo-runtime .ms-header h1,
body.demo-runtime .ms-unit-hero h2{color:var(--console-ink)}
body.demo-runtime .ms-header small,
body.demo-runtime .ms-header p,
body.demo-runtime .ms-panel>header small,
body.demo-runtime .ms-panel p,
body.demo-runtime .ms-toolbar label>span,
body.demo-runtime .ms-inline-select>span,
body.demo-runtime .ms-unit-toolbar label>span,
body.demo-runtime .ms-kpis article span,
body.demo-runtime .ms-kpis article small,
body.demo-runtime .ms-footnote,
body.demo-runtime .ms-pagination,
body.demo-runtime .ms-unit-hero p,
body.demo-runtime .ms-meter-flow small,
body.demo-runtime .ms-detail-rows span,
body.demo-runtime .ms-transparency span{color:var(--console-muted)}
body.demo-runtime .ms-header,
body.demo-runtime .ms-live-strip,
body.demo-runtime .ms-chart-summary,
body.demo-runtime .ms-range,
body.demo-runtime .ms-checks>div,
body.demo-runtime .ms-detail-rows,
body.demo-runtime .ms-detail-rows>div,
body.demo-runtime .ms-transparency>div,
body.demo-runtime .ms-bill-panel dl>div{border-color:var(--console-line)}
body.demo-runtime .ms-source,
body.demo-runtime .ms-legal-state,
body.demo-runtime .ms-legal-price>b{color:var(--console-green);background:var(--console-green-soft);border-color:var(--console-line)}
body.demo-runtime .ms-view-switch,
body.demo-runtime .ms-toolbar select,
body.demo-runtime .ms-inline-select select,
body.demo-runtime .ms-unit-toolbar select,
body.demo-runtime .ms-button.secondary,
body.demo-runtime .ms-icon-button,
body.demo-runtime .ms-callout{color:var(--console-ink);background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .ms-view-switch button{color:var(--console-muted)}
body.demo-runtime .ms-view-switch button.active,
body.demo-runtime .ms-button:not(.secondary),
body.demo-runtime .ms-button.secondary:hover,
body.demo-runtime .ms-button.secondary:focus-visible{color:var(--visual-on-primary);background:var(--console-primary);border-color:var(--console-primary)}
body.demo-runtime .ms-button:hover,
body.demo-runtime .ms-button:focus-visible,
body.demo-runtime .ms-icon-button:hover:not(:disabled),
body.demo-runtime .ms-icon-button:focus-visible:not(:disabled){border-color:var(--console-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--console-primary) 18%,transparent);outline:none}
body.demo-runtime .ms-live-strip{color:var(--console-muted);background:var(--console-surface-2)}
body.demo-runtime .ms-mode-note{color:var(--console-muted);background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .ms-mode-note strong{color:var(--console-ink)}
body.demo-runtime .ms-mode-note>span:first-child{color:var(--console-primary);background:var(--console-primary-soft)}
body.demo-runtime .ms-kpis article,
body.demo-runtime .ms-table-wrap{background:var(--console-surface-2)}
body.demo-runtime .ms-kpis article strong,
body.demo-runtime .ms-panel h2,
body.demo-runtime .ms-chart-summary strong,
body.demo-runtime .ms-cost-compare strong,
body.demo-runtime .ms-checks strong,
body.demo-runtime .ms-detail-rows b,
body.demo-runtime .ms-transparency b,
body.demo-runtime .ms-bill-panel dd,
body.demo-runtime .ms-meter-flow b{color:var(--console-ink)}
body.demo-runtime .ms-kpis article.green strong,
body.demo-runtime .ms-bill-panel .green-text,
body.demo-runtime .ms-bill-panel .saving dd,
body.demo-runtime .ms-checks>div>b{color:var(--console-green)}
body.demo-runtime .ms-kpis article.blue strong{color:var(--console-cyan)}
body.demo-runtime .ms-panel-mark{color:var(--console-primary);background:var(--console-primary-soft);border-color:var(--console-line)}
body.demo-runtime .ms-legend{border-color:var(--console-line);background:var(--console-surface-2)}
body.demo-runtime .ms-legend button{color:var(--console-muted)}
body.demo-runtime .ms-legend button:hover,
body.demo-runtime .ms-legend button:focus-visible{color:var(--console-ink);background:var(--console-primary-soft)}
body.demo-runtime .ms-legend button.active{color:var(--visual-on-primary);background:var(--console-primary)}
body.demo-runtime .ms-legend i{background:var(--console-primary)}
body.demo-runtime .ms-legend i.pv,
body.demo-runtime .ms-chart-bar{background:var(--console-amber)}
body.demo-runtime .ms-legend i.demand{background:var(--console-primary)}
body.demo-runtime .ms-legend i.grid{background:var(--console-red)}
body.demo-runtime .ms-legend i.direct{background:var(--console-green)}
body.demo-runtime .ms-chart-selected{fill:var(--console-primary-soft)}
body.demo-runtime .ms-chart-gridline{stroke:var(--console-line)}
body.demo-runtime .ms-chart-axis{stroke:var(--console-line-strong)}
body.demo-runtime .ms-chart-label,
body.demo-runtime .ms-month-focus button,
body.demo-runtime .ms-range>span,
body.demo-runtime .ms-cost-compare span{color:var(--console-muted)}
body.demo-runtime .ms-chart-bar{fill:var(--console-amber)}
body.demo-runtime .ms-chart-demand{stroke:var(--console-primary)}
body.demo-runtime .ms-chart-grid{stroke:var(--console-red)}
body.demo-runtime .ms-chart-direct{stroke:var(--console-green)}
body.demo-runtime .ms-month-focus button:hover,
body.demo-runtime .ms-month-focus button:focus-visible,
body.demo-runtime .ms-month-focus button.active{color:var(--console-primary);background:var(--console-primary-soft);border-color:var(--console-line)}
body.demo-runtime .ms-chart-summary{color:var(--console-muted)}
body.demo-runtime .ms-range output,
body.demo-runtime .ms-table td:first-child button{color:var(--console-primary)}
body.demo-runtime .ms-range input{accent-color:var(--console-primary)}
body.demo-runtime .ms-cost-compare i{background:var(--console-surface-3)}
body.demo-runtime .ms-cost-compare i b{background:var(--console-primary)}
body.demo-runtime .ms-cost-compare>div:nth-child(2) i b{background:var(--console-muted)}
body.demo-runtime .ms-insight{color:var(--console-green);background:var(--console-green-soft);border-color:var(--console-line)}
body.demo-runtime .ms-table th{color:var(--console-muted);background:var(--console-surface-2)}
body.demo-runtime .ms-table td{color:var(--console-ink);border-color:var(--console-line)}
body.demo-runtime .ms-table td:first-child small{color:var(--console-muted)}
body.demo-runtime .ms-table tbody tr:hover,
body.demo-runtime .ms-table tbody tr.selected{background:var(--console-primary-soft)}
body.demo-runtime .ms-status,
body.demo-runtime .ms-unit-hero>b{color:var(--console-amber);background:var(--console-amber-soft);border-color:var(--console-line)}
body.demo-runtime .ms-callout{color:var(--console-muted)}
body.demo-runtime .ms-unit-hero{background:linear-gradient(110deg,var(--console-surface-2),var(--console-surface))}
body.demo-runtime .ms-unit-hero>span{color:var(--console-primary);background:var(--console-primary-soft)}
body.demo-runtime .ms-meter-flow>span{color:var(--console-primary)}
body.demo-runtime .ms-meter-flow>span:nth-of-type(1){color:var(--console-amber)}
body.demo-runtime .ms-meter-flow>span:nth-of-type(3){color:var(--console-red)}
body.demo-runtime .ms-meter-flow i{color:var(--console-muted)}
body.demo-runtime .ms-legal-panel{background:linear-gradient(145deg,var(--console-surface-2),var(--console-surface))}
body.demo-runtime .ms-legal-panel h2,
body.demo-runtime .ms-legal-model strong,
body.demo-runtime .ms-legal-price strong{color:var(--console-ink)}
body.demo-runtime .ms-legal-panel header p,
body.demo-runtime .ms-legal-panel details p,
body.demo-runtime .ms-legal-panel summary,
body.demo-runtime .ms-legal-model span,
body.demo-runtime .ms-legal-price small{color:var(--console-muted)}
body.demo-runtime .ms-legal-model,
body.demo-runtime .ms-legal-price,
body.demo-runtime .ms-legal-grid article{background:var(--console-surface-2);border-color:var(--console-line)}
body.demo-runtime .ms-legal-grid article>b{color:var(--console-primary)}
body.demo-runtime .ms-legal-grid article strong{color:var(--console-ink)}
body.demo-runtime .ms-legal-grid article span{color:var(--console-muted)}

/* Official Pernice website language for the shared "Pernice ONE" theme.
   The values deliberately mirror .perniceOneBrand.themeOne in the React
   shell; all other selectable palettes continue to use their own tokens. */
html[data-theme="one"]{
  color-scheme:light;
  --visual-bg:#f4f1e9;
  --visual-surface:#fbfaf6;
  --visual-surface-2:#e9e5da;
  --visual-surface-3:#e9e5da;
  --visual-ink:#101512;
  --visual-muted:#5e655f;
  --visual-line:#1015122e;
  --visual-line-strong:#1015124d;
  --visual-primary:#101512;
  --visual-primary-hover:#28302b;
  --visual-primary-soft:#d8ff4540;
  --visual-cyan:#28302b;
  --visual-green:#2e6b3c;
  --visual-green-soft:#e4f1e5;
  --visual-amber:#8a5c00;
  --visual-amber-soft:#f4eacb;
  --visual-red:#a33425;
  --visual-red-soft:#f6e5e0;
  --visual-rail:#101512;
  --visual-rail-surface:#182019;
  --visual-rail-line:#ffffff24;
  --visual-rail-muted:#aeb7b0;
  --visual-shadow:0 18px 45px rgba(16,21,18,.08);
  --visual-accent:#d8ff45;
  --visual-accent-ink:#101512;
}

html[data-theme="one"] body:not(.demo-runtime){
  font-family:"Segoe UI Variable Display","Aptos Display","Helvetica Neue",Arial,sans-serif;
  background:radial-gradient(circle at 88% 2%,#d8ff4520,transparent 31rem),linear-gradient(180deg,#fbfaf6 0,#f4f1e9 46rem);
}
html[data-theme="one"] body:not(.demo-runtime) .topbar{
  background:rgba(244,241,233,.94);
  border-color:var(--visual-line);
  backdrop-filter:blur(18px);
}
html[data-theme="one"] body:not(.demo-runtime) .brand{color:var(--visual-ink)}
html[data-theme="one"] body:not(.demo-runtime) .brand-mark{
  border-radius:1px;
  background:var(--visual-accent);
  color:var(--visual-accent-ink);
  box-shadow:none;
  font-family:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
}
html[data-theme="one"] body:not(.demo-runtime) .brand small{color:var(--visual-muted)}
html[data-theme="one"] body:not(.demo-runtime) .badge{
  color:var(--visual-ink);
  background:var(--visual-primary-soft);
  border-color:var(--visual-line);
}
html[data-theme="one"] body:not(.demo-runtime) .hero h1 em,
html[data-theme="one"] body:not(.demo-runtime) .eyebrow{color:var(--visual-accent)}
html[data-theme="one"] body:not(.demo-runtime) .metric.primary{
  background:linear-gradient(122deg,#101512,#19211a 67%,#29352b);
  border-color:#ffffff24;
}
html[data-theme="one"] body:not(.demo-runtime) .primary-button{
  border-radius:1px;
  background:var(--visual-ink);
  color:var(--visual-surface);
  box-shadow:none;
}
html[data-theme="one"] body:not(.demo-runtime) .primary-button:hover{background:var(--visual-primary-hover)}
html[data-theme="one"] body:not(.demo-runtime) .login-card,
html[data-theme="one"] body:not(.demo-runtime) .live-card,
html[data-theme="one"] body:not(.demo-runtime) .refresh-state,
html[data-theme="one"] body:not(.demo-runtime) .metric,
html[data-theme="one"] body:not(.demo-runtime) .room-grid article,
html[data-theme="one"] body:not(.demo-runtime) .live-tile,
html[data-theme="one"] body:not(.demo-runtime) .live-overview article{
  border-radius:2px;
  border-color:var(--visual-line);
  background:rgba(251,250,246,.96);
  box-shadow:none;
}

body.demo-runtime.themeOne{
  font-family:"Segoe UI Variable Display","Aptos Display","Helvetica Neue",Arial,sans-serif;
  background-image:linear-gradient(#1015120a 1px,transparent 1px),linear-gradient(90deg,#1015120a 1px,transparent 1px),radial-gradient(circle at 72% 5%,#d8ff4520,transparent 35rem);
  background-size:32px 32px,32px 32px,auto;
}
body.demo-runtime.themeOne .demo-workbar{
  background:rgba(244,241,233,.94);
  border-color:var(--visual-line);
  backdrop-filter:blur(18px);
}
body.demo-runtime.themeOne .demo-nav{
  border-color:var(--visual-line);
  background:rgba(251,250,246,.96);
  box-shadow:0 12px 34px rgba(16,21,18,.08);
}
body.demo-runtime.themeOne .demo-rail-logo{color:var(--visual-accent)}
body.demo-runtime.themeOne .demo-rail-logo>span{
  border-color:var(--visual-accent);
  background:var(--visual-accent);
  color:var(--visual-accent-ink);
  box-shadow:none;
}
body.demo-runtime.themeOne .demo-nav button.active,
body.demo-runtime.themeOne .demo-mode-switch button.active,
body.demo-runtime.themeOne .range-switch button.active,
body.demo-runtime.themeOne .floor-filter button.active,
body.demo-runtime.themeOne .scene-grid button.active,
body.demo-runtime.themeOne .commercial-legend button.active,
body.demo-runtime.themeOne .forecast-legend button.active,
body.demo-runtime.themeOne .status-filters button.active,
body.demo-runtime.themeOne .ms-view-switch button.active,
body.demo-runtime.themeOne .ms-legend button.active,
body.demo-runtime.themeOne .ms-month-focus button.active{
  color:var(--visual-accent-ink)!important;
  background:var(--visual-accent)!important;
  border-color:var(--visual-accent)!important;
  box-shadow:0 8px 20px #d8ff4530!important;
}
body.demo-runtime.themeOne .demo-nav button:hover,
body.demo-runtime.themeOne .demo-mode-switch button:hover,
body.demo-runtime.themeOne .range-switch button:hover,
body.demo-runtime.themeOne .floor-filter button:hover{color:var(--visual-ink);background:var(--visual-primary-soft)}
body.demo-runtime.themeOne .demo-disclaimer strong{background:var(--visual-accent);color:var(--visual-accent-ink)}
body.demo-runtime.themeOne .demo-edge-state i{background:var(--visual-accent);box-shadow:0 0 0 5px #d8ff4518}
body.demo-runtime.themeOne .leitstand-hero,
body.demo-runtime.themeOne .commercial-hero,
body.demo-runtime.themeOne .clevr-hero{
  color:var(--visual-surface)!important;
  border-color:#ffffff24!important;
  background:radial-gradient(circle at 84% 20%,#d8ff4533,transparent 21rem),linear-gradient(122deg,#101512,#19211a 67%,#29352b)!important;
  box-shadow:none;
}
body.demo-runtime.themeOne .leitstand-title h1,
body.demo-runtime.themeOne .leitstand-clock strong,
body.demo-runtime.themeOne .leitstand-climate strong,
body.demo-runtime.themeOne .leitstand-health strong,
body.demo-runtime.themeOne .leitstand-status article strong,
body.demo-runtime.themeOne .clevr-hero h2,
body.demo-runtime.themeOne .commercial-hero h1,
body.demo-runtime.themeOne .commercial-hero h2{color:var(--visual-surface)!important}
body.demo-runtime.themeOne .leitstand-title h1 strong,
body.demo-runtime.themeOne .leitstand-title h1 em,
body.demo-runtime.themeOne .clevr-hero h2 em,
body.demo-runtime.themeOne .commercial-hero h1 strong,
body.demo-runtime.themeOne .commercial-hero h2 em{color:var(--visual-accent)!important}
body.demo-runtime.themeOne .leitstand-title small,
body.demo-runtime.themeOne .leitstand-title>span,
body.demo-runtime.themeOne .leitstand-clock small,
body.demo-runtime.themeOne .leitstand-climate small,
body.demo-runtime.themeOne .leitstand-climate em,
body.demo-runtime.themeOne .leitstand-health small{color:#b7beb7!important}
body.demo-runtime.themeOne .leitstand-kpis article{
  color:var(--visual-surface);
  background:#ffffff08;
  border-color:#ffffff24;
  box-shadow:none;
}
body.demo-runtime.themeOne .leitstand-kpis article strong{color:var(--visual-surface)!important}
body.demo-runtime.themeOne .section-title span:first-child{color:var(--visual-ink)}
body.demo-runtime.themeOne .section-title h2{color:var(--visual-ink)}
body.demo-runtime.themeOne .ms-shell{
  border-color:var(--visual-line);
  background:linear-gradient(145deg,var(--visual-surface),var(--visual-surface-2));
  box-shadow:0 18px 45px rgba(16,21,18,.08);
}
body.demo-runtime.themeOne .ms-header{
  background:linear-gradient(122deg,#101512,#19211a 67%,#29352b);
  border-color:#ffffff24;
}
body.demo-runtime.themeOne .ms-header h1{color:var(--visual-surface)!important}
body.demo-runtime.themeOne .ms-header small{color:var(--visual-accent)!important}
body.demo-runtime.themeOne .ms-header p{color:#c2c9c3!important}
body.demo-runtime.themeOne .ms-view-switch{background:#ffffff08;border-color:#ffffff24}
body.demo-runtime.themeOne .ms-view-switch button{color:#b7beb7}
body.demo-runtime.themeOne .ms-source{color:var(--visual-accent);background:#d8ff4517;border-color:#d8ff4540}

/* Eigenständige Peak-Shaving-Demo: dieselbe Visual-Sprache, ausschließlich synthetische Werte. */
.demo-mode-switch{max-width:100%;overflow-x:auto;scrollbar-width:thin}.demo-mode-switch button{flex:none}
.peakshaving-anchor{padding:18px 0 42px}.peak-shell{color:var(--console-ink);background:var(--console-surface);border:1px solid var(--console-line);border-radius:9px;box-shadow:var(--console-shadow);overflow:hidden}.peak-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:25px 28px 20px;border-bottom:1px solid var(--console-line);background:linear-gradient(122deg,color-mix(in srgb,var(--console-rail) 70%,var(--console-primary) 30%),color-mix(in srgb,var(--console-primary) 54%,var(--console-surface) 46%))}.peak-header small,.peak-panel>header small{display:block;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.peak-header h1{margin:8px 0 0;color:var(--console-ink);font-size:28px;font-weight:400;letter-spacing:-.04em}.peak-header p{max-width:680px;margin:8px 0 0;color:var(--console-muted);font-size:11px;line-height:1.5}.peak-header-actions{display:flex;align-items:flex-end;flex-direction:column;gap:8px;white-space:nowrap}.peak-source,.peak-demo-state{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-amber);background:var(--console-amber-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:900}.peak-source:before{width:6px;height:6px;border-radius:50%;background:var(--console-amber);content:""}.peak-demo-state{border-color:var(--console-line);color:var(--console-muted);background:var(--console-surface-2)}.peak-demo-state i{width:6px;height:6px;border-radius:50%;background:var(--console-amber)}.peak-live-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 19px;padding:9px 28px;border-bottom:1px solid var(--console-line);color:var(--console-muted);background:var(--console-surface-2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.peak-live-strip span{display:inline-flex;align-items:center;gap:6px}.peak-live-strip span:first-child i{width:6px;height:6px;border-radius:50%;background:var(--console-green);box-shadow:0 0 0 4px color-mix(in srgb,var(--console-green) 12%,transparent)}.peak-control-grid{display:grid;grid-template-columns:minmax(190px,1.05fr) minmax(170px,1fr) minmax(170px,1fr) minmax(180px,1fr) auto;align-items:end;gap:9px;padding:17px 28px;border-bottom:1px solid var(--console-line)}.peak-control{display:grid;gap:6px;min-width:0}.peak-control-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.peak-control-label output{color:var(--console-primary);font-size:10px;font-weight:900;letter-spacing:0;white-space:nowrap}.peak-control select{width:100%;min-height:33px;padding:0 9px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-ink);background:var(--console-surface-2);font-family:inherit;font-size:10px;outline:none}.peak-control select:focus,.peak-control input:focus-visible{border-color:var(--console-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--console-primary) 16%,transparent);outline:none}.peak-control small{min-height:24px;color:var(--console-muted);font-size:8px;line-height:1.4}.peak-range{width:100%;accent-color:var(--console-primary);cursor:pointer}.peak-range.warning{accent-color:var(--console-amber)}.peak-switch-line{display:flex;align-items:center;gap:8px;min-height:33px;color:var(--console-ink);font-size:10px}.peak-switch-line input{position:absolute;opacity:0;pointer-events:none}.peak-switch{position:relative;width:34px;height:18px;border-radius:99px;background:var(--console-surface-3);box-shadow:inset 0 0 0 1px var(--console-line);cursor:pointer}.peak-switch:after{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--console-muted);content:"";transition:transform .2s,background .2s}.peak-switch-line input:checked+.peak-switch{background:var(--console-primary-soft);box-shadow:inset 0 0 0 1px var(--console-primary)}.peak-switch-line input:checked+.peak-switch:after{background:var(--console-primary);transform:translateX(16px)}.peak-reset{align-self:end;min-height:33px}
.peak-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:14px 28px;border-bottom:1px solid var(--console-line)}.peak-kpis article{min-width:0;padding:12px;border:1px solid var(--console-line);border-radius:7px;background:var(--console-surface-2);box-shadow:0 8px 24px color-mix(in srgb,var(--console-ink) 8%,transparent)}.peak-kpis article span,.peak-kpis article small{display:block;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;letter-spacing:.06em;text-transform:uppercase}.peak-kpis article strong{display:block;margin-top:9px;color:var(--console-ink);font-size:20px;font-weight:300;letter-spacing:-.04em;white-space:nowrap}.peak-kpis article small{min-height:20px;margin-top:5px;font-family:inherit;letter-spacing:0;line-height:1.35;text-transform:none}.peak-kpis article.cyan strong{color:var(--console-cyan)}.peak-kpis article.amber strong{color:var(--console-amber)}.peak-kpis article.green strong{color:var(--console-green)}.peak-kpis article.violet strong{color:var(--console-violet)}.peak-status-kpi{border-color:var(--console-line-strong)!important}.peak-status-kpi.normal strong{color:var(--console-green)}.peak-status-kpi.warning strong{color:var(--console-amber)}.peak-status-kpi.shaving strong{color:var(--console-primary)}
.peak-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:9px;padding:0 28px 9px}.peak-panel{min-width:0;padding:16px;border:1px solid var(--console-line);border-radius:8px;background:var(--console-surface);box-shadow:0 10px 28px color-mix(in srgb,var(--console-ink) 10%,transparent)}.peak-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.peak-panel h2{margin:5px 0 0;color:var(--console-ink);font-size:15px;font-weight:400;letter-spacing:-.025em}.peak-panel p{margin:5px 0 0;color:var(--console-muted);font-size:9px;line-height:1.45}.peak-panel-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-primary);background:var(--console-primary-soft);font-size:15px}.peak-chart-legend{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 3px}.peak-chart-legend button{display:inline-flex;align-items:center;gap:5px;padding:5px 6px;border:0;border-radius:5px;color:var(--console-muted);background:transparent;font-family:inherit;font-size:8px;cursor:pointer}.peak-chart-legend button:hover,.peak-chart-legend button:focus-visible{color:var(--console-ink);background:var(--console-primary-soft);outline:none}.peak-chart-legend button.muted{opacity:.35}.peak-chart-legend i{width:7px;height:7px;border-radius:2px;background:var(--console-cyan)}.peak-chart-legend i.grid{background:var(--console-green)}.peak-chart-legend i.target{background:var(--console-primary)}.peak-chart-legend i.warning{background:var(--console-amber)}.peak-chart-frame{min-width:0;margin-top:4px;overflow:hidden}.peak-chart-frame svg{display:block;width:100%;height:auto;min-height:235px;overflow:visible}.peak-chart-gridline{stroke:var(--console-line);stroke-dasharray:3 4;stroke-width:1}.peak-chart-axis{stroke:var(--console-line-strong);stroke-width:1}.peak-chart-label{fill:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.peak-threshold{fill:none;stroke-width:1.3;stroke-dasharray:6 5}.peak-threshold.hard{stroke:var(--console-red);opacity:.72}.peak-threshold.target{stroke:var(--console-primary)}.peak-threshold.warning{stroke:var(--console-amber)}.peak-threshold-label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.peak-threshold-label.hard{fill:var(--console-red)}.peak-threshold-label.target{fill:var(--console-primary)}.peak-threshold-label.warning{fill:var(--console-amber)}.peak-series{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;vector-effect:non-scaling-stroke}.peak-series.load{stroke:var(--console-cyan)}.peak-series.grid{stroke:var(--console-green)}.peak-current-line{stroke:var(--console-line-strong);stroke-dasharray:2 4;stroke-width:1}.peak-current-dot{fill:var(--console-primary);stroke:var(--console-surface);stroke-width:2}.peak-current-label{fill:var(--console-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:800}.peak-chart-summary{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:8px;padding-top:9px;border-top:1px solid var(--console-line);color:var(--console-muted);font-size:8px}.peak-chart-summary span{display:inline-flex;gap:5px}.peak-chart-summary strong{color:var(--console-ink);font-size:9px}
.peak-soc-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--console-muted);font-size:9px}.peak-soc-head strong{color:var(--console-green);font-size:27px;font-weight:300}.peak-soc-track{position:relative;height:10px;margin:12px 0 17px;border-radius:99px;background:var(--console-surface-3);overflow:hidden}.peak-soc-track:after{position:absolute;top:0;bottom:0;left:20%;border-left:1px dashed var(--console-amber);content:"";opacity:.8}.peak-soc-track i{display:block;height:100%;width:68%;border-radius:inherit;background:linear-gradient(90deg,var(--console-amber),var(--console-green));box-shadow:0 0 12px color-mix(in srgb,var(--console-green) 32%,transparent)}.peak-soc-track b{position:absolute;top:-4px;left:20%;height:18px;border-left:1px solid var(--console-amber)}.peak-battery-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px}.peak-battery-stats>div{display:grid;gap:4px;padding:10px;border:1px solid var(--console-line);background:var(--console-surface-2)}.peak-battery-stats span{color:var(--console-muted);font-size:8px}.peak-battery-stats strong{color:var(--console-ink);font-size:13px;font-weight:400}.peak-battery-note{margin-top:12px;padding:10px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-muted);background:var(--console-surface-2);font-size:8px;line-height:1.45}
.peak-lower-grid{grid-template-columns:minmax(0,.95fr) minmax(350px,1.05fr)}.peak-simulation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.peak-simulation-actions .ms-button{min-height:30px;font-size:8px}.peak-simulation-actions>span{margin-left:auto;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.peak-timeline-control{display:grid;gap:7px;margin-top:21px}.peak-timeline-control>span{display:flex;align-items:baseline;justify-content:space-between;color:var(--console-muted);font-size:9px}.peak-timeline-control output{color:var(--console-primary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:900}.peak-timeline-control input{width:100%;accent-color:var(--console-primary);cursor:pointer}.peak-timeline-labels{display:flex;justify-content:space-between;margin-top:5px;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.peak-simulation-readout{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:19px;padding-top:11px;border-top:1px solid var(--console-line);color:var(--console-muted);font-size:9px}.peak-simulation-readout span:first-child{display:inline-flex;align-items:center;gap:7px;color:var(--console-ink)}.peak-simulation-readout i{width:6px;height:6px;border-radius:50%;background:var(--console-green);box-shadow:0 0 8px var(--console-green)}.peak-simulation-readout strong{font-weight:400}.peak-machine-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.peak-machine{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-ink);background:var(--console-surface-2);text-align:left;cursor:pointer}.peak-machine:hover,.peak-machine:focus-visible{border-color:var(--console-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--console-primary) 12%,transparent);outline:none}.peak-machine-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;color:var(--console-cyan);background:var(--console-primary-soft);font-size:15px}.peak-machine-copy{display:grid;min-width:0;gap:3px}.peak-machine-copy strong{overflow:hidden;font-size:9px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.peak-machine-copy small{overflow:hidden;color:var(--console-muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.peak-machine-state{padding:4px 5px;border:1px solid var(--console-green);border-radius:4px;color:var(--console-green);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;font-weight:900}.peak-machine.off{opacity:.58}.peak-machine.off .peak-machine-icon{color:var(--console-muted);background:var(--console-surface-3)}.peak-machine.off .peak-machine-state{border-color:var(--console-line);color:var(--console-muted)}
.peak-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 28px 14px}.peak-results article{min-width:0;padding:12px;border:1px solid var(--console-line);border-radius:7px;background:var(--console-surface-2)}.peak-results span,.peak-results small{display:block;color:var(--console-muted);font-size:8px}.peak-results strong{display:block;margin:8px 0 4px;color:var(--console-ink);font-size:18px;font-weight:300;letter-spacing:-.03em}.peak-results small{line-height:1.35}.peak-demo-disclaimer{display:flex;align-items:center;gap:10px;margin:0 28px 18px;padding:10px 12px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-muted);background:var(--console-surface-2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;line-height:1.45}.peak-demo-disclaimer strong{flex:none;color:var(--console-amber);font-size:8px}
body.demo-runtime.themeOne .peak-header{color:var(--visual-surface);border-color:#ffffff24;background:radial-gradient(circle at 84% 20%,#d8ff4533,transparent 21rem),linear-gradient(122deg,#101512,#19211a 67%,#29352b)}body.demo-runtime.themeOne .peak-header h1{color:var(--visual-surface)}body.demo-runtime.themeOne .peak-header small{color:var(--visual-accent)}body.demo-runtime.themeOne .peak-header p{color:#c2c9c3}body.demo-runtime.themeOne .peak-header .peak-source{color:var(--visual-accent);background:#d8ff4517;border-color:#d8ff4540}body.demo-runtime.themeOne .peak-header .peak-demo-state{color:#b7beb7;background:#ffffff0a;border-color:#ffffff24}body.demo-runtime.themeOne .peak-panel-mark{color:var(--visual-accent);background:#d8ff4517;border-color:#d8ff4540}
@media(max-width:1180px){.peak-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.peak-reset{width:100%}.peak-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.peak-lower-grid,.peak-grid{grid-template-columns:1fr}}
@media(max-width:850px){.peak-header{align-items:flex-start;flex-direction:column;padding:20px 16px 16px}.peak-header-actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.peak-live-strip{align-items:flex-start;flex-direction:column;padding-inline:16px}.peak-control-grid{grid-template-columns:1fr 1fr;padding-inline:16px}.peak-grid{padding-inline:16px}.peak-results{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:16px}.peak-demo-disclaimer{align-items:flex-start;flex-direction:column;margin-inline:16px}.peak-machine-list{grid-template-columns:1fr}.peak-lower-grid{padding-bottom:9px}}
@media(max-width:560px){.peak-control-grid,.peak-kpis,.peak-results{grid-template-columns:1fr 1fr}.peak-control-grid{padding:12px}.peak-kpis{padding:10px}.peak-kpis article{padding:10px}.peak-kpis article strong{font-size:17px}.peak-grid{padding-inline:10px}.peak-panel{padding:12px}.peak-chart-frame svg{min-height:210px}.peak-chart-label{font-size:9px}.peak-chart-summary{gap:6px 10px}.peak-simulation-actions>span{width:100%;margin:3px 0 0}.peak-results{padding-inline:10px}.peak-demo-disclaimer{margin-inline:10px}.peak-header-actions{flex-direction:column}.peak-source,.peak-demo-state{font-size:7px}}
/* Shareable entry points keep each public demo view addressable without changing the console language. */
body.demo-runtime .demo-link-picker{position:relative;z-index:90}
body.demo-runtime .demo-link-picker>summary{display:flex;align-items:center;min-height:29px;padding:0 9px;border:1px solid var(--console-line);border-radius:6px;color:var(--console-muted);background:var(--console-surface-2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:800;letter-spacing:.06em;cursor:pointer;list-style:none;white-space:nowrap}
body.demo-runtime .demo-link-picker>summary::-webkit-details-marker{display:none}
body.demo-runtime .demo-link-picker>summary:hover,body.demo-runtime .demo-link-picker[open]>summary{border-color:var(--console-primary);color:var(--console-ink);background:var(--console-primary-soft);outline:none}
body.demo-runtime .demo-link-menu{position:absolute;top:calc(100% + 8px);right:0;width:218px;display:grid;gap:4px;padding:8px;border:1px solid var(--console-line-strong);border-radius:10px;background:var(--console-surface);box-shadow:0 24px 70px color-mix(in srgb,var(--console-ink) 20%,transparent)}
body.demo-runtime .demo-link-menu-title{padding:4px 8px 7px;border-bottom:1px solid var(--console-line);color:var(--console-muted);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
body.demo-runtime .demo-link-menu a{display:flex;align-items:center;min-height:30px;padding:0 8px;border:1px solid transparent;border-radius:6px;color:var(--console-ink);background:transparent;font-size:9px;font-weight:700;text-decoration:none}
body.demo-runtime .demo-link-menu a:hover,body.demo-runtime .demo-link-menu a:focus-visible,body.demo-runtime .demo-link-menu a.active{border-color:var(--console-line);color:var(--console-primary);background:var(--console-surface-2);outline:none}

/* Mode switch and rail stay in the one-look vocabulary while making the demo boundary explicit. */
body.demo-runtime .demo-mode-control{display:flex;align-items:center;gap:7px;min-width:0}
body.demo-runtime .demo-mode-label{flex:none;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;font-weight:900;letter-spacing:.12em;white-space:nowrap}
body.demo-runtime .demo-mode-hint{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:6px;letter-spacing:.03em;white-space:nowrap}
body.demo-runtime .demo-mode-hint:before{width:4px;height:4px;border-radius:50%;background:var(--console-primary);box-shadow:0 0 0 3px var(--console-primary-soft);content:"";flex:none}
body.demo-runtime .demo-mode-switch{display:flex;flex:1 1 auto;min-width:0;gap:2px;padding:3px;border-color:var(--console-line-strong);border-radius:8px;background:var(--console-surface-2);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--console-primary) 4%,transparent)}
body.demo-runtime .demo-mode-switch button{position:relative;flex:1 1 0;min-width:0;height:29px;padding-inline:8px;border:1px solid transparent;border-radius:5px;color:var(--console-muted);background:transparent;font-size:7px;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}
body.demo-runtime .demo-mode-switch button:after{position:absolute;right:6px;bottom:4px;width:3px;height:3px;border-radius:50%;background:currentColor;content:"";opacity:.22;transition:opacity .18s ease,transform .18s ease}
body.demo-runtime .demo-mode-switch button:hover,body.demo-runtime .demo-mode-switch button:focus-visible{color:var(--console-ink);border-color:var(--console-line);background:var(--console-primary-soft);outline:none;transform:translateY(-1px)}
body.demo-runtime .demo-mode-switch button.active{color:var(--visual-accent-ink);border-color:var(--visual-accent);background:var(--visual-accent);box-shadow:0 5px 14px color-mix(in srgb,var(--visual-accent) 22%,transparent)}
body.demo-runtime .demo-mode-switch button.active:after{opacity:.75;transform:scale(1.35)}
body.demo-runtime .demo-rail-target{scroll-margin-top:88px}
body.demo-runtime .demo-anchor:not([hidden]){animation:pernice-demo-mode-in .28s ease both}
@keyframes pernice-demo-mode-in{from{opacity:.82;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:850px){body.demo-runtime .demo-mode-label,body.demo-runtime .demo-mode-hint{display:none}body.demo-runtime .demo-mode-control{min-width:0}body.demo-runtime .demo-mode-switch button{padding-inline:6px}}
@media(max-width:560px){body.demo-runtime .demo-workbar{height:auto;min-height:94px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search actions" "mode mode";align-content:center;gap:6px 8px;padding-top:7px;padding-bottom:7px}body.demo-runtime .demo-global-search{grid-area:search}body.demo-runtime .demo-workbar-actions{grid-area:actions}body.demo-runtime .demo-mode-control{grid-area:mode;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"label hint" "switch switch";gap:3px 8px;width:100%}body.demo-runtime .demo-mode-label{display:block;grid-area:label;font-size:6px}body.demo-runtime .demo-mode-hint{display:inline-flex;grid-area:hint;justify-self:end;font-size:6px}body.demo-runtime .demo-mode-switch{grid-area:switch;width:100%}body.demo-runtime .demo-mode-switch button{height:27px;padding-inline:3px;font-size:6px}body.demo-runtime .demo-mode-switch button:after{right:4px;bottom:3px}}
@media(prefers-reduced-motion:reduce){body.demo-runtime .demo-anchor:not([hidden]),body.demo-runtime .demo-mode-switch button{animation:none;transition:none}}

/*
 * Pernice ONE contrast guard.
 * The runtime is intentionally rendered on the light one-surface. A number
 * of legacy dark-console descendants kept their pale text overrides after
 * the surface migration; keep all measurable values and their units readable
 * without changing the approved one palette.
 */
body.demo-runtime .energy-kpis strong,
body.demo-runtime .commercial-kpis strong,
body.demo-runtime .system-grid>article>strong,
body.demo-runtime .clevr-room-body>strong,
body.demo-runtime .event-card strong,
body.demo-runtime .commercial-comparison strong,
body.demo-runtime .tenant-list h3,
body.demo-runtime .tenant-compare h3,
body.demo-runtime .parking-layout h3,
body.demo-runtime .storage-grid h3,
body.demo-runtime .media-grid h3,
body.demo-runtime .tenant-list article>strong,
body.demo-runtime .tenant-rank,
body.demo-runtime .tenant-bars strong,
body.demo-runtime .storage-grid>article>strong,
body.demo-runtime .storage-grid footer b,
body.demo-runtime .media-grid strong,
body.demo-runtime .forecast-results strong {
  color:var(--console-ink);
}

body.demo-runtime .energy-kpis span,
body.demo-runtime .energy-kpis small,
body.demo-runtime .clevr-room-body>div span,
body.demo-runtime .clevr-room-body li,
body.demo-runtime .system-grid dt,
body.demo-runtime .system-grid dd,
body.demo-runtime .security-state p,
body.demo-runtime .security-state li,
body.demo-runtime .event-card time,
body.demo-runtime .event-card li small,
body.demo-runtime .event-head>span,
body.demo-runtime .commercial-kpis span,
body.demo-runtime .commercial-kpis small,
body.demo-runtime .commercial-chart-card header small,
body.demo-runtime .commercial-chart>div,
body.demo-runtime .commercial-comparison span,
body.demo-runtime .commercial-comparison small,
body.demo-runtime .tenant-list article small,
body.demo-runtime .tenant-list article>em,
body.demo-runtime .tenant-compare small,
body.demo-runtime .tenant-compare footer,
body.demo-runtime .tenant-bars div,
body.demo-runtime .parking-layout small,
body.demo-runtime .parking-occupancy ul,
body.demo-runtime .occupancy-ring span,
body.demo-runtime .storage-grid small,
body.demo-runtime .storage-grid p,
body.demo-runtime .storage-grid footer,
body.demo-runtime .storage-grid>article>strong i,
body.demo-runtime .media-grid small,
body.demo-runtime .media-grid p,
body.demo-runtime .media-grid em,
body.demo-runtime .forecast-results span,
body.demo-runtime .forecast-results small,
body.demo-runtime .scene-grid small {
  color:var(--console-muted);
}

body.demo-runtime .system-grid dl div,
body.demo-runtime .commercial-comparison article,
body.demo-runtime .load-budget div,
body.demo-runtime .charge-points span,
body.demo-runtime .forecast-results article {
  border-color:var(--console-line);
  background:var(--console-surface-2);
}

body.demo-runtime .load-budget div {
  color:var(--console-ink);
}

body.demo-runtime .load-budget div span {
  color:var(--console-muted);
}

body.demo-runtime .commercial-comparison article {
  color:var(--console-ink);
}

body.demo-runtime .charge-points span {
  color:var(--console-ink);
  background:linear-gradient(0deg,var(--console-primary-soft) var(--load),var(--console-surface-2) var(--load));
}

body.demo-runtime .occupancy-ring {
  color:var(--console-ink);
  background:radial-gradient(circle,var(--console-surface) 56%,transparent 58%),conic-gradient(var(--console-cyan) var(--ring),var(--console-surface-2) 0);
}

body.demo-runtime .storage-grid header>span,
body.demo-runtime .media-grid>article>span,
body.demo-runtime .security-state li span,
body.demo-runtime .scene-grid button>span {
  background:var(--console-primary-soft);
}

body.demo-runtime .campus-map article span {
  background:transparent;
}

body.demo-runtime .demo-nav {
  background:var(--console-surface-2);
}

body.demo-runtime.themeOne .demo-rail-logo,
body.demo-runtime.themeOne .demo-rail-logo small,
body.demo-runtime .demo-edge-state,
body.demo-runtime .demo-nav button:not(.active) {
  color:var(--console-ink);
}

body.demo-runtime .campus-flow-node>span {
  color:var(--visual-surface);
}

body.demo-runtime .campus-flow-node.pv>span,
body.demo-runtime .campus-flow-center em {
  color:var(--visual-accent);
}

body.demo-runtime .campus-flow-node small,
body.demo-runtime .campus-flow-node em,
body.demo-runtime .campus-flow-center span,
body.demo-runtime .campus-flow-center small {
  color:var(--visual-surface);
}

body.demo-runtime.themeOne .leitstand-kpis article strong {
  color:var(--console-ink)!important;
}

body.demo-runtime .flow-node.solar span {
  color:var(--visual-accent);
}

body.demo-runtime .flow-node.grid span,
body.demo-runtime .flow-node.battery span,
body.demo-runtime .flow-node.car span {
  color:var(--visual-surface);
}

body.demo-runtime .security-ring {
  color:var(--visual-accent);
}

body.demo-runtime .section-title.scene-title small {
  color:var(--console-muted);
}

body.demo-runtime .event-icon.energy {
  color:var(--console-amber);
}

body.demo-runtime.themeOne .peak-panel-mark {
  color:var(--console-ink);
}

body.demo-runtime .chart-legend span {
  color:var(--console-muted);
}

/* Mode-aware demo controls: inputs stay inside the ONE console vocabulary and never reach production devices. */
body.demo-runtime .demo-scenario-panel{margin:0 0 14px;border:1px solid var(--console-line);border-radius:8px;background:var(--console-surface);box-shadow:var(--console-shadow);color:var(--console-ink)}
body.demo-runtime .demo-scenario-panel>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 13px;color:var(--console-ink);background:var(--console-surface-2);cursor:pointer;list-style:none}
body.demo-runtime .demo-scenario-panel>summary::-webkit-details-marker{display:none}
body.demo-runtime .demo-scenario-panel>summary:hover,body.demo-runtime .demo-scenario-panel[open]>summary{background:var(--console-primary-soft)}
body.demo-runtime .demo-scenario-summary-icon{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--console-line-strong);border-radius:6px;color:var(--visual-accent-ink);background:var(--visual-accent);font-size:16px;font-weight:900;flex:none}
body.demo-runtime .demo-scenario-panel>summary>span:nth-child(2){display:grid;gap:3px;min-width:0}
body.demo-runtime .demo-scenario-panel>summary small{color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;font-weight:900;letter-spacing:.13em}
body.demo-runtime .demo-scenario-panel>summary strong{color:var(--console-ink);font-size:12px;font-weight:800}
body.demo-runtime .demo-scenario-summary-state{margin-left:auto;color:var(--console-muted);font-size:17px;transition:transform .18s ease}
body.demo-runtime .demo-scenario-panel[open] .demo-scenario-summary-state{transform:rotate(180deg)}
body.demo-runtime .demo-scenario-body{padding:13px;border-top:1px solid var(--console-line)}
body.demo-runtime .demo-scenario-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
body.demo-runtime .demo-scenario-heading>div{min-width:0}
body.demo-runtime .demo-scenario-heading small{color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;font-weight:900;letter-spacing:.14em}
body.demo-runtime .demo-scenario-heading h2{margin:4px 0 3px;color:var(--console-ink);font-size:16px;font-weight:600;letter-spacing:-.02em}
body.demo-runtime .demo-scenario-heading p{max-width:760px;margin:0;color:var(--console-muted);font-size:9px;line-height:1.45}
body.demo-runtime .demo-scenario-mode{padding:6px 8px;border:1px solid var(--console-line);border-radius:5px;color:var(--visual-accent-ink);background:var(--visual-accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;font-weight:900;letter-spacing:.08em;white-space:nowrap}
body.demo-runtime .demo-scenario-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.demo-runtime .demo-scenario-control{display:grid;align-content:start;gap:6px;min-width:0;padding:10px;border:1px solid var(--console-line);border-radius:7px;background:var(--console-surface-2)}
body.demo-runtime .demo-scenario-control>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
body.demo-runtime .demo-scenario-control output{color:var(--console-ink);font-size:10px;letter-spacing:0;white-space:nowrap}
body.demo-runtime .demo-scenario-control select{width:100%;min-height:32px;padding:0 8px;border:1px solid var(--console-line-strong);border-radius:5px;color:var(--console-ink);background:var(--console-surface);font-family:inherit;font-size:9px;outline:none}
body.demo-runtime .demo-scenario-control input[type=range]{width:100%;accent-color:var(--visual-accent);cursor:pointer}
body.demo-runtime .demo-scenario-control select:focus-visible,body.demo-runtime .demo-scenario-control input:focus-visible{border-color:var(--visual-accent);box-shadow:0 0 0 3px var(--visual-accent-soft);outline:none}
body.demo-runtime .demo-scenario-control small{min-height:22px;color:var(--console-muted);font-size:8px;line-height:1.35}
body.demo-runtime .demo-scenario-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid var(--console-line);color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}
body.demo-runtime .demo-scenario-footer .ms-button{min-height:29px;padding-inline:10px;color:var(--console-ink);border-color:var(--console-line);background:var(--console-surface-2);font-size:8px}
body.demo-runtime .demo-scenario-footer .ms-button:hover,body.demo-runtime .demo-scenario-footer .ms-button:focus-visible{border-color:var(--visual-accent);background:var(--visual-accent-soft);outline:none}
body.demo-runtime .demo-scenario-footer .ms-button.secondary:hover,body.demo-runtime .demo-scenario-footer .ms-button.secondary:focus-visible{color:var(--console-ink);border-color:var(--visual-accent);background:var(--visual-accent);}
body.demo-runtime .demo-scenario-callout{display:flex;align-items:center;gap:9px;min-height:57px;padding:10px;border:1px solid var(--console-line);border-radius:7px;color:var(--console-muted);background:var(--console-surface-2);font-size:9px;line-height:1.4}
body.demo-runtime .demo-scenario-callout strong{flex:none;color:var(--console-ink);font-size:9px}
body.demo-runtime .demo-scenario-callout span{min-width:0}
body.demo-runtime .demo-scenario-callout button{margin-left:auto;min-height:29px;padding-inline:10px;color:var(--visual-accent-ink);border:1px solid var(--visual-accent);border-radius:5px;background:var(--visual-accent);font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}
body.demo-runtime .demo-scenario-callout button:hover,body.demo-runtime .demo-scenario-callout button:focus-visible{filter:brightness(.96);outline:3px solid var(--visual-accent-soft)}
@media(max-width:980px){body.demo-runtime .demo-scenario-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){body.demo-runtime .demo-scenario-heading{display:grid;gap:8px}body.demo-runtime .demo-scenario-mode{justify-self:start}body.demo-runtime .demo-scenario-controls{grid-template-columns:1fr}body.demo-runtime .demo-scenario-footer{align-items:flex-start;flex-direction:column}body.demo-runtime .demo-scenario-footer .ms-button{width:100%}body.demo-runtime .demo-scenario-callout{align-items:flex-start;flex-direction:column}body.demo-runtime .demo-scenario-callout button{width:100%;margin:0}}
@media(prefers-reduced-motion:reduce){body.demo-runtime .demo-scenario-summary-state{transition:none}}

.edgeVisualPage .edgeDashboardBuilder{display:grid;gap:12px}
.edgeVisualPage .edgeDashboardBuilderMeta{display:flex;flex-wrap:wrap;gap:7px;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:800;letter-spacing:.04em}
.edgeVisualPage .edgeDashboardBuilderMeta span{padding:7px 9px;border:1px solid var(--console-line);border-radius:6px;background:var(--console-surface-2)}
.edgeVisualPage .edgeDashboardBuilderMeta strong{color:var(--console-ink)}
.edgeVisualPage .edgeDashboardWidgetList{display:grid;gap:8px}
.edgeVisualPage .edgeDashboardWidgetList article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px 11px;border:1px solid var(--console-line);border-radius:8px;background:var(--console-surface-2);color:var(--console-ink);transition:border-color .16s ease,background .16s ease,transform .16s ease}
.edgeVisualPage .edgeDashboardWidgetList article:hover{border-color:var(--console-line-strong);background:var(--console-surface)}
.edgeVisualPage .edgeDashboardWidgetList article:active{transform:translateY(1px)}
.edgeVisualPage .edgeDashboardWidgetList article>svg{color:var(--console-muted);cursor:grab}
.edgeVisualPage .edgeDashboardWidgetList article>span{display:grid;gap:3px;min-width:0}
.edgeVisualPage .edgeDashboardWidgetList article>span strong{overflow:hidden;color:var(--console-ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.edgeVisualPage .edgeDashboardWidgetList article>span small{overflow:hidden;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.edgeVisualPage .edgeDashboardWidgetList .buttonRow{justify-content:flex-end}
.edgeVisualPage .edgeDashboardWidgetList .iconBtn{min-width:30px;min-height:30px;padding:0;border:1px solid var(--console-line);border-radius:6px;color:var(--console-ink);background:var(--console-surface);font-size:13px}
.edgeVisualPage .edgeDashboardWidgetList .iconBtn:hover:not(:disabled),.edgeVisualPage .edgeDashboardWidgetList .iconBtn:focus-visible:not(:disabled){border-color:var(--visual-accent);background:var(--visual-accent-soft);outline:none}
.edgeVisualPage .edgeDashboardWidgetList .iconBtn.danger:hover:not(:disabled),.edgeVisualPage .edgeDashboardWidgetList .iconBtn.danger:focus-visible:not(:disabled){border-color:var(--console-red);color:var(--console-red);background:var(--console-red-soft)}
@media(max-width:620px){.edgeVisualPage .edgeDashboardWidgetList article{grid-template-columns:auto minmax(0,1fr)}.edgeVisualPage .edgeDashboardWidgetList .buttonRow{grid-column:2;justify-content:flex-start}}

body:not(.demo-runtime) .visual-layout-panel{display:grid;gap:12px;margin:0 0 30px;padding:15px;border:1px solid var(--console-line);border-radius:15px;background:var(--console-surface);box-shadow:var(--console-shadow)}
body:not(.demo-runtime) .visual-layout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
body:not(.demo-runtime) .visual-layout-head>div{min-width:0}
body:not(.demo-runtime) .visual-layout-head h2{margin:5px 0;color:var(--console-ink);font-size:19px;letter-spacing:-.025em}
body:not(.demo-runtime) .visual-layout-head p{max-width:600px;margin:0;color:var(--console-muted);font-size:10px;line-height:1.45}
body:not(.demo-runtime) .visual-layout-head .secondary-button{min-height:32px;padding:0 11px;border:1px solid var(--console-line-strong);border-radius:6px;color:var(--console-ink);background:var(--console-surface-2);font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap}
body:not(.demo-runtime) .visual-layout-head .secondary-button:hover,body:not(.demo-runtime) .visual-layout-head .secondary-button:focus-visible{border-color:var(--visual-accent);background:var(--visual-accent-soft);outline:none}
body:not(.demo-runtime) .visual-layout-widgets{display:grid;gap:7px}
body:not(.demo-runtime) .visual-layout-widgets article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:1px solid var(--console-line);border-radius:7px;background:var(--console-surface-2);transition:border-color .16s ease,background .16s ease,transform .16s ease}
body:not(.demo-runtime) .visual-layout-widgets article:hover,body:not(.demo-runtime) .visual-layout-widgets article.dragging{border-color:var(--console-line-strong);background:var(--console-surface);transform:translateY(-1px)}
body:not(.demo-runtime) .visual-layout-grip{color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;letter-spacing:-.2em;cursor:grab;user-select:none}
body:not(.demo-runtime) .visual-layout-label{display:grid;gap:3px;min-width:0}
body:not(.demo-runtime) .visual-layout-label strong{overflow:hidden;color:var(--console-ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
body:not(.demo-runtime) .visual-layout-label small{overflow:hidden;color:var(--console-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
body:not(.demo-runtime) .visual-layout-widgets .iconBtn{min-width:30px;min-height:30px;padding:0;border:1px solid var(--console-line);border-radius:6px;color:var(--console-ink);background:var(--console-surface);cursor:pointer}
body:not(.demo-runtime) .visual-layout-widgets .iconBtn:hover:not(:disabled),body:not(.demo-runtime) .visual-layout-widgets .iconBtn:focus-visible:not(:disabled){border-color:var(--visual-accent);background:var(--visual-accent-soft);outline:none}
body:not(.demo-runtime) #layoutEditButton.active{border-color:var(--visual-accent);color:var(--visual-accent-ink);background:var(--visual-accent)}
@media(max-width:620px){body:not(.demo-runtime) .visual-layout-head{align-items:stretch;flex-direction:column}body:not(.demo-runtime) .visual-layout-head .secondary-button{align-self:flex-start}body:not(.demo-runtime) .visual-layout-widgets article{grid-template-columns:auto minmax(0,1fr)}body:not(.demo-runtime) .visual-layout-widgets .buttonRow{grid-column:2;justify-content:flex-start}}


/* Mieterstrom-Foerderung und Faktura-Muster */
body.demo-runtime .ms-subsidy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
body.demo-runtime .ms-subsidy-summary article{display:grid;align-content:start;gap:6px;min-width:0;padding:12px;border:1px solid var(--console-line);border-radius:7px;color:var(--console-ink);background:var(--console-surface-2)}
body.demo-runtime .ms-subsidy-summary article.tenant-effect{border-color:var(--console-primary)}
body.demo-runtime .ms-subsidy-summary small{color:var(--console-muted);font-size:8px;font-weight:900;letter-spacing:.1em;line-height:1.35}
body.demo-runtime .ms-subsidy-summary strong{color:var(--console-ink);font-size:12px;line-height:1.35}
body.demo-runtime .ms-subsidy-summary .tenant-effect>strong{color:var(--console-green);font-size:20px;font-weight:500}
body.demo-runtime .ms-subsidy-summary span{color:var(--console-muted);font-size:8px;line-height:1.5}
body.demo-runtime .ms-subsidy-summary span b{color:var(--console-ink)}
body.demo-runtime .ms-invoice-link{display:inline-flex;align-items:center;justify-content:center;min-height:31px;margin-top:3px;padding:0 10px;border:1px solid var(--console-primary);border-radius:6px;color:var(--visual-on-primary);background:var(--console-primary);font-size:8px;font-weight:900;letter-spacing:.04em;text-decoration:none}
body.demo-runtime .ms-invoice-link:hover,body.demo-runtime .ms-invoice-link:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--console-primary) 15%,transparent);outline:none}
body.demo-runtime .ms-bill-panel dd.wrap{max-width:58%;white-space:normal}
@media(max-width:900px){body.demo-runtime .ms-subsidy-summary{grid-template-columns:1fr 1fr}body.demo-runtime .ms-subsidy-summary .tenant-effect{grid-column:1/-1}}
@media(max-width:560px){body.demo-runtime .ms-subsidy-summary{grid-template-columns:1fr}body.demo-runtime .ms-subsidy-summary .tenant-effect{grid-column:auto}body.demo-runtime .ms-bill-panel dl>div{align-items:flex-start}body.demo-runtime .ms-bill-panel dd.wrap{max-width:55%}}
