/* Lernfabrik — die Oberflaeche der Fabrik, nicht der gebauten Apps.
   Dunkles Petrol, damit die bunten App-Kacheln darauf leuchten. */
:root{
  --grund:#03211f; --flaeche:#082b28; --tiefer:#05231f;
  --linie:rgba(147,204,179,.14); --papier:#fdf9f5;
  --gedimmt:#9db5ae; --leise:#6f8a84;
  --mint:#93ccb3; --gold:#e8b64c; --koralle:#ea6268; --beige:#d29d65;
  --rund:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:
    radial-gradient(1100px 620px at 78% -8%, rgba(147,204,179,.10), transparent 60%),
    radial-gradient(760px 460px at 4% 8%, rgba(232,182,76,.07), transparent 62%),
    var(--grund);
  color:var(--papier);
  font:16px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  min-height:100vh; padding:0 0 90px;
}
a{color:var(--mint)} a:hover{color:var(--papier)}
.mitte{max-width:880px;margin:0 auto;padding:0 22px}

/* ---- Kopf ---- */
.kopf{display:flex;align-items:center;gap:14px;padding:26px 0 8px;flex-wrap:wrap}
.zeichen{width:38px;height:38px;border-radius:11px;flex:none;
  background:linear-gradient(160deg,#0d3b36,#06231f);border:1px solid var(--linie);
  display:grid;place-items:center}
.zeichen i{display:block;width:17px;height:2.5px;border-radius:2px;background:var(--mint);
  box-shadow:0 5px 0 rgba(147,204,179,.72),0 10px 0 rgba(147,204,179,.44);margin-top:-8px}
.marke b{font-size:19px;letter-spacing:-.02em;display:block}
.marke span{font-size:12.5px;color:var(--leise)}
.kopf .rechts{margin-left:auto;font-size:13px;color:var(--leise)}

/* ---- Aufmacher ---- */
.auf{padding:22px 0 6px}
.auf h1{font-size:clamp(30px,5vw,44px);line-height:1.08;letter-spacing:-.03em;
  text-wrap:balance;margin-bottom:12px}
.auf p{color:var(--gedimmt);font-size:17px;max-width:62ch;text-wrap:pretty}
.auf .mint{color:var(--mint)}

/* ---- Flaechen ---- */
.karte{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  border:1px solid var(--linie);border-radius:var(--rund);padding:20px}
.karte + .karte{margin-top:14px}
.kennung{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--leise);
  margin-bottom:9px}

/* ---- Formular ---- */
label{display:block;font-size:13.5px;color:var(--gedimmt);margin:0 0 7px}
label b{color:var(--papier);font-weight:600}
textarea,input[type=text],input[type=password],select{
  width:100%;background:var(--tiefer);color:var(--papier);
  border:1px solid var(--linie);border-radius:12px;padding:13px 14px;
  font:inherit;font-size:15.5px;resize:vertical}
textarea{min-height:132px;line-height:1.55}
textarea:focus,input:focus,select:focus{outline:2px solid rgba(147,204,179,.55);outline-offset:1px}
textarea::placeholder,input::placeholder{color:#4d6b66}
.hinweis{font-size:12.5px;color:var(--leise);margin-top:7px}
.reihe{display:flex;gap:12px;flex-wrap:wrap}
.reihe > div{flex:1;min-width:150px}

/* ---- Ablage fuer Dateien ---- */
.ablage{border:1.5px dashed rgba(147,204,179,.34);border-radius:12px;padding:20px;
  text-align:center;color:var(--gedimmt);cursor:pointer;background:rgba(147,204,179,.035);
  transition:border-color .15s,background .15s}
.ablage:hover,.ablage.drueber{border-color:var(--mint);background:rgba(147,204,179,.09)}
.ablage b{color:var(--papier)}
.dateien{list-style:none;margin-top:10px;display:flex;flex-direction:column;gap:6px}
.dateien li{display:flex;gap:9px;align-items:center;font-size:13.5px;color:var(--gedimmt);
  background:var(--tiefer);border:1px solid var(--linie);border-radius:9px;padding:8px 11px}
.dateien li b{color:var(--papier);font-weight:500}
.dateien .weg{margin-left:auto;background:none;border:0;color:var(--leise);cursor:pointer;
  font-size:17px;line-height:1;padding:2px 4px}
.dateien .weg:hover{color:var(--koralle)}

/* ---- Knoepfe ---- */
.knopf{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--mint);color:#04211d;border:0;border-radius:12px;
  padding:14px 24px;font:inherit;font-size:16px;font-weight:600;cursor:pointer;
  transition:filter .15s,transform .06s}
.knopf:hover{filter:brightness(1.07)} .knopf:active{transform:translateY(1px)}
.knopf[disabled]{opacity:.45;cursor:not-allowed}
.knopf.stumm{background:transparent;color:var(--gedimmt);border:1px solid var(--linie)}
.knopf.stumm:hover{color:var(--papier);border-color:var(--mint)}

/* ---- Zustaende ---- */
.perle{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;
  border:1px solid var(--linie);border-radius:999px;padding:4px 11px;color:var(--gedimmt)}
.perle i{width:7px;height:7px;border-radius:99px;background:var(--leise);display:block}
.perle.laeuft i,.perle.offen i{background:var(--mint);animation:pulsen 1.5s infinite}
.perle.frage i{background:var(--gold)}
.perle.fertig i{background:var(--mint)}
.perle.fehler i{background:var(--koralle)}
@keyframes pulsen{0%,100%{opacity:1}50%{opacity:.28}}
@media (prefers-reduced-motion:reduce){.perle i{animation:none}}

/* ---- Listen ---- */
.zeile{display:flex;gap:13px;align-items:center;padding:13px 0;border-top:1px solid var(--linie)}
.zeile:first-of-type{border-top:0}
.zeile .haupt{flex:1;min-width:0}
.zeile .haupt b{display:block;font-weight:600;font-size:15px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zeile .haupt span{font-size:12.5px;color:var(--leise)}
.zeile a.knopf{padding:9px 15px;font-size:14px}

/* ---- Mitschrift ---- */
.strom{max-height:420px;overflow:auto;background:var(--tiefer);border:1px solid var(--linie);
  border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.75;color:var(--gedimmt)}
.strom div{display:flex;gap:11px}
.strom time{color:#436560;flex:none;font-variant-numeric:tabular-nums}
.strom .kopfzeile{color:var(--mint);font-weight:600;margin-top:9px}
.strom .fertig{color:var(--mint);font-weight:600}
.strom .frage{color:var(--gold);font-weight:600}

/* ---- Ergebnis ---- */
.ergebnis{border:1px solid rgba(147,204,179,.5);
  background:linear-gradient(180deg,rgba(147,204,179,.13),rgba(147,204,179,.04))}
.zahlen{display:flex;gap:22px;flex-wrap:wrap;margin:14px 0 4px}
.zahlen div{min-width:78px}
.zahlen b{display:block;font-size:26px;letter-spacing:-.02em;color:var(--mint)}
.zahlen span{font-size:12px;color:var(--leise)}
.warnung{border-color:rgba(234,98,104,.5);
  background:linear-gradient(180deg,rgba(234,98,104,.12),rgba(234,98,104,.04))}
.gold{border-color:rgba(232,182,76,.5);
  background:linear-gradient(180deg,rgba(232,182,76,.11),rgba(232,182,76,.035))}

/* ---- Anmeldung ---- */
.tor{max-width:400px;margin:14vh auto 0;padding:0 22px}
.tor .karte{padding:26px}
.tor h1{font-size:23px;margin-bottom:6px;letter-spacing:-.02em}
.tor p{color:var(--gedimmt);font-size:14px;margin-bottom:18px}
.tor input{margin-bottom:12px}
.tor .knopf{width:100%}
.tor .fehl{color:var(--koralle);font-size:13.5px;margin-bottom:12px}

.fuss{margin-top:34px;padding-top:18px;border-top:1px solid var(--linie);
  font-size:12.5px;color:var(--leise)}
@media(max-width:640px){ .mitte{padding:0 16px} .karte{padding:16px} }

/* ---- Stil-Waehler ---- */
.stile{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}
.stilkarte{display:flex;gap:11px;align-items:flex-start;text-align:left;
  background:var(--tiefer);border:1px solid var(--linie);border-radius:12px;
  padding:11px;cursor:pointer;color:inherit;font:inherit;position:relative;
  transition:border-color .15s,background .15s}
.stilkarte:hover{border-color:rgba(147,204,179,.5)}
.stilkarte.an{border-color:var(--mint);background:rgba(147,204,179,.09)}
.stilkarte .bildchen{width:38px;height:38px;flex:none;display:block}
.stilkarte svg{width:100%;height:100%;border-radius:9px;display:block}
.stilkarte b{display:block;font-size:14px;font-weight:600;line-height:1.25}
.stilkarte span{display:block;font-size:11.5px;color:var(--leise);margin-top:3px;line-height:1.4}
.stilkarte .weg{position:absolute;top:5px;right:6px;background:none;border:0;
  color:var(--leise);cursor:pointer;font-size:15px;line-height:1;padding:2px 4px}
.stilkarte .weg:hover{color:var(--koralle)}
.stilwahl{margin-top:12px}
.stilzeile{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.stilbild svg{width:92px;height:92px;border-radius:14px;display:block;
  border:1px solid var(--linie)}
.regler{flex:1;min-width:210px;display:grid;grid-template-columns:auto 1fr;
  gap:9px 12px;align-items:center}
.regler label{margin:0;font-size:13.5px}
.farbfeld{display:flex;gap:8px;align-items:center}
.farbfeld input[type=color]{width:38px;height:30px;padding:2px;border-radius:8px;
  border:1px solid var(--linie);background:var(--tiefer);cursor:pointer}
.farbfeld input[type=text]{flex:1;padding:7px 9px;font-size:13.5px;
  font-variant-numeric:tabular-nums;text-transform:lowercase}
.stilfuss{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:15px}
.stilfuss input[type=text]{flex:1;min-width:190px;padding:9px 11px;font-size:14px}
.stilfuss .knopf{padding:9px 15px;font-size:14px}
@media(max-width:640px){ .stilzeile{gap:12px} .stilbild svg{width:64px;height:64px} }

/* ---- Weitere Optionen ---- */
.mehr{margin-top:14px;border:1px solid var(--linie);border-radius:12px;
  background:rgba(147,204,179,.03)}
.mehr > summary{cursor:pointer;padding:12px 15px;font-size:14.5px;font-weight:600;
  list-style:none;display:flex;align-items:center;gap:9px;color:var(--gedimmt)}
.mehr > summary:hover{color:var(--papier)}
.mehr > summary::-webkit-details-marker{display:none}
.mehr > summary::before{content:"›";display:inline-block;transition:transform .15s;
  color:var(--mint);font-size:17px;line-height:1}
.mehr[open] > summary::before{transform:rotate(90deg)}
.mehr[open] > summary{color:var(--papier);border-bottom:1px solid var(--linie)}
.mehr > .hinweis,.mehr > div{padding:0 15px}
.mehr > .hinweis{padding-top:12px}
.mehr > div{padding-bottom:15px}
.teilgruppe{margin-top:14px}
.teilgruppe > b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--leise);margin-bottom:8px}
.teilzeile{display:flex;gap:10px;align-items:flex-start;padding:7px 0;cursor:pointer}
.teilzeile input{margin:2px 0 0;width:17px;height:17px;flex:none;accent-color:var(--mint);
  cursor:pointer}
.teilzeile b{display:block;font-size:14px;font-weight:500;color:var(--papier)}
.teilzeile span{display:block;font-size:12.5px;color:var(--leise);line-height:1.45}
.teilzeile input:not(:checked) ~ div b{color:var(--leise);text-decoration:line-through;
  text-decoration-color:var(--linie)}
