/* Gemeinsame Gestaltung des Klassenmodus – 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 (Marktpreis-Werkstatt)
   ================================================================ */
/* Kurznamen, die der Code des Werkzeugs benutzt – alle zeigen auf die Variablen der Vorlage.
   Marktmodell: Nachfrage --d1 (blau), Angebot --d2 (orange), Gleichgewicht --d3 (grün). */
:root{
  --bg:var(--grund); --surface:var(--karte); --ink:var(--text); --muted:var(--leise); --line:var(--linie);
  --accent:var(--fach); --dem:var(--d1); --sup:var(--d2); --eq:var(--d3); --bad:var(--falsch); --warn:var(--hinweis);
  --dem-soft:var(--inf-hell); --sup-soft:var(--wr-hell); --eq-soft:var(--richtig-hell); --bad-soft:var(--falsch-hell);
  --display:var(--serif); --body:var(--sans);
}
:root[data-thema="dunkel"]{color-scheme:dark}
[hidden]{display:none!important}
button{cursor:pointer;touch-action:manipulation}
h1,h2,h3{margin:0}
.eyebrow{font-family:var(--sans);font-size:.75em;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--leise);margin:0}
.muted{color:var(--leise)}
/* Knöpfe des Werkzeugs = Bausteine der Vorlage: .btn wie „knopf leise“, .btn.primary wie „knopf“ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--linie);background:var(--karte);color:var(--text);border-radius:var(--r-klein);padding:10px 16px;min-height:44px;font-weight:600;text-decoration:none}
.btn:hover{border-color:var(--fach)}
.btn.primary{background:var(--fach);border-color:var(--fach);color:#fff}
:root[data-thema="dunkel"] .btn.primary{color:#111}
.btn.primary:hover{filter:brightness(1.08)}
.btn.warn{border-color:var(--falsch);color:var(--falsch)}
.btn[aria-pressed="true"]{background:var(--fach-hell);border-color:var(--fach);color:var(--fach)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.panel{background:var(--karte);border:1px solid var(--linie);border-radius:var(--r);padding:16px 18px;box-shadow:var(--schatten)}
/* Merksatz = Kasten „info“ der Vorlage */
.merk{background:var(--fach-hell);border-left:4px solid var(--fach);border-radius:var(--r-klein);padding:16px 18px}
.merk .eyebrow{color:var(--fach)}
/* Rückmeldungen nie nur über Farbe: ✓ / ✗ davor */
.feedback.good{color:var(--richtig)} .feedback.bad{color:var(--falsch)}
.feedback.good:not(:empty)::before{content:"✓ "} .feedback.bad:not(:empty)::before{content:"✗ "}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.themaknopf{min-height:2.5rem}

/* Diagramm (SVG, viewBox-Koordinaten) */
svg .grid{stroke:var(--linie);stroke-width:1}
svg .axis{stroke:var(--text);stroke-width:1.5}
svg .ax{font-family:var(--mono);font-size:12px;fill:var(--leise)}
svg .axt{font-family:var(--sans);font-size:13px;font-weight:600;fill:var(--text)}
svg .dline{stroke:var(--d1);stroke-width:3.5;fill:none;stroke-linejoin:round}
svg .dline2{stroke:var(--d3);stroke-width:3.5;fill:none;stroke-linejoin:round}
svg .oldline{stroke:var(--leise);stroke-width:2.5;stroke-dasharray:7 6;fill:none}
svg .blass{stroke-opacity:.2}
svg .fitline{stroke:var(--text);stroke-width:2;stroke-dasharray:3 6;fill:none}
svg .ptD{fill:var(--d1);stroke:var(--karte);stroke-width:2.5}
svg .ptBad{fill:none;stroke:var(--falsch);stroke-width:3}
svg .probe{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:6 5}
svg .drop{stroke-width:1.5;stroke-dasharray:4 4;stroke:var(--dem)}
svg .pill{fill:var(--ink)} svg .pilltxt{font-family:var(--mono);font-size:12px;font-weight:600;fill:var(--bg)}
svg .lbl{font-family:var(--sans);font-size:13px;font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}
svg .lbl.d{fill:var(--dem)} svg .lbl.e{fill:var(--eq)} svg .lbl.k{fill:var(--ink)} svg .lbl.m{fill:var(--muted)}
svg .wolke{fill:color-mix(in srgb,var(--ink) 35%,transparent)}
svg .wolke.ok{fill:color-mix(in srgb,var(--eq) 70%,transparent)}
svg .eigene{stroke:var(--ink);stroke-width:3;stroke-dasharray:2 6;stroke-linecap:round}
svg .sline2{stroke:var(--eq);stroke-width:3.5;fill:none;stroke-linejoin:round}
svg .hinttxt{font-family:var(--sans);font-size:14px;font-weight:600;fill:var(--accent)}
svg .ptNew{animation:pop .45s ease-out;transform-box:fill-box;transform-origin:center}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Verbindungsanzeige */
.netz{display:inline-flex;align-items:center;gap:8px;font-weight:600;border-radius:var(--r-rund);padding:6px 12px;font-size:.9em}
.netz::before{content:"";width:12px;height:12px;border-radius:50%;background:currentColor}
.netz.verbunden{color:var(--eq);background:var(--eq-soft)}
.netz.verbinde{color:var(--hinweis);background:var(--hinweis-hell)}
.netz.getrennt{color:var(--bad);background:var(--bad-soft)}

/* Marktdiagramme (Phasen 2–4) */
svg .sline{stroke:var(--sup);stroke-width:3.5;fill:none;stroke-linejoin:round}
svg .eqline{stroke:var(--eq);stroke-width:2.5;stroke-dasharray:8 5}
svg .band{fill:color-mix(in srgb,var(--eq) 22%,transparent)}
svg .ptS{fill:var(--sup);stroke:var(--surface);stroke-width:2.5}
svg .ptE{fill:var(--eq);stroke:var(--surface);stroke-width:3}
svg .ptOld{fill:var(--muted)}
svg .drop.s{stroke:var(--sup)} svg .drop.e{stroke:var(--eq)} svg .drop.o{stroke:var(--muted)}
svg .priceline{stroke:var(--ink);stroke-width:2.5}
svg .lbl.s{fill:var(--sup)}
svg .arrow{stroke:var(--ink);stroke-width:2.5;fill:none}
svg .krFill{fill:color-mix(in srgb,var(--dem) 30%,transparent)}
svg .trenner{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:3 5}
svg .handel{fill:var(--accent)}
svg .handel.alt{fill:color-mix(in srgb,var(--accent) 35%,transparent)}
table.ft{border-collapse:collapse;width:100%;font-size:.92em;margin-top:10px}
table.ft th,table.ft td{border:1px solid var(--linie);padding:6px 8px;text-align:left;vertical-align:top}
table.ft th{background:var(--flaeche);font-weight:600}
.tablewrap{overflow-x:auto}
.optionen{display:flex;flex-direction:column;gap:10px}
.option{text-align:left;color:var(--text);border:2px solid var(--line);background:var(--surface);border-radius:var(--r-klein);padding:14px 16px;min-height:60px;line-height:1.3;font-size:1.05em}
.option[aria-pressed="true"]{border-color:var(--fach);background:var(--fach-hell);font-weight:600}
.option.richtig{border-color:var(--eq);background:var(--eq-soft);font-weight:600}
.option.falsch{border-color:var(--bad);background:var(--bad-soft)}
.option.richtig::before{content:"✓ ";color:var(--richtig)} .option.falsch::before{content:"✗ ";color:var(--falsch)}
.option:disabled{cursor:default}
.punkte{display:flex;gap:8px;flex-wrap:wrap}
.punkte span{width:16px;height:16px;border-radius:50%;background:var(--line)}
.punkte .ok{background:var(--eq)} .punkte .no{background:var(--bad)}
