  :root{
    --bg:#0e1a24;
    --bg2:#142634;
    --panel:#16293a;
    --panel-edge:#21425a;
    --ink:#eaf4f9;
    --ink-soft:#9fbccf;
    --ink-faint:#6a8aa0;
    --teal:#2dd4bf;
    --amber:#f5b945;
    --rose:#e8627a;
    --green:#7bc96f;
    --blue:#5aa9e6;
    --shadow:0 18px 50px -20px rgba(0,0,0,.7);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    font-family:'Spline Sans',sans-serif;
    background:
      radial-gradient(1200px 600px at 15% -10%, rgba(90,169,230,.10) 0%, transparent 60%),
      radial-gradient(900px 500px at 110% 10%, rgba(45,212,191,.08) 0%, transparent 55%),
      var(--bg);
    color:var(--ink);
    min-height:100vh;
    padding:32px 20px 80px;
    line-height:1.55;
  }
  .wrap{max-width:760px;margin:0 auto;transition:max-width .3s}

  /* ===== Maps-artiges Canvas-Layout (Desktop) ===== */
  .canvasArea{margin-top:20px}
  .mapControls,.mapLegendFloat{display:none}

  @media (min-width:1080px){
    /* Vollbild: kein umgebender Rand mehr */
    body{padding:0}
    .wrap{
      max-width:none;margin:0;
      height:100vh;display:flex;flex-direction:column;
      padding:22px 22px 0;
    }
    .canvasArea{
      position:relative;
      flex:1 1 auto;min-height:0;margin-top:18px;margin-bottom:0;
      transition:margin .45s ease;
      border:1px solid var(--panel-edge);
      border-radius:18px 18px 0 0;        /* unten bündig zum Bildschirmrand */
      border-bottom:0;
      overflow:hidden;
      background:
        radial-gradient(circle at 1px 1px, rgba(159,188,207,.10) 1px, transparent 0) 0 0/26px 26px,
        linear-gradient(180deg,var(--bg2),var(--bg));
      box-shadow:var(--shadow);
    }
    /* nach dem Start: Header weg → Karte füllt randlos den ganzen Viewport */
    .wrap.started{padding:0}
    .wrap.started .canvasArea{margin-top:0;border-radius:0;border:0;box-shadow:none}
    footer{display:none}
    /* scroll-/zoombarer Baum-Canvas */
    .mapStage{
      position:absolute;inset:0;overflow:auto;cursor:grab;
      scrollbar-width:thin;
    }
    .mapStage.grabbing{cursor:grabbing}
    .mapStage::-webkit-scrollbar{width:10px;height:10px}
    .mapStage::-webkit-scrollbar-thumb{background:var(--panel-edge);border-radius:6px}
    .mapPan{
      transform-origin:0 0;transition:transform .15s ease;
      /* Polster links überbrückt das Overlay-Panel, sonst bleibt die Wurzel verdeckt */
      padding:24px 60px 40px 460px;
      box-sizing:content-box;
    }
    .mapPan .map-svg{display:block}

    /* schwebendes Overlay-Panel (links, wie Maps-Suchpanel) */
    .panel{
      position:absolute;top:18px;left:18px;width:400px;max-width:42%;
      max-height:calc(100% - 36px);
      background:rgba(18,38,52,.86);
      backdrop-filter:blur(14px) saturate(1.2);
      -webkit-backdrop-filter:blur(14px) saturate(1.2);
      border:1px solid rgba(33,66,90,.9);border-radius:16px;
      box-shadow:0 24px 60px -22px rgba(0,0,0,.85);
      display:flex;flex-direction:column;z-index:5;
    }
    .panel-scroll{overflow-y:auto;padding:18px;scrollbar-width:thin}
    .panel-scroll::-webkit-scrollbar{width:8px}
    .panel-scroll::-webkit-scrollbar-thumb{background:var(--panel-edge);border-radius:5px}
    /* Karte/Panel-spezifische Karten-Optik abschwächen (schon im Glas) */
    .panel .card{box-shadow:none;background:transparent;border-color:transparent;padding:0}
    .panel .glossary{justify-content:flex-start;margin-top:16px}

    /* schwebende Steuerung unten rechts */
    .mapControls{
      display:flex;flex-direction:column;gap:6px;
      position:absolute;right:16px;bottom:16px;z-index:6;
    }
    .mapctl{
      width:38px;height:38px;border-radius:10px;cursor:pointer;
      background:rgba(18,38,52,.9);border:1px solid var(--panel-edge);
      color:var(--ink);font-size:1.25rem;font-family:inherit;line-height:1;
      backdrop-filter:blur(8px);transition:.15s;
      display:flex;align-items:center;justify-content:center;
    }
    .mapctl:hover{border-color:var(--teal);color:var(--teal)}
    .mapctl:active{transform:scale(.94)}
    /* schwebende Legende oben rechts */
    .mapLegendFloat{
      display:flex;gap:14px;flex-wrap:wrap;
      position:absolute;right:16px;top:16px;z-index:6;
      background:rgba(18,38,52,.82);backdrop-filter:blur(8px);
      border:1px solid var(--panel-edge);border-radius:10px;padding:8px 12px;
      font-family:'Spline Sans Mono',monospace;font-size:.7rem;color:var(--ink-faint);
    }
    .mapLegendFloat i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:middle}
  }

  header{margin-bottom:26px}
  .kicker{
    font-family:'Spline Sans Mono',monospace;
    font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
    color:var(--teal);margin-bottom:10px;
  }
  h1{
    font-family:'Fraunces',serif;font-weight:600;
    font-size:clamp(2rem,6vw,3rem);line-height:1.02;
    letter-spacing:-.02em;
  }
  h1 em{font-style:italic;color:var(--amber)}
  .sub{color:var(--ink-soft);margin-top:12px;max-width:54ch;font-size:.96rem}


  /* breadcrumb path */
  .path{
    display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    margin-bottom:20px;min-height:30px;
  }
  .crumb{
    font-family:'Spline Sans Mono',monospace;font-size:.74rem;
    background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.3);
    color:var(--teal);padding:4px 9px;border-radius:7px;
    animation:pop .3s ease;
  }
  .crumb.choice{
    background:rgba(245,185,69,.12);border-color:rgba(245,185,69,.35);
    color:var(--amber);
  }
  .crumb-sep{color:var(--ink-faint);font-size:.7rem}
  @keyframes pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

  /* node card */
  .card{
    background:linear-gradient(180deg,var(--panel),var(--bg2));
    border:1px solid var(--panel-edge);border-radius:18px;
    padding:28px 26px;box-shadow:var(--shadow);
    animation:slide .35s cubic-bezier(.2,.7,.3,1);
  }
  @keyframes slide{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

  .node-tag{
    font-family:'Spline Sans Mono',monospace;font-size:.7rem;
    letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
    margin-bottom:10px;
  }
  .question{
    font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;
    line-height:1.2;margin-bottom:6px;letter-spacing:-.01em;
  }
  .hint{color:var(--ink-soft);font-size:.9rem;margin-bottom:20px}
  /* Methodischer Warnhinweis am Knoten (z. B. Grenzen von Voraussetzungstests) */
  .caveat{
    display:flex;gap:10px;align-items:flex-start;
    background:rgba(245,185,69,.09);border:1px solid rgba(245,185,69,.35);
    border-radius:10px;padding:11px 13px;margin-bottom:20px;
    font-size:.84rem;line-height:1.5;color:var(--ink-soft);
  }
  .caveat b{color:var(--ink)}
  .caveat-i{
    flex-shrink:0;width:17px;height:17px;border-radius:50%;margin-top:1px;
    background:rgba(245,185,69,.22);color:var(--amber);
    font-family:'Spline Sans Mono',monospace;font-size:.7rem;font-weight:600;
    display:flex;align-items:center;justify-content:center;
  }

  .options{display:flex;flex-direction:column;gap:10px}
  .opt{
    text-align:left;width:100%;
    background:var(--bg2);border:1px solid var(--panel-edge);
    border-radius:12px;padding:14px 16px;color:var(--ink);
    font-family:inherit;font-size:.98rem;font-weight:500;cursor:pointer;
    transition:.16s;display:flex;align-items:center;gap:12px;
  }
  .opt:hover{
    border-color:var(--teal);background:#1a3245;transform:translateX(3px);
  }
  .opt .arrow{margin-left:auto;color:var(--ink-faint);transition:.16s}
  .opt:hover .arrow{color:var(--teal);transform:translateX(2px)}
  .opt .dot{
    width:9px;height:9px;border-radius:50%;background:var(--blue);
    flex-shrink:0;box-shadow:0 0 0 3px rgba(90,169,230,.18);
  }

  /* result */
  .result .question{color:var(--green)}
  .test-name{
    font-family:'Fraunces',serif;font-size:2.1rem;font-weight:600;
    color:var(--green);line-height:1.1;margin:4px 0 14px;letter-spacing:-.02em;
  }
  .test-name.warn{color:var(--amber)}
  .why{
    background:rgba(123,201,111,.08);border-left:3px solid var(--green);
    padding:14px 16px;border-radius:0 10px 10px 0;margin-bottom:16px;
    font-size:.93rem;color:var(--ink);
  }
  .why.warn{background:rgba(245,185,69,.08);border-left-color:var(--amber)}
  .why b{color:var(--green)}
  .why.warn b{color:var(--amber)}
  .howbox{
    background:rgba(90,169,230,.06);border:1px solid rgba(90,169,230,.22);
    border-radius:12px;padding:15px 17px;margin-bottom:16px;
  }
  .howbox-h{
    font-family:'Spline Sans Mono',monospace;font-size:.72rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--blue);
    margin-bottom:9px;
  }
  .howbox p{font-size:.92rem;color:var(--ink);line-height:1.62}
  .howbox b{color:var(--blue);font-weight:600}
  .selfcheck{
    font-family:'Spline Sans Mono',monospace;font-size:.82rem;
    color:var(--ink-soft);background:rgba(90,169,230,.08);
    border:1px dashed rgba(90,169,230,.3);border-radius:10px;
    padding:12px 14px;margin-bottom:18px;
  }
  .selfcheck b{color:var(--blue)}

  .actions{display:flex;gap:10px;flex-wrap:wrap}
  .btn{
    font-family:inherit;font-size:.88rem;font-weight:600;cursor:pointer;
    padding:11px 18px;border-radius:11px;border:1px solid var(--panel-edge);
    background:var(--panel);color:var(--ink-soft);transition:.16s;
  }
  .btn:hover{border-color:var(--teal);color:var(--ink)}
  .btn.primary{
    background:var(--teal);color:#06231f;border-color:var(--teal);
  }
  .btn.primary:hover{background:#3fe6d0;color:#06231f}
  .btn.ghost{background:transparent}

  /* back link inline */
  .backline{
    margin-top:16px;font-size:.84rem;color:var(--ink-faint);cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;
  }
  .backline:hover{color:var(--teal)}

  /* Griff-Leiste, Peek-Zeile und Top-Leiste nur mobil sichtbar */
  .sheet-grab{display:none}
  .sheet-peek{display:none}
  .m-topbar{display:none}

  /* ===== Mobile: Vollbild-Karte + ziehbares Bottom-Sheet (Maps-Prinzip) ===== */
  .mapPan{transform-origin:0 0}
  @media (max-width:1079px){
    body{padding:0}
    .wrap{max-width:none;margin:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:0}
    footer{display:none}
    /* Startbildschirm auf kleinen Screens scrollbar (sonst oben abgeschnitten) */
    #welcome{overflow-y:auto;-webkit-overflow-scrolling:touch}
    .wel-main{justify-content:flex-start}
    .canvasArea{
      position:relative;flex:1 1 auto;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;
      background:
        radial-gradient(circle at 1px 1px, rgba(159,188,207,.10) 1px, transparent 0) 0 0/24px 24px,
        linear-gradient(180deg,var(--bg2),var(--bg));
    }
    .mapStage{position:absolute;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;border:0;border-radius:0;background:none;padding:0;margin:0}
    .mapPan{padding:calc(74px + env(safe-area-inset-top,0px)) 40px 62vh 40px;box-sizing:content-box}
    .mapPan .map-svg{display:block}
    /* Zoom/Zentrieren schweben rechts unter der Top-Leiste */
    .mapControls{
      display:flex;flex-direction:column;gap:6px;position:absolute;right:12px;
      top:calc(66px + env(safe-area-inset-top,0px));z-index:6;
    }
    .mapctl{
      width:36px;height:36px;border-radius:10px;cursor:pointer;
      background:rgba(18,38,52,.9);border:1px solid var(--panel-edge);
      color:var(--ink);font-size:1.2rem;font-family:inherit;line-height:1;
      display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);
    }
    .mapLegendFloat{display:none}

    /* Bottom-Sheet */
    .panel{
      position:fixed;left:0;right:0;bottom:0;z-index:20;width:auto;max-width:none;max-height:none;
      height:92vh;height:92dvh;
      background:rgba(18,38,52,.98);
      backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);
      border:1px solid var(--panel-edge);border-bottom:0;border-radius:18px 18px 0 0;
      box-shadow:0 -16px 40px -20px rgba(0,0,0,.85);
      display:flex;flex-direction:column;transform:translateY(34vh);
    }
    .sheet-grab{
      flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:26px;
      cursor:grab;touch-action:none;
    }
    .sheet-grab .pill{width:40px;height:4px;border-radius:3px;background:#3a5b72}
    .panel-scroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding:0 16px calc(18px + env(safe-area-inset-bottom,0px))}
    .panel .card{margin-bottom:4px}
    .glossary{margin-top:16px}

    /* Top-Leiste über der Karte (Maps-Suchleisten-Pendant) */
    .m-topbar{
      position:fixed;top:0;left:0;right:0;z-index:15;
      display:flex;align-items:center;gap:10px;
      padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;
      background:rgba(14,26,36,.85);
      backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);
      border-bottom:1px solid var(--panel-edge);
    }
    .m-topbar .mt-logo{font-family:'Fraunces',serif;font-weight:600;font-size:1rem;color:var(--ink);white-space:nowrap;flex-shrink:0}
    .m-topbar .mt-logo em{font-style:italic;color:var(--amber)}
    .m-topbar .mode-row{flex:1 1 auto;min-width:0}
    .m-topbar .mode-select{padding:7px 30px 7px 10px;font-size:.8rem}
    .m-topbar .pt-toggle{flex-shrink:0;margin-left:0}
    /* Panelkopf im Sheet ausblenden – seine Bedienelemente sitzen in der Top-Leiste */
    .panel-head{display:none}

    /* Peek-Statuszeile: nur im eingeklappten Zustand sichtbar */
    .panel[data-snap="peek"] .sheet-peek{
      display:block;padding:0 18px 12px;cursor:pointer;
      font-size:.84rem;color:var(--ink-soft);
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .sheet-peek b{color:var(--ink);font-weight:600}
    .sheet-peek .res{color:var(--green);font-weight:600}
  }
  .map-svg{display:block}
  .lg-active{background:var(--teal)}
  .lg-result{background:var(--green)}
  .lg-dim{background:var(--panel-edge)}

  /* svg node states */
  .mn rect, .mn circle, .mn polygon{transition:.3s}
  .mn text{font-family:'Spline Sans Mono',monospace;fill:var(--ink-faint);transition:.3s}
  .mn.dim rect,.mn.dim polygon{fill:var(--bg);stroke:var(--panel-edge)}
  .mn.dim text{fill:var(--ink-faint);opacity:.55}
  .mn.active rect,.mn.active polygon{fill:rgba(45,212,191,.16);stroke:var(--teal)}
  .mn.active text{fill:var(--teal);opacity:1}
  .mn.current rect,.mn.current polygon{fill:rgba(245,185,69,.20);stroke:var(--amber)}
  .mn.current text{fill:var(--amber);opacity:1}
  .mn.result rect{fill:rgba(123,201,111,.16);stroke:var(--green)}
  .mn.result text{fill:var(--green);opacity:1}
  .medge{stroke:var(--panel-edge);stroke-width:1.4;fill:none;transition:.3s}
  .medge.lit{stroke:var(--teal);stroke-width:2.2}

  .medge-lbl rect{fill:var(--bg2);stroke:var(--panel-edge);stroke-width:1;opacity:.92;transition:.3s}
  .medge-lbl text{font-family:'Spline Sans Mono',monospace;fill:var(--ink-faint);transition:.3s}
  .medge-lbl.lit rect{fill:rgba(45,212,191,.16);stroke:var(--teal)}
  .medge-lbl.lit text{fill:var(--teal)}

  footer{
    margin-top:30px;text-align:center;font-size:.78rem;color:var(--ink-faint);
    font-family:'Spline Sans Mono',monospace;
  }
  .glossary{
    margin-top:18px;font-size:.82rem;color:var(--ink-faint);
    display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;
  }
  .glossary span b{color:var(--ink-soft)}
  .panel-source{
    margin-top:14px;font-family:'Spline Sans Mono',monospace;
    font-size:.68rem;color:var(--ink-faint);opacity:.7;line-height:1.4;
  }
  .legal-link,.legal-link:visited{color:var(--ink-faint);text-decoration:underline;text-underline-offset:2px}
  .legal-link:hover{color:var(--teal)}

  /* ===== Vollbild-Startbildschirm ===== */
  #welcome{
    position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;
    background:
      radial-gradient(1200px 600px at 15% -10%, rgba(90,169,230,.10) 0%, transparent 60%),
      radial-gradient(900px 500px at 110% 10%, rgba(45,212,191,.08) 0%, transparent 55%),
      var(--bg);
    opacity:1;transition:opacity .45s ease;
  }
  #welcome.hide{opacity:0;pointer-events:none}
  /* obere Leiste (Platz für späteres Login/Nutzerstatus) */
  .wel-bar{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 26px;min-height:64px;flex:0 0 auto;
  }
  .wel-brand{display:flex;align-items:center;gap:14px;min-width:0}
  .wel-logo{font-family:'Fraunces',serif;font-weight:600;font-size:1.12rem;letter-spacing:-.01em;white-space:nowrap}
  .wel-logo em{font-style:italic;color:var(--amber)}
  .beta-badge{
    font-family:'Spline Sans Mono',monospace;font-size:.6rem;letter-spacing:.16em;
    text-transform:uppercase;color:var(--amber);border:1px solid rgba(245,185,69,.55);
    border-radius:6px;padding:2px 7px;flex-shrink:0;
  }
  .wel-claim{
    font-family:'Spline Sans Mono',monospace;font-size:.7rem;color:var(--ink-faint);
    border-left:1px solid var(--panel-edge);padding-left:14px;white-space:nowrap;
  }
  .wel-bar-right{min-width:1px}
  @media (max-width:720px){ .wel-claim{display:none} }
  /* zentrierter Hero */
  .wel-main{
    flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:24px 22px;
  }
  .wel-kicker{
    font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.28em;
    text-transform:uppercase;color:var(--teal);margin-bottom:14px;
  }
  .wel-h1{
    font-family:'Fraunces',serif;font-weight:600;
    font-size:clamp(2rem,5.5vw,3rem);line-height:1.03;letter-spacing:-.02em;
  }
  .wel-h1 em{font-style:italic;color:var(--amber)}
  .wel-sub{color:var(--ink-soft);margin-top:14px;max-width:48ch;font-size:.98rem}
  .wel-pick{
    font-family:'Spline Sans Mono',monospace;font-size:.74rem;letter-spacing:.05em;
    color:var(--ink-faint);margin:30px 0 16px;
  }
  .wel-cards{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:16px;
    width:100%;max-width:1040px;
  }
  .wel-card{
    text-align:center;cursor:pointer;font-family:inherit;
    background:var(--panel);border:1px solid var(--panel-edge);border-radius:16px;
    padding:22px 18px;transition:transform .18s ease,border-color .18s ease,background .18s ease;
    opacity:0;animation:welIn .5s ease forwards;
  }
  @keyframes welIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .wel-card:hover{border-color:var(--teal);background:#1a3245;transform:translateY(-3px)}
  .wel-card:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
  .wel-ic{
    width:42px;height:42px;border-radius:12px;color:var(--teal);margin:0 auto 14px;
    background:rgba(45,212,191,.12);display:flex;align-items:center;justify-content:center;
  }
  .wel-ic svg{width:22px;height:22px}
  .wel-card h3{font-family:'Spline Sans',sans-serif;font-size:1.06rem;font-weight:600;color:var(--ink);margin-bottom:6px;overflow-wrap:break-word}
  .wel-card p{color:var(--ink-soft);font-size:.82rem;line-height:1.5;margin:0 auto;max-width:26ch}
  .wel-foot{
    margin-top:28px;text-align:center;
    font-family:'Spline Sans Mono',monospace;font-size:.72rem;color:var(--ink-faint);
  }
  @media (max-width:720px){
    .wel-cards{grid-template-columns:1fr;max-width:420px}
    .wel-card p{max-width:none}
    .wel-main{padding:6px 20px 32px}
  }

  /* ===== Onboarding-Kollaps: großer Header weicht Panel-Kopfzeile ===== */
  #bigHeader{
    transition:opacity .4s ease, max-height .45s ease, margin .45s ease, transform .4s ease;
    overflow:hidden;
  }
  .wrap.started #bigHeader{
    opacity:0;max-height:0;margin:0;transform:translateY(-8px);
    pointer-events:none;
  }

  /* Panel-Kopfzeile: erst sichtbar, wenn gestartet */
  .panel-head{
    max-height:0;opacity:0;overflow:hidden;
    transition:max-height .45s ease, opacity .4s ease, margin .45s ease;
    margin-bottom:0;
  }
  .wrap.started .panel-head{
    max-height:200px;opacity:1;margin-bottom:14px;
  }
  .panel-title{display:flex;align-items:center;gap:10px;margin-bottom:11px}
  .pt-name{
    font-family:'Fraunces',serif;font-size:1.18rem;font-weight:600;
    letter-spacing:-.01em;color:var(--ink);
  }
  .pt-name em{font-style:italic;color:var(--amber)}
  .pt-info{
    margin-left:auto;width:24px;height:24px;border-radius:50%;cursor:pointer;
    background:transparent;border:1px solid var(--panel-edge);color:var(--ink-soft);
    font-family:'Spline Sans Mono',monospace;font-size:.8rem;line-height:1;
    transition:.15s;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .pt-info:hover{border-color:var(--teal);color:var(--teal)}
  .pt-info.on{background:rgba(45,212,191,.14);border-color:var(--teal);color:var(--teal)}

  /* ===== Erklärmodus (Stufe 3) ===== */
  .pt-tools{margin-left:auto;display:flex;align-items:center;gap:8px}
  .pt-tools .pt-info{margin-left:0}
  .pt-toggle{
    display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;
    background:transparent;border:1px solid var(--panel-edge);border-radius:999px;
    color:var(--ink-faint);font-family:'Spline Sans Mono',monospace;font-size:.64rem;
    letter-spacing:.04em;padding:5px 10px;line-height:1;transition:.15s;
  }
  .pt-toggle:hover{border-color:var(--teal);color:var(--ink-soft)}
  .pt-toggle .tdot{width:7px;height:7px;border-radius:50%;background:var(--panel-edge);transition:.15s}
  .wrap.explain-on .pt-toggle{border-color:var(--teal);color:var(--teal)}
  .wrap.explain-on .pt-toggle .tdot{background:var(--teal)}
  /* anklickbares Inline-Glossar */
  .gloss-item{cursor:pointer;transition:color .15s}
  .gloss-item:hover{color:var(--teal)}
  /* markierte Begriffe im Inhalt – nur im Erklärmodus sichtbar/aktiv */
  .wrap.explain-on .gloss{
    color:var(--teal);border-bottom:1px dotted var(--teal);cursor:pointer;
    transition:color .15s,border-color .15s,background .15s;
  }
  .wrap.explain-on .gloss:hover,.wrap.explain-on .gloss:focus-visible{
    border-bottom-style:solid;background:rgba(45,212,191,.12);
    border-radius:3px;outline:none;
  }
  /* Info-Icon an Auswahloptionen (nur im Erklärmodus) */
  .opt-info{
    display:none;flex-shrink:0;width:18px;height:18px;border-radius:50%;
    align-items:center;justify-content:center;
    font-family:'Spline Sans Mono',monospace;font-size:.66rem;font-weight:600;line-height:1;
    border:1px solid var(--teal);color:var(--teal);background:rgba(45,212,191,.12);
    cursor:pointer;transition:.15s;
  }
  .wrap.explain-on .opt .opt-info{display:inline-flex}
  .opt-info:hover,.opt-info:focus-visible{background:var(--teal);color:#06231f;outline:none}
  .gloss-pop{
    position:fixed;z-index:60;max-width:300px;
    background:rgba(18,38,52,.97);border:1px solid var(--panel-edge);border-radius:12px;
    box-shadow:0 18px 50px -20px rgba(0,0,0,.85);padding:13px 15px;
    font-size:.84rem;color:var(--ink-soft);line-height:1.5;
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  }
  .gloss-pop .cat{
    display:block;font-family:'Spline Sans Mono',monospace;font-size:.6rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:6px;
  }
  .gloss-pop h4{
    font-family:'Fraunces',serif;font-weight:600;font-size:1rem;color:var(--ink);
    margin-bottom:7px;letter-spacing:-.01em;
  }

  /* Hypothesentyp-Umschalter (Dropdown) */
  .mode-select{
    width:100%;cursor:pointer;
    padding:9px 34px 9px 12px;border-radius:10px;
    background:var(--bg);border:1px solid var(--panel-edge);color:var(--ink);
    font-family:inherit;font-size:.84rem;font-weight:600;transition:.16s;
    -webkit-appearance:none;appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%239fbccf' stroke-width='1.6'/></svg>");
    background-repeat:no-repeat;background-position:right 12px center;
  }
  .mode-select:hover{border-color:var(--teal)}
  .mode-select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 1px rgba(45,212,191,.3)}
  .mode-select option{background:var(--panel);color:var(--ink)}
  .mode-row{display:flex;align-items:center;gap:9px}
  .mode-row .mode-select{flex:1 1 auto;min-width:0}
  .mode-icon{flex-shrink:0;width:24px;height:24px;color:var(--teal);display:flex;align-items:center;justify-content:center}
  .mode-icon svg{width:21px;height:21px}
  /* Typ-Icon in der Ergebnis-Karte */
  .res-typeicon{display:inline-flex;vertical-align:-3px;width:16px;height:16px;color:var(--green);margin-right:7px}
  .res-typeicon svg{width:16px;height:16px}
  .panel-desc{
    max-height:0;opacity:0;overflow:hidden;margin:0;
    font-size:.86rem;color:var(--ink-soft);line-height:1.5;
    transition:max-height .35s ease, opacity .3s ease, margin .35s ease;
  }
  .panel-desc.show{max-height:120px;opacity:1;margin-top:11px}
