/* ============ Strukturierte Klarheit — Structorizer Handbuch ============ */
@font-face{font-family:'Big Shoulders';src:url('fonts/BigShoulders-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:'Bricolage Grotesque';src:url('fonts/BricolageGrotesque-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'Bricolage Grotesque';src:url('fonts/BricolageGrotesque-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Bold.ttf');font-weight:700;font-display:swap}

:root{
  --paper:#f6f4ee; --panel:#fffefb; --ink:#1a1714; --mut:#6f6a60;
  --line:#ddd7c9; --yellow:#ffe000; --yellow-soft:#fff7c2; --blue:#1f6feb; --blue-d:#14478f;
  --code-bg:#efece2;
  --display:'Big Shoulders',Impact,sans-serif; --head:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'Bricolage Grotesque',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'IBM Plex Mono',SFMono-Regular,Consolas,monospace;
  --sidebar-w:320px; --topbar-h:60px;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.62;font-size:16.5px}
a{color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--yellow)}
a:hover{background:var(--yellow);text-decoration:none}

/* Topbar */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);background:var(--ink);
  display:flex;align-items:center;gap:14px;padding:0 18px;z-index:30;color:var(--paper)}
.brand{display:flex;align-items:center;gap:11px;color:var(--paper);border:0}
.brand:hover{background:none}
.brand svg,.brand img{width:30px;height:30px;display:block;border-radius:7px}
.brand .brand-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--blue);color:#fff;border-radius:7px;font-weight:800}
.brand b{font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:1px;line-height:1}
.brand em{font-style:normal;font-family:var(--mono);font-size:.72rem;opacity:.7;letter-spacing:2px;text-transform:uppercase;margin-left:2px}
.brand-lang{margin-left:auto;border:1px solid rgba(246,244,238,.35);border-radius:5px;padding:2px 9px;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em}
.menu-btn{display:none;background:none;border:0;color:var(--paper);font-size:1.4rem;cursor:pointer;padding:0 4px}

/* Layout */
.layout{display:flex;padding-top:var(--topbar-h);min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);position:fixed;top:var(--topbar-h);bottom:0;left:0;
  overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);padding:16px 12px 50px}
.content{margin-left:var(--sidebar-w);flex:1;min-width:0;padding:40px clamp(20px,5vw,72px) 90px;max-width:1000px}

/* TOC */
.toc-home{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);padding:6px 12px 10px;margin-bottom:6px;border:0;border-bottom:1px solid var(--line)}
.toc-home:hover{background:none;color:var(--ink)}
.chap-block{margin-bottom:3px}
.chap{display:block;padding:8px 12px;color:var(--ink);font-family:var(--head);font-weight:700;font-size:.98rem;border:0;border-left:3px solid transparent}
.chap:hover{background:var(--yellow-soft)}
.chap.active{background:var(--yellow);border-left-color:var(--ink)}
.toc ul{list-style:none;margin:1px 0 9px;padding:0 0 0 12px;border-left:1px solid var(--line)}
.toc li a{display:block;padding:5px 12px;color:var(--mut);font-size:.88rem;border:0;border-left:3px solid transparent;margin-left:-1px}
.toc li a:hover{background:var(--yellow-soft);color:var(--ink)}
.toc li.active a{color:var(--ink);font-weight:600;border-left-color:var(--yellow);background:var(--yellow-soft)}

/* Document */
.doc h1{font-family:var(--display);font-weight:700;font-size:2.9rem;line-height:1.02;letter-spacing:.5px;
  margin:.1em 0 .55em;padding-bottom:.12em;border-bottom:7px solid var(--yellow);text-transform:uppercase}
.doc h2{font-family:var(--head);font-size:1.5rem;font-weight:700;margin:1.9em 0 .5em;padding-left:12px;border-left:5px solid var(--yellow)}
.doc h3{font-family:var(--head);font-size:1.16rem;font-weight:700;margin:1.4em 0 .35em;color:var(--blue-d)}
.doc h4{font-family:var(--mono);font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;margin:1.2em 0 .3em;color:var(--mut)}
.doc p{margin:.6em 0}
.doc ul,.doc ol{margin:.5em 0 .9em;padding-left:1.5em}
.doc li{margin:.28em 0}
.doc li::marker{color:var(--blue)}
.doc strong{font-weight:700}
.doc code{font-family:var(--mono);background:var(--code-bg);padding:.1em .42em;border-radius:4px;font-size:.86em;color:#7a3e00}
.doc pre{background:var(--ink);color:#f3efe3;border-radius:10px;padding:14px 16px;overflow-x:auto;font-family:var(--mono);font-size:.84rem;line-height:1.5}
.doc pre code{background:none;padding:0;color:inherit}
.doc kbd{font-family:var(--mono);background:#fff;border:1px solid #c7c0ad;border-bottom-width:2px;border-radius:5px;padding:.05em .45em;font-size:.8em}
.doc blockquote{margin:1em 0;padding:.6em 1.1em;border-left:5px solid var(--yellow);background:var(--yellow-soft);border-radius:0 8px 8px 0;color:#403a2c}

/* Tables */
.doc table{border-collapse:collapse;width:100%;margin:1.1em 0;font-size:.92rem;display:block;overflow-x:auto}
.doc th,.doc td{border:1px solid var(--ink);padding:8px 12px;text-align:left;vertical-align:top}
.doc thead th,.doc th{background:var(--ink);color:var(--paper);font-family:var(--mono);font-weight:700;font-size:.82rem;letter-spacing:.03em}
.doc tbody tr:nth-child(even){background:#fffdf5}

/* Figures */
.figure{margin:1.3em 0;padding:12px;background:var(--panel);border:1px solid var(--ink);text-align:center}
.figure img{max-width:100%;height:auto;display:block;margin:0 auto}
.figure figcaption{margin-top:9px;color:var(--mut);font-family:var(--mono);font-size:.82rem;letter-spacing:.02em}

/* Pager / cards */
.pager{display:flex;gap:14px;margin-top:46px;flex-wrap:wrap}
.pg{flex:1 1 220px;display:flex;flex-direction:column;gap:3px;padding:13px 16px;border:1px solid var(--ink);background:var(--panel);transition:.12s;border-radius:0}
.pg:hover{background:var(--yellow);text-decoration:none}
.pg span{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.pg:hover span{color:var(--ink)}
.pg strong{font-family:var(--head);color:var(--ink);font-size:.98rem}
.pg.next{text-align:right}
.docfoot{margin-top:46px;padding-top:16px;border-top:1px solid var(--line);color:var(--mut);font-family:var(--mono);font-size:.78rem}
.docfoot a{color:var(--mut)}

/* Hero (landing / onepage) */
.hero{padding:18px 0 26px;border-bottom:1px solid var(--line);margin-bottom:18px}
.hero .wordmark{font-family:var(--display);font-weight:700;font-size:clamp(3rem,9vw,6.2rem);line-height:.92;letter-spacing:1px;text-transform:uppercase;margin:0}
.hero .tag{display:inline-block;background:var(--yellow);font-family:var(--head);font-weight:700;font-size:1.5rem;padding:3px 14px;margin:14px 0 10px}
.hero .sub{font-family:var(--mono);color:var(--mut);font-size:.92rem;letter-spacing:.02em;margin:4px 0 0}
.hero-grid{display:flex;gap:34px;align-items:center;flex-wrap:wrap}
.hero-grid .scheme{flex:0 0 300px;max-width:340px}
.hero-grid .scheme svg{width:100%;height:auto;border:1px solid var(--ink);background:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:28px}
.card{display:block;padding:16px 18px;background:var(--panel);border:1px solid var(--ink);transition:.12s}
.card:hover{background:var(--yellow);text-decoration:none}
.card h3{margin:0 0 5px;font-family:var(--head);font-weight:700;color:var(--ink);font-size:1.06rem}
.card p{margin:0;color:var(--mut);font-family:var(--mono);font-size:.76rem;line-height:1.5}
.card:hover p{color:#3a3322}

:target{scroll-margin-top:74px}

@media(max-width:900px){
  .menu-btn{display:block}
  .sidebar{transform:translateX(-100%);transition:transform .25s;z-index:25;box-shadow:4px 0 18px rgba(0,0,0,.15)}
  .sidebar.open{transform:translateX(0)}
  .content{margin-left:0}
  .brand em{display:none}
}
