/* myWerkzeug.de · Tabellenbuch und Fachlexikon. Baut auf /helfer/helfer.css (Kopf, Rahmen, Seitenleiste) und /assets/thema.css (Hell/Dunkel).
   Bis 900 px (Handy, Tablet) arbeitet die Seite wie eine App: Suche oben haften, Leiste mit den Bereichen unten, Inhaltsverzeichnis als Feld
   zwischen beiden; am PC bleibt die Seitenleiste (Abschnitt „App-Layout“ am Ende). */
:root{
  --sp-el:var(--el,#2c47d8);--sp-el-bg:var(--el-bg,#e8edff);
  --sp-wg:var(--wg,#0b766e);--sp-wg-bg:var(--wg-bg,#dcf3ef);
  --sp-gr:var(--gr,#6a48cf);--sp-gr-bg:var(--gr-bg,#eee9ff);
  --sp-hz:#a2531c;--sp-hz-bg:#fbeadb;
  --sp-al:var(--al,#4a5579);--sp-al-bg:var(--al-bg,#ededf3);
  --sp-mt:#1d6b8c;--sp-mt-bg:#dff0f7;--sp-hl:#6d6413;--sp-hl-bg:#f3f0d6;--sp-au:#a23b6a;--sp-au-bg:#fbe6ef;--sp-kf:#2e7a3c;--sp-kf-bg:#e2f2e3;
  --kat-b:#2c47d8;--kat-c:#008a7a;--kat-d:#b0640a;
  --zebra:rgba(10,21,64,.035);--kopfzeile:var(--raised-2,#f9f9fc);
  --mark-bg:#fff3b8;--mark-tx:inherit;
}
:root[data-theme="dark"]{
  --sp-el:#8ea3ff;--sp-el-bg:#222d5a;--sp-wg:#53c8b7;--sp-wg-bg:#0f2f2c;--sp-gr:#b49cff;--sp-gr-bg:#271d48;
  --sp-hz:#f0a873;--sp-hz-bg:#3a2415;--sp-al:#b6bcd3;--sp-al-bg:#1e2640;
  --sp-mt:#72c4e6;--sp-mt-bg:#0f2a36;--sp-hl:#d2c76a;--sp-hl-bg:#2a2812;--sp-au:#f093bd;--sp-au-bg:#3a1828;--sp-kf:#7dd08c;--sp-kf-bg:#132d18;
  --kat-b:#6f86ec;--kat-c:#1e9e8e;--kat-d:#c9801f;
  --zebra:rgba(255,255,255,.035);--kopfzeile:#18203a;--mark-bg:#5b4a00;--mark-tx:#fff;
}
.sp-el{--k:var(--sp-el);--kb:var(--sp-el-bg)}.sp-wasser,.sp-wg{--k:var(--sp-wg);--kb:var(--sp-wg-bg)}
.sp-gas,.sp-gr{--k:var(--sp-gr);--kb:var(--sp-gr-bg)}.sp-heizung,.sp-hz{--k:var(--sp-hz);--kb:var(--sp-hz-bg)}
.sp-metall,.sp-mt{--k:var(--sp-mt);--kb:var(--sp-mt-bg)}.sp-holz,.sp-hl{--k:var(--sp-hl);--kb:var(--sp-hl-bg)}.sp-automation,.sp-au{--k:var(--sp-au);--kb:var(--sp-au-bg)}.sp-kfz,.sp-kf{--k:var(--sp-kf);--kb:var(--sp-kf-bg)}
.sp-allgemein,.sp-al{--k:var(--sp-al);--kb:var(--sp-al-bg)}.sp-elektro{--k:var(--sp-el);--kb:var(--sp-el-bg)}

/* ---------- Seitenleiste ---------- */
.reiter{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 2px 10px;padding:4px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.reiter button{border:0;background:none;padding:7px 8px;border-radius:7px;font-weight:600;font-size:15px;cursor:pointer;color:var(--muted)}
.reiter button[aria-selected="true"]{background:var(--raised);color:var(--ink);box-shadow:0 1px 3px rgba(10,21,64,.12)}
.liste-kat{display:flex;align-items:center;gap:8px;margin:16px 8px 4px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.liste-kat::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--k);box-shadow:0 0 0 3px var(--kb)}
.eintrag{display:block;padding:6px 10px 6px 26px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:15px;line-height:1.35;position:relative}
.eintrag:hover{background:var(--paper)}
.eintrag.an{background:var(--blue-soft);font-weight:600}
.eintrag.an::before{content:"";position:absolute;left:-10px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--blue)}
.eintrag small{display:block;color:var(--soft);font-size:13px;font-weight:400;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eintrag .art{position:absolute;left:8px;top:8px;width:12px;height:12px;color:var(--k)}
.leer{padding:12px 10px;color:var(--muted);font-size:15px}
.buchstaben-mini{display:flex;flex-wrap:wrap;gap:2px;margin:6px 4px 0}
.buchstaben-mini a{min-width:24px;padding:3px 0;text-align:center;border-radius:6px;font-size:13px;font-weight:600;color:var(--muted);text-decoration:none}
.buchstaben-mini a:hover{background:var(--paper);color:var(--ink)}

/* ---------- Hauptbereich ---------- */
#haupt{padding:28px clamp(16px,4vw,48px) 64px;min-width:0;outline:none;min-height:calc(100vh - 56px)} /* Platz für den Inhalt, den tabellen.js erst baut: die Fußzeile springt nicht (CLS) */
.inhalt{max-width:1040px;margin:0 auto}
.pfad{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px;color:var(--muted);margin-bottom:10px}
.pfad a{color:var(--muted);text-decoration:none}.pfad a:hover{color:var(--blue);text-decoration:underline}
.marke-sp{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:var(--kb);color:var(--k);font-size:13px;font-weight:700}
h1.titel{font-size:clamp(24px,3.2vw,34px);line-height:1.15;font-stretch:112%;letter-spacing:-.015em;margin:4px 0 8px}
.kurz{font-size:18px;color:var(--muted);margin:0 0 20px;max-width:70ch}
.syn{font-size:15px;color:var(--soft);margin:0 0 16px}
.werkzeugleiste{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;align-items:stretch}
.werkzeugleiste .knopf,.werkzeugleiste .tab-filter{min-height:40px;margin:0}
.knopf{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--raised);background-image:var(--glanz-knopf);box-shadow:var(--knopf-licht);color:var(--ink);padding:7px 12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}
.knopf:hover{border-color:var(--blue);color:var(--blue)}
.knopf svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.knopf.ok{border-color:var(--ok);color:var(--ok)}

/* Tabelle */
.tab-huelle{border:1px solid var(--line);border-radius:16px;background:var(--raised);background-image:var(--glanz);overflow:auto;max-width:100%;box-shadow:var(--schatten)}
table.tb{border-collapse:separate;border-spacing:0;width:100%;font-size:15.5px;font-variant-numeric:tabular-nums}
table.tb th{position:sticky;top:0;background:var(--kopfzeile);text-align:left;font-weight:700;font-size:14px;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
table.tb td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}
table.tb tr:last-child td{border-bottom:0}
table.tb tbody tr:nth-child(even) td{background:var(--zebra)}
table.tb tbody tr:hover td{background:var(--blue-soft)}
table.tb td.spalte{background:color-mix(in srgb,var(--blue-soft) 55%,transparent)}
table.tb th.spalte{color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue)}
table.tb tbody tr:hover td.spalte{background:color-mix(in srgb,var(--blue) 16%,var(--raised));font-weight:700}
table.tb .r{text-align:right;white-space:nowrap}
table.tb td:first-child{font-weight:600}
table.tb mark,.lex-text mark,.eintrag mark{background:var(--mark-bg);color:var(--mark-tx);border-radius:3px;padding:0 1px}
table.tb tr.treffer td{background:var(--blue-soft)}
.farbe{display:inline-flex;align-items:center;gap:8px}
.tb tr:has(.sz) td{vertical-align:middle}.sz{display:inline-flex;align-items:center;gap:10px;font-weight:600}.sz svg{width:46px;height:46px;flex:none;background:#fff;border:1px solid #d5dae1;border-radius:8px;padding:3px;box-sizing:border-box}
.farbe i{width:22px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.25);flex:none;display:inline-block}
:root[data-theme="dark"] .farbe i{border-color:rgba(255,255,255,.35)}
.tab-filter{display:flex;align-items:center;gap:8px;border:1px solid var(--line-2);flex:0 1 320px;border-radius:10px;background:var(--raised);box-shadow:var(--feld-innen);padding:0 10px;max-width:320px;margin:0 0 12px}
.tab-filter input{flex:1;min-width:0;border:0;background:none;padding:7px 0;outline:none}
.tab-filter:focus-within{box-shadow:var(--focus)}

.hinweis{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:var(--neutral-soft,#ededf3);border-left:4px solid var(--k,var(--blue));font-size:15.5px;line-height:1.6}
.quelle{margin:12px 0 0;font-size:14px;color:var(--soft)}
.quelle b{color:var(--muted);font-weight:600}

.abschnitt{margin:30px 0 0}
.abschnitt h2{font-size:16px;font-weight:700;margin:0 0 10px;color:var(--ink);font-stretch:108%}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--ink);text-decoration:none;font-size:15px}
.chip:hover{border-color:var(--k,var(--blue));color:var(--k,var(--blue))}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--k,var(--blue))}
.chip.rechner::before{border-radius:2px}.chip.fehler{--k:var(--sp-kf)}.chip.fehler::before{width:9px;height:8px;border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}.chip.formel::before{transform:rotate(45deg);border-radius:1px}

/* Lexikon-Artikel */
.lex-kurz{font-size:20px;line-height:1.5;font-weight:600;margin:0 0 14px;max-width:68ch}
.lex-text{font-size:17px;line-height:1.7;max-width:68ch;margin:0}
.lex-text a.lk{color:inherit;text-decoration:underline;text-decoration-color:var(--k,var(--blue));text-decoration-thickness:2px;text-underline-offset:3px}
.lex-text a.lk:hover{color:var(--k,var(--blue))}
.blaettern{display:flex;justify-content:space-between;gap:12px;margin:36px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.blaettern a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);max-width:48%;font-weight:600}
.blaettern a small{color:var(--soft);font-weight:500;font-size:13px}
.blaettern a:last-child{text-align:right;margin-left:auto}

/* Lexikon-Übersicht */
.az{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 20px;position:sticky;top:0;z-index:1;background:var(--paper);padding:8px 0}
.az a,.az span{min-width:32px;height:32px;display:inline-grid;place-items:center;border-radius:8px;font-weight:700;font-size:15px;text-decoration:none;color:var(--ink);background:var(--raised);border:1px solid var(--line)}
.az span{opacity:.35}
.az a:hover{border-color:var(--blue);color:var(--blue)}
.filter-sp{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.filter-sp button{border:1px solid var(--line);background:var(--raised);border-radius:999px;padding:5px 12px;font-size:14px;font-weight:600;cursor:pointer;color:var(--muted)}
.filter-sp button[aria-pressed="true"]{background:var(--kb,var(--blue-soft));border-color:var(--k,var(--blue));color:var(--k,var(--blue))}
.gruppe-buchstabe{font-size:26px;font-weight:800;color:var(--soft);margin:26px 0 8px;font-stretch:118%;scroll-margin-top:60px}
.begriffsliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.begriff-karte{display:block;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--raised);background-image:var(--glanz);box-shadow:var(--schatten);text-decoration:none;color:var(--ink);border-top:3px solid var(--k);transition:transform .16s,box-shadow .16s,border-color .16s}
.begriff-karte:hover{border-color:var(--k);box-shadow:var(--schatten-hover);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.begriff-karte,.begriff-karte:hover,.tafel,.tafel:hover{transition:none;transform:none}}
.begriff-karte b{display:block;font-size:16px;margin-bottom:3px}
.begriff-karte span{font-size:14.5px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Start */
.start-kopf{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;margin:4px 0 30px}
.start-kopf h1{font-size:clamp(28px,4vw,42px);line-height:1.08;margin:0 0 12px;font-stretch:115%;letter-spacing:-.02em}
.start-kopf p{font-size:18px;color:var(--muted);margin:0 0 18px}
.zahlen{display:flex;gap:22px;flex-wrap:wrap}
.zahlen div,.zahlen a{display:flex;flex-direction:column} /* der Link „Werkzeuge“ steht wie die anderen Zahlen: Zahl oben, Wort darunter */
.zahlen b{font-size:30px;font-weight:800;font-stretch:118%;line-height:1}
.zahlen span{font-size:14px;color:var(--muted)}
.start-bild svg{width:100%;height:auto;display:block}
.start-suche{margin:0 0 30px;min-height:60px}
/* Treffer der Suche (assets/app-suche.css): Symbol in der Farbe der Sparte */
.palette .pal-opt[class*="sp-"] .po-icon{color:var(--k);background:var(--kb);border-color:color-mix(in srgb,var(--k) 25%,transparent)}
.sparten{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
@media (min-width:1000px){.sparten{grid-template-columns:repeat(4,1fr)}.sparte-karte.gross{grid-column:span 2;grid-row:span 2}.sparte-karte.gross ul{grid-template-columns:1fr 1fr;column-gap:20px}}
.sparte-karte{transition:border-color .2s,box-shadow .2s}.sparte-karte:hover{border-color:color-mix(in srgb,var(--k) 45%,var(--line));box-shadow:0 10px 26px -16px rgba(10,21,64,.35)}
.sparte-karte li a{display:block;padding:3px 0;line-height:1.35}
.sparte-karte{padding:16px;border-radius:16px;background:var(--raised);background-image:var(--glanz);box-shadow:var(--schatten);border:1px solid var(--line);position:relative;overflow:hidden}
.sparte-karte::after{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--k)}
.sparte-karte h2{margin:0;font-size:18px;font-stretch:108%}
.sp-zahl{margin:2px 0 12px;font-size:13.5px;font-weight:600;color:var(--k)}
.sparte-karte ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.sparte-karte a{color:var(--ink);text-decoration:none;font-size:15px}
.sparte-karte a:hover{color:var(--k);text-decoration:underline}
.sparte-karte .mehr{display:inline-block;margin-top:10px;font-size:14.5px;font-weight:700;color:var(--k)}
.zuletzt{margin:0 0 26px}
.abschnitt-text{margin:-4px 0 12px;font-size:15px;color:var(--muted)}
.tafel-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
@media (min-width:700px){.tafel-raster{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
@media (max-width:600px){.tafel-bild{height:96px}.tafel-titel{font-size:13.5px;padding:8px 10px 10px}}
.tafel{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--raised);box-shadow:var(--schatten);color:var(--ink);text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.tafel:hover,.tafel:focus-visible{border-color:var(--blue);transform:translateY(-2px);box-shadow:var(--schatten-hover)}
.tafel-bild{position:relative;display:block;height:128px;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
:root[data-theme="dark"] .tafel-bild{background:#f6f7fb}
.tafel-innen{position:absolute;left:50%;top:50%;width:820px;transform-origin:50% 50%;pointer-events:none}
.tafel-innen .bild{margin:0;padding:0;border:0;background:none;overflow:visible}
.tafel-innen .bild>svg{min-width:0;max-width:none}
.tafel-innen figcaption,.tafel-innen .ls-legende{display:none}
.tafel-titel{padding:10px 12px 12px;font-size:14.5px;font-weight:600;line-height:1.3;hyphens:auto;overflow-wrap:break-word}

/* Werkzeuge in Tabellen */
.wz-karte{margin:0 0 22px;padding:18px;border-radius:16px;background:var(--raised);border:1px solid var(--line);box-shadow:0 1px 2px rgba(10,21,64,.04)}
.wz-karte h2{margin:0 0 4px;font-size:16px}
.wz-karte .unter{margin:0 0 14px;font-size:14.5px;color:var(--muted)}
.wz-reihe{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.wz-feld{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;color:var(--muted)}
.wz-feld input,.wz-feld select{font-size:17px;font-weight:600;color:var(--ink);border:1px solid var(--line-2);border-radius:9px;padding:8px 10px;background:var(--raised);min-width:0}
.wz-feld input{width:min(320px,100%)}
.wz-feld input:focus,.wz-feld select:focus{outline:none;box-shadow:var(--focus)}
.wz-ergebnis{margin:16px 0 0;display:grid;gap:8px}
.wz-zeile{display:grid;grid-template-columns:minmax(80px,auto) 1fr;gap:12px;padding:10px 12px;border-radius:10px;background:var(--paper);align-items:baseline}
.wz-zeile b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;color:var(--k,var(--blue))}
.wz-zeile.fehler{background:var(--err-bg);color:var(--err)}
.anzeige{font-size:clamp(26px,4vw,36px);font-weight:800;font-stretch:115%;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.anzeige small{font-size:17px;font-weight:600;color:var(--muted);margin-left:8px}
.ip-ziffern{display:flex;gap:6px;align-items:center;font-size:32px;font-weight:800;font-stretch:115%}
.ip-ziffern .ziffer{display:flex;flex-direction:column;align-items:center;gap:4px}
.ip-ziffern .ziffer span{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.stufen{display:flex;flex-wrap:wrap;gap:3px;margin:6px 0 0}
.stufen button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-2);background:var(--raised);font-weight:700;cursor:pointer;color:var(--ink)}
.stufen button[aria-pressed="true"]{background:var(--k,var(--blue));border-color:var(--k,var(--blue));color:#fff}
:root[data-theme="dark"] .stufen button[aria-pressed="true"]{color:#0a1540}
.ip-erkl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.ip-erkl div{padding:12px 14px;border-radius:12px;background:var(--paper);font-size:15.5px}
.ip-erkl b{display:block;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.ringe{display:flex;flex-wrap:wrap;gap:10px}
.ringe select{font-size:15px}
.widerstand-svg{width:100%;max-width:420px;height:auto;display:block;margin:4px 0 8px}

/* Grafiken */
.bild{margin:0 0 22px;padding:16px;border-radius:16px;background:var(--papier-karte,#fff);border:1px solid var(--line);position:relative;overflow-x:auto;--wisch-bg:#364452;--wisch-fg:#fff}
.tab-huelle{--wisch-bg:var(--ink);--wisch-fg:var(--raised)}
.tab-huelle>.wisch{margin:0 0 6px}
.bild svg{width:100%;height:auto;display:block;color:#364452}
.bild>svg{max-width:780px;margin-inline:auto}
/* Handy: breite Zeichnungen behalten eine lesbare Mindestbreite und lassen sich seitlich schieben */
@media (max-width:600px){.bild{--pk:var(--papier-karte,#fff);overflow-x:auto;background:linear-gradient(90deg,var(--pk) 30%,#fff0) left/40px 100% no-repeat local,linear-gradient(270deg,var(--pk) 30%,#fff0) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,#0002,#0000) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#0002,#0000) right/12px 100% no-repeat scroll,var(--pk)}:root[data-theme="dark"] .bild{--pk:#f6f7fb}.bild>svg{min-width:500px}.bild>figcaption{position:sticky;left:0;max-width:calc(100vw - 72px)}}
.bild figcaption{font-size:13px;color:#5e6a77;margin-top:8px}
.bild:focus-visible,.tab-huelle:focus-visible{outline:none;box-shadow:var(--focus)}
:root[data-theme="dark"] .bild{background:#f6f7fb}
:root[data-theme="dark"] .bild{--wisch-bg:#2b3644;--wisch-fg:#f6f7fb}
:root[data-theme="dark"] .tab-huelle{--wisch-bg:var(--ink);--wisch-fg:var(--paper)}
/* Wisch-Hinweis bei seitlichem Überlauf (setzt tabellen.js nur, wenn die Grafik breiter ist als ihr Rahmen); bleibt beim Schieben sichtbar (sticky) und verschwindet nach dem ersten Wischen */
.bild>.wisch,.tab-huelle>.wisch{position:sticky;left:0;width:100%;display:flex;justify-content:center;margin:6px 0 0;pointer-events:none}
.wisch span{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:99px;background:var(--wisch-bg);color:var(--wisch-fg);font-size:12px;font-weight:600;letter-spacing:.02em;box-shadow:0 2px 8px rgba(10,21,64,.18);transition:opacity .35s ease}
.wisch i{font-style:normal;font-size:14px;line-height:1}
.gewischt>.wisch span{opacity:0}
@media (prefers-reduced-motion:no-preference){.wischbar>.wisch i:first-child{animation:wisch-links 1.6s ease-in-out infinite}.wischbar>.wisch i:last-child{animation:wisch-rechts 1.6s ease-in-out infinite}}
@keyframes wisch-links{0%,100%{transform:translateX(0)}50%{transform:translateX(-3px)}}
@keyframes wisch-rechts{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@media print{.wisch{display:none}}
:root[data-theme="dark"] .bild figcaption{color:#5e6a77}
.raster-bild{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px}
.raster-bild figure{margin:0;text-align:center;font-size:12.5px;color:#364452}
.raster-bild figure b{display:block;font-size:14px}
.ip-reihe+.ip-reihe{margin-top:16px;padding-top:14px;border-top:1px solid #e1e5ea}
.ip-reihe h3{font-size:13.5px;margin:0 0 10px;color:#364452}
.ip-bilder{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:10px 8px}
.ip-bilder figure{margin:0;text-align:center;font-size:11.5px;line-height:1.3;color:#5e6a77}
.ip-bilder svg{max-width:62px;margin:0 auto 2px}
.ip-bilder b{display:block;font-size:16px;color:#364452}
.ip-bilder figure{border-radius:10px;padding:4px 2px 6px;transition:background-color .2s ease,box-shadow .2s ease}
.ip-bilder figure.an{background:#e7ecfb;box-shadow:inset 0 0 0 2px #2b4fc4}
.ip-bilder figure.an span{color:#364452}
.ls-legende{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#364452;margin-top:8px}
.ls-legende i{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}


@media (max-width:900px){
  .rahmen{grid-template-columns:1fr}
  .start-kopf{grid-template-columns:1fr}
  .start-bild{display:none}
  .ip-erkl{grid-template-columns:1fr}
  #haupt{padding:20px 16px 56px}
  table.tb{font-size:15px}
  table.tb th,table.tb td{padding:8px 10px}
}
@media (max-width:600px){
  table.tb.stapel thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.tb.stapel,table.tb.stapel tbody,table.tb.stapel tr,table.tb.stapel td{display:block;width:100%}
  table.tb.stapel tr{padding:10px 14px;border-bottom:1px solid var(--line)}
  table.tb.stapel tbody tr:nth-child(even) td{background:none}
  table.tb.stapel tbody tr:nth-child(even){background:var(--zebra)}
  table.tb.stapel td{border:0;padding:2px 0;text-align:left}
  table.tb.stapel td:empty{display:none}
  table.tb.stapel td:first-child{font-size:16.5px;padding-bottom:4px}
  table.tb.stapel td:not(:first-child)::before{content:attr(data-l);display:block;font-size:12.5px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
}
@media (max-width:900px){.werkzeugleiste .tab-filter{flex:1 1 100%;max-width:none}}
@media print{
  .kopf,.seite,.fuss,.werkzeugleiste,.tab-filter,.blaettern,.abschnitt,.app-nav,.app-blatt,.app-blatt-hinter,.app-leiste,.wisch{display:none!important}
  .rahmen{display:block}#haupt{padding:0}
  .tab-huelle{overflow:visible;border:0;box-shadow:none}table.tb th{position:static}
}
@media (prefers-reduced-motion:no-preference){
  .inhalt{animation:auf .22s ease-out}
  @keyframes auf{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}
/* Kapitel: Unterüberschrift in der Liste, Inhaltsverzeichnis auf der Startkarte, Kapitelseite */
.liste-unter{display:block;margin:10px 8px 2px 10px;padding:2px 0;font-size:13.5px;font-weight:700;color:var(--soft);text-decoration:none;border-bottom:1px dashed var(--line)}
a.liste-unter:hover{color:var(--k)}
a.liste-unter.an{color:var(--k)}
.sparte-karte .kap-liste{gap:0}
.sparte-karte .kap-liste a{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line)}
.kap-liste li:last-child a{border-bottom:0}
@media (pointer:coarse){.sparte-karte .kap-liste a{min-height:44px;align-items:center;padding:4px 0}} /* Touch: Kapitel als volle Daumenzeile */
.kap-liste b{font-size:13px;font-weight:700;color:var(--k);background:var(--kb);border-radius:99px;padding:1px 8px;min-width:24px;text-align:center;font-variant-numeric:tabular-nums}
.kap-raster{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:18px 0 8px}
.kap-karte{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:12px;background:var(--raised);border:1px solid var(--line);text-decoration:none;color:var(--ink);position:relative;transition:border-color .2s,box-shadow .2s,transform .2s}
.kap-karte::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--k)}
.kap-karte:hover{border-color:color-mix(in srgb,var(--k) 45%,var(--line));box-shadow:0 10px 26px -16px rgba(10,21,64,.35);transform:translateY(-1px)}
.kap-karte b{font-size:16px;line-height:1.3}
.kap-karte span{font-size:14.5px;color:var(--soft);line-height:1.4}
.kap-karte i{font-style:normal;display:flex;gap:6px;margin-top:4px}
.kap-marke{font-size:12px!important;font-weight:700;letter-spacing:.03em;color:var(--k)!important;background:var(--kb);border-radius:6px;padding:1px 7px}
.chip small{opacity:.7;font-weight:600;margin-left:2px}
@media (prefers-reduced-motion:reduce){.kap-karte{transition:none}.kap-karte:hover{transform:none}}
.sparte-karte.gross .kap-liste{display:block;columns:2;column-gap:20px}.kap-liste li{break-inside:avoid}
/* Lange Fachwörter (Wärmeübergangswiderstände) brechen statt die Seite zu verbreitern */
.blaettern a{min-width:0;hyphens:auto;overflow-wrap:anywhere}.inhalt h1.titel,.kap-karte b,.begriff-karte b{hyphens:auto;overflow-wrap:break-word}
/* Begriffsgrafiken im Lexikon */
.begriff-karte b .kap-marke{display:inline-block;margin-left:7px;vertical-align:2px;font-size:11.5px!important;line-height:1.5;overflow:visible}
.lex-bild{margin-top:18px}
.lex-bild .bild{margin:0 auto}
/* Kapitel in der Seitenleiste zuklappbar */
.kap-alle{display:flex;gap:6px;margin:2px 8px 4px}
.kap-alle button{flex:1;border:1px solid var(--line);background:none;border-radius:7px;padding:4px 6px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.kap-alle button:hover{color:var(--ink);border-color:var(--soft)}
.kap-zeile{display:flex;align-items:flex-end;margin:6px 8px 2px 0}
.kap-zeile .liste-unter{flex:1;display:flex;align-items:baseline;gap:6px;margin:0;padding:4px 0 3px}
.kap-gruppe:not(.offen) .kap-zeile .liste-unter{border-bottom-color:transparent}
.kap-zahl{margin-left:auto;font-weight:600;font-size:12px;color:var(--soft);font-variant-numeric:tabular-nums}
.kap-auf{flex:none;width:24px;height:24px;margin:0 2px 0 2px;padding:0;border:0;background:none;border-radius:6px;color:var(--soft);cursor:pointer;display:grid;place-items:center}
.kap-auf:hover{background:var(--paper);color:var(--k)}
.kap-auf svg{width:12px;height:12px;transition:transform .18s ease}
.kap-gruppe.offen .kap-auf svg{transform:rotate(90deg)}
.kap-eintraege{padding-bottom:4px}
@media (prefers-reduced-motion:reduce){.kap-auf svg{transition:none}}
/* Merkliste (Favoriten) und Zuletzt angesehen */
.titel-zeile{display:flex;align-items:flex-start;gap:14px}
.titel-zeile h1.titel{flex:1;min-width:0}
.merk-knopf{flex:none;margin-top:6px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--raised);color:var(--ink);font-size:14.5px;font-weight:600;padding:7px 13px 7px 10px;border-radius:99px;cursor:pointer;transition:border-color .15s,background .15s}
.merk-knopf .stern{width:18px;height:18px;fill:none;stroke:var(--soft);stroke-width:1.7;stroke-linejoin:round;transition:transform .2s}
.merk-knopf:hover{border-color:var(--warn)}.merk-knopf:hover .stern{stroke:var(--warn)}
.merk-knopf[aria-pressed=true]{background:var(--warn-soft);border-color:var(--warn-rand)}
.merk-knopf[aria-pressed=true] .stern{fill:var(--amber);stroke:var(--warn)}
.merk-knopf.puls .stern{animation:merk-puls .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes merk-puls{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:none}}
@media (max-width:560px){.merk-knopf{padding:8px;margin-top:2px}.merk-knopf span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
.kap-gruppe.meine .liste-unter{gap:6px;align-items:center}
.kap-gruppe.meine .liste-unter svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.kap-gruppe.meine .liste-unter .stern{fill:var(--amber);stroke:var(--warn);stroke-width:1.5}
.kap-gruppe.meine:last-of-type{margin-bottom:6px}
.meine-start{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 28px;margin:0 0 26px}
.meine-spalte h2{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.meine-spalte h2 svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.meine-spalte h2 .stern{fill:var(--amber);stroke:var(--warn);stroke-width:1.5}
.mk-tipp{margin:0;font-size:14.5px;color:var(--muted);max-width:44ch}
@media (prefers-reduced-motion:reduce){.merk-knopf.puls .stern{animation:none}}
@media print{.merk-knopf{display:none!important}}

/* ---------- Breite Tabellen: erste Spalte haftet, Schatten am Rand zeigt weiteren Inhalt (tabellen.js setzt .breit bei echtem Überlauf, .geschoben nach dem Schieben) ---------- */
.tab-huelle.breit{--pk:var(--raised);background:linear-gradient(90deg,var(--pk) 30%,transparent) left/40px 100% no-repeat local,linear-gradient(270deg,var(--pk) 30%,transparent) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(20,33,90,.16),transparent) left/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(20,33,90,.16),transparent) right/14px 100% no-repeat scroll,var(--pk)}
:root[data-theme="dark"] .tab-huelle.breit{background:linear-gradient(90deg,var(--pk) 30%,transparent) left/40px 100% no-repeat local,linear-gradient(270deg,var(--pk) 30%,transparent) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.45),transparent) left/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.45),transparent) right/14px 100% no-repeat scroll,var(--pk)}
.tab-huelle.breit table.tb:not(.stapel) th:first-child,.tab-huelle.breit table.tb:not(.stapel) td:first-child{position:sticky;left:0;z-index:2;background-color:var(--raised);background-clip:padding-box;transition:box-shadow .2s}
.tab-huelle.breit table.tb:not(.stapel) th:first-child{z-index:3;background-color:var(--kopfzeile)}
.tab-huelle.breit table.tb:not(.stapel) tbody tr:nth-child(even) td:first-child{background-image:linear-gradient(var(--zebra),var(--zebra))}
.tab-huelle.breit table.tb:not(.stapel) tbody tr:hover td:first-child{background-color:var(--blue-soft);background-image:none}
.tab-huelle.breit table.tb:not(.stapel) tr.markiert td:first-child{background-color:var(--warn-soft);background-image:none}
.tab-huelle.breit.geschoben table.tb:not(.stapel) th:first-child,.tab-huelle.breit.geschoben table.tb:not(.stapel) td:first-child{box-shadow:6px 0 10px -4px rgba(20,33,90,.22),1px 0 0 var(--line)}
:root[data-theme="dark"] .tab-huelle.breit.geschoben table.tb:not(.stapel) th:first-child,:root[data-theme="dark"] .tab-huelle.breit.geschoben table.tb:not(.stapel) td:first-child{box-shadow:6px 0 10px -4px rgba(0,0,0,.6),1px 0 0 var(--line)}
/* Zeile aus einem geteilten Link (#t/<id>/<n>) */
table.tb tr.markiert td{background:var(--warn-soft);box-shadow:inset 0 0 0 1px var(--warn-rand)}
table.tb.stapel tr.markiert{background:var(--warn-soft);box-shadow:inset 3px 0 0 var(--warn)}
table.tb.stapel tr.markiert td{box-shadow:none;background:none}
/* Zeile wählen (Knopf „Zeile teilen“): Zeilen sind dann antippbar und mit der Tastatur erreichbar */
.tab-huelle.waehlen table.tb tbody tr{cursor:pointer}
.tab-huelle.waehlen table.tb tbody tr:focus-visible{outline:none}.tab-huelle.waehlen table.tb tbody tr:focus-visible td{box-shadow:inset 0 0 0 2px var(--blue)}
.tab-huelle.waehlen table.tb tbody tr:hover td{background:var(--blue-soft)}
.waehl-hinweis{margin:0 0 10px;font-size:14.5px;color:var(--muted)}
.knopf[aria-pressed=true]{border-color:var(--blue);color:var(--blue);background-color:var(--blue-soft)}

/* ---------- Zuletzt angesehen als Chips über der Liste ---------- */
.zuletzt-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 4px 8px;margin:0 0 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.zuletzt-chips::-webkit-scrollbar{display:none}
.zuletzt-chips .chip{flex:none;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;font-size:14px;padding:5px 11px 5px 10px;scroll-snap-align:start;background-image:var(--glanz-knopf);box-shadow:var(--knopf-licht)}
.zuletzt-chips .chip::before{display:inline-block;margin-right:6px;vertical-align:1px}
.zuletzt-chips .chip.an{border-color:var(--k,var(--blue));color:var(--k,var(--blue));font-weight:600}
.zuletzt-chips .uhr{width:14px;height:14px;flex:none;margin:9px 0 0 2px;fill:none;stroke:var(--soft);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Seite „Werkzeuge“ (#w) und „Gemerkt“ (#m) ---------- */
.wz-zu{margin:-8px 0 22px;display:flex;gap:8px;flex-wrap:wrap}
.wz-karte+.wz-zu{margin-top:-12px}
.zahlen a{color:inherit;text-decoration:none;border-radius:10px}.zahlen a:hover b{color:var(--blue)}
.meine-seite .kap-karte{flex-direction:row;align-items:center;gap:10px;padding-right:8px}
.meine-seite .kap-karte .text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none}
.meine-seite .kap-karte .text:hover b{color:var(--k)}
.meine-seite .kap-karte .art{width:16px;height:16px;flex:none;color:var(--k)}
.meine-seite .kap-raster{margin:10px 0 0}
.weg-knopf{flex:none;width:36px;height:36px;border:0;background:none;border-radius:9px;color:var(--soft);cursor:pointer;display:grid;place-items:center}
.weg-knopf:hover{background:var(--paper);color:var(--err)}
.weg-knopf svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.meine-seite .abschnitt h2{display:flex;align-items:center;gap:8px;font-size:17px}
.meine-seite .abschnitt h2 svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.meine-seite .abschnitt h2 .stern{fill:var(--amber);stroke:var(--warn);stroke-width:1.5}
.meine-seite .abschnitt h2 .knopf{margin-left:auto;font-size:14px;min-height:36px;padding:5px 11px}

/* ---------- Blätter (Mehr, Zeile teilen): gemeinsamer Baustein assets/app-nav.css (.app-blatt), hier nur Schriftgröße und Inhalt des Zeilen-Blatts ---------- */
.app-blatt{font-size:16px}.app-blatt .ab-kopf h2{font-size:19px}.app-blatt h3{font-size:12.5px}
.app-blatt .ab-liste a,.app-blatt .ab-liste button{font-size:16px}.app-blatt .ab-liste small{font-size:14px}.app-blatt .ab-fuss{font-size:13.5px}
.zell-werte{margin:0 0 12px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:15.5px;max-height:36vh;overflow:auto;padding:10px 12px;border-radius:12px;background:var(--paper);box-shadow:var(--feld-innen)}
.zell-werte dt{color:var(--muted);font-weight:600;font-size:14px;padding-top:1px}
.zell-werte dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.zell-werte .gewaehlt dt,.zell-werte .gewaehlt dd{color:var(--blue);font-weight:700}
.zell-werte .gewaehlt dd::after{content:" ← gewählt";font-size:12.5px;font-weight:600;color:var(--muted)}
.zell-knoepfe{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.zell-knoepfe .knopf{min-height:46px;justify-content:center}
.zell-knoepfe .zell-bild{grid-column:1/-1}
.zell-status{margin:10px 0 0;min-height:1.4em;font-size:14.5px;color:var(--ok);font-weight:600;text-align:center}
.zell-status:empty{margin:0;min-height:0}

/* ---------- App-Layout bis 900 px: Kopf kompakt, Suche oben haften, Leiste unten, Inhaltsverzeichnis als Feld ---------- */
@media (max-width:900px){
  /* Kopf 48 px, Hell/Dunkel im Blatt „Mehr“, Platz für die Leiste: assets/app-nav.css */
  .app-leiste{font-size:14px}
  /* kein backdrop-filter: der würde das feste Feld (#panel) an die Seitenleiste binden */
  .seite{position:sticky;top:var(--kopf-h);z-index:30;height:0;max-height:none;padding:0;border:0;background:none;overflow:visible}
  .panel{position:fixed;left:0;right:0;top:var(--panel-oben,109px);bottom:var(--nav-h);z-index:29;display:none;flex-direction:column;background:var(--raised);border-top:1px solid var(--line)}
  .seite.offen .panel{display:flex}
  .panel-kopf{display:flex;align-items:center;gap:6px;padding:8px 10px 6px;border-bottom:1px solid var(--line)}
  .panel-kopf .reiter{flex:1;margin:0}
  .panel-kopf .reiter button{min-height:40px}
  .panel-zu{flex:none;width:44px;height:44px;border:0;background:none;border-radius:12px;color:var(--muted);display:grid;place-items:center;cursor:pointer}
  .panel-zu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  #liste{flex:1;min-height:0;overflow:auto;padding:4px 8px calc(12px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}
  .eintrag{padding:10px 10px 10px 28px;min-height:44px;display:flex;flex-direction:column;justify-content:center}
  .eintrag .art{top:14px}
  .kap-zeile .liste-unter{min-height:40px;align-items:center}
  .kap-auf{width:40px;height:40px}
  .kap-alle button{min-height:36px}
  .liste-kat{margin-top:12px}
  .buchstaben-mini a{min-width:32px;padding:6px 0}
  .zuletzt-chips .chip{min-height:40px;display:inline-flex;align-items:center}
  #haupt{padding:16px 16px 40px}
  .merk-knopf{min-width:44px;min-height:44px;margin-top:0;justify-content:center}
  .werkzeugleiste .knopf{min-height:44px}
  .chips .chip{min-height:40px;display:inline-flex}
  .filter-sp button,.az a,.az span{min-height:40px}
  .az a,.az span{min-width:36px}
  /* Leiste unten und Blätter: assets/app-nav.css */
  .zell-knoepfe{grid-template-columns:1fr 1fr}
  /* Langes Antippen öffnet das Blatt „Zeile teilen“ statt der Textauswahl des Browsers */
  table.tb td{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
}

/* Formelsatz in Formeltafeln (Etappe 10) */
.fx{white-space:nowrap;display:inline-block;max-width:100%;overflow-x:auto;vertical-align:middle;font-family:"Cambria Math","STIX Two Math","Latin Modern Math",Georgia,"Times New Roman",serif;font-size:1.08em;line-height:1.9}
.fx i{font-style:italic}
.fx sub,.fx sup{font-size:.72em;font-style:normal}
.fx .fr{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 .14em;font-size:.94em;line-height:1.25;white-space:nowrap}
.fx .fr>span{padding:0 .22em}
.fx .fr>span:first-child{border-bottom:1px solid currentColor}
.fx .wu{white-space:nowrap}
.fx .wu>span{border-top:1px solid currentColor;padding:0 .1em;margin-left:.04em}

/* ---------- Feinschliff 2026-10-22 (Thomas: „Glow, Glaseffekt, Morph“ wie auf der Startseite, ruhig und ohne mehr Platz) ----------
   Gemeinsame Werte, weiche Lichtkanten in der Spartenfarbe beim Überfahren, Glas nur dort, wo etwas dahinter liegt (A–Z-Leiste, Zeilen-Blatt,
   Inhaltsfeld am Handy; ohne backdrop-filter bleibt die deckende Fläche), Formübergänge an Pillen und Zählern, ein langsam wanderndes Licht
   hinter dem Kopf der Startseite (pausiert unsichtbar: .ruht aus tabellen.js). Nur transform, opacity und box-shadow bewegen sich;
   bei reduzierter Bewegung steht alles still (Block am Ende). Größenfarben bleiben den Größen vorbehalten: hier leuchten nur Sparten und Blau. */
:root{--tb-morph:cubic-bezier(.2,.8,.25,1);--tb-blob:46% 54% 52% 48% / 54% 46% 54% 46%;--tb-glas-licht:inset 0 1px 0 rgba(255,255,255,.55);
  --tb-glow:rgba(31,63,224,.16);--tb-glow-rand:rgba(31,63,224,.35);--tb-glas-anteil:82%}
:root[data-theme="dark"]{--tb-glas-licht:inset 0 1px 0 rgba(255,255,255,.1);--tb-glow:rgba(142,163,255,.2);--tb-glow-rand:rgba(142,163,255,.45);--tb-glas-anteil:86%}
/* Lichtkante in der Spartenfarbe (--k) oder Blau: eine Linie plus weicher Halo; ohne color-mix bleibt die Linie allein */
@supports (color:color-mix(in srgb,red,blue)){
  :root,:root[data-theme="dark"]{--tb-glow:color-mix(in srgb,var(--blue) 16%,transparent);--tb-glow-rand:color-mix(in srgb,var(--blue) 35%,transparent)}
}

/* Startseite: wanderndes Licht hinter Titel und Bild, Suche leuchtet beim Überfahren */
.start-kopf{position:relative;isolation:isolate}
.start-kopf::before{content:"";position:absolute;inset:-12% -6%;z-index:-1;pointer-events:none;
  background:radial-gradient(300px 190px at 22% 36%,color-mix(in srgb,var(--blue) 11%,transparent),transparent 70%),radial-gradient(260px 170px at 82% 62%,color-mix(in srgb,var(--sp-wg) 8%,transparent),transparent 70%);
  will-change:transform;animation:tb-drift 30s ease-in-out infinite alternate}
.start-kopf.ruht::before{animation-play-state:paused}
@media (max-width:900px){.start-kopf::before{opacity:.55}}
@keyframes tb-drift{from{transform:translate3d(-2.5%,-2%,0) scale(1)}to{transform:translate3d(2.5%,2%,0) scale(1.06)}}
.start-bild svg{filter:drop-shadow(0 18px 28px var(--tb-glow))}
.start-suche{transition:border-color .2s,box-shadow .3s,transform .3s var(--tb-morph)}
.start-suche:hover{box-shadow:var(--feld-innen),0 0 0 1px var(--tb-glow-rand),0 14px 36px var(--tb-glow);transform:translateY(-1px)}
.zahlen a{transition:transform .3s var(--tb-morph)}.zahlen a:hover{transform:translateY(-1px)}

/* Spartenkarten: Streifen oben wird beim Überfahren zur Lichtkante, Zähler morphen von der Pille zum Kästchen, Karte hebt sich leicht */
.sparte-karte{transition:border-color .25s,box-shadow .35s,transform .3s var(--tb-morph)}
.sparte-karte::after{transition:height .35s var(--tb-morph),opacity .3s}
.sparte-karte:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--k) 55%,var(--line));box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k) 45%,transparent),0 18px 44px color-mix(in srgb,var(--k) 16%,transparent)}
.sparte-karte:hover::after{height:5px}
.sparte-karte h2{display:flex;align-items:center;gap:9px}
.sparte-karte h2::before{content:"";flex:none;width:11px;height:11px;border-radius:50%;background:var(--k);box-shadow:0 0 0 3px var(--kb);transition:border-radius .45s var(--tb-morph),transform .45s var(--tb-morph),box-shadow .3s}
.sparte-karte:hover h2::before{border-radius:var(--tb-blob);transform:rotate(-8deg) scale(1.15);box-shadow:0 0 0 3px var(--kb),0 0 14px color-mix(in srgb,var(--k) 40%,transparent)}
.kap-liste b{transition:border-radius .35s var(--tb-morph),background-color .25s,color .25s,box-shadow .3s}
.kap-liste a:hover b{border-radius:7px;background:var(--k);color:var(--raised);box-shadow:0 4px 12px color-mix(in srgb,var(--k) 35%,transparent)}

/* Seitenleiste: aktiver Eintrag mit weicher Lichtkante, Reiter leuchtet */
.eintrag{transition:background-color .2s,box-shadow .3s,color .2s}
.eintrag.an{box-shadow:var(--tb-glas-licht),0 0 0 1px var(--tb-glow-rand),0 8px 20px var(--tb-glow)}
.eintrag.an::before{box-shadow:0 0 10px var(--tb-glow-rand)}
.reiter button{transition:background-color .25s,color .25s,box-shadow .3s}
.reiter button[aria-selected="true"]{box-shadow:var(--tb-glas-licht),0 1px 3px rgba(10,21,64,.12),0 0 16px var(--tb-glow)}
.liste-kat::before{transition:border-radius .4s var(--tb-morph),transform .4s var(--tb-morph)}
.liste-kat:hover::before{border-radius:var(--tb-blob);transform:rotate(-8deg) scale(1.2)}
.zuletzt-chips .chip.an{box-shadow:var(--knopf-licht),0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 35%,transparent),0 0 14px color-mix(in srgb,var(--k,var(--blue)) 18%,transparent)}

/* Tabelle: Zeile unter dem Zeiger leuchtet als Band, Kopfzeile mit feiner Lichtlinie, Karte hebt sich kaum merklich */
.tab-huelle{transition:box-shadow .35s,border-color .25s}
.tab-huelle:hover{box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 22%,transparent)}
table.tb th{box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
:root[data-theme="dark"] table.tb th{box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
table.tb th.spalte{box-shadow:inset 0 -2px 0 var(--blue)}
table.tb td{transition:background-color .18s,box-shadow .25s}
table.tb tbody tr:hover td{box-shadow:inset 0 1px 0 var(--tb-glow-rand),inset 0 -1px 0 var(--tb-glow-rand)}
table.tb tbody tr:hover td:first-child{box-shadow:inset 1px 0 0 var(--tb-glow-rand),inset 0 1px 0 var(--tb-glow-rand),inset 0 -1px 0 var(--tb-glow-rand)}
table.tb tbody tr:hover td:last-child{box-shadow:inset -1px 0 0 var(--tb-glow-rand),inset 0 1px 0 var(--tb-glow-rand),inset 0 -1px 0 var(--tb-glow-rand)}
table.tb tr.markiert td,table.tb tbody tr.markiert:hover td{box-shadow:inset 0 0 0 1px var(--warn-rand),0 0 18px color-mix(in srgb,var(--amber) 22%,transparent)}
table.tb.stapel tbody tr:hover td,table.tb.stapel tr.markiert td{box-shadow:none}
.tab-huelle.waehlen table.tb tbody tr:focus-visible td{box-shadow:inset 0 0 0 2px var(--blue),0 0 16px var(--tb-glow)}
.tab-filter{transition:box-shadow .3s,border-color .2s}
.tab-filter:focus-within{box-shadow:var(--focus),0 0 18px var(--tb-glow)}

/* Knöpfe (Werkzeugleiste, Zeilen-Blatt, Werkzeuge): Lichtkante und sanfte Rundung beim Überfahren, Fokus bleibt sichtbar */
.knopf{transition:background-color .2s,border-color .2s,color .2s,box-shadow .3s,transform .3s var(--tb-morph),border-radius .3s var(--tb-morph)}
.knopf:hover{box-shadow:var(--knopf-licht),0 0 0 1px var(--tb-glow-rand),0 10px 26px var(--tb-glow);transform:translateY(-1px);border-radius:13px}
.knopf:focus-visible{outline:none;box-shadow:var(--knopf-licht),var(--focus)}
.knopf[aria-pressed=true]{box-shadow:var(--knopf-licht),0 0 0 1px var(--tb-glow-rand),0 0 16px var(--tb-glow)}
.knopf svg{transition:transform .35s var(--tb-morph)}.knopf:hover svg{transform:scale(1.08)}
.merk-knopf{transition:border-color .2s,background-color .2s,box-shadow .3s,transform .3s var(--tb-morph)}
.merk-knopf:hover{transform:translateY(-1px);box-shadow:0 0 0 1px var(--warn-rand),0 10px 24px color-mix(in srgb,var(--amber) 22%,transparent)}
.merk-knopf[aria-pressed=true]{box-shadow:var(--knopf-licht),0 0 0 1px var(--warn-rand),0 0 18px color-mix(in srgb,var(--amber) 28%,transparent)}
.merk-knopf .stern{transition:transform .3s var(--tb-morph),fill .2s,stroke .2s}.merk-knopf:hover .stern{transform:rotate(-12deg) scale(1.12)}

/* Chips (Lexikon, Rechner, Formeln, Fehlersuche, Kapitel): Pille morpht zur Karte, Punkt wächst, Lichtkante in der Spartenfarbe */
.chip{transition:border-color .2s,color .2s,background-color .2s,box-shadow .3s,transform .3s var(--tb-morph),border-radius .35s var(--tb-morph)}
.chip::before{transition:transform .35s var(--tb-morph),box-shadow .3s}
a.chip:hover,button.chip:hover{border-radius:12px;transform:translateY(-1px);box-shadow:0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 40%,transparent),0 10px 24px color-mix(in srgb,var(--k,var(--blue)) 16%,transparent)}
a.chip:hover::before,button.chip:hover::before{transform:scale(1.3);box-shadow:0 0 10px color-mix(in srgb,var(--k,var(--blue)) 45%,transparent)}
.chip.formel:hover::before{transform:rotate(45deg) scale(1.3)}
.zuletzt-chips .chip:hover{border-radius:999px;transform:none}

/* Lexikon: A–Z-Leiste als Glas über der Liste, Buchstaben morphen, Begriffskarten mit Lichtkante, Spartenfilter leuchtet */
.az{box-shadow:0 8px 20px -14px rgba(10,21,64,.25)}
.az a{transition:border-color .2s,color .2s,box-shadow .3s,transform .3s var(--tb-morph),border-radius .35s var(--tb-morph)}
.az a:hover{border-radius:var(--tb-blob);transform:translateY(-1px);box-shadow:0 0 0 1px var(--tb-glow-rand),0 8px 18px var(--tb-glow)}
.filter-sp button{transition:border-color .2s,color .2s,background-color .2s,box-shadow .3s,border-radius .3s var(--tb-morph)}
.filter-sp button:hover{border-color:color-mix(in srgb,var(--k,var(--blue)) 50%,var(--line));color:var(--k,var(--blue))}
.filter-sp button[aria-pressed="true"]{border-radius:10px;box-shadow:0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 30%,transparent),0 0 16px color-mix(in srgb,var(--k,var(--blue)) 18%,transparent)}
.begriff-karte{transition:transform .3s var(--tb-morph),box-shadow .35s,border-color .25s}
.begriff-karte:hover{box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k) 40%,transparent),0 16px 36px color-mix(in srgb,var(--k) 14%,transparent)}
.begriff-karte b .kap-marke{transition:border-radius .35s var(--tb-morph)}
.begriff-karte:hover b .kap-marke{border-radius:999px}
.bild{transition:box-shadow .35s}
.bild:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 20%,transparent),0 18px 40px rgba(10,21,64,.1)}
:root[data-theme="dark"] .bild:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 28%,transparent),0 18px 40px rgba(0,0,0,.4)}

/* Kapitel- und Bildtafeln: Lichtkante in der Spartenfarbe, Grafik hebt sich sanft */
.kap-karte{transition:border-color .25s,box-shadow .35s,transform .3s var(--tb-morph)}
.kap-karte::before{transition:box-shadow .3s,width .3s var(--tb-morph)}
.kap-karte:hover{transform:translateY(-2px);box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k) 40%,transparent),0 16px 36px color-mix(in srgb,var(--k) 14%,transparent)}
.kap-karte:hover::before{width:4px;box-shadow:0 0 12px color-mix(in srgb,var(--k) 50%,transparent)}
.tafel{transition:transform .3s var(--tb-morph),border-color .25s,box-shadow .35s}
.tafel:hover,.tafel:focus-visible{border-color:color-mix(in srgb,var(--k,var(--blue)) 55%,var(--line));box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 40%,transparent),0 18px 40px color-mix(in srgb,var(--k,var(--blue)) 16%,transparent)}
.tafel-titel{transition:color .2s}.tafel:hover .tafel-titel{color:var(--k,var(--blue))}

/* Blättern (vorige/nächste Tabelle, voriger/nächster Begriff): Karten mit Glanz, Lichtkante beim Überfahren */
.blaettern{border-top:0;padding-top:0;margin-top:34px}
.blaettern a{flex:1 1 0;max-width:none;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--raised);background-image:var(--glanz);box-shadow:var(--schatten);transition:border-color .25s,box-shadow .35s,transform .3s var(--tb-morph),color .2s}
.blaettern a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--k,var(--blue)) 55%,var(--line));box-shadow:var(--schatten-hover),0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 40%,transparent),0 16px 36px color-mix(in srgb,var(--k,var(--blue)) 14%,transparent);color:var(--k,var(--blue))}
.blaettern a small{transition:color .2s}.blaettern a:hover small{color:var(--k,var(--blue))}
.blaettern span{flex:1 1 0}
@media (max-width:560px){.blaettern{flex-direction:column}.blaettern a:last-child{text-align:right}}

/* Werkzeuge (IP-Code, Leitung, Farbcode): Karte mit Glanz, gewählte Stufe leuchtet, Ergebniszeilen heben sich beim Überfahren */
.wz-karte{background-image:var(--glanz);box-shadow:var(--schatten)}
.stufen button{transition:background-color .2s,border-color .2s,color .2s,box-shadow .3s,border-radius .3s var(--tb-morph),transform .25s var(--tb-morph)}
.stufen button:hover{border-color:var(--k,var(--blue));color:var(--k,var(--blue));transform:translateY(-1px)}
.stufen button[aria-pressed="true"]{border-radius:11px;box-shadow:0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 30%,transparent),0 8px 18px color-mix(in srgb,var(--k,var(--blue)) 30%,transparent)}
.wz-zeile{transition:box-shadow .3s}.wz-zeile:hover{box-shadow:var(--tb-glas-licht),0 0 0 1px color-mix(in srgb,var(--k,var(--blue)) 18%,transparent)}
.ip-bilder figure.an{box-shadow:inset 0 0 0 2px #2b4fc4,0 0 16px rgba(43,79,196,.3)}

/* Glas: A–Z-Leiste über der Begriffsliste, Zeilen-Blatt über der abgedunkelten Seite, Inhaltsfeld am Handy; ohne backdrop-filter bleiben die deckenden Flächen */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .az{background:color-mix(in srgb,var(--paper) var(--tb-glas-anteil),transparent);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3)}
  .app-blatt.zell-blatt{background-color:color-mix(in srgb,var(--ab-flaeche) 88%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:var(--schatten-gross),var(--tb-glas-licht)}
  @media (max-width:900px){.panel{background:color-mix(in srgb,var(--raised) 92%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}}
}
.zell-werte .gewaehlt dd,.zell-werte .gewaehlt dt{text-shadow:0 0 12px var(--tb-glow)}

/* Reduzierte Bewegung: kein wanderndes Licht, keine Formübergänge, keine Hebung; Lichtkanten bleiben als ruhige Zustände */
@media (prefers-reduced-motion:reduce){
  .start-kopf::before{animation:none;transform:none}
  .start-suche,.zahlen a,.sparte-karte,.sparte-karte::after,.sparte-karte h2::before,.kap-liste b,.eintrag,.reiter button,.liste-kat::before,.tab-huelle,table.tb td,.tab-filter,.knopf,.knopf svg,.merk-knopf,.merk-knopf .stern,.chip,.chip::before,.az a,.filter-sp button,.begriff-karte,.begriff-karte b .kap-marke,.bild,.kap-karte,.kap-karte::before,.tafel,.tafel-titel,.blaettern a,.blaettern a small,.stufen button,.wz-zeile{transition:none}
  .start-suche:hover,.zahlen a:hover,.sparte-karte:hover,.sparte-karte:hover h2::before,.liste-kat:hover::before,.knopf:hover,.knopf:hover svg,.merk-knopf:hover,.merk-knopf:hover .stern,a.chip:hover,button.chip:hover,a.chip:hover::before,button.chip:hover::before,.az a:hover,.begriff-karte:hover,.kap-karte:hover,.tafel:hover,.tafel:focus-visible,.blaettern a:hover,.stufen button:hover{transform:none}
  .chip.formel:hover::before{transform:rotate(45deg)}
  .sparte-karte:hover h2::before,.liste-kat:hover::before{border-radius:50%}.kap-liste a:hover b{border-radius:99px}.az a:hover{border-radius:8px}.knopf:hover{border-radius:10px}a.chip:hover,button.chip:hover{border-radius:999px}
}
