/* Midnight Pulse / Nordic Precision. Shared tokens keep every module consistent. */
:root {
 color-scheme: dark;
 --bg:#080f18; --bg-main:#0b131e; --card:#101d2b; --text:#eef5fc; --muted:#9eafc5;
 --border:rgba(146,180,211,.14); --border-strong:rgba(146,180,211,.25);
 --accent:#38e3d1; --accent-hover:#84f7e9; --accent-soft:rgba(56,227,209,.12);
 --nav-cta:#13776e; --nav-cta-hover:#199b8e; --nav-cta-active:#13776e;
 --sidebar-bg1:#0c1723; --sidebar-bg2:#0b1420; --sidebar-active-bg:rgba(56,227,209,.12);
 --sidebar-active-border:#38e3d1; --ok:#57e4ad; --warn:#ffc777; --danger:#ff8c9f;
 --focus:#38e3d1; --radius:18px; --fs-body:1rem;
 --card-glass:linear-gradient(145deg,#122131,#101b29);
 --shadow-card:0 12px 36px rgba(0,0,0,.14); --shadow-card-hover:0 18px 46px rgba(0,0,0,.22);
 --pulse-grid:rgba(158,175,197,.13); --pulse-secondary:#7d9bbd;
}
:root[data-theme=light] {
 color-scheme:light; --bg:#eef3fa; --bg-main:#f5f8fd; --card:#fff; --text:#14233d; --muted:#526783;
 --border:rgba(35,65,110,.12); --border-strong:rgba(35,65,110,.22);
 --accent:#165eea; --accent-hover:#104bbd; --accent-soft:rgba(22,94,234,.09);
 --ok:#147a55; --warn:#915300; --danger:#bf2949; --focus:#165eea;
 --card-glass:linear-gradient(145deg,#fff,#f9fbff); --shadow-card:0 8px 28px rgba(32,67,115,.06);
 --shadow-card-hover:0 14px 38px rgba(32,67,115,.12); --pulse-grid:rgba(35,65,110,.1); --pulse-secondary:#43aeb3;
}
body {font-family: 'Segoe UI',system-ui,sans-serif; font-variant-numeric:tabular-nums;}
.body--app .app-main {box-shadow:none;background:radial-gradient(ellipse at 85% 0%,var(--accent-soft),transparent 42%),var(--bg-main);}
.app-sidebar {border-right:1px solid var(--border);box-shadow:none;}
.app-sidebar__logo {letter-spacing:-.05em;font-size:1.8rem;}
.app-sidebar__logo::before {content:'⌂';color:#38e3d1;margin-right:.6rem;}
.app-sidebar__toggle {background:var(--card);color:var(--text);border-color:var(--border-strong);}
.app-sidebar__toggle-bars span {background:var(--accent);}
.app-nav-link.is-active {box-shadow:inset 3px 0 #38e3d1;}
.app-page-head {background:transparent;border-bottom:1px solid var(--border);padding-top:2rem;padding-bottom:1.5rem;}
.app-page-head__title {letter-spacing:-.045em;font-weight:750;font-size:clamp(1.8rem,3.2vw,2.8rem);color:var(--text);}
.app-page-head__subtitle {color:var(--muted);}
.app-content {padding-top:1.8rem;}
.card,.app-card,.analyse-card.analyse-card,.analyse-kpi,.analyse-kpi-card,.analyse-chart-panel,.reading-card {background:var(--card-glass);border:1px solid var(--border);box-shadow:var(--shadow-card);}
.app-card__head,.help-tip__popover,.table-action-btn,.detail-prev,.reading-cost-segment {background:var(--card);color:var(--text);border-color:var(--border);}
.analyse-kpi-card__icon,.analyse-chart-toggle {background:var(--accent-soft);}
.analyse-kpi-card__value {font-size:clamp(1.4rem,2.3vw,2rem);color:var(--text);}
.analyse-kpi-trend--good {color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent);}
.analyse-kpi-trend--bad {color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);}
.analyse-kpi-trend--flat {background:var(--accent-soft);}
h1,h2,h3,.app-card__title,.analyse-card__title,.analyse-kpi__title {color:var(--text);letter-spacing:-.025em;}
.analyse-kpi__value {color:var(--accent);font-size:2.3rem;}
.muted,.app-card__meta,.filter-bar__kpi,.stat-year-hint,.analyse-card__lead {color:var(--muted);}
.filter-bar__kpi {background:var(--accent-soft);border-color:var(--border-strong);color:var(--text);box-shadow:none;}
.filter-bar__kpi strong {color:var(--accent);font-weight:700;}
.stat-year-hint {opacity:1;}
.help-tip__button {background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent);opacity:1;}
.table-action-btn[disabled],.table-action-btn[aria-disabled="true"] {background:var(--card);border-color:var(--border);color:var(--muted);opacity:.7;}
.analyse-info-box,.analyse-toolbar,.dashboard-page__meta,.app-badge--muted,.pill {background:var(--accent-soft);color:var(--text);border-color:var(--border);}
input:not([type=checkbox]):not([type=radio]),select,textarea {background:var(--bg-main);border:1px solid var(--border-strong);color:var(--text);border-radius:10px;}
input::placeholder,textarea::placeholder {color:var(--muted);}
.btn,button[type=submit] {background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:none;}
:root[data-theme=light] .btn,:root[data-theme=light] button[type=submit] {color:#fff;}
.btn--secondary,.btn--ghost,.analyse-chart-toggle__btn {background:var(--accent-soft);border:1px solid var(--border-strong);color:var(--text);}
.analyse-chart-toggle__btn.is-active {background:var(--accent);color:var(--bg);}
.data-table th,.app-table th {background:var(--accent-soft);color:var(--muted);border-color:var(--border);font-size:.78rem;letter-spacing:.04em;}
.data-table td,.app-table td {color:var(--text);border-color:var(--border);padding-top:1rem;padding-bottom:1rem;}
.data-table tbody tr:nth-child(even),.app-table tbody tr:nth-child(even) {background:transparent;}
.data-table tbody tr:hover,.app-table tbody tr:hover {background:var(--accent-soft);}
.data-table tfoot,.data-table tfoot td {background:var(--accent-soft);color:var(--text);}
.table-wrap,.app-table-wrap {border-color:var(--border);border-radius:12px;}
.app-badge--success,.alert--ok {color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--card));}
.alert--warn,.app-badge--warning {color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--card));}
.alert--error {color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--card));}
.module-pick-card {background:var(--card-glass);border:1px solid var(--border);min-height:240px;box-shadow:var(--shadow-card);transition:transform .2s,border-color .2s,box-shadow .2s;}
.module-pick-card::before {background:radial-gradient(ellipse at 10% 0%,var(--accent-soft),transparent 75%);opacity:1;}
.module-pick-card::after {background:none;}
.module-pick-card:hover {transform:translateY(-5px);border-color:var(--accent);box-shadow:var(--shadow-card-hover);}
.module-pick-card__title,.module-pick-card:hover .module-pick-card__title {color:var(--text);}
.module-pick-card__desc {color:var(--muted);display:block!important;}
.module-pick-card__icon-wrap,.module-pick-card__cta {background:var(--accent-soft);color:var(--accent);border-color:var(--border);}
.module-pick-card:hover .module-pick-card__cta,.module-pick-card:focus-visible .module-pick-card__cta {background:var(--accent-soft);color:var(--accent);}
.module-pick-card--theme-heizung {--accent:#ffc777;--accent-soft:rgba(255,199,119,.1);}
.module-pick-card--theme-haus {--accent:#95acff;--accent-soft:rgba(149,172,255,.1);}
:root[data-theme=light] .module-pick-card--theme-heizung {--accent:#aa600b;}
:root[data-theme=light] .module-pick-card--theme-haus {--accent:#6953cc;}
.heizung-subnav__link {color:var(--muted);background:transparent;}
.heizung-subnav__link.is-active,.heizung-subnav__link:hover {background:var(--accent-soft);color:var(--accent);border-color:var(--border);}
.site-footer {color:var(--muted);border-color:var(--border);}
.pulse-theme {width:100%;padding:.8rem 1rem;margin-bottom:1rem;border:1px solid #304358;border-radius:12px;background:#162638;color:#d5e7f6;cursor:pointer;text-align:left;}
.pulse-theme::before {content:'◐';color:#38e3d1;margin-right:.7rem;}
.pulse-live {font-size:.8rem;color:var(--muted);display:inline-flex;gap:.5rem;align-items:center;}
.pulse-live span {width:7px;height:7px;background:var(--ok);border-radius:50%;box-shadow:0 0 12px var(--ok);}
.pulse-tools {display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;padding:.8rem 0;}
.pulse-tools label {font-size:.8rem;color:var(--muted);}
.pulse-tools input {width:min(100%,260px);padding:.65rem .8rem;}
.pulse-tools select {padding:.65rem;}
.pulse-tools button,.pulse-sort {cursor:pointer;}
.pulse-tools button {padding:.55rem .8rem;border:1px solid var(--border-strong);border-radius:9px;background:var(--accent-soft);color:var(--text);}
.pulse-tools button[aria-pressed=true] {background:var(--accent);color:var(--bg);}
:root[data-theme=light] .pulse-tools button[aria-pressed=true],:root[data-theme=light] .analyse-chart-toggle__btn.is-active {color:#fff;}
.pulse-count {font-size:.8rem;color:var(--muted);margin-left:auto;}
.pulse-sort {background:transparent;color:inherit;border:0;font:inherit;padding:0;text-align:left;display:inline-flex;gap:.5rem;align-items:center;}
.pulse-sort::after {content:'↕';color:var(--accent);}
th[aria-sort=ascending] .pulse-sort::after {content:'↑';}
th[aria-sort=descending] .pulse-sort::after {content:'↓';}
.pulse-empty {padding:1rem;color:var(--muted);}
.heimlog-table [hidden]{display:none!important;}
.heimlog-table .pulse-sort{color:inherit;font:inherit;line-height:1.5;min-height:30px;text-align:inherit;white-space:normal;}
.heimlog-table .pulse-sort:focus-visible,.heimlog-columns summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px;}
.heimlog-table-tools{position:relative;gap:.6rem;margin-bottom:.5rem;}
.heimlog-columns{font-size:.78rem;color:var(--text);}
.heimlog-columns summary{cursor:pointer;list-style:none;padding:.6rem .85rem;border:1px solid var(--border-strong);border-radius:9px;background:var(--accent-soft);width:fit-content;user-select:none;}
.heimlog-columns summary::-webkit-details-marker{display:none;}
.heimlog-columns summary::after{content:'⌄';margin-left:.65rem;color:var(--accent);}
.heimlog-columns[open]{flex-basis:100%;order:10;}
.heimlog-columns[open] summary::after{content:'⌃';}
.heimlog-columns-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem 1rem;padding:1rem;margin-top:.65rem;border:1px solid var(--border);border-radius:12px;background:var(--card);}
.heimlog-columns-list label{display:flex;align-items:center;gap:.65rem;cursor:pointer;min-width:0;font-size:.8rem;color:var(--text);}
.heimlog-columns-list input[type=checkbox]{width:17px;height:17px;min-height:17px;padding:0;margin:0;accent-color:var(--accent);flex:none;}
.heimlog-columns-list input:disabled+span{opacity:.6;}
.heimlog-table th[aria-sort]{color:var(--accent);}
@media print{.heimlog-table-tools{display:none!important;}}
.analyse-bottom-grid {grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.5rem;}
.analyse-bottom-grid > :last-child {grid-column:1 / -1;}
.pulse-tools button:disabled {opacity:.4;cursor:default;}
.table-wrap--analyse {overflow-x:auto;}
.analyse-toolbar {border-radius:12px;background:transparent;}
[hidden] {display:none!important;}
:focus-visible {outline:2px solid var(--focus);outline-offset:4px;}
@media(max-width:720px) {.analyse-bottom-grid {grid-template-columns:1fr;}.analyse-bottom-grid > :last-child {grid-column:auto;}}
@media(max-width:720px) {table.data-table.pulse-table.pulse-table {display:table;min-width:560px;}body:has(table.pulse-table) .reading-cards {display:none;}}
@media(max-width:650px) {.app-page-head {padding-top:1rem;}.module-pick-card {min-height:180px;}.pulse-count {width:100%;margin-left:0;}.pulse-tools input {width:100%;}.pulse-tools {align-items:stretch;}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
@media print {:root {--text:#111;--muted:#444;--card:#fff;--bg-main:#fff;--card-glass:#fff;color-scheme:light;}.pulse-tools,.pulse-theme {display:none;}}

/* The reference's composition: three compact signals, two visualizations, one table. */
:root {--sidebar-width:216px;--font:'Segoe UI Variable Text','Segoe UI',system-ui,sans-serif;--fs-body:.9375rem;--fs-small:.8125rem;--radius:13px;--pulse-bright:#3de5d4;}
body {font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;}
.app-sidebar {height:100dvh;min-height:100dvh;max-height:100dvh;background:linear-gradient(165deg,#0e1b28,#0a1420 70%);}
.app-sidebar__logo {display:flex;align-items:center;gap:.65rem;font-size:1.4rem;font-weight:650;letter-spacing:-.04em;}
.app-sidebar__logo::before {content:none;}
.app-sidebar__logo>svg {width:34px;height:34px;color:#43e1e6;flex:none;}
.app-sidebar__brand {padding:1.4rem 1.2rem 1.1rem;}
.pulse-brand-note {color:#7f98b2;font-size:.7rem;margin:.35rem 0 0 2.8rem;}
.app-sidebar__tenant {font-size:.66rem;margin-top:.8rem;font-weight:400;}
.app-nav-group__label {font-size:.58rem;font-weight:500;letter-spacing:.12em;}
.app-sidebar__nav {padding:.7rem .65rem;}
.app-nav-link {padding:.75rem .7rem;gap:.8rem;font-size:.84rem;font-weight:450;border-radius:8px;}
.app-nav-link__icon {width:19px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;}
.app-nav-link__icon svg {width:19px;height:19px;}
.app-sidebar__footer {padding:.9rem 1rem;border-color:var(--border);}
.app-sidebar__user {font-weight:450;font-size:.75rem;}
.app-sidebar__logout {font-size:.75rem;}
.pulse-theme {font-size:.76rem;padding:.65rem .8rem;}
.app-page-head {box-shadow:none;backdrop-filter:none;position:relative;}
.pulse-workspace .app-page-head {display:flex;flex-wrap:wrap;align-items:center;padding:1.5rem 1.7rem 1.2rem;border:0;gap:1rem;}
.pulse-workspace .app-page-head__text {flex:1 1 290px;}
.pulse-workspace .app-page-head__text>.pulse-live {font-size:.57rem;letter-spacing:.13em;margin:0 0 .5rem;color:var(--muted);}
.pulse-workspace .app-page-head__title {font-family:'Segoe UI Variable Display',var(--font);font-size:clamp(1.6rem,2.45vw,2.25rem);font-weight:700;letter-spacing:-.035em;}
.pulse-workspace .app-page-head__subtitle {font-size:.94rem;margin-top:.45rem;color:#a0b7d0;}
:root[data-theme=light] .pulse-workspace .app-page-head__subtitle {color:var(--muted);}
.pulse-workspace .app-content {padding:0 1.7rem 1.5rem;max-width:1660px;margin:0 auto;width:100%;}
.pulse-workspace .site-footer {border:0;font-size:.65rem;opacity:.65;padding:.5rem;}
.energy-toolbar {display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;font-size:.76rem;}
.energy-toolbar button,.energy-toolbar a,.energy-toolbar select {font-family:var(--font);font-size:.76rem;}
.energy-year {display:flex;align-items:center;gap:.4rem;border:1px solid var(--border-strong);background:var(--card);border-radius:9px;padding:0 .6rem;color:var(--muted);}
.energy-year svg {width:16px;height:16px;}
.energy-year select {padding:.65rem .4rem;background:transparent;border:0;border-radius:0;min-width:66px;font-weight:550;}
.energy-segment {display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg-main);}
.energy-segment button {background:none;border:0;color:var(--muted);padding:.55rem .8rem;border-radius:7px;cursor:pointer;transition:background .18s,color .18s;}
.energy-segment button[aria-pressed=true] {background:#1f4057;color:#e0f3ff;box-shadow:inset 0 0 0 1px #345771,0 2px 4px #0002;}
:root[data-theme=light] .energy-segment button[aria-pressed=true] {background:var(--accent);color:white;box-shadow:none;}
.energy-switch {display:flex;align-items:center;gap:.45rem;cursor:pointer;white-space:nowrap;position:relative;font-size:.72rem;}
.energy-switch input {position:absolute;opacity:0;width:1px;height:1px;}
.energy-switch-track {width:32px;height:19px;background:#35475d;border-radius:20px;position:relative;transition:background .2s;}
.energy-switch-track::after {content:'';position:absolute;width:15px;height:15px;background:#ecfffc;border-radius:50%;top:2px;left:2px;transition:transform .2s;}
.energy-switch input:checked+.energy-switch-track {background:linear-gradient(100deg,#46eca1,#31d8d1);}
.energy-switch input:checked+.energy-switch-track::after {transform:translateX(13px);}
.energy-switch input:focus-visible+.energy-switch-track {outline:2px solid var(--focus);outline-offset:3px;}
.energy-switch:has(input:disabled) {opacity:.4;cursor:default;}
.energy-add {display:inline-flex;align-items:center;justify-content:center;gap:.4rem;color:#052126;background:linear-gradient(120deg,#70f7db,#32d7d5);padding:.65rem .9rem;border-radius:8px;font-weight:650;text-decoration:none;white-space:nowrap;box-shadow:0 4px 20px #32d7d512;transition:transform .18s,box-shadow .18s;}
.energy-add:hover {color:#052126;transform:translateY(-2px);box-shadow:0 6px 24px #32d7d535;}
.energy-add svg {width:18px;height:18px;}
:root[data-theme=light] .energy-add {background:var(--accent);color:#fff;}
.energy-workbench {display:flex;flex-direction:column;gap:1rem;}
.energy-kpis {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.energy-kpi,.energy-panel {border:1px solid var(--border);border-radius:12px;background:linear-gradient(140deg,#112130bb,#0e1926f2);box-shadow:0 8px 30px #0000000b;}
:root[data-theme=light] :is(.energy-kpi,.energy-panel) {background:linear-gradient(145deg,#fff,#fafdff);}
.energy-kpi {position:relative;overflow:hidden;padding:1.15rem 1.25rem;min-height:136px;}
.energy-kpi::after {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 100% 100%,#38e3d108,transparent 65%);pointer-events:none;}
.energy-kpi-label {display:flex;gap:.65rem;align-items:center;font-size:.8rem;font-weight:500;}
.energy-kpi-label svg {width:21px;height:21px;color:var(--accent);}
.energy-kpi-value {margin:.7rem 0 .45rem!important;font-size:clamp(1.65rem,2.2vw,2.35rem);font-weight:650;line-height:1.1;letter-spacing:-.035em;position:relative;z-index:1;}
.energy-kpi-value small {font-size:.88rem;font-weight:500;letter-spacing:-.02em;}
.energy-kpi-foot {display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;position:relative;z-index:1;font-size:.69rem;max-width:90%;}
.energy-kpi--compare .energy-kpi-foot {max-width:76%;}
.energy-trend {font-weight:550;color:var(--ok);}
.energy-trend.is-up {color:var(--danger);}
.energy-period {color:var(--muted);font-size:.69rem;}
.energy-spark {position:absolute;width:108px;height:45px;right:1.15rem;bottom:2.2rem;opacity:.75;color:var(--accent);pointer-events:none;}
.energy-microbars {position:absolute;display:flex;align-items:flex-end;gap:4px;height:44px;right:1.1rem;bottom:2.25rem;}
.energy-microbars span {display:block;width:4px;background:linear-gradient(var(--accent),#38e3d133);border-radius:2px;}
.energy-visuals {display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:1rem;}
.energy-panel {padding:1rem 1.15rem;min-width:0;}
.energy-panel-head {display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;}
.energy-panel h2 {font-size:.94rem;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.35;}
.energy-panel-head p,.energy-table-head p {font-size:.66rem;color:var(--muted);margin:.35rem 0 0;}
.energy-segment--small button {font-size:.65rem;padding:.25rem .45rem;}
.energy-legend {display:flex;justify-content:flex-end;gap:1rem;min-height:25px;margin:.1rem 0 0;}
.energy-legend button {display:inline-flex;align-items:center;gap:.4rem;padding:0;font-size:.69rem;background:none;border:0;color:var(--muted);cursor:pointer;}
.energy-legend button::before {content:'';width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px #38e3d130;}
.energy-legend button:last-child:not(:first-child)::before {background:var(--pulse-secondary);}
.energy-legend button[aria-pressed=false] {opacity:.35;text-decoration:line-through;}
.energy-canvas {height:235px;position:relative;margin-top:.2rem;}
.energy-chart-foot {display:flex;justify-content:space-between;gap:.4rem;font-size:.63rem;color:var(--muted);margin-top:.65rem;min-height:16px;}
.energy-chart-foot button {font-size:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;}
.energy-year-label {font-size:.63rem;color:var(--muted);border:1px solid var(--border);padding:.2rem .45rem;border-radius:5px;}
.energy-donut-area {display:flex;gap:1rem;align-items:center;justify-content:center;min-height:226px;}
.energy-donut {position:relative;width:170px;height:170px;flex:none;}
.energy-donut-center {position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;gap:.35rem;}
.energy-donut-center strong {font-size:1.35rem;font-weight:600;letter-spacing:-.03em;}
.energy-donut-center span {font-size:.57rem;color:var(--muted);}
.energy-cost-legend {display:flex;flex-direction:column;gap:1rem;flex:1;min-width:0;}
.energy-cost-item {display:grid;grid-template-columns:7px 1fr;gap:.45rem;font-size:.7rem;align-items:center;}
.energy-cost-item i {width:7px;height:7px;border-radius:50%;}
.energy-cost-item>div {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem;}
.energy-cost-item strong {font-weight:550;color:var(--text);}
.energy-cost-item small {display:block;font-size:.62rem;color:var(--muted);}
.energy-insight {display:flex;align-items:center;gap:.7rem;border:1px solid #38e3d130;background:#38e3d106;color:var(--accent);padding:.7rem .8rem;border-radius:8px;font-size:.72rem;line-height:1.5;}
.energy-insight svg {width:24px;height:24px;flex:none;}
.energy-cost-note {font-size:.58rem!important;color:var(--muted);line-height:1.6;margin:.65rem 0 0!important;}
.energy-readings {padding:.9rem 1.1rem .5rem;}
.energy-table-head {display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:.85rem;}
.energy-table-actions {display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.energy-search {display:flex;gap:.5rem;align-items:center;padding:.45rem .7rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-main);}
.energy-search svg {width:15px;height:15px;color:var(--muted);}
.energy-search input {padding:0!important;border:0!important;background:none!important;border-radius:0!important;width:170px;min-height:0;font-size:.69rem;outline:none;}
.energy-search:focus-within {border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);}
.energy-chips {display:flex;gap:.35rem;}
.energy-chips button,.energy-export {font-size:.65rem;background:transparent;color:var(--muted);border:1px solid var(--border-strong);border-radius:30px;padding:.45rem .65rem;cursor:pointer;white-space:nowrap;}
.energy-chips button[aria-pressed=true] {background:#23485f;color:#e7f7ff;border-color:#37607a;}
:root[data-theme=light] .energy-chips button[aria-pressed=true] {background:var(--accent-soft);color:var(--accent);border-color:var(--accent);}
.energy-export {border-radius:7px;}
.energy-table-scroll {overflow-x:auto;border:1px solid var(--border);border-radius:8px;}
.energy-table {width:100%;border-collapse:collapse;min-width:650px;font-size:.73rem;text-align:left;}
.energy-table th {background:#8eb8d908;padding:.7rem .65rem;color:var(--muted);font-size:.64rem;font-weight:450;white-space:nowrap;border-bottom:1px solid var(--border);}
.energy-table th button {display:flex;align-items:center;gap:.55rem;background:none;border:0;color:inherit;font:inherit;padding:0;cursor:pointer;}
.energy-table th button span {color:var(--muted);}
.energy-table th[aria-sort] button span {color:var(--accent);}
.energy-table td {padding:.7rem .65rem;border-bottom:1px solid var(--border);white-space:nowrap;}
.energy-table tr:last-child td {border-bottom:0;}
.energy-table tbody tr {transition:background .15s;}
.energy-table tbody tr:hover {background:var(--accent-soft);}
.energy-category {display:flex;align-items:center;gap:.45rem;color:#b9cee3;font-size:.7rem;}
.energy-category svg {width:20px;height:20px;padding:3px;box-sizing:content-box;background:#38e3d114;border-radius:50%;color:var(--accent);}
:root[data-theme=light] .energy-category {color:var(--muted);}
.energy-consumption-cell {display:flex;gap:.7rem;align-items:center;justify-content:space-between;}
.energy-databar {display:block;width:62px;height:5px;border-radius:5px;background:#40576a66;flex:none;overflow:hidden;}
.energy-databar i {display:block;height:100%;background:linear-gradient(90deg,#6df6a8,var(--accent));border-radius:5px;}
.energy-row-trend {display:inline-block;background:#39daaa15;color:var(--ok);border-radius:5px;padding:.2rem .45rem;font-size:.64rem;}
.energy-row-trend.is-up {background:#f66e8c15;color:var(--danger);}
.energy-row-detail {background:none;border:0;color:var(--muted);cursor:pointer;padding:.2rem;font-size:1.2rem;line-height:1;}
.energy-row-detail:hover {color:var(--accent);}
.energy-table-footer {display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.7rem 0 .1rem;font-size:.63rem;color:var(--muted);}
.energy-page-size {display:flex;gap:.5rem;align-items:center;margin-left:auto;}
.energy-page-size select {padding:.2rem .4rem;font-size:.63rem;border-radius:6px;}
.energy-pagination {display:flex;align-items:center;gap:.4rem;}
.energy-pagination button {border:0;background:none;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:0 .35rem;}
.energy-pagination button:disabled {opacity:.3;cursor:default;}
.energy-pagination>span {background:var(--accent-soft);color:var(--text);border:1px solid var(--border);padding:.25rem .5rem;border-radius:6px;font-size:.66rem;}
.energy-more {margin:.2rem 0;color:var(--muted);}
.energy-more>summary {list-style:none;display:flex;gap:1rem;cursor:pointer;padding:.9rem .1rem;font-size:.78rem;font-weight:550;}
.energy-more>summary>span:first-child {font-size:.66rem;font-weight:400;color:var(--muted);}
.energy-more>summary>span:last-child {margin-left:auto;color:var(--accent);}
.energy-deep-grid {display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;}
.energy-top-months {display:flex;flex-direction:column;gap:1rem;margin-top:1.2rem;}
.energy-top-month {display:grid;grid-template-columns:100px 1fr 65px;align-items:center;gap:.8rem;font-size:.72rem;}
.energy-top-month .energy-databar {width:100%;height:6px;}
.energy-detail {color:var(--text);background:var(--card);border:1px solid var(--border-strong);border-radius:18px;padding:2rem;width:min(460px,90vw);box-shadow:0 20px 80px #0006;}
.energy-detail::backdrop {background:#030a14a6;backdrop-filter:blur(8px);}
.energy-detail-close {position:absolute;right:1rem;top:.6rem;background:none;border:0;color:var(--muted);font-size:1.7rem;cursor:pointer;}
.energy-eyebrow {font-size:.63rem;letter-spacing:.12em;color:var(--accent);}
.energy-detail h2 {font-size:1.6rem;margin:1rem 0;}
.energy-detail dl {display:grid;grid-template-columns:1fr 1fr;gap:1rem;font-size:.85rem;margin:1.5rem 0;}
.energy-detail dt {color:var(--muted);}
.energy-detail dd {margin:0;text-align:right;}
.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;}
.energy-workbench button:focus-visible,.energy-toolbar button:focus-visible {outline:2px solid var(--accent);outline-offset:3px;}
@media(min-width:1500px) {.energy-canvas {height:270px;}.energy-kpi {min-height:145px;}.energy-donut-area {min-height:255px;}.energy-donut {width:190px;height:190px;}}
@media(max-width:1250px) {.energy-toolbar {gap:.5rem;}.energy-table-head {flex-wrap:wrap;}.energy-table-actions {justify-content:flex-start;}.energy-spark {width:70px;opacity:.55;}.energy-donut {width:145px;height:145px;}.energy-donut-area {gap:.7rem;}.energy-cost-legend {min-width:90px;}.energy-cost-item>div {flex-direction:column;align-items:flex-start;gap:.2rem;}.energy-visuals {grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);}}
@media(max-width:900px) {.pulse-workspace .app-page-head {padding:1rem;}.pulse-workspace .app-content {padding:0 1rem 1rem;}.energy-spark {width:60px;right:.8rem;}.energy-kpi {padding:1rem;}.energy-microbars {opacity:.5;}}
@media(max-width:680px) {.energy-kpis {grid-template-columns:1fr;gap:.65rem;}.energy-kpi {min-height:110px;}.energy-spark {width:120px;right:1rem;}.energy-kpi-value {font-size:1.9rem;}.energy-visuals,.energy-deep-grid {grid-template-columns:1fr;}.energy-donut-area {flex-direction:row;}.energy-cost-legend {flex-direction:column;width:auto;}.energy-toolbar {gap:.5rem;justify-content:flex-start;}.energy-canvas {height:230px;}.energy-search input {width:155px;}.energy-table-actions {gap:.4rem;}.energy-panel {padding:1rem;}.energy-more>summary>span:first-child {display:none;}}
.energy-scenario {padding:.8rem 1.1rem;background:linear-gradient(120deg,#38e3d10b,transparent);}
.energy-scenario summary {display:flex;align-items:center;gap:.8rem;list-style:none;cursor:pointer;}
.energy-scenario-mark {display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--accent-soft);color:var(--accent);border-radius:9px;font-size:1.4rem;}
.energy-scenario summary strong {display:block;font-size:.85rem;font-weight:550;}
.energy-scenario summary div>span {display:block;font-size:.65rem;color:var(--muted);margin-top:.2rem;}
.energy-scenario-tag {margin-left:auto;color:var(--accent);font-size:.64rem;white-space:nowrap;}
.energy-scenario-body {display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;border-top:1px solid var(--border);padding:1.5rem 0 .5rem;margin-top:.8rem;}
.energy-scenario-controls {display:flex;flex-direction:column;gap:.8rem;}
.energy-scenario-controls label {font-size:.8rem;display:flex;justify-content:space-between;}
.energy-scenario-controls label strong {color:var(--accent);}
.energy-scenario-controls label span {color:var(--muted);font-size:.65rem;}
.energy-scenario-controls input[type=range] {width:100%;accent-color:var(--accent);background:transparent;border:0;padding:0;cursor:pointer;}
.energy-scenario-controls input[type=number] {max-width:150px;padding:.6rem;font-size:1rem;}
.energy-scenario-controls button {align-self:flex-start;}
.energy-scenario-result>span {font-size:.75rem;color:var(--muted);}
.energy-scenario-result>strong {display:block;color:var(--accent);font-size:2.3rem;font-weight:600;letter-spacing:-.05em;margin:.5rem 0;}
.energy-scenario-result>p {font-size:.78rem;color:var(--muted);}
@media(max-width:680px) {.energy-scenario-body {grid-template-columns:1fr;gap:1.5rem;}.energy-scenario-tag {font-size:.6rem;}.energy-scenario summary div>span {max-width:180px;}}

/* Workspace system — navigation, editorial surfaces, forms and responsive work areas. */
:root {--sidebar-width:238px;--radius:16px;--fs-body:.94rem;}
:root[data-theme=light] {--bg:#edf4f3;--bg-main:#f4f8f7;--accent:#087b75;--accent-hover:#075b58;--accent-soft:#087b750d;--focus:#087b75;--card-glass:linear-gradient(135deg,#fff,#f9fcfb);--sidebar-bg1:#e8f0ee;--sidebar-bg2:#f5f8f6;--sidebar-text:#193c3c;--sidebar-muted:#55706e;}
.app-content {max-width:1740px;width:100%;margin:0 auto;padding:1.4rem 2rem 2.5rem;}
.app-page-head {padding:1.8rem 2rem 1.35rem;gap:1rem;align-items:center;}
.app-page-head__title {font-size:clamp(1.65rem,2.8vw,2.35rem);line-height:1.17;}
.app-page-head__subtitle {font-size:.9rem;margin-top:.55rem;}
.pulse-eyebrow {font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:650;margin:0 0 .6rem;}
.pulse-eyebrow span {color:var(--accent);margin:0 .5rem;}
.app-sidebar__brand {padding:1.65rem 1.3rem 1.2rem;border:0;}
.app-sidebar__logo {display:flex;gap:.65rem;align-items:center;font-size:1.65rem;color:var(--text);}
.app-sidebar__logo::before {display:none;}
.app-sidebar__logo svg {width:30px;height:30px;color:var(--accent);}
.pulse-brand-dot {color:var(--accent);}
.pulse-brand-note {font-size:.68rem;color:var(--muted);margin:.55rem 0 0;}
.pulse-household {margin:.3rem .9rem 1.3rem;padding:1rem .8rem;background:var(--accent-soft);border:1px solid var(--border);border-radius:12px;}
.pulse-household strong {font-size:.78rem;display:block;line-height:1.55;color:var(--text);}
.pulse-household .pulse-eyebrow {display:block;font-size:.58rem;}
.pulse-household select {width:100%;padding:.5rem;font-size:.75rem;}
.pulse-household-note {display:block;color:var(--muted);font-size:.6rem;margin-top:.5rem;}
.pulse-household button.pulse-switch {background:none;border:0;padding:.4rem 0 0;font-size:.7rem;color:var(--accent);cursor:pointer;}
.app-sidebar__nav {padding:0 .75rem;flex:0 0 auto;overflow:visible;}
.app-nav-group__label {font-size:.58rem;color:var(--muted);padding:.5rem .65rem;}
.app-nav-link {min-height:45px;margin:.25rem 0;padding:.75rem .8rem;border-radius:10px;font-size:.85rem;color:var(--sidebar-text);}
.app-nav-link__icon {width:21px;height:21px;}
.app-nav-link__icon svg {width:21px;height:21px;}
.pulse-quick-add {display:block;text-align:center;padding:.8rem .3rem;margin:1.4rem .3rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:.77rem;text-decoration:none;}
.pulse-quick-add:hover {border-color:var(--accent);}
.pulse-sidebar-note {display:flex;gap:.7rem;align-items:center;margin:auto 1.4rem 1.6rem;padding-top:3rem;color:var(--muted);font-size:.7rem;}
.pulse-sidebar-note svg {width:24px;color:var(--accent);}
.app-sidebar__footer {margin-top:0;background:transparent;padding:1rem;}
.pulse-theme {font-size:.76rem;background:var(--accent-soft);color:var(--text);border-color:var(--border);padding:.65rem .8rem;}
.pulse-profile {display:flex;gap:.75rem;align-items:center;font-size:.76rem;}
.pulse-avatar {display:grid;place-items:center;background:var(--accent-soft);border:1px solid var(--border);width:35px;height:35px;border-radius:50%;color:var(--accent);}
.pulse-profile strong {color:var(--text);font-weight:550;}
.pulse-profile .app-sidebar__logout {text-align:left;padding:.2rem 0;background:none;font-size:.68rem;color:var(--muted);}
.pulse-subnav,.heizung-subnav__list {display:flex;gap:.35rem;flex-wrap:wrap;padding:.35rem;background:var(--card);border:1px solid var(--border);border-radius:12px;margin:0 0 1.5rem;}
.pulse-subnav a,.heizung-subnav__link {padding:.55rem .85rem;color:var(--muted);font-size:.76rem;text-decoration:none;border:1px solid transparent;border-radius:8px;white-space:nowrap;}
.pulse-subnav a[aria-current],.pulse-subnav a:hover {color:var(--accent);background:var(--accent-soft);border-color:var(--border);}
.heizung-subnav {margin:0;border:0;}
.pulse-home-hero {display:grid;grid-template-columns:1.15fr 1fr;min-height:350px;padding:2.6rem;border:1px solid var(--border-strong);border-radius:22px;background:radial-gradient(ellipse at 85% 45%,#38e3d116,transparent 60%),var(--card-glass);overflow:hidden;position:relative;}
.pulse-home-copy {position:relative;z-index:1;}
.pulse-home-copy h2 {font-size:clamp(2.2rem,3.5vw,3.8rem);line-height:1.1;letter-spacing:-.06em;font-weight:650;margin:.8rem 0 1.1rem;}
.pulse-home-copy em,.pulse-login-story em {color:var(--accent);font-style:normal;}
.pulse-home-copy>p:not(.pulse-eyebrow) {color:var(--muted);max-width:400px;line-height:1.75;font-size:.85rem;margin-bottom:1.5rem;}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border-radius:9px;font-size:.8rem;min-height:40px;}
.btn svg {width:17px;height:17px;}
.pulse-orbit {position:relative;min-height:290px;display:grid;place-items:center;}
.pulse-orbit-ring {position:absolute;width:260px;height:260px;border-radius:50%;border:1px solid var(--border-strong);box-shadow:0 0 0 28px #38e3d105,0 0 0 29px var(--border),0 0 0 65px #38e3d103;transform:rotate(-20deg);}
.pulse-orbit-ring::after {content:'';position:absolute;top:10px;left:55px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 22px var(--accent);}
.pulse-orbit-core {display:flex;flex-direction:column;align-items:center;gap:.7rem;width:120px;text-align:center;color:var(--muted);font-size:.65rem;}
.pulse-orbit-core svg {width:56px;height:56px;color:var(--accent);filter:drop-shadow(0 0 18px #38e3d144);}
.pulse-orbit-value {position:absolute;background:var(--card-glass);border:1px solid var(--border-strong);box-shadow:var(--shadow-card);padding:1rem 1.3rem;border-radius:12px;min-width:175px;text-decoration:none;transition:transform .2s;}
.pulse-orbit-value:hover {transform:translateY(-4px);}
.pulse-orbit-value--power {left:0;top:5px;}
.pulse-orbit-value--heat {right:0;bottom:0;}
.pulse-orbit-value>span {display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.65rem;}
.pulse-orbit-value svg {width:16px;height:16px;color:var(--accent);}
.pulse-orbit-value strong {display:block;margin:.4rem 0;font-size:1.7rem;color:var(--text);font-weight:600;letter-spacing:-.05em;}
.pulse-orbit-value strong small {font-size:.8rem;color:var(--muted);font-weight:400;letter-spacing:0;}
.pulse-orbit-value>small {color:var(--muted);font-size:.6rem;}
.pulse-section-heading {display:flex;align-items:center;justify-content:space-between;margin:2rem 0 1rem;gap:1rem;}
.pulse-section-heading h2 {font-size:1.2rem;margin:0;}
.pulse-section-heading span {font-size:.7rem;color:var(--muted);}
.module-pick-grid--home {grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.module-pick-grid--home:has(li:nth-child(4)) {grid-template-columns:repeat(4,minmax(0,1fr));}
.module-pick-card {min-height:190px;align-items:flex-start;text-align:left;padding:1.4rem;border-radius:16px;gap:1rem;}
.module-pick-card__title {font-size:1.12rem!important;}
.module-pick-card__desc {font-size:.76rem!important;line-height:1.6;max-width:240px;}
.module-pick-card__icon-wrap {width:42px;height:42px;}
.module-pick-card__cta {position:absolute;right:1rem;top:1rem;width:28px;height:28px;}
.admin-hub-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.admin-hub-grid .module-pick-card {min-height:170px;}
.card,.app-card {border-radius:16px;}
.app-card__head {padding:1.1rem 1.3rem;border-radius:16px 16px 0 0;background:transparent;border-bottom:1px solid var(--border);}
.app-card__title {font-size:1.05rem;font-weight:600;}
.app-card__body {padding:1.3rem;}
.card>h2 {font-size:1.08rem;margin-bottom:1.1rem;}
.form-row label {font-size:.8rem;font-weight:550;color:var(--text);}
.form-row input,.form-row select,.form-row textarea {padding:.75rem .85rem;font-size:.88rem;min-height:43px;}
.form-hint {font-size:.73rem;color:var(--muted);line-height:1.6;}
.form-row textarea {min-height:85px;}
.hint-box,.reading-cost-hint,.meter-hint,.detail-prev {background:var(--accent-soft);border:1px solid var(--border);color:var(--text);border-radius:12px;}
.hint-box__title {color:var(--accent);}
fieldset {border:1px solid var(--border);border-radius:10px;padding:1rem;}
legend {font-size:.76rem;color:var(--muted);padding:0 .4rem;}
.pulse-check {display:flex;gap:.6rem;align-items:center;padding:.4rem 0;font-size:.8rem;}
.pulse-disclosure summary {color:var(--accent);cursor:pointer;padding:.5rem 0;font-size:.8rem;}
.pulse-disclosure[open] {min-width:240px;}
.pulse-disclosure form {margin-top:.7rem;}
.pulse-form-workspace {display:grid;grid-template-columns:minmax(285px,.8fr) minmax(0,1.7fr);gap:1.4rem;align-items:start;}
.pulse-form-workspace>.card {margin:0;min-width:0;}
.pulse-form-workspace>.card:first-child {position:sticky;top:1rem;}
.pulse-form-workspace .form-row {margin-bottom:.8rem;}
.pulse-form-workspace .app-card__body {padding:1.2rem;}
.pulse-form-workspace .stack {gap:.55rem;}
.pulse-form-workspace .data-table {font-size:.78rem;}
.pulse-form-workspace .pulse-tools {gap:.45rem;}
.pulse-form-workspace .pulse-tools input {width:160px;}
.pulse-form-intro {padding:1.2rem 0;margin-bottom:.5rem;border-bottom:1px solid var(--border);}
.pulse-form-intro strong {display:block;font-size:1.1rem;margin:.5rem 0;}
.pulse-form-intro p {color:var(--muted);font-size:.78rem;line-height:1.7;}
.pulse-form-rail {padding:1.6rem;border:1px solid var(--border);border-radius:16px;background:var(--card-glass);}
.pulse-form-rail h2 {font-size:1.4rem;line-height:1.3;margin:.8rem 0;}
.pulse-form-rail p {color:var(--muted);font-size:.85rem;line-height:1.8;}
.pulse-form-rail svg {width:36px;color:var(--accent);}
.pulse-form-rail ol {padding-left:1.25rem;color:var(--muted);font-size:.85rem;line-height:2.2;}
body:is([data-page=erfassen],[data-page=bearbeiten],[data-page=import]) .pulse-form-workspace {grid-template-columns:minmax(0,1.3fr) minmax(250px,.8fr);max-width:1150px;}
.data-table td {padding:.7rem .8rem;}
.data-table th {padding:.75rem .8rem;white-space:nowrap;}
.pulse-cell-bar {background:linear-gradient(90deg,var(--accent-soft) var(--bar),transparent var(--bar));}
.pulse-tools {font-size:.74rem;}
.pulse-tools input,.pulse-tools select {font-size:.76rem;}
.analyse-kpi-strip.dashboard-kpi-strip {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.analyse-kpi-card {position:relative;padding:1.25rem;min-height:135px;overflow:hidden;}
.analyse-kpi-card::after {content:'';position:absolute;width:95px;height:95px;right:-35px;bottom:-45px;border:1px solid var(--border-strong);border-radius:50%;box-shadow:0 0 0 17px var(--accent-soft);pointer-events:none;}
.analyse-kpi-card__label {font-size:.74rem;}
.analyse-kpi-card__value {font-size:clamp(1.6rem,2.5vw,2.3rem);letter-spacing:-.05em;margin:.6rem 0;}
.analyse-kpi-card__hint {font-size:.7rem;}
.analyse-kpi-card__icon {float:right;border-radius:8px;color:var(--accent);font-size:.95rem;}
.pulse-empty-studio {display:flex;align-items:center;flex-direction:column;text-align:center;padding:3rem 2rem;border:1px solid var(--border);border-radius:20px;background:radial-gradient(ellipse at 50% 0%,var(--accent-soft),transparent 60%),var(--card);}
.pulse-empty-studio h2 {font-size:clamp(2rem,4vw,3.3rem);font-weight:600;line-height:1.15;margin:.6rem 0 1rem;letter-spacing:-.05em;}
.pulse-empty-studio>p:not(.pulse-eyebrow) {max-width:480px;color:var(--muted);line-height:1.8;font-size:.88rem;}
.pulse-empty-symbol {width:80px;height:80px;display:grid;place-items:center;border:1px solid var(--border-strong);background:var(--accent-soft);border-radius:24px;margin-bottom:1.6rem;}
.pulse-empty-symbol svg {width:40px;color:var(--accent);}
.pulse-status-chip {display:inline-block;padding:.45rem .7rem;border:1px solid var(--border-strong);border-radius:20px;color:var(--muted);font-size:.7rem;}
.pulse-preview-topics {display:flex;gap:1rem;margin:2rem 0;color:var(--muted);font-size:.75rem;}
.pulse-empty-studio .btn {margin-top:.5rem;}
.body--login {background:radial-gradient(ellipse at 15% 40%,var(--accent-soft),transparent 60%),var(--bg);}
.login-shell {max-width:1300px;margin:0 auto;padding:2rem;}
.login-brand {align-self:flex-start;}
.login-brand__title a {color:var(--accent);font-size:1.7rem;letter-spacing:-.06em;}
.login-main {display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:center;width:100%;padding:3rem 0;}
.login-main .card {width:100%;max-width:none;padding:2.3rem;}
.login-main h1 {font-size:1.8rem;line-height:1.2;}
.login-main .muted {font-size:.85rem;line-height:1.7;margin-bottom:1.5rem;}
.login-main .pulse-theme {margin:1.4rem 0 0;background:transparent;text-align:center;}
.pulse-login-story h2 {font-size:clamp(2.7rem,4.5vw,4.4rem);line-height:1.08;letter-spacing:-.065em;}
.pulse-login-story>p:not(.pulse-eyebrow) {max-width:390px;line-height:1.8;color:var(--muted);}
.pulse-login-art {width:155px;height:155px;display:grid;place-items:center;margin:2.5rem 0;border:1px solid var(--border-strong);border-radius:50%;box-shadow:0 0 0 20px var(--accent-soft);}
.pulse-login-art svg {width:72px;color:var(--accent);}
.error-page {min-height:100vh;display:grid;place-items:center;padding:1.2rem;background:radial-gradient(ellipse at 50% 10%,var(--accent-soft),transparent 60%),var(--bg);}
.error-page .card {padding:2.6rem;max-width:560px;border-top:3px solid var(--accent);}
.error-page h1 {font-size:2rem;line-height:1.2;}
.error-page p {color:var(--muted);line-height:1.8;}
@media(min-width:1050px) {.body--app .app-sidebar {height:100dvh;overflow-y:auto;}.app-sidebar__footer {margin-top:0;}}
@media(max-width:1200px) {.pulse-home-hero {padding:1.7rem;}.module-pick-grid--home:has(li:nth-child(4)) {grid-template-columns:repeat(2,minmax(0,1fr));}.pulse-form-workspace {grid-template-columns:minmax(265px,.85fr) minmax(0,1.2fr);}.pulse-orbit-value {padding:.8rem;min-width:150px;}.pulse-orbit-value strong {font-size:1.4rem;}}
@media(max-width:950px) {.pulse-form-workspace {grid-template-columns:1fr;}.pulse-form-workspace>.card:first-child {position:static;}.app-content {padding:1rem;}.app-page-head {padding:1.3rem 1rem;}.pulse-home-hero {grid-template-columns:1fr;}.pulse-orbit {margin-top:2rem;max-width:480px;width:100%;justify-self:center;}.module-pick-grid--home {grid-template-columns:repeat(2,minmax(0,1fr));}.login-main {gap:2rem;}.admin-hub-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:680px) {.app-page-head__start {gap:.75rem;}.app-page-head .pulse-eyebrow {font-size:.57rem;}.pulse-home-hero {padding:1.3rem;}.pulse-home-copy h2 {font-size:2.55rem;}.pulse-orbit {min-height:270px;}.pulse-orbit-ring {width:200px;height:200px;}.pulse-orbit-core {font-size:.58rem;}.pulse-orbit-value {min-width:135px;}.pulse-orbit-value>span {font-size:.58rem;}.pulse-orbit-value--heat {right:-5px;}.pulse-orbit-value--power {left:-5px;}.module-pick-grid--home,.module-pick-grid--home:has(li:nth-child(4)),.admin-hub-grid {grid-template-columns:1fr;}.module-pick-card {min-height:155px;}.pulse-section-heading span {display:none;}.analyse-kpi-strip.dashboard-kpi-strip {grid-template-columns:repeat(2,minmax(0,1fr));}.analyse-kpi-card {padding:1rem;}.analyse-kpi-card__value {font-size:1.5rem;}.pulse-subnav,.heizung-subnav__list {flex-wrap:nowrap;overflow-x:auto;max-width:100%;}.pulse-preview-topics {flex-direction:column;}.pulse-empty-studio {padding:2rem 1rem;}body:is([data-page=erfassen],[data-page=bearbeiten],[data-page=import]) .pulse-form-workspace {grid-template-columns:1fr;}.login-main {grid-template-columns:1fr;padding:1rem 0;}.pulse-login-story {display:none;}.login-shell {padding:1rem;}.login-main .card {padding:1.5rem;}.pulse-form-rail {padding:1.2rem;}.pulse-tools {gap:.4rem;}.pulse-count {width:100%;margin-left:0;}.pulse-profile {padding-bottom:1rem;}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
/* Keep composite cards compact: the head/body own their spacing. */
.app-card.card {padding:0;}
.table-actions {display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:.4rem!important;min-width:78px;}
.table-actions .table-action-btn {width:34px;min-width:34px;height:34px;min-height:34px;}
.pulse-form-workspace .app-table td,.pulse-form-workspace .app-table th {padding:.65rem .7rem;font-size:.78rem;}
.pulse-form-workspace .table-wrap {max-width:100%;}
.pulse-form-workspace .pulse-tools {padding-bottom:1rem;}
.pulse-chart-data {margin-top:1rem;}
.heizung-dashboard>.energy-scenario {margin:1.5rem 0;}
.pulse-nav-close {display:none;}
@media(max-width:900px) {.pulse-nav-close {display:block;background:var(--accent-soft);color:var(--text);border:1px solid var(--border);border-radius:8px;margin:.8rem;padding:.7rem;cursor:pointer;}.app-sidebar {overflow-y:auto;}.pulse-sidebar-note {padding-top:1rem;margin-bottom:1rem;}}
.app-sidebar {background:linear-gradient(165deg,var(--sidebar-bg1),var(--sidebar-bg2) 70%);}
:root[data-theme=light] .app-nav-link.is-active {color:var(--accent);}
:root[data-theme=light] .app-sidebar__logout:hover {color:var(--text);}
body[data-page=details] .app-content>.app-stack {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;}
body[data-page=details] .app-actions {grid-column:1/-1;}
.detail-kv dt {font-size:.78rem;color:var(--muted);}
.detail-kv dd {font-size:.9rem;color:var(--text);}
@media(max-width:1050px) {body[data-page=details] .app-content>.app-stack {grid-template-columns:1fr;}}
:root[data-theme=light] .btn--secondary,:root[data-theme=light] .btn--ghost,:root[data-theme=light] button.btn--secondary {color:var(--text);background:var(--accent-soft);border-color:var(--border-strong);}
.energy-table th {position:relative;}
.pulse-admin-scope {font-size:.76rem;color:var(--muted);padding:.8rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--accent-soft);}
:root[data-theme=light] .pulse-household button.pulse-switch {color:var(--accent);}
.table-action-btn--delete,button.table-action-btn--delete,:root[data-theme=light] button.table-action-btn--delete {color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,var(--card));border-color:color-mix(in srgb,var(--danger) 25%,var(--border));}
.pulse-membership-labels {display:flex;flex-direction:column;gap:.3rem;font-size:.73rem;color:var(--text);}
.pulse-membership-labels span {padding:.25rem .5rem;background:var(--accent-soft);border-radius:5px;}
.admin-actions {gap:.4rem;}
.dashboard-page__meta {padding:.7rem 1rem;border:1px solid var(--border);border-radius:9px;font-size:.76rem;}
.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child {grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:.3rem 2rem;min-height:90px;align-items:center;}
.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child .analyse-kpi-card__icon {display:none;}
.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child h3,.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child .form-hint {grid-column:1;max-width:620px;margin:0;}
.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child .analyse-kpi-card__value {grid-column:2;grid-row:1/3;}
.pulse-import-steps {display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;}
.pulse-import-steps span {display:flex;gap:.8rem;align-items:center;padding:1rem;background:var(--card-glass);border:1px solid var(--border);border-radius:12px;font-size:.82rem;}
.pulse-import-steps b {font-weight:500;color:var(--accent);font-size:1.3rem;}
@media(max-width:680px) {.pulse-import-steps {grid-template-columns:1fr;gap:.5rem;}.pulse-import-steps span {padding:.6rem 1rem;}.dashboard-page .dashboard-kpi-strip>.analyse-kpi-card:last-child {display:block;}}

.detail-prev {padding:1rem;}

/* Override the legacy white hover surface in both themes. */
.module-pick-card:hover,.module-pick-card:focus-visible {background:radial-gradient(400px circle at var(--light-x,70%) var(--light-y,20%),var(--accent-soft),transparent 75%),var(--card);color:var(--text);}
.module-pick-card:hover .module-pick-card__desc,.module-pick-card:focus-visible .module-pick-card__desc {color:var(--muted);}
.pulse-dashboard-chart {overflow:hidden;border-color:var(--border-strong);background:radial-gradient(ellipse at 90% 0%,var(--accent-soft),transparent 65%),var(--card);}
.pulse-dashboard-controls {display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:.8rem;padding:1rem 1.3rem 0;}
.pulse-dashboard-controls label,.pulse-compare-pair label {display:grid;gap:.4rem;font-size:.7rem;color:var(--muted);}
.pulse-dashboard-controls select,.pulse-compare-pair select,.pulse-dashboard-controls button,.pulse-chart-close {font:inherit;font-size:.78rem;background:var(--card);color:var(--text);border:1px solid var(--border-strong);border-radius:9px;padding:.6rem .75rem;min-height:38px;}
.pulse-dashboard-controls button {color:var(--accent);cursor:pointer;}
.pulse-chart-readout {display:grid;grid-template-columns:1fr auto;gap:.4rem;padding:1.2rem 1.3rem 0;font-variant-numeric:tabular-nums;}
.pulse-chart-readout span {font-size:.6rem;letter-spacing:.13em;color:var(--muted);}
.pulse-chart-readout strong {grid-row:2;font-size:clamp(1.65rem,2.5vw,2.4rem);letter-spacing:-.04em;color:var(--accent);}
.pulse-chart-readout small {grid-column:2;grid-row:2;align-self:end;font-size:.75rem;color:var(--muted);}
.pulse-dashboard-chart .chart-box {height:320px;}
.pulse-point-compare {border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem;}
.pulse-point-compare summary {font-size:.8rem;color:var(--accent);cursor:pointer;}
.pulse-compare-pair {display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0;}
.pulse-compare-pair select {max-width:100%;min-width:0;}
.pulse-point-compare output {display:block;font-size:1.15rem;font-weight:600;color:var(--text);}
.pulse-point-compare p {font-size:.7rem;line-height:1.6;color:var(--muted);}
.pulse-chart-dialog {width:min(1180px,94vw);max-width:94vw;max-height:94dvh;padding:1rem;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:22px;box-shadow:0 25px 100px #0008;}
.pulse-chart-dialog::backdrop {background:#030b17c9;backdrop-filter:blur(10px);}
.pulse-chart-close {display:block;position:sticky;top:0;z-index:3;margin:0 0 1rem auto;cursor:pointer;box-shadow:0 4px 15px #0002;}
.pulse-chart-dialog .chart-box {height:min(48vh,500px);}
.pulse-chart-dialog .app-card {margin:0;}
@media(max-width:680px) {.pulse-dashboard-chart .chart-box {height:260px;}.pulse-chart-dialog {padding:.65rem;}.pulse-chart-readout strong {font-size:1.7rem;}}

/* Pulse / second pass: precise controls, luminous surfaces and data exploration. */
body.body--app .app-content .form-row input:not([type=checkbox]):not([type=radio]):not([type=range]),
body.body--app .app-content .form-row select,
body.body--app .app-content .form-field input:not([type=checkbox]):not([type=radio]):not([type=range]),
body.body--app .app-content .form-field select {min-height:40px;height:40px;padding:.55rem .75rem;font-size:.875rem;line-height:1.25;border-radius:9px;}
body.body--app .app-content .form-row textarea {min-height:64px;height:64px;padding:.65rem .75rem;font-size:.875rem;border-radius:9px;}
body.body--app .app-content .form-row {margin-bottom:.6rem;}
body.body--app .app-content .form-row label {font-size:.75rem;margin-bottom:.35rem;}
#erfassenForm {padding:1.3rem;gap:.7rem;}
#erfassenForm .hint-box {padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
#erfassenForm .hint-box__title {margin:0;font-size:.8rem;}
#erfassenForm .hint-box__line {font-size:.73rem;margin:.15rem 0;}
#erfassenForm .meter-hint {padding:.5rem .65rem;font-size:.73rem;line-height:1.5;margin:0;}
#erfassenForm .form-hint {font-size:.7rem;line-height:1.55;margin-top:.4rem;}
#erfassenForm .btn-row {margin-top:.3rem;}
.pulse-live-preview {position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 36%,var(--accent-soft),transparent 65%),var(--card);text-align:center;padding:1.5rem;}
.pulse-live-preview h2 {font-size:1.7rem;letter-spacing:-.045em;}
.pulse-preview-dial {width:150px;height:150px;position:relative;display:grid;place-items:center;margin:1.6rem auto 1rem;border:1px solid var(--border-strong);border-radius:50%;box-shadow:0 0 0 12px var(--accent-soft),inset 0 0 35px var(--accent-soft);color:var(--accent);}
.pulse-preview-dial:before,.pulse-preview-dial:after {content:'';position:absolute;inset:9px;border:2px solid transparent;border-top-color:var(--accent);border-right-color:var(--accent);border-radius:50%;transform:rotate(-35deg);transition:transform .8s ease;}
.pulse-preview-dial:after {inset:22px;transform:rotate(100deg);opacity:.3;}
.has-preview .pulse-preview-dial:before {transform:rotate(145deg);}
.has-preview .pulse-preview-dial:after {transform:rotate(280deg);}
.pulse-preview-number {display:block;font-size:2.1rem;font-weight:700;letter-spacing:-.06em;color:var(--accent);font-variant-numeric:tabular-nums;}
.pulse-live-preview .pulse-preview-message {font-size:.8rem;min-height:3em;}
.pulse-preview-facts {display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.3rem 0;padding:1rem 0;border-block:1px solid var(--border);}
.pulse-preview-facts dt {font-size:.7rem;color:var(--muted);}.pulse-preview-facts dd {font-size:1rem;margin:.4rem 0 0;font-weight:600;}
.pulse-live-preview .pulse-preview-foot {font-size:.68rem;line-height:1.6;margin-bottom:0;}
.pulse-reactive {position:relative;background-image:radial-gradient(400px circle at var(--light-x,70%) var(--light-y,20%),color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%);}
.module-pick-card {transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
.module-pick-card:hover,.module-pick-card:focus-visible {transform:translateY(-6px);border-color:var(--accent);box-shadow:0 16px 40px #0002,0 0 24px var(--accent-soft);}
.pulse-home-hero {isolation:isolate;background-color:var(--card);background-image:radial-gradient(ellipse at var(--light-x,85%) var(--light-y,20%),color-mix(in srgb,var(--accent) 18%,transparent),transparent 65%);border-color:var(--border-strong);}
.pulse-orbit-ring {border:1px solid var(--border-strong);background:repeating-conic-gradient(from 0deg,transparent 0deg 14deg,var(--accent-soft) 14deg 15deg);box-shadow:0 0 75px var(--accent-soft),inset 0 0 50px var(--accent-soft);}
.pulse-orbit-ring:before {content:'';position:absolute;inset:-20px;border:1px dashed var(--border-strong);border-radius:50%;animation:pulse-orbit-drift 40s linear infinite;}
.pulse-orbit-ring:after {content:'';position:absolute;inset:-5px;width:auto;height:auto;background:transparent;box-shadow:none;border:2px solid transparent;border-top-color:var(--accent);border-radius:50%;filter:drop-shadow(0 0 6px var(--accent));transform:rotate(-35deg);}
.pulse-orbit-value {transition:transform .3s ease,box-shadow .3s ease;backdrop-filter:blur(12px);}
.pulse-orbit-value:hover {transform:translateY(-5px);box-shadow:0 12px 35px #0003;border-color:var(--accent);}
.pulse-time-explorer {display:grid;grid-template-columns:auto minmax(80px,1fr);gap:.6rem 1rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--accent-soft);margin:.8rem 0;}
.pulse-time-explorer label {font-size:.7rem;font-weight:600;color:var(--accent);}
.pulse-time-explorer input {width:100%;min-height:24px;accent-color:var(--accent);cursor:ew-resize;}
.pulse-time-explorer output {grid-column:1/-1;font-size:.72rem;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.6;}
@keyframes pulse-orbit-drift {to {transform:rotate(360deg);}}
.pulse-command-launch {display:inline-flex;align-items:center;gap:.8rem;align-self:center;margin-left:auto;padding:.55rem .8rem;border:1px solid var(--border-strong);border-radius:9px;background:var(--card-glass);color:var(--muted);font-size:.72rem;white-space:nowrap;cursor:pointer;}
.pulse-command-launch kbd {font-size:.62rem;color:var(--accent);}
.pulse-command {width:min(520px,calc(100% - 2rem));max-height:75dvh;padding:1.4rem;background:var(--card);color:var(--text);border:1px solid var(--border-strong);border-radius:20px;box-shadow:0 30px 120px #0008;}
.pulse-command::backdrop {background:#06101bbb;backdrop-filter:blur(8px);}
.pulse-command-head {display:flex;align-items:center;justify-content:space-between;font-weight:600;gap:1rem;margin-bottom:1rem;}
.pulse-command-head button {background:var(--accent-soft);color:var(--text);border:1px solid var(--border);border-radius:8px;width:34px;height:34px;cursor:pointer;}
.pulse-command input {width:100%;padding:.8rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;}
.pulse-command-results {display:grid;gap:.4rem;max-height:42dvh;overflow:auto;margin:1rem 0;}
.pulse-command-results a {padding:.8rem 1rem;border:1px solid transparent;border-radius:9px;text-decoration:none;color:var(--text);font-size:.88rem;}
.pulse-command-results a:hover,.pulse-command-results a:focus-visible {background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
.pulse-command>p {font-size:.68rem;color:var(--muted);margin:0;}
@media(max-width:680px) {.pulse-command-launch {margin:.65rem 0 0;}.pulse-command-launch kbd {display:none;}}
@media(max-width:680px) {#erfassenForm {padding:1rem;} .pulse-preview-dial {width:90px;height:90px;margin:1rem auto;}.pulse-live-preview h2 {font-size:1.4rem;}.pulse-preview-number {font-size:1.8rem;}.pulse-orbit-ring:before {inset:-12px;} body.body--app .app-content .form-row input:not([type=checkbox]):not([type=radio]):not([type=range]),body.body--app .app-content .form-row select,body.body--app .app-content .form-row textarea {font-size:16px;min-height:42px;}}
@media(prefers-reduced-motion:reduce) {.pulse-orbit-ring:before {animation:none;}.module-pick-card:hover,.pulse-orbit-value:hover {transform:none;}}

/* Solar monthly explorer */
.solar-page{display:grid;gap:1.3rem}.solar-empty,.solar-panel{padding:1.5rem;border:1px solid var(--border-strong);border-radius:18px;background:var(--card)}
.solar-empty{text-align:center;padding:clamp(2rem,7vw,5rem)}.solar-empty__symbol{display:block;font-size:3rem;color:var(--accent);margin-bottom:.8rem}.solar-empty h2,.solar-panel h2{margin:.2rem 0 .6rem;color:var(--text);letter-spacing:-.035em}.solar-empty p{max-width:44rem;margin:.7rem auto;color:var(--muted);line-height:1.6}
.solar-intro,.solar-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.solar-intro p,.solar-panel__head p{max-width:45rem;margin:.3rem 0;color:var(--muted);font-size:.85rem;line-height:1.5}.solar-intro__eyebrow,.solar-kpi>span{font-size:.67rem;letter-spacing:.13em;font-weight:700;color:var(--accent)}.solar-source{font-size:.7rem;color:var(--muted);white-space:nowrap}
.solar-kpis{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:1rem}.solar-kpi{padding:1.4rem;border:1px solid var(--border-strong);border-radius:16px;background:var(--card);min-width:0}.solar-kpi--hero{background:radial-gradient(ellipse at 80% 10%,var(--accent-soft),transparent 65%),var(--card)}.solar-kpi strong{display:block;margin:.9rem 0 .4rem;font-size:clamp(1.6rem,3vw,2.5rem);letter-spacing:-.05em;color:var(--text);font-variant-numeric:tabular-nums}.solar-kpi--hero strong{color:var(--accent)}.solar-kpi strong small{font-size:.75rem;letter-spacing:0}.solar-kpi p{margin:0;font-size:.75rem;color:var(--muted);line-height:1.5}
.solar-controls{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}.solar-controls label{display:grid;gap:.35rem;font-size:.7rem;color:var(--muted)}.solar-controls select,.solar-series button{min-height:38px;padding:.5rem .7rem;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg);color:var(--text);font:inherit;font-size:.78rem}.solar-series{display:flex;gap:.4rem}.solar-series button{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.solar-series button[aria-pressed=false]{opacity:.55}.solar-series button:focus-visible,.solar-controls select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.solar-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.solar-dot--pv{background:var(--warn)}.solar-chart-wrap{height:clamp(250px,35vw,420px);margin:1.5rem 0}.solar-chart-note{font-size:.72rem;line-height:1.55;color:var(--muted);margin:0}.solar-table{width:100%}.solar-table td{vertical-align:middle}.solar-table__value{display:block;white-space:nowrap;font-variant-numeric:tabular-nums}.solar-table__bar{display:block;height:3px;max-width:100%;width:var(--bar);margin-top:.5rem;border-radius:4px;background:var(--accent)}.solar-table__bar--pv{background:var(--warn)}.solar-status{display:inline-block;padding:.3rem .55rem;border:1px solid var(--border);border-radius:6px;font-size:.7rem;white-space:nowrap;color:var(--muted)}.solar-status--partial{color:var(--warn);border-color:var(--warn)}.solar-table tr.is-highlighted{background:var(--accent-soft)}.solar-table tr[hidden]{display:none}
@media(max-width:900px){.solar-kpis{grid-template-columns:1fr 1fr}.solar-kpi--hero{grid-column:1/-1}.solar-intro,.solar-panel__head{flex-wrap:wrap}.solar-source{white-space:normal}}@media(max-width:600px){.solar-kpis{grid-template-columns:1fr}.solar-kpi--hero{grid-column:auto}.solar-panel{padding:1rem}.solar-controls{width:100%}.solar-table th,.solar-table td{font-size:.72rem;padding:.55rem .4rem}.solar-table td:last-child,.solar-table th:last-child{min-width:8rem}}
