/* ================================================================
   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 des Börsenspiels
   ================================================================ */
[hidden]{display:none !important}
.raster{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--abstand)}
.raster.breit{grid-template-columns:repeat(auto-fit,minmax(26rem,1fr))}
.stapel>*+*{margin-top:var(--abstand)}
.karte>h2:first-child,.karte>h3:first-child{margin-top:0}
.kicker{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fach);font-weight:600}
.leise{color:var(--leise)}
.klein{font-size:.875rem}
.rechts{text-align:right}
.zeile{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.zeile.zwischen{justify-content:space-between}

/* Reiter unter der Kopfleiste */
.reiter{display:flex;gap:.25rem;overflow-x:auto;padding:0 1.25rem;border-bottom:1px solid var(--linie);background:var(--karte)}
.reiter a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .9rem;color:var(--leise);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.reiter a:hover{color:var(--text)}
.reiter a[aria-current="page"]{color:var(--fach);border-bottom-color:var(--fach);font-weight:600}

/* Formulare */
.feld{display:block;margin:.6rem 0}
.feld>span{display:block;font-size:.875rem;color:var(--leise);margin-bottom:.2rem}
.feld input,.feld select{width:100%}
input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=email]{min-height:2.5rem;padding:.4rem .6rem;border:1px solid var(--linie);border-radius:var(--r-klein);background:var(--karte)}
input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--fach)}
.haken{display:flex;gap:.5rem;align-items:center;margin:.6rem 0;min-height:2.5rem}
.gruppe{display:inline-flex;border:1px solid var(--linie);border-radius:var(--r-klein);overflow:hidden}
.gruppe .knopf{border:0;border-radius:0;background:transparent;color:var(--text);font-weight:400}
.gruppe .knopf[aria-pressed="true"]{background:var(--fach-hell);color:var(--fach);font-weight:600}

/* Kennzahlen */
.kennzahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.8rem 1.2rem;margin:.4rem 0}
.kennzahl small{display:block;font-size:.8rem;color:var(--leise)}
.kennzahl b{display:block;font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
.kennzahl.gross b{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.1}
.plus{color:var(--richtig)} .minus{color:var(--falsch)}

/* Tabellen */
.tabelle-rahmen{overflow-x:auto;margin:.4rem 0}
.tabelle-rahmen table{width:100%}
td.zahl,th.zahl{text-align:right;font-family:var(--mono);white-space:nowrap}
th.zahl{font-family:var(--sans)}
tr.klickbar{cursor:pointer}
tr.klickbar:hover td{background:var(--flaeche)}
td .unter{display:block;font-size:.8rem;color:var(--leise)}
.code{font-family:var(--mono);font-size:1.05rem;letter-spacing:.08em;font-weight:600}
.code.gross{font-size:2.2rem;color:var(--fach)}

/* Suche */
.treffer{list-style:none;margin:.6rem 0 0;padding:0;border:1px solid var(--linie);border-radius:var(--r-klein);overflow:hidden}
.treffer li+li{border-top:1px solid var(--linie)}
.treffer a{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .8rem;color:var(--text);text-decoration:none;min-height:2.75rem;align-items:center}
.treffer a:hover{background:var(--flaeche)}

/* Diagramme */
.diagramm{position:relative;width:100%;min-height:12rem}
.diagramm svg{display:block;width:100%;height:auto;overflow:visible}
.diagramm .achse{font:12px var(--sans);fill:var(--leise)}
.diagramm .gitter{stroke:var(--linie);stroke-width:1}
.diagramm .beschriftung{font:600 13px var(--sans)}
.diagramm .tipp{position:absolute;pointer-events:none;background:var(--karte);border:1px solid var(--linie);border-radius:var(--r-klein);padding:.25rem .5rem;font-size:.8rem;white-space:nowrap;box-shadow:var(--schatten)}
.balken{display:flex;height:1.4rem;border-radius:var(--r-klein);overflow:hidden;border:1px solid var(--linie)}
.balken span{display:block;height:100%}
.legende{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.875rem}
.legende i{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;margin-right:.35rem;vertical-align:-1px}

.platz{font-family:var(--serif);font-size:1.1rem}
.rangliste td{font-size:1rem}
html.tafel .rangliste td{font-size:1.15rem}
@media (max-width:600px){ .reiter{padding:0 .5rem} .kennzahl.gross b{font-size:1.6rem} .raster.breit{grid-template-columns:1fr} }
@media print{ .reiter,.nicht-drucken{display:none !important} .karte{box-shadow:none;break-inside:avoid} }

/* Lehrkraft-Bereich: Klasse mit Handelsverlauf rechts */
.klasse-spalten{display:grid;gap:var(--abstand);grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:1000px){
  main:has(.klasse-spalten){max-width:90rem}
  .klasse-spalten{grid-template-columns:minmax(0,1.6fr) minmax(20rem,1fr)}
  .verlauf-spalte{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}
}
.verlauf-spalte h2{margin-bottom:.6rem}
.verlauf-spalte h3{font-size:1rem;margin:.6rem 0 .3rem}
.trenner{border:0;border-top:1px solid var(--linie);margin:.8rem 0}
.kompakt-liste{list-style:none;margin:0;padding:0}
.kompakt-liste li.kompakt{display:flex;justify-content:space-between;gap:.8rem;padding:.5rem 0 .5rem .6rem;border-top:1px solid var(--linie);font-size:.9rem;line-height:1.35}
.kompakt-liste li.kompakt:first-child{border-top:0}
.kompakt-liste li.kompakt>div:first-child{min-width:0}
.kompakt-liste li.kompakt b{display:block}
.kompakt-liste li.kompakt small{display:block;color:var(--leise);font-size:.8rem}
.kompakt-liste li.kompakt small .plus,.kompakt-liste li.kompakt small .minus{font-weight:600}
.kompakt-liste .rechts{text-align:right;white-space:nowrap;font-family:var(--mono);font-size:.85rem}
.kompakt-liste li.order{border-left:3px solid var(--d1)}
.kompakt-liste li.order.verkauf{border-left-color:var(--d2)}
details.menue{display:inline-block}
details.menue summary{cursor:pointer;list-style:none;padding:.3rem .7rem;border:1px solid var(--linie);border-radius:var(--r-klein);font-size:.85rem;white-space:nowrap;min-height:2.2rem;display:inline-flex;align-items:center}
details.menue summary::-webkit-details-marker{display:none}
details.menue summary::after{content:" ▾";margin-left:.25rem}
details.menue>div{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem;min-width:11rem}
details.menue>div .knopf{justify-content:flex-start}

.schullogo{object-fit:contain;vertical-align:middle;border-radius:4px;background:#fff}
.mit-logo{display:inline-flex;align-items:center;gap:.45rem}
.schulkopf{display:flex;align-items:center;gap:1rem;padding:.2rem 0}

/* Verwaltung: Formularabschnitte, Schritte, Kennzahlen als Links */
fieldset.abschnitt{border:0;border-top:1px solid var(--linie);margin:1rem 0 0;padding:.6rem 0 0;min-width:0}
fieldset.abschnitt>legend{padding:0 .5rem 0 0;font-weight:600;font-size:.95rem;color:var(--fach)}
a.kennzahl{color:inherit;text-decoration:none;border-radius:var(--r-klein)}
a.kennzahl:hover b{color:var(--fach)}
.schritte{list-style:none;margin:0;padding:0}
.schritt{display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--linie)}
.schritt:first-child{border-top:0}
.schritt>div{flex:1 1 16rem;min-width:0}
.schritt>.knopf{margin-left:2.4rem}
@media (min-width:40rem){.schritt>.knopf{margin-left:0}}
.schritt .marke{flex:none;width:1.6rem;height:1.6rem;border-radius:50%;border:2px solid var(--linie);display:grid;place-items:center;font-size:.85rem;font-weight:700}
.schritt.fertig .marke{background:var(--fach);border-color:var(--fach);color:#fff}
.schritt.fertig b{color:var(--leise)}

/* Bereichsauswahl im Diagramm */
.diagramm svg{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.diagramm .auswahl-band{fill:var(--fach);fill-opacity:.12}
.auswahl-info{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;padding:.3rem .4rem .3rem .75rem;border:1px solid var(--linie);border-radius:var(--r-klein);font-size:.9rem;font-variant-numeric:tabular-nums}
.auswahl-info>span:first-child{color:var(--leise)}
.auswahl-weg{margin-left:auto;border:0;background:none;color:var(--leise);font-size:1.2rem;line-height:1;width:2rem;height:2rem;cursor:pointer}

/* Status der Lehrkraft-Zugänge */
.status-wartet{color:var(--hinweis);font-weight:600}
.status-gesperrt{color:var(--falsch);font-weight:600}
td.eng,.zeile.eng{white-space:nowrap}
.zeile.eng{flex-wrap:nowrap}
