:root{--bg:#f5f7fb;--surface:#fff;--surface2:#eef2f7;--text:#172033;--muted:#62708a;--line:#d9e0ea;--accent:#3157d5;--accent2:#0f766e;--warn:#9a6700;--code:#111827;--codeText:#e5e7eb;--shadow:0 10px 30px rgba(23,32,51,.09)}
html[data-theme="dark"]{--bg:#0c111b;--surface:#141b28;--surface2:#1b2433;--text:#edf2f7;--muted:#aab6ca;--line:#2a3548;--accent:#8ca9ff;--accent2:#5eead4;--warn:#facc15;--code:#090d14;--codeText:#e5e7eb;--shadow:0 10px 30px rgba(0,0,0,.3)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.58 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--accent)}.shell{max-width:1420px;margin:auto;padding:24px}.topbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);padding:12px 0}.brand{font-weight:800;margin-right:auto}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:11px;padding:9px 13px;cursor:pointer}.btn:hover{border-color:var(--accent)}.hero,.card,.toc,.status{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.hero{padding:34px;margin:14px 0 22px}.hero h1{font-size:clamp(2rem,4vw,4rem);line-height:1.05;margin:0 0 14px}.eyebrow{color:var(--accent2);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.card{padding:20px}.card h3{margin-top:0}.status{padding:14px 18px;display:flex;gap:18px;flex-wrap:wrap;margin:12px 0}.toc{padding:18px;margin:18px 0}.toc a{display:inline-block;margin:4px 10px 4px 0}.chapter{margin:16px 0;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}.chapter>summary{cursor:pointer;padding:18px 20px;font-size:1.12rem;font-weight:800;background:var(--surface2);display:flex;justify-content:space-between;gap:16px}.chapter[open]>summary{border-bottom:1px solid var(--line)}.chapter-body{padding:20px}.lab{border-left:4px solid var(--accent);padding-left:16px;margin:24px 0}.tag{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);margin:2px;font-size:.86rem}.code-wrap{position:relative;margin:12px 0}.code-title{font-size:.85rem;color:var(--muted);margin-bottom:5px}.copy{position:absolute;top:30px;right:10px;z-index:2}.code{background:var(--code);color:var(--codeText);border-radius:14px;padding:18px;overflow:auto;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre}.kw{color:#c084fc}.type{color:#67e8f9}.str{color:#86efac}.num{color:#fdba74}.com{color:#94a3b8}.ann{color:#f9a8d4}.callout{border:1px solid var(--line);border-left:5px solid var(--accent2);background:var(--surface2);border-radius:13px;padding:15px;margin:14px 0}.warning{border-left-color:var(--warn)}table{width:100%;border-collapse:collapse;margin:14px 0}th,td{border:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}th{background:var(--surface2)}img.svg{max-width:100%;height:auto;background:var(--surface);border-radius:14px;border:1px solid var(--line)}footer{margin:40px 0;color:var(--muted)}@media(max-width:700px){.shell{padding:14px}.hero{padding:22px}.topbar{position:static}.chapter>summary{padding:15px}.chapter-body{padding:15px}.code{font-size:12px}.hide-mobile{display:none}}
@media print{.topbar,.copy{display:none!important}.chapter{break-inside:avoid}.chapter>summary{background:#eee}.chapter:not([open])>.chapter-body{display:block}.shell{max-width:none}.hero,.card,.toc,.status,.chapter{box-shadow:none}}

.progress-panel{margin-top:22px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:var(--surface2)}.progress-panel p{margin:8px 0 0}.progress-track{height:12px;margin-top:10px;border-radius:999px;background:var(--line);overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:inherit}


/* v6: Icon-first controls and richer Java syntax highlighting */
.icon-btn{width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px}
.icon-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover{background:var(--surface2);transform:translateY(-1px)}
.icon-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}
.copy.icon-btn{top:27px;right:9px;width:38px;height:38px;flex-basis:38px;background:color-mix(in srgb,var(--code) 82%,white 8%);color:#dbeafe;border-color:#334155}
.copy.icon-btn[data-copied="true"]{color:#86efac;border-color:#22c55e}
.topbar .search-wrap{position:relative;display:flex;align-items:center}.topbar .search-wrap svg{position:absolute;left:12px;width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2}.topbar .search-wrap input{padding-left:38px;min-width:220px}
.chapter>summary::after{content:"";width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:.18s ease;margin:4px 3px 0 auto;flex:0 0 10px}
.chapter[open]>summary::after{transform:rotate(225deg);margin-top:10px}.chapter>summary>span:last-child.tag{margin-left:auto;margin-right:10px}.chapter>summary>span:last-child:not(.tag){display:none}
.code{tab-size:4;border:1px solid #263449;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.code .tok-comment{color:#94a3b8;font-style:italic}.code .tok-keyword{color:#c084fc;font-weight:650}.code .tok-type{color:#67e8f9}.code .tok-string{color:#86efac}.code .tok-number{color:#fdba74}.code .tok-annotation{color:#f9a8d4}.code .tok-method{color:#93c5fd}.code .tok-operator{color:#e2e8f0}.code .tok-field{color:#fcd34d}
.code-title{display:flex;align-items:center;gap:8px;font-weight:700}.code-title::before{content:"</>";font-size:.72rem;color:var(--accent2);border:1px solid var(--line);padding:1px 5px;border-radius:6px;background:var(--surface)}
.control-legend{font-size:.84rem;color:var(--muted);margin-left:auto}.phase-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0}.phase-status .metric{padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.phase-status strong{font-size:1.25rem;display:block}.phase-status small{color:var(--muted)}
@media(max-width:700px){.topbar{gap:7px}.icon-btn{width:40px;height:40px;flex-basis:40px}.topbar .search-wrap{width:100%}.topbar .search-wrap input{width:100%}.control-legend{display:none}}

/* v25: Pattern Explorer details and accessible code toolbar */
details.lab{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:16px;background:var(--surface);overflow:hidden;padding:0;margin:16px 0}details.lab>summary{cursor:pointer;display:grid;grid-template-columns:auto minmax(140px,220px) 1fr;gap:12px;align-items:center;padding:17px 19px;background:var(--surface2)}details.lab[open]>summary{border-bottom:1px solid var(--line)}details.lab .lab-body{padding:20px}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));font-size:.82rem;font-weight:800}.diagram{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:14px;background:#f4f7fb;margin:0 0 16px}.code-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:8px 10px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--surface2)}.code-head+.code{margin-top:0;border-radius:0 0 14px 14px}.code-head .copy-btn[data-copied="true"]{color:#16a34a;border-color:#16a34a}@media(max-width:700px){details.lab>summary{grid-template-columns:auto 1fr}details.lab>summary>span:last-child{grid-column:1/-1;color:var(--muted)}}


/* v97 release consolidation */
.code-wrap-auto{position:relative;margin:12px 0}.code-wrap-auto>.copy-btn{position:absolute;top:9px;right:9px;z-index:3}.copy-btn[data-copy-error="true"]{color:#fca5a5;border-color:#ef4444}.release-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.release-metric{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.release-metric strong{display:block;font-size:1.65rem;line-height:1.1}.release-metric span{color:var(--muted);font-size:.9rem}.audit-ok{border-left:5px solid #16a34a}.audit-note{border-left:5px solid var(--warn)}kbd{padding:2px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--surface2);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.topbar strong{margin-right:auto}.document-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.document-tools .btn{text-decoration:none}.canonical{border:2px solid color-mix(in srgb,var(--accent) 55%,var(--line))}

/* v98 consolidated large-page navigation */
.source-chapter{margin:22px 0;border-width:2px}.source-chapter>summary{position:sticky;top:66px;z-index:5}.source-chapter>.chapter-body{padding:24px}.source-chapter .hero{box-shadow:none;margin:0 0 16px}.source-chapter .chapter,.source-chapter .lab{scroll-margin-top:90px}.source-chapter>summary>span:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.source-chapter>summary>.tag{white-space:nowrap}.toc li{margin:10px 0}.toc li a{font-weight:750;text-decoration:none}.toc li a:hover{text-decoration:underline}@media(max-width:700px){.source-chapter>summary{position:static}.source-chapter>.chapter-body{padding:12px}}

/* v99: Strukturtreue, dynamische Code-Kacheln */
.chapter-body,.lab-body,.source-chapter,.source-chapter>.chapter-body,.code-wrap,.code-wrap-auto,.code-head{min-width:0}
pre.code,
pre.code code{
  white-space:pre !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  tab-size:4;
  -moz-tab-size:4;
}
pre.code{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  margin:0 0 16px;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  resize:vertical;
}
pre.code[data-code-size="short"]{padding-block:14px}
pre.code[data-code-size="medium"]{padding-block:18px}
pre.code[data-code-size="long"]{padding-block:20px}
pre.code[data-code-size="very-long"]{
  max-height:min(72vh,900px);
  overflow-y:auto;
  resize:vertical;
}
.code-head{position:relative;flex-wrap:wrap}
.code-head>code,.code-title{min-width:0;overflow-wrap:anywhere}
.code-wrap-auto,.code-wrap{max-width:100%;overflow:visible}
@media(max-width:700px){
  pre.code{font-size:12px;line-height:1.55;padding:14px;max-width:100%;}
  pre.code[data-code-size="very-long"]{max-height:68vh}
}

/* v100: Nur Hauptkapitel klappbar; Unterebenen statisch und lesbar. */
.static-subsection{margin:1.25rem 0 2rem;padding:1.1rem 1.15rem;border:1px solid var(--border);border-radius:14px;background:var(--panel)}
.static-subsection>h2,.static-subsection>h3{margin:.1rem 0 1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}
.pattern-deep-dive{margin:1.4rem 0 2.2rem;padding:1.25rem;border:1px solid var(--border);border-radius:16px;background:var(--panel)}
.pattern-heading{display:flex;align-items:flex-start;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}.pattern-heading h2{margin:0}.pattern-heading .lead{margin:.2rem 0 0;max-width:70ch}.pattern-heading>.tag{margin-left:auto}
.explanation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.explanation-grid .card{height:auto;min-height:0}.explanation-grid .wide{grid-column:1/-1}.explanation-grid ul,.explanation-grid ol{padding-left:1.25rem}.explanation-grid li{margin:.35rem 0}.sources a{text-decoration:underline;text-underline-offset:3px}.source-note{font-size:.92rem;opacity:.82}.quality-status{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;padding:1rem;border-radius:12px;background:var(--soft);margin:1rem 0 1.5rem}.chapter-intro{font-size:1.05rem;max-width:90ch}
@media(max-width:760px){.explanation-grid{grid-template-columns:1fr}.explanation-grid .wide{grid-column:auto}.pattern-heading>.tag{margin-left:0}}

/* v105 Refactoring-Fachkapitel */
.refactoring-deep-dive{padding:1.2rem 0;border-top:1px solid var(--line)}.refactoring-deep-dive .wide{grid-column:1/-1}.source-card a{overflow-wrap:anywhere}.refactoring-deep-dive h2{scroll-margin-top:6rem}


/* v124 - Qualitätsphase 14, Block 1: Fachredaktion und Designvereinheitlichung */
:root{color-scheme:light dark;--focus:color-mix(in srgb,var(--accent) 58%,white);--code-border:#314158;--danger:#dc2626;--success:#15803d}
html{scroll-behavior:smooth;scroll-padding-top:88px}body{min-width:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.skip-link{position:fixed;left:1rem;top:.75rem;z-index:1000;transform:translateY(-180%);padding:.7rem 1rem;border-radius:.7rem;background:var(--surface);color:var(--text);border:2px solid var(--accent);box-shadow:var(--shadow);font-weight:800;text-decoration:none}.skip-link:focus{transform:translateY(0)}
.app-bar{border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent);margin-inline:calc(-1 * min(24px,2vw));padding-inline:min(24px,2vw)}
.btn,a,summary,input{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
.btn{min-height:42px;font-weight:720}.btn:active{transform:translateY(1px)}
.current-release{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),color-mix(in srgb,var(--accent2) 8%,var(--surface)));border-radius:17px;box-shadow:var(--shadow);margin:0 0 20px}.current-release>div:first-child{display:grid;gap:4px}.current-release strong{font-size:1.06rem}.current-release span,.current-release small{color:var(--muted)}.status-actions{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}
.hero{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent) 5%,var(--surface)));overflow:hidden}.hero p{max-width:82ch}.card,.toc,.status,.chapter,.static-subsection{min-width:0}
.static-subsection{scroll-margin-top:96px}.static-subsection>.chapter-body{padding-inline:0}
.chapter>summary{align-items:flex-start}.chapter>summary:hover{background:color-mix(in srgb,var(--surface2) 84%,var(--accent) 7%)}
pre.code,pre.code code{max-width:100%;white-space:pre!important;word-break:normal!important;overflow-wrap:normal!important;tab-size:4}.code{min-height:auto;max-height:none;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;border-color:var(--code-border)}
.code-wrap,.code-wrap-auto{max-width:100%;overflow:visible}.copy-btn{backdrop-filter:blur(8px)}
table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;border-collapse:separate;border-spacing:0}th{position:sticky;top:0;z-index:1}th,td{min-width:9rem}table tr:first-child th:first-child{border-top-left-radius:10px}table tr:first-child th:last-child{border-top-right-radius:10px}
img.svg,.diagram{background:#f8fafc;padding:4px}.dark-safe{background:#f8fafc}
html[data-theme="dark"] img.svg,html[data-theme="dark"] .diagram{border-color:#435169;box-shadow:0 8px 24px rgba(0,0,0,.24)}
.search-match{outline:3px solid color-mix(in srgb,var(--warn) 65%,transparent);outline-offset:3px;border-radius:8px}.search-empty{padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:12px;background:var(--surface2)}
@media(max-width:900px){.app-bar{position:static}.current-release{align-items:flex-start}.status-actions small{display:none}.source-chapter>summary{position:static}}
@media(max-width:700px){.shell{padding:12px}.hero{padding:20px;border-radius:15px}.current-release{padding:15px;flex-direction:column}.status-actions{align-self:flex-start}.topbar strong{width:calc(100% - 54px);font-size:.96rem}.code{font-size:12px;line-height:1.55;padding:16px 14px}.chapter-body,.lab-body{padding:14px}.toc{padding:14px}.toc a{display:inline}.grid{grid-template-columns:1fr}th,td{min-width:8.5rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{html{color-scheme:light}.skip-link,.app-bar,.copy-btn,.status-actions{display:none!important}body{background:#fff;color:#111}.hero,.card,.toc,.status,.chapter,.current-release{border-color:#cbd5e1;background:#fff;box-shadow:none}.code{background:#111827!important;color:#e5e7eb!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}table{display:table;overflow:visible}th{position:static}.chapter,.static-subsection{break-inside:auto}.chapter>summary{break-after:avoid}}

@media print {
  pre.code, .code-wrap pre {
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    max-width: 100% !important;
    font-size: 8.5pt !important;
    line-height: 1.42 !important;
  }
  .code-wrap { break-inside: avoid; max-width: 100% !important; }
}

/* Konsolidierter Entscheidungsatlas: drucktaugliche Vergleichsmatrizen */
@media print {
  .decision-atlas table { width:100% !important; table-layout:fixed !important; font-size:7.2pt !important; }
  .decision-atlas th, .decision-atlas td { padding:5px 6px !important; overflow-wrap:anywhere !important; word-break:normal !important; hyphens:auto; vertical-align:top; }
  .decision-atlas .grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:8px !important; }
  .decision-atlas .card { padding:10px !important; font-size:8.2pt !important; }
}

/* v166 – UI-Modernisierung Run 1/6: gemeinsames Designsystem */
:root{
  --ui-font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ui-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ui-radius-xs:8px;--ui-radius-sm:12px;--ui-radius-md:16px;--ui-radius-lg:22px;
  --ui-space-1:.25rem;--ui-space-2:.5rem;--ui-space-3:.75rem;--ui-space-4:1rem;--ui-space-5:1.25rem;--ui-space-6:1.5rem;--ui-space-8:2rem;
  --ui-shadow-sm:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.06);
  --ui-shadow-md:0 14px 34px rgba(15,23,42,.10);
  --ui-ring:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent);
  --ui-gradient:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),color-mix(in srgb,var(--accent2) 9%,var(--surface)));
}
html[data-theme="dark"]{--ui-shadow-sm:0 1px 2px rgba(0,0,0,.24),0 10px 28px rgba(0,0,0,.28);--ui-shadow-md:0 18px 42px rgba(0,0,0,.34)}
html{color-scheme:light}html[data-theme="dark"]{color-scheme:dark}
body{font-family:var(--ui-font-sans);font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility;letter-spacing:.002em}
body.ui-system-ready{min-height:100vh;background:
 radial-gradient(circle at 8% -10%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 34rem),
 radial-gradient(circle at 92% 0%,color-mix(in srgb,var(--accent2) 8%,transparent),transparent 32rem),var(--bg)}
::selection{background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--text)}
.shell{width:min(100%,1480px);padding-inline:clamp(1rem,2.4vw,2rem)}
main{min-width:0}
h1,h2,h3,h4{letter-spacing:-.018em;text-wrap:balance}p,li,td{overflow-wrap:anywhere}
a{text-underline-offset:.18em;text-decoration-thickness:.08em}
a:hover{text-decoration-thickness:.12em}

/* Einheitliche Bedienflächen */
.btn,.document-tools .btn,.reader-route-grid a,.toc a[href]{font-family:inherit;font-weight:720;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;color:var(--text)}
.btn{min-height:38px;border-radius:var(--ui-radius-sm);padding:.5rem .78rem;background:color-mix(in srgb,var(--surface) 94%,var(--accent) 6%);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.btn:hover{background:color-mix(in srgb,var(--surface2) 82%,var(--accent) 18%);transform:translateY(-1px);box-shadow:var(--ui-shadow-sm)}
.btn:active{transform:translateY(0)}
.btn:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--ui-ring);border-color:var(--accent)}
.icon-btn{border-radius:var(--ui-radius-sm)}

/* Gemeinsame Flächen */
.hero,.card,.toc,.status,.chapter,details.lab,.callout,.release-metric,.progress-panel,.reader-route-panel,.reader-route-grid article{
 border-color:color-mix(in srgb,var(--line) 84%,var(--accent) 16%);
 box-shadow:var(--ui-shadow-sm);
}
.hero{position:relative;overflow:hidden;background:var(--ui-gradient);border-radius:var(--ui-radius-lg);padding:clamp(1.45rem,3.2vw,3rem)}
.hero::after{content:"";position:absolute;inset:auto -7rem -8rem auto;width:18rem;height:18rem;border-radius:50%;background:color-mix(in srgb,var(--accent) 9%,transparent);pointer-events:none}
.hero>*{position:relative;z-index:1}
.card{border-radius:var(--ui-radius-md);background:color-mix(in srgb,var(--surface) 97%,var(--accent) 3%);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.card:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:var(--ui-shadow-md)}
.grid{gap:clamp(.85rem,1.8vw,1.25rem)}
.status{border-radius:var(--ui-radius-md);background:color-mix(in srgb,var(--surface) 96%,var(--accent2) 4%)}
.toc{border-radius:var(--ui-radius-md);background:color-mix(in srgb,var(--surface) 97%,var(--accent) 3%)}
.chapter,details.lab{border-radius:var(--ui-radius-md)}
.chapter>summary,details.lab>summary{background:linear-gradient(90deg,color-mix(in srgb,var(--surface2) 94%,var(--accent) 6%),var(--surface2))}
.callout{border-radius:var(--ui-radius-sm)}

/* Kopfbereich und Markenwirkung */
.topbar,.app-bar{border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25)}
.topbar .brand,.app-bar>strong{font-weight:850;letter-spacing:-.02em}
.search-wrap input,input[type="search"]{border:1px solid var(--line);border-radius:var(--ui-radius-sm);background:color-mix(in srgb,var(--surface) 95%,var(--accent) 5%);color:var(--text);min-height:38px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.search-wrap input:hover,input[type="search"]:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}

/* Tabellen und Code als stabile Designbausteine */
.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--ui-radius-sm);margin:1rem 0;background:var(--surface)}
.table-scroll>table{margin:0;border:0;min-width:620px}
.table-scroll th:first-child,.table-scroll td:first-child{border-left:0}.table-scroll th:last-child,.table-scroll td:last-child{border-right:0}
.table-scroll tr:first-child th{border-top:0}.table-scroll tr:last-child td{border-bottom:0}
th{font-weight:800;background:color-mix(in srgb,var(--surface2) 92%,var(--accent) 8%)}
pre.code,.code{font-family:var(--ui-font-mono);border-radius:var(--ui-radius-sm);box-shadow:0 16px 36px rgba(2,6,23,.24)}
.code-title,.code-head{font-family:var(--ui-font-sans)}

/* Einheitlicher Footer */
.site-footer{margin:3rem 0 1rem;padding:1rem 0 calc(1rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem}
.site-footer a{color:inherit;font-weight:700;text-decoration:none}.site-footer a:hover{color:var(--accent)}
.site-footer__brand{display:flex;align-items:center;gap:.55rem}.site-footer__mark{width:.7rem;height:.7rem;border-radius:3px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}

@media(max-width:700px){
 .shell{padding-inline:.85rem}.hero{border-radius:var(--ui-radius-md)}
 .card{padding:1rem}.site-footer{align-items:flex-start;flex-direction:column}
 .table-scroll>table{min-width:560px}
}
@media(prefers-reduced-motion:reduce){.btn,.card{transition:none}.btn:hover,.card:hover{transform:none}}
@media print{body.ui-system-ready{background:#fff!important}.site-footer{display:none!important}.hero,.card,.toc,.status,.chapter,details.lab,.callout{box-shadow:none!important}}


/* v170 – Suche 2.0: Trefferliste, Vorschau und Inhaltsfilter */
.search-wrap{position:relative}
.search-results-panel{position:absolute;z-index:120;top:calc(100% + .55rem);right:0;width:min(680px,92vw);max-height:min(72vh,720px);overflow:hidden;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 22px 60px rgba(2,6,23,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.search-results-panel[hidden]{display:none!important}.search-results-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem .85rem .45rem}.search-close{width:34px;height:34px;border:0;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:1.35rem;cursor:pointer}.search-filter-row{display:flex;gap:.35rem;padding:.2rem .8rem .7rem;overflow-x:auto}.search-filter-row button{border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text-muted);font:inherit;font-size:.76rem;font-weight:800;padding:.42rem .7rem;white-space:nowrap;cursor:pointer}.search-filter-row button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.search-results-list{max-height:56vh;overflow:auto;padding:.25rem .55rem .75rem}.search-result-card{display:grid;gap:.25rem;width:100%;text-align:left;border:1px solid transparent;border-radius:13px;background:transparent;color:var(--text);padding:.72rem .78rem;cursor:pointer}.search-result-card:hover,.search-result-card:focus-visible,.search-result-card.is-active{background:var(--surface-2);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));outline:none}.search-result-card strong{font-size:.9rem;line-height:1.25}.search-result-card>span:last-child{font-size:.78rem;line-height:1.45;color:var(--text-muted)}.search-result-type{justify-self:start;border-radius:999px;background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--accent);font-size:.66rem;font-weight:900;letter-spacing:.04em;padding:.18rem .42rem;text-transform:uppercase}.search-empty{padding:1rem;color:var(--text-muted);text-align:center}.search-current-match{animation:searchPulse 1.2s ease-out}@keyframes searchPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
@media(max-width:720px){.search-results-panel{position:fixed;left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));top:max(5rem,calc(env(safe-area-inset-top) + 4.25rem));width:auto;max-height:calc(100dvh - 6rem - env(safe-area-inset-bottom));}.search-results-list{max-height:calc(100dvh - 13rem - env(safe-area-inset-bottom))}.search-result-card{padding:.82rem}.search-filter-row button{min-height:40px}}
@media print{.search-results-panel{display:none!important}}


/* v172: sichtbare moderne Farbauswahl */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.accent-picker{position:relative;display:inline-flex;align-items:center;min-width:132px;height:36px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:11px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),var(--surface));box-shadow:0 4px 14px rgba(15,23,42,.08);overflow:hidden;isolation:isolate}
.accent-picker::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--accent),var(--accent2));z-index:0}
.accent-picker-icon{width:18px;height:18px;margin-left:10px;color:var(--accent);flex:0 0 18px;z-index:1}
.accent-theme-select{appearance:none;-webkit-appearance:none;position:relative;z-index:1;width:100%;height:100%;padding:0 30px 0 8px;border:0;outline:0;background:transparent;color:var(--text);font:750 .78rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.accent-theme-select option{background:var(--surface);color:var(--text)}
.accent-picker-chevron{position:absolute;right:9px;top:50%;transform:translateY(-54%);font-size:1rem;color:var(--muted);pointer-events:none;z-index:2}
.accent-picker:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));box-shadow:0 7px 20px color-mix(in srgb,var(--accent) 13%,transparent)}
.accent-picker:focus-within{outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:2px}
html[data-accent="ocean"]{--accent:#2563eb;--accent2:#06b6d4}
html[data-theme="dark"][data-accent="ocean"]{--accent:#60a5fa;--accent2:#22d3ee}
html[data-accent="emerald"]{--accent:#059669;--accent2:#65a30d}
html[data-theme="dark"][data-accent="emerald"]{--accent:#34d399;--accent2:#a3e635}
html[data-accent="indigo"]{--accent:#4f46e5;--accent2:#2563eb}
html[data-theme="dark"][data-accent="indigo"]{--accent:#818cf8;--accent2:#60a5fa}
html[data-accent="violet"]{--accent:#7c3aed;--accent2:#c026d3}
html[data-theme="dark"][data-accent="violet"]{--accent:#a78bfa;--accent2:#e879f9}
html[data-accent="rose"]{--accent:#e11d48;--accent2:#db2777}
html[data-theme="dark"][data-accent="rose"]{--accent:#fb7185;--accent2:#f472b6}
html[data-accent="amber"]{--accent:#d97706;--accent2:#ca8a04}
html[data-theme="dark"][data-accent="amber"]{--accent:#fbbf24;--accent2:#facc15}
html[data-accent="teal"]{--accent:#0f766e;--accent2:#0891b2}
html[data-theme="dark"][data-accent="teal"]{--accent:#2dd4bf;--accent2:#22d3ee}
html[data-accent="graphite"]{--accent:#475569;--accent2:#64748b}
html[data-theme="dark"][data-accent="graphite"]{--accent:#cbd5e1;--accent2:#94a3b8}
@media(max-width:900px){.accent-picker{min-width:112px}.accent-theme-select{font-size:.72rem}}
@media(max-width:700px){.accent-picker{height:44px;min-width:124px;flex:1 1 124px}.accent-picker-icon{margin-left:12px}.accent-theme-select{font-size:.78rem}}
@media print{.accent-picker{display:none!important}}

/* v188: stabile Codekarten-Kopfzeile */
.code-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--code)}
.code-wrap>.code-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--line)}
.code-card-header .code-title{margin:0;min-width:0;overflow-wrap:anywhere;color:var(--text)}
.code-card-header .copy-btn{position:static!important;flex:0 0 auto;margin:0;min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center}
.code-wrap>pre.code,.code-wrap>pre{margin:0!important;border:0!important;border-radius:0!important;max-width:100%;overflow:auto}
@media(max-width:700px){.code-wrap>.code-card-header{padding:7px 9px}.code-card-header .copy-btn{min-width:44px;min-height:44px}}
