/* Gemeinsame Gestaltung der Pfad-Rallye – nach der Vorgabe TOOL-STIL.md (schule-kleinoeder.de).
   Der Block „Grundlagen“ stammt unverändert aus tool-vorlage.html. Darunter die Regeln dieses Werkzeugs. */
/* ================================================================
   Grundlagen – identisch in allen Werkzeugen (nicht ändern)
   ================================================================ */
:root{
  /* Flächen und Text */
  --grund:#faf8f4; --flaeche:#f3efe7; --karte:#ffffff;
  --text:#22262b; --leise:#5f656c; --linie:#e2ddd3;
  /* Fachfarben */
  --inf:#1e5175; --inf-hell:#e8eef3;
  --wr:#9a4423;  --wr-hell:#f6e9e2;
  --akzent:#c8643b;                       /* Hervorhebung, nur für Flächen/Grafik und große Schrift */
  /* Rückmeldungen */
  --richtig:#2f7a4f; --richtig-hell:#e6f2ea;
  --falsch:#b3261e;  --falsch-hell:#fbe9e7;
  --hinweis:#8a6100; --hinweis-hell:#fbf3dc;
  /* Datenfarben für Diagramme, Kategorien, Markierungen – in dieser Reihenfolge */
  --d1:#1e5175; --d2:#c8643b; --d3:#2f7a4f; --d4:#7a4fa0; --d5:#b08a1e; --d6:#2a8a96;
  /* Schrift */
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  /* Formen */
  --r-klein:6px; --r:10px; --r-rund:999px;
  --schatten:0 1px 2px rgba(0,0,0,.06),0 2px 8px rgba(0,0,0,.05);
  --abstand:1rem;
}
:root[data-thema="dunkel"]{
  --grund:#16191c; --flaeche:#1c2024; --karte:#21262b;
  --text:#e8e5df; --leise:#a3a9b0; --linie:#363c43;
  --inf:#8db9d9; --inf-hell:#1f2d38;
  --wr:#e3997a;  --wr-hell:#3a261d;
  --akzent:#e08a62;
  --richtig:#7cc59a; --richtig-hell:#1c3226;
  --falsch:#f08a80;  --falsch-hell:#3a1f1c;
  --hinweis:#e2c06a; --hinweis-hell:#352c14;
  --d1:#8db9d9; --d2:#e08a62; --d3:#7cc59a; --d4:#b99be0; --d5:#e2c06a; --d6:#6cc3cc;
  --schatten:none;
}
:root[data-fach="informatik"]{ --fach:var(--inf); --fach-hell:var(--inf-hell); }
:root[data-fach="wr"]        { --fach:var(--wr);  --fach-hell:var(--wr-hell); }

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.tafel{font-size:125%}
body{margin:0;background:var(--grund);color:var(--text);font:1rem/1.55 var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2;margin:0 0 .5em}
h1{font-size:1.5rem} h2{font-size:1.35rem} h3{font-size:1.1rem}
a{color:var(--fach);text-underline-offset:.2em}
code,kbd,.mono{font-family:var(--mono);font-size:.92em}
:focus-visible{outline:3px solid var(--fach);outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}

/* Kopfleiste */
.kopf{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem 1.25rem;border-bottom:1px solid var(--linie);background:var(--karte)}
.kopf .heim{font-family:var(--serif);color:var(--leise);text-decoration:none;font-size:.95rem;white-space:nowrap}
.kopf .heim:hover{color:var(--fach)}
.kopf .name{display:flex;flex-direction:column;line-height:1.15;margin-right:auto}
.kopf .name small{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fach);font-weight:600}
.kopf .name strong{font-family:var(--serif);font-weight:400;font-size:1.35rem}
.kopf .schalter{display:flex;gap:.4rem}

/* Seitenrahmen */
main{max-width:72rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}
.fuss{max-width:72rem;margin:0 auto;padding:1rem 1.25rem 2rem;border-top:1px solid var(--linie);color:var(--leise);font-size:.85rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}
.fuss a{color:inherit}

/* Bausteine */
.karte{background:var(--karte);border:1px solid var(--linie);border-radius:var(--r);padding:1rem 1.2rem;box-shadow:var(--schatten)}
.knopf{display:inline-flex;align-items:center;gap:.4rem;min-height:2.5rem;padding:.45rem 1rem;border-radius:var(--r-klein);border:1px solid var(--fach);background:var(--fach);color:#fff;font-weight:600;cursor:pointer;text-decoration:none}
:root[data-thema="dunkel"] .knopf:not(.zweit):not(.leise){color:#111}
.knopf:hover{filter:brightness(1.08)}
.knopf.zweit{background:transparent;color:var(--fach)}
.knopf.leise{background:transparent;border-color:var(--linie);color:var(--text);font-weight:400}
.knopf[aria-pressed="true"]{background:var(--fach-hell);border-color:var(--fach);color:var(--fach);font-weight:600}
.knopf:disabled{opacity:.45;cursor:not-allowed}
.chip{display:inline-block;padding:.1rem .55rem;border-radius:var(--r-rund);background:var(--fach-hell);color:var(--fach);font-size:.8rem;font-weight:600}
.kasten{border-radius:var(--r-klein);padding:.7rem 1rem;border-left:4px solid;margin:.8rem 0}
.kasten>b:first-child{display:block;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.2rem}
.kasten.info{background:var(--fach-hell);border-color:var(--fach)}
.kasten.aufgabe{background:var(--flaeche);border-color:var(--fach)}
.kasten.richtig{background:var(--richtig-hell);border-color:var(--richtig)}
.kasten.falsch{background:var(--falsch-hell);border-color:var(--falsch)}
.kasten.hinweis{background:var(--hinweis-hell);border-color:var(--hinweis)}
input[type=text],input[type=number],select,textarea{min-height:2.5rem;padding:.4rem .6rem;border:1px solid var(--linie);border-radius:var(--r-klein);background:var(--karte)}
table{border-collapse:collapse;background:var(--karte)}
th,td{border:1px solid var(--linie);padding:.45rem .7rem;text-align:left}
th{background:var(--flaeche);font-weight:600}
.markiert{background:var(--fach-hell);outline:2px solid var(--fach);outline-offset:-2px}
.tafel-aus{} html.tafel .tafel-aus{display:none}

@media (max-width:600px){
  .kopf{padding:.6rem 1rem} main{padding:1rem 1rem 2rem}
  .kopf .heim span{display:none}
}
@media print{
  .kopf .schalter,.knopf{display:none}
  body{background:#fff}
}
/* ================================================================
   Ab hier: Regeln dieses Werkzeugs (Pfad-Rallye)
   Gemeinsam für Schülerrechner, Einzelversion, Tafel und Regiepult.
   ================================================================ */
[hidden]{display:none!important}
button{cursor:pointer;touch-action:manipulation}
.eyebrow{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--leise);margin:0}
.leise{color:var(--leise)} .klein{font-size:.875rem}
.zeile{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.knopf.warn{background:transparent;border-color:var(--falsch);color:var(--falsch)}
.kasten>*:last-child{margin-bottom:0}
.kasten p{margin:.3rem 0 0}
code{overflow-wrap:anywhere}

/* Verbindungsanzeige (Klassenmodus) */
.netz{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;border-radius:var(--r-rund);padding:.2rem .7rem;font-size:.85rem}
.netz::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:currentColor}
.netz.verbunden{color:var(--richtig);background:var(--richtig-hell)}
.netz.verbinde{color:var(--hinweis);background:var(--hinweis-hell)}
.netz.getrennt{color:var(--falsch);background:var(--falsch-hell)}

/* Uhr */
.uhr{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
.uhr.knapp{color:var(--falsch)}

/* Explorer (wie in der Ordner-Werkstatt) */
.explorer-rahmen{border:1px solid var(--linie);border-radius:var(--r-klein);padding:.25rem;overflow:auto;background:var(--karte)}
.explorer,.explorer ul{list-style:none;margin:0;padding:0}
.ex-zeile{display:flex;align-items:center;padding-left:calc(var(--tiefe,0) * 1.15rem);border-radius:var(--r-klein)}
.ex-klapp{flex:none;width:2.5rem;height:2.5rem;border:0;background:transparent;color:var(--leise);border-radius:var(--r-klein);font-size:.8rem}
.ex-klapp:hover{background:var(--flaeche)}
.ex-klapp.ohne{visibility:hidden}
.ex-name{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:2.5rem;padding:.2rem .5rem;border:0;background:transparent;color:var(--text);text-align:left;border-radius:var(--r-klein)}
.ex-name:hover{background:var(--flaeche)}
.ex-text{overflow-wrap:anywhere;min-width:0}
.ex-marke{margin-left:auto;flex:none;font-size:.78rem;font-weight:600;color:var(--leise);white-space:nowrap}
.ex-marke.offen{color:var(--richtig)}
.ex-zeile.dein>.ex-name{background:var(--fach-hell);outline:2px solid var(--fach);outline-offset:-2px}
.ex-zeile.tipp>.ex-name{outline:2px dashed var(--hinweis);outline-offset:-2px}
.ex-zeile.dein.tipp>.ex-name{outline-style:solid}
.chip.tippchip{background:var(--hinweis-hell);color:var(--hinweis)}
.ic{width:1.25rem;height:1.25rem;flex:none}
.ic .ordner{fill:var(--d5)}
.ic .datei{fill:var(--karte);stroke:var(--leise);stroke-width:1.3;stroke-linejoin:round}
.ic .laufwerk{fill:var(--flaeche);stroke:var(--leise);stroke-width:1.3}
.ic .laufwerk-punkt{fill:var(--d3)}
.adresse{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-height:2.5rem;padding:.3rem .7rem;border:1px solid var(--linie);border-radius:var(--r-klein);background:var(--flaeche);margin-bottom:.5rem}
.adresse code{font-size:.95em}

/* Hinweis */
.hinweis{font-size:1.1rem;line-height:1.55}
.hinweis p{margin:.4rem 0}
.hinweis code{background:var(--flaeche);border:1px solid var(--linie);border-radius:4px;padding:0 .25em}
.falschpfad{display:block;font-family:var(--mono);font-size:1.05rem;padding:.5rem .8rem;border:1px dashed var(--leise);border-radius:var(--r-klein);background:var(--flaeche);margin:.4rem 0;overflow-wrap:anywhere}
.stufenleiste{display:flex;flex-wrap:wrap;gap:.3rem;margin:.2rem 0 .6rem}
.stufenleiste span{min-width:1.9rem;height:1.9rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-rund);border:1px solid var(--linie);font-family:var(--mono);font-size:.8rem;color:var(--leise)}
.stufenleiste span.fertig{background:var(--richtig-hell);border-color:var(--richtig);color:var(--richtig)}
.stufenleiste span.jetzt{background:var(--fach);border-color:var(--fach);color:#fff;font-weight:700}

/* Objektdiagramm (wie in der Ordner-Werkstatt: objektname : Klasse, darunter Attribut = Wert) */
.objektdiagramm{margin:.5rem 0;overflow-x:auto}
.od ul{list-style:none;margin:0 0 0 1.1rem;padding:0 0 0 .9rem;border-left:2px solid var(--text)}
.od li{margin:.2rem 0 .4rem}
.objektkarte{display:inline-block;background:var(--karte);border:1.5px solid var(--text);border-radius:var(--r-klein);min-width:min(14rem,100%)}
.ok-kopf{padding:.35rem .8rem;border-bottom:1.5px solid var(--text);text-align:center}
.ok-kopf u{text-underline-offset:.2em}
.ok-attr{padding:.35rem .8rem;font-family:var(--mono);font-size:.92rem}
.enthaelt{display:flex;align-items:center;gap:.5rem;padding:.1rem 0;color:var(--leise);font-style:italic;font-size:.9rem}

/* Pfad eingeben */
.pfadzeile{display:flex;gap:.5rem;flex-wrap:wrap}
.pfadfeld{flex:1;min-width:12rem;font-family:var(--mono);font-size:1.1rem!important}
.tasten{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem;align-items:center}
.tasten .knopf{font-family:var(--mono)}

/* Fundstücke */
.buchstaben{display:flex;flex-wrap:wrap;gap:.4rem}
.buchstabe{width:2.4rem;height:2.6rem;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--fach);border-radius:var(--r-klein);font-family:var(--mono);font-size:1.3rem;font-weight:700;color:var(--fach);background:var(--fach-hell)}
.buchstabe.fehlt{border-style:dashed;border-color:var(--linie);background:transparent;color:var(--leise)}
.fundliste{list-style:none;margin:.5rem 0 0;padding:0;font-size:.92rem}
.fundliste li{display:flex;gap:.6rem;align-items:baseline;padding:.25rem 0;border-bottom:1px solid var(--linie)}
.fundliste code{color:var(--leise)}

/* Bäume (SVG) */
svg.baum{display:block;width:100%;height:auto;font-family:var(--sans)}
.baum .kante{fill:none;stroke:var(--linie);stroke-width:2}
.baum .kante.weg{stroke:var(--fach);stroke-width:5;stroke-linecap:round}
.baum .punkt{fill:var(--karte);stroke:var(--leise);stroke-width:2}
.baum .punkt.wurzel{fill:var(--flaeche)}
.baum .punkt.besucht{fill:var(--fach);stroke:var(--fach)}
.baum .punkt.jetzt{fill:var(--akzent);stroke:var(--akzent)}
.baum .ring{fill:none;stroke:var(--akzent);stroke-width:3}
.baum .box{fill:var(--karte);stroke:var(--leise);stroke-width:1.2}
.baum .box.ordner{fill:var(--fach-hell);stroke:var(--fach)}
.baum .box.besucht{stroke:var(--fach);stroke-width:3}
.baum .box.jetzt{stroke:var(--akzent);stroke-width:4}
.baum .name{fill:var(--text)}
.baum .marke{fill:var(--fach)}
.baum .markentext{fill:#fff;font-size:12px;font-weight:700;font-family:var(--mono)}

/* Pause („Schau zur Tafel“): ruhige, deckende Fläche */
.frost{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:var(--grund);text-align:center;padding:1.5rem}
.frost h2{font-size:2.2rem;margin:.5rem 0 1rem}
.frost .impuls{font-size:1.3rem;max-width:34ch;margin:0 auto;font-weight:600}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Spielfeld: links Explorer, rechts Hinweis und Eingabe */
.mono{font-family:var(--mono)}
.kopfzeile{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.4rem}
.kopfzeile h2{margin:0}
.feld{display:grid;grid-template-columns:minmax(18rem,26rem) minmax(0,1fr);gap:var(--abstand);align-items:start}
.ex-karte{position:sticky;top:1rem}
.ex-karte .explorer-rahmen{max-height:calc(100vh - 12rem)}
.rechts{display:flex;flex-direction:column;gap:var(--abstand);min-width:0}
.rechts>.kasten{margin:0}
.leer{text-align:center;padding:3rem 1rem}
.titel{margin-bottom:var(--abstand)}
.aufl{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--abstand);align-items:start}
.loesungen{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.8rem}
.loesungen li{border-bottom:1px solid var(--linie);padding-bottom:.6rem}
.loesungen .hinweis{font-size:1rem}
@media (max-width:860px){ .feld,.aufl{grid-template-columns:minmax(0,1fr)} .ex-karte{position:static} }

/* Rollen, Weg im Baum, Piratenaufgabe */
.rollen{margin:0 0 .5rem;padding:.35rem .6rem;border-radius:var(--r-klein);background:var(--flaeche)}
details.karte>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;min-height:2.5rem}
details.karte>summary::-webkit-details-marker{display:none}
details.karte>summary::after{content:"▸";color:var(--leise);margin-left:auto}
details.karte[open]>summary::after{content:"▾"}
details.karte>summary h2{margin:0}
.piraten{margin:.3rem 0 .6rem;padding-left:1.3rem}
.fehlerliste{margin:.4rem 0 1rem;padding-left:1.2rem}
.fehlerliste li{margin:.3rem 0}

/* Lageplan neben dem Explorer */
.lageplan-rahmen{border:1px solid var(--linie);border-radius:var(--r-klein);padding:.25rem;overflow:auto;background:var(--karte)}
svg.baum.lageplan{width:auto;max-width:none;min-width:100%;height:auto}
.lageplan .ebene{fill:var(--leise);font-size:11px;font-family:var(--mono)}
.lageplan .name{font-size:13px}
.lageplan .standort{fill:var(--akzent);font-size:12px;font-weight:700}
.baum .box.tipp{stroke:var(--hinweis);stroke-width:2.5;stroke-dasharray:5 3}
.baum .box.live{fill:var(--richtig-hell);stroke:var(--richtig);stroke-width:2.5}
.baum .kante.live{stroke:var(--richtig);stroke-width:3.5}
.baum .kante.neu{stroke-dasharray:400;stroke-dashoffset:400;animation:zeichnen 1s ease-out forwards}

/* Schatzkarte */
svg.schatzkarte{display:block;width:100%;height:auto;margin:.2rem 0 .4rem}
.karte-weg{fill:none;stroke:var(--leise);stroke-width:2.5;stroke-dasharray:4 6;stroke-linecap:round}
.karte-weg.gegangen{stroke:var(--fach);stroke-width:4;stroke-dasharray:none}
.karte-weg.neu{stroke-dasharray:200;stroke-dashoffset:200;animation:zeichnen 1s ease-out forwards}
.station{fill:var(--karte);stroke:var(--leise);stroke-width:2}
.station.gefunden{fill:var(--fach);stroke:var(--fach)}
.station.jetzt{stroke:var(--akzent);stroke-width:4}
.station.neu{animation:auftauchen .6s ease-out .5s both}
.stationtext{font-family:var(--mono);font-size:13px;font-weight:700;fill:var(--leise)}
.stationtext.gefunden{fill:#fff}
.truhe rect,.truhe path{fill:var(--karte);stroke:var(--fach);stroke-width:2.5;stroke-linejoin:round}
.truhe.offen rect:first-child{fill:var(--fach-hell)}
.truhe .schloss{fill:var(--fach)}
.truhe .glanz{fill:var(--akzent);stroke:none}
.buchstabe.neu{animation:auftauchen .6s ease-out .4s both}
@keyframes zeichnen{to{stroke-dashoffset:0}}
@keyframes auftauchen{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.station.neu,.buchstabe.neu{transform-origin:center;transform-box:fill-box}

/* Pfad beim Tippen (Hilfe) */
.livepfad{display:flex;flex-wrap:wrap;gap:.25rem .35rem;align-items:center;margin:.45rem 0 0;font-family:var(--mono);font-size:.88rem}
.livepfad .seg{padding:.05rem .4rem;border-radius:var(--r-klein);border:1px solid var(--linie);background:var(--flaeche)}
.livepfad .seg.ok{border-color:var(--richtig);background:var(--richtig-hell)}
.livepfad .seg.nein{border-color:var(--falsch);background:var(--falsch-hell)}
.livepfad .trenn{color:var(--leise)}

/* drei Spalten: Explorer | Lageplan | Hinweis und Eingabe */
.feld.drei{grid-template-columns:minmax(15rem,20rem) minmax(15rem,21rem) minmax(0,1fr)}
.feld.drei .ex-karte .explorer-rahmen,.feld.drei .lp-karte .lageplan-rahmen{max-height:calc(100vh - 9rem)}
.lp-karte{position:sticky;top:1rem}
@media (max-width:1180px){ .feld.drei{grid-template-columns:minmax(15rem,20rem) minmax(0,1fr)} .feld.drei .lp-karte{grid-column:1;position:static} .feld.drei .rechts{grid-column:2;grid-row:1 / span 2} .feld.drei .ex-karte{position:static} }
@media (max-width:860px){ .feld.drei{grid-template-columns:minmax(0,1fr)} .feld.drei .rechts{grid-column:1;grid-row:auto} }
@media (prefers-reduced-motion:reduce){.kante.neu,.karte-weg.neu{stroke-dashoffset:0}}
