:root{--brand: #444136;--brand-text: #f8f7f3;--schrift-ui: "Plus Jakarta Sans", system-ui, sans-serif;--schrift-daten: "JetBrains Mono", ui-monospace, monospace;--groesse--2: .75rem;--groesse--1: .8125rem;--groesse-0: .875rem;--groesse-1: 1rem;--groesse-2: 1.25rem;--groesse-3: 1.5625rem;--groesse-4: 1.953rem;--groesse-5: 2.441rem;--abstand-1: 4px;--abstand-2: 8px;--abstand-3: 12px;--abstand-4: 16px;--abstand-5: 24px;--abstand-6: 32px;--abstand-7: 48px;--abstand-8: 64px;--radius-karte: 8px;--radius-eingabe: 6px;--radius-pille: 999px;--dauer-schnell: .12s;--dauer-normal: .2s;--kurve: cubic-bezier(.2, 0, 0, 1);--stagger: 40ms}:root,:root[data-theme=light]{color-scheme:light;--flaeche-seite: #eceae3;--flaeche-karte: #f8f7f3;--flaeche-einschub: #efede5;--rahmen: #d9d5ca;--gitterlinie: #e5e2d9;--text-primaer: #363a44;--text-sekundaer: #585e6f;--text-gedaempft: #7c8397;--sem-solar: #a8722d;--sem-netz: #46698e;--sem-ok: #47714f;--sem-fehler: #a3453e;--sem-warnung: #86642a;--serie-1: #3d6fa5;--serie-2: #b96a2a;--serie-3: #208762;--serie-4: #a5861f;--serie-5: #a85c86;--serie-6: #55772f;--serie-7: #6f63b0;--serie-8: #b04a42;--divergenz-mitte: #d9d5ca;--schatten-karte: 0 1px 2px rgb(54 58 68 / .05)}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--flaeche-seite: #2a2d35;--flaeche-karte: #363a44;--flaeche-einschub: #3e4350;--rahmen: #4e5464;--gitterlinie: #454b5a;--text-primaer: #ecebe5;--text-sekundaer: #a9aebb;--text-gedaempft: #868c9d;--sem-solar: #c08a47;--sem-netz: #7fa6cc;--sem-ok: #6fa07b;--sem-fehler: #c4685f;--sem-warnung: #b08a45;--serie-1: #5e97da;--serie-2: #c77e3b;--serie-3: #2f9573;--serie-4: #b08e2a;--serie-5: #c273a4;--serie-6: #7e9c4e;--serie-7: #8c82c9;--serie-8: #c36a5e;--divergenz-mitte: #4e5464;--brand: #ada694;--brand-text: #2a2d35;--schatten-karte: none}}:root[data-theme=dark]{color-scheme:dark;--flaeche-seite: #2a2d35;--flaeche-karte: #363a44;--flaeche-einschub: #3e4350;--rahmen: #4e5464;--gitterlinie: #454b5a;--text-primaer: #ecebe5;--text-sekundaer: #a9aebb;--text-gedaempft: #868c9d;--sem-solar: #c08a47;--sem-netz: #7fa6cc;--sem-ok: #6fa07b;--sem-fehler: #c4685f;--sem-warnung: #b08a45;--serie-1: #5e97da;--serie-2: #c77e3b;--serie-3: #2f9573;--serie-4: #b08e2a;--serie-5: #c273a4;--serie-6: #7e9c4e;--serie-7: #8c82c9;--serie-8: #c36a5e;--divergenz-mitte: #4e5464;--brand: #ada694;--brand-text: #2a2d35;--schatten-karte: none}.flaeche-gitter{background-color:var(--flaeche-seite)}.zahl,.zahl *{font-family:var(--schrift-daten);font-variant-numeric:tabular-nums}@keyframes sw-puls{0%{box-shadow:0 0 color-mix(in srgb,var(--sem-ok) 45%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.status-punkt{width:8px;height:8px;border-radius:999px;background:var(--sem-ok);display:inline-block;vertical-align:middle}.status-punkt.live{animation:sw-puls 2s var(--kurve) infinite}@keyframes sw-aufbau{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.karte-aufbau{animation:sw-aufbau var(--dauer-normal) var(--kurve) both}.karte-aufbau:nth-child(2){animation-delay:calc(1 * var(--stagger))}.karte-aufbau:nth-child(3){animation-delay:calc(2 * var(--stagger))}.karte-aufbau:nth-child(4){animation-delay:calc(3 * var(--stagger))}.karte-aufbau:nth-child(5){animation-delay:calc(4 * var(--stagger))}.karte-aufbau:nth-child(6){animation-delay:calc(5 * var(--stagger))}.schraffur-drosselung{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--sem-warnung) 35%,transparent) 0 2px,transparent 2px 8px)}@media(prefers-reduced-motion:reduce){.status-punkt.live,.karte-aufbau{animation:none}*{transition-duration:.01ms!important}}@font-face{font-family:Plus Jakarta Sans;font-weight:200 800;font-style:normal;font-display:swap;src:url(/fonts/plus-jakarta-sans-var.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:100 800;font-style:normal;font-display:swap;src:url(/fonts/jetbrains-mono-var.woff2) format("woff2")}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--schrift-ui);font-size:var(--groesse-0);line-height:1.5;color:var(--text-primaer);background:var(--flaeche-seite)}h1,h2,h3,h4{line-height:1.2}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}.innen{max-width:1100px;margin:0 auto;padding:0 var(--abstand-5)}.karte{background:var(--flaeche-karte);border:1px solid var(--rahmen);border-radius:var(--radius-karte);box-shadow:var(--schatten-karte);padding:var(--abstand-4)}.karte-kopf{display:flex;align-items:baseline;justify-content:space-between;gap:var(--abstand-3);flex-wrap:wrap;margin-bottom:var(--abstand-3)}.karte-kopf h3{margin:0;font-size:var(--groesse-1);font-weight:600}.karte-werkzeuge{display:flex;align-items:center;gap:var(--abstand-3);font-size:var(--groesse--1);color:var(--text-sekundaer)}.karte-werkzeuge button,.karte-werkzeuge a{all:unset;cursor:pointer;font-family:var(--schrift-ui);font-size:var(--groesse--1);color:var(--text-sekundaer);transition:color var(--dauer-schnell) var(--kurve)}.karte-werkzeuge button:hover,.karte-werkzeuge a:hover{color:var(--text-primaer);text-decoration:none}.karte-werkzeuge button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.karte-werkzeuge .aktiv{color:var(--text-primaer);font-weight:600}.knopf{all:unset;cursor:pointer;font-family:var(--schrift-ui);font-weight:600;font-size:var(--groesse--1);border-radius:var(--radius-eingabe);padding:9px 16px;text-align:center;transition:filter var(--dauer-schnell) var(--kurve),background var(--dauer-schnell) var(--kurve)}.knopf:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.knopf.voll{background:var(--brand);color:var(--brand-text)}.knopf.voll:hover{filter:brightness(1.08)}.knopf.voll:disabled{opacity:.5;cursor:not-allowed}.knopf.rand{border:1px solid var(--rahmen);color:var(--text-primaer)}.knopf.rand:hover{background:var(--flaeche-einschub)}.knopf:disabled{opacity:.5;cursor:not-allowed}.feld{display:flex;flex-direction:column;gap:4px}.feld label{font-size:var(--groesse--1);font-weight:500;color:var(--text-sekundaer)}.feld input,.feld select{height:36px;padding:0 10px;font-family:var(--schrift-ui);font-size:var(--groesse-0);color:var(--text-primaer);background:var(--flaeche-karte);border:1px solid var(--rahmen);border-radius:var(--radius-eingabe)}.feld input:focus-visible,.feld select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.feld .fehler-text{color:var(--sem-fehler);font-size:var(--groesse--1)}.formular-zeile{display:flex;gap:var(--abstand-3);flex-wrap:wrap;align-items:flex-end}.hinweis-fehler{display:flex;gap:8px;align-items:baseline;color:var(--sem-fehler);font-size:var(--groesse--1);margin:var(--abstand-2) 0 0}.tabelle{width:100%;border-collapse:collapse}.tabelle-rand{border:1px solid var(--rahmen);border-radius:var(--radius-karte);overflow:auto}.tabelle th{background:var(--flaeche-einschub);font-size:var(--groesse--1);font-weight:600;text-align:left;padding:0 10px;height:36px;border-bottom:1px solid var(--rahmen);white-space:nowrap}.tabelle td{padding:0 10px;height:36px;font-size:var(--groesse--1);white-space:nowrap}.tabelle td.zahl,.tabelle th.zahl{text-align:right}.tabelle tbody tr{transition:background var(--dauer-schnell) var(--kurve)}.tabelle tbody tr:hover{background:var(--flaeche-einschub)}:root[data-theme=light] .tabelle tbody tr:nth-child(2n),:root:not([data-theme=dark]) .tabelle tbody tr:nth-child(2n){background:#363a4405}:root[data-theme=light] .tabelle tbody tr:hover,:root:not([data-theme=dark]) .tabelle tbody tr:hover{background:var(--flaeche-einschub)}.vorzeile{font-family:var(--schrift-daten);font-size:var(--groesse--2);letter-spacing:.14em;text-transform:uppercase;color:var(--text-gedaempft);margin:0 0 var(--abstand-2)}.pille{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pille);border:1px solid var(--rahmen);padding:2px 10px;font-size:var(--groesse--2);white-space:nowrap}.skeleton{background:var(--flaeche-einschub);border-radius:var(--radius-eingabe);min-height:1em;animation:sw-skeleton 1.2s var(--kurve) infinite alternate}@keyframes sw-skeleton{0%{opacity:.6}to{opacity:1}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}
