/* Gemeinsames Aussehen des Anbieters — Anmeldung, Entwürfe-Startseite (Zeitplan) und
   Landingpage (pages/webschrauber/, lädt diese Datei mit).
   GRUNDLAGE (seit 2026-10-11, ETdocs/current/TODO_FARBEN.md): Farben nur als ROLLEN. Die
   Palette hier ist GRAU — die Farben des Kunden kommen aus projekte/<kürzel>/.data/farben.css
   (projekt.php schreibt sie in die Seite); die Vorführ-Paletten des Umschalters stehen in
   pages/webschrauber/seite.css. Fehlt eine Palette, bleibt alles grau.
   Keine fremden Server: keine Web-Schrift, kein Nachladen. */

/* ================= Palette: fünf Werte — hier die Graustufen-Grundlage =================
   --haupt         Linien, Punkte, Balken, Flächen
   --haupt-tief    Knöpfe mit weißer Schrift (mindestens 4,5 : 1 gegen Weiß)
   --akzent        der eine Knopf, um den es JETZT geht (Startblock, Abschnitt „jetzt“)
   --akzent-hover  derselbe beim Darüberfahren
   --auf-akzent    Schrift auf dem Akzent
   Eine Kundenpalette überschreibt diese fünf; light-dark() ist darin erlaubt.
   FREIWILLIG (Rollen unten, Vorgabe in Klammern) — für eine Palette, die ihre Farben anders
   verteilt, etwa das Hotel-Original mit hellem Knopf:
   --knopf         Füllung mit weißem Inhalt: Knöpfe, Häkchen-Punkte, offene Pfeile (--haupt-tief)
   --knopf-hover   derselbe beim Darüberfahren (--knopf, 18 % dunkler)
   --betont        das betonte Wort der Überschrift (--haupt-text)
   #farbe-grau: der Umschalter der Landingpage (pages/webschrauber/) holt mit „Grau“ genau diese
   Grundlage zurück, auch wenn eine Projektpalette darüber liegt — so gibt es Grau nur EINMAL */
:root,:root:has(#farbe-grau:checked){
	--haupt:#8a8a84;
	--haupt-tief:#4a4a45;
	--akzent:light-dark(#3d3d39,#e4e4de);
	--akzent-hover:light-dark(#232321,#ffffff);
	--auf-akzent:light-dark(#fff,#1a1a18);
}

/* ================= Rollen (aus der Palette gemischt) — hell | dunkel =================
   Hell und Dunkel stehen je Wert EINMAL da (light-dark). Welche Hälfte gilt, entscheidet
   color-scheme: hier nach dem Gerät; die Landingpage kann es erzwingen. */
:root{
	color-scheme:light dark;

	--text:light-dark(#2f2f2c,#ecece6);
	--text-2:light-dark(#55554f,#c6c7be);
	--leise:light-dark(#68685f,#a2a499);     /* #777 von früher war auf dem Grund 4,2 : 1 — zu blass */
	--linie:light-dark(#e4e4e0,#33332f);
	--grund:light-dark(#f7f7f4,#131312);
	--karte:light-dark(#fff,#1c1c1a);
	--flaeche:light-dark(#f0f0eb,#272724);
	--strich:light-dark(#d6d6cf,#45453f);    /* Zeitleiste, gestrichelte Ränder */
	--fehler:light-dark(#b4500a,#ffab70);

	--haupt-text:light-dark(var(--haupt-tief),color-mix(in oklab,var(--haupt),white 38%));
	--knopf:var(--haupt-tief);
	--knopf-hover:color-mix(in oklab,var(--knopf),black 18%);
	--betont:var(--haupt-text);
	--haupt-hell:light-dark(color-mix(in oklab,var(--haupt) 13%,#fff),color-mix(in oklab,var(--haupt) 20%,#1c1c1a));
	--haupt-weich:light-dark(color-mix(in oklab,var(--haupt) 42%,#fff),color-mix(in oklab,var(--haupt) 55%,#1c1c1a));
	--akzent-hell:light-dark(color-mix(in oklab,var(--akzent) 16%,#fff),color-mix(in oklab,var(--akzent) 18%,#1c1c1a));
	--akzent-text:light-dark(color-mix(in oklab,var(--akzent),black 48%),color-mix(in oklab,var(--akzent),white 25%));
	--glas:color-mix(in oklab,var(--karte) 88%,transparent);
	--rand:color-mix(in oklab,var(--haupt) 30%,transparent);
	--rand-stark:color-mix(in oklab,var(--haupt) 50%,transparent);
	--blob-a:light-dark(color-mix(in oklab,var(--haupt) 40%,transparent),color-mix(in oklab,var(--haupt) 20%,transparent));
	--blob-b:light-dark(color-mix(in oklab,var(--akzent) 30%,transparent),color-mix(in oklab,var(--akzent) 12%,transparent));

	--schatten:0 1px 2px light-dark(rgba(0,0,0,.05),rgba(0,0,0,.4)),0 8px 24px light-dark(color-mix(in oklab,var(--haupt-tief) 12%,transparent),rgba(0,0,0,.35));
	--schatten-hoch:0 2px 4px light-dark(rgba(0,0,0,.06),rgba(0,0,0,.5)),0 18px 40px light-dark(color-mix(in oklab,var(--haupt-tief) 22%,transparent),rgba(0,0,0,.5));
	--rund:18px;
	--weich:cubic-bezier(.2,.7,.2,1);
	interpolate-size:allow-keywords;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
	margin:0;min-height:100vh;
	font-family:"Open Sans","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
	color:var(--text);background:var(--grund);line-height:1.55;
	overflow-x:hidden;
}

/* --- Hintergrund: weiche Flächen in Haupt- und Akzentfarbe, die langsam treiben --- */
.hg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hg i{position:absolute;border-radius:50%;filter:blur(60px);opacity:.6}
.hg i:nth-child(1){width:46vmax;height:46vmax;left:-14vmax;top:-18vmax;background:radial-gradient(circle,var(--blob-a),transparent 70%);animation:treiben 22s ease-in-out infinite alternate}
.hg i:nth-child(2){width:38vmax;height:38vmax;right:-12vmax;bottom:-16vmax;background:radial-gradient(circle,var(--blob-b),transparent 70%);animation:treiben 26s ease-in-out infinite alternate-reverse}
.hg i:nth-child(3){width:22vmax;height:22vmax;right:18vw;top:8vh;background:radial-gradient(circle,var(--blob-a),transparent 70%);opacity:.4;animation:treiben 18s ease-in-out infinite alternate}
@keyframes treiben{from{transform:translate(0,0) scale(1)}to{transform:translate(4vmax,3vmax) scale(1.12)}}

/* Eintritt: alles mit --i steigt nacheinander auf */
.auf{opacity:0;transform:translateY(22px);animation:auf .8s var(--weich) forwards;animation-delay:calc(var(--i,0) * 110ms + 120ms)}
@keyframes auf{to{opacity:1;transform:none}}

.dach{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--haupt-text)}

/* Knopf: weiße Schrift auf --knopf. Vorgabe --haupt-tief (kontrastreich); das Hotel-Original setzt das helle Grün (2,9 : 1) — die Palette entscheidet, nicht diese Datei */
.knopf{
	display:inline-flex;align-items:center;gap:12px;
	padding:16px 26px;border:0;border-radius:999px;cursor:pointer;
	background:var(--knopf);color:#fff;font:inherit;font-size:17px;font-weight:600;text-decoration:none;
	box-shadow:0 6px 16px color-mix(in oklab,var(--knopf) 35%,transparent);
	transition:background .25s,gap .1s;   /* gap gleitet kurz (.1s, User 2026-10-08 — länger ruckelte es in Firefox) */
}
.knopf svg{width:20px;height:20px;transition:transform .3s var(--weich)}
.knopf:hover,.knopf:focus-visible{background:var(--knopf-hover);gap:16px}
.knopf:hover svg,.knopf:focus-visible svg{transform:translateX(4px)}
.knopf:focus-visible{outline:3px solid var(--akzent);outline-offset:4px}

/* ================= Anmeldung ================= */
.tor{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.torkarte{
	width:100%;max-width:420px;padding:36px 32px 32px;border-radius:24px;
	background:var(--glas);backdrop-filter:blur(8px);
	box-shadow:var(--schatten-hoch);border:1px solid var(--rand);text-align:center;
}
.tor-logo{display:block;height:84px;width:auto;margin:0 auto 22px}
.tor-text{margin:0 0 24px;color:var(--text-2)}
.tor-text:last-child{margin-bottom:0}   /* Adresse ohne Projekt: der Satz ist das Letzte in der Karte (schutz.php, TODO_FARBEN.md Nr. 6.3a) */
.tor-grund{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--linie);color:var(--fehler);font-size:15px;text-align:left}   /* nur lokal: warum kein Projekt */
.feld{display:block;text-align:left}
.feld span{display:block;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--leise)}
.feld input{
	width:100%;padding:14px 16px;border-radius:14px;border:1.5px solid var(--linie);
	font:inherit;font-size:17px;background:var(--karte);color:var(--text);
	transition:border-color .2s,box-shadow .2s;
}
.feld input:focus{outline:none;border-color:var(--haupt);box-shadow:0 0 0 4px color-mix(in oklab,var(--haupt) 20%,transparent)}
.torkarte .knopf{width:100%;justify-content:center;margin-top:20px}
.tor-fehler{margin:12px 0 0;color:var(--fehler);font-size:15px}
.torkarte.falsch .feld input{border-color:var(--fehler)}
.torkarte.falsch{animation:auf .8s var(--weich) forwards,wackeln .45s .3s}
@keyframes wackeln{20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}

/* ================= Übersicht ================= */
.rahmen{max-width:1200px;margin:0 auto;padding:40px 16px 56px}
@media (min-width:700px){.rahmen{padding:64px 32px 72px}}

.kopf{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.kopf img{display:block;height:64px;width:auto}
@media (min-width:700px){.kopf img{height:84px}}
.status{isolation:isolate;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--glas);border:1px solid var(--linie);font-size:13px;color:var(--leise);backdrop-filter:blur(6px)}
.status b{position:relative;width:8px;height:8px;border-radius:50%;background:var(--akzent)}
.status b::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:50%;background:var(--akzent);animation:pulsring 2.4s ease-out infinite}
/* PULS als wachsender Kreis HINTER dem Punkt (scale + rotate), nicht als wachsender Schatten:
   box-shadow rastet in Firefox auf ganze Bildpunkte ein und ruckelt (Fund des Users 2026-10-11);
   die Drehung hebt das Einrasten auf (ETdocs/CLAUDE.md §4 „Ruckelnde CSS-Animation“) und ist am
   runden Kreis unsichtbar. Gemeinsam für Startseite und Landingpage. scale(3) = der alte Schatten
   von 8 px rund um einen 8-px-Punkt */
@keyframes pulsring{0%{transform:scale(1) rotate(0deg);opacity:.55}70%,100%{transform:scale(3) rotate(30deg);opacity:0}}

.gruss{margin:56px 0 36px}
h1{margin:0;font-size:clamp(32px,6vw,54px);line-height:1.12;font-weight:300;letter-spacing:-.01em}
h1 em{font-style:normal;font-weight:600;color:var(--betont);position:relative;white-space:nowrap}
h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.12em;border-radius:.1em;background:var(--haupt);opacity:.3;transform:scaleX(0);transform-origin:left;animation:strich 1s cubic-bezier(.6,0,.2,1) .9s forwards}
@keyframes strich{to{transform:scaleX(1)}}
.lead{margin:18px 0 0;max-width:900px;font-size:clamp(16px,2.2vw,19px);color:var(--text-2)}

/* Der neueste Entwurf: die große Karte */
.neu{
	position:relative;display:grid;gap:28px;align-items:center;
	padding:28px;border-radius:calc(var(--rund) + 6px);
	background:var(--karte);color:inherit;text-decoration:none;
	box-shadow:var(--schatten);border:1px solid var(--rand);
	overflow:hidden;isolation:isolate;
	transition:transform .35s var(--weich),box-shadow .35s;
	will-change:transform;   /* eigene Ebene: Firefox ruckelte am Knopf, wenn er sich beim Anheben der Karte umfärbte */
}
@media (min-width:700px){.neu{grid-template-columns:1.1fr .9fr;padding:36px}}
.neu::before{
	content:"";position:absolute;inset:0;z-index:-1;
	background:linear-gradient(105deg,transparent 35%,color-mix(in oklab,var(--haupt) 12%,transparent) 50%,transparent 65%);
	transform:translateX(-100%);animation:streif 1.6s ease 1.4s;
}
.neu:hover::before,.neu:focus-visible::before{animation:streif 1.1s ease}
@keyframes streif{to{transform:translateX(100%)}}
.neu:hover,.neu:focus-visible{transform:translateY(-6px);box-shadow:var(--schatten-hoch)}
.neu:focus-visible{outline:3px solid var(--akzent);outline-offset:4px}
.neu .knopf{margin-top:24px}

.marke{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:999px;background:var(--haupt-hell);color:var(--haupt-text);font-size:13px;font-weight:600}
.marke i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--haupt)}
.marke i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--haupt);opacity:0;animation:ring 2s ease-out infinite}
@keyframes ring{0%{transform:scale(.5);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.datum{display:block;margin:16px 0 4px;font-size:14px;color:var(--leise)}
.titel{display:block;font-size:clamp(24px,3.4vw,32px);line-height:1.2;font-weight:600}
.satz{display:block;margin-top:8px;color:var(--text-2)}

/* Kleines Bild einer Website, das sich beim Laden aufbaut */
.mini{position:relative;padding-bottom:4px;border-radius:12px;background:color-mix(in oklab,var(--karte) 60%,var(--flaeche));border:1px solid var(--linie);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.08);transform:rotate(1.5deg);transition:transform .5s var(--weich)}
.neu:hover .mini{transform:rotate(0) scale(1.03)}
.mini .leiste{display:flex;gap:5px;align-items:center;height:22px;padding:0 10px;background:var(--flaeche);border-bottom:1px solid var(--linie)}
.mini .leiste b{width:7px;height:7px;border-radius:50%;background:var(--strich)}
.mini .flaeche{display:grid;gap:8px;padding:12px}
.flaeche > span{display:block;height:10px;border-radius:5px;background:var(--linie);transform-origin:left;transform:scaleX(0);animation:wachsen .7s var(--weich) forwards;animation-delay:calc(var(--j) * 120ms + 700ms)}
.mini .k{height:16px;width:38%;background:var(--haupt);opacity:.85}
.mini .b{height:64px;border-radius:8px;background:linear-gradient(120deg,var(--haupt-weich),var(--haupt))}
.mini .z{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;height:auto;background:none}
.mini .z i{display:block;height:38px;border-radius:6px;background:var(--haupt-hell)}
.mini .s{width:70%}
.mini .s2{width:52%}
.mini .o{width:28%;height:14px;background:var(--akzent);opacity:.85}
@keyframes wachsen{to{transform:scaleX(1)}}

/* Abschnitts-Überschriften */
.abschnitt{margin:64px 0 18px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.abschnitt h2{margin:0;font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--leise)}

/* Häufige Fragen: dieselbe Karte wie die frühere Entwurfsliste, aber aufklappbar (details.eintrag) */
.liste{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.eintrag{
	display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
	padding:18px 20px;border-radius:var(--rund);
	background:var(--glas);border:1px solid var(--linie);
	color:inherit;text-decoration:none;backdrop-filter:blur(4px);
	transition:transform .3s var(--weich),box-shadow .3s,border-color .3s;
}
.eintrag:hover,.eintrag:focus-visible{transform:translateX(6px);box-shadow:var(--schatten);border-color:var(--rand-stark)}
.eintrag:focus-visible{outline:3px solid var(--akzent);outline-offset:3px}
.tag{display:grid;place-items:center;width:64px;height:64px;border-radius:14px;background:var(--haupt-hell);color:var(--haupt-text);line-height:1}
.tag b{font-size:24px;font-weight:600}
.tag small{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-top:-10px}
.eintrag strong{display:block;font-size:18px;font-weight:600}
.eintrag .satz{margin-top:2px;font-size:15px}
.pfeil{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--flaeche);color:var(--haupt-text);transition:background .3s,color .3s}
.pfeil svg{width:18px;height:18px;transition:transform .3s}
.eintrag:hover .pfeil,.eintrag:focus-visible .pfeil{background:var(--knopf);color:#fff}
.eintrag:hover .pfeil svg,.eintrag:focus-visible .pfeil svg{transform:translateX(2px)}

/* ================= Zeitplan ================= */

/* Fortschritt: Balken + Zahl. Füllt sich erst, wenn sichtbar (Klasse .da aus index.php) */
.fort{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--leise)}
.fort-bahn{position:relative;flex:1 1 auto;max-width:80%;height:8px;border-radius:99px;background:var(--flaeche);overflow:hidden}
.fort-bahn i{position:absolute;inset:0 auto 0 0;width:var(--anteil);border-radius:inherit;background:linear-gradient(90deg,var(--haupt),var(--haupt-weich));transform-origin:left;transform:scaleX(0);transition:transform 1.3s var(--weich)}
.fort.da .fort-bahn i{transform:scaleX(1)}
.fort-zahl{flex:none;min-width:52px;font-weight:600;font-variant-numeric:tabular-nums}
/* eine Farbe fuer jede Fuellung (Rueckmeldung des Users 2026-10-07: gruen/orange ohne erkennbare Logik);
   der Akzent bleibt nur am Punkt und an der Ziel-Kachel des laufenden Abschnitts = „in Arbeit“ */
.voll .fort-zahl,.laeuft .fort-zahl{color:var(--haupt-text)}
.offen .fort-zahl{font-weight:400}
.fort.gross{margin-top:18px;font-size:14px}
.fort.gross .fort-bahn{max-width:none;height:10px}
.fort.gross .fort-zahl{color:var(--haupt-text)}


/* Rahmen um die Zeitleiste (Ansage des Users 2026-10-10) — Form wie der Startblock .neu */
.zeit{list-style:none;margin:0;padding:16px;border-radius:calc(var(--rund) + 6px);background:var(--karte);border:1px solid var(--rand)}
@media (min-width:700px){.zeit{padding:28px}}
.zeit > li:last-child{padding-bottom:0}
.zeit > li{position:relative;padding:0 0 14px 52px}
/* Linie je Abschnitt — wächst nacheinander von oben nach unten */
.zeit > li::before{
	content:"";position:absolute;left:17px;top:22px;bottom:-22px;width:3px;border-radius:2px;
	background:var(--strich);transform-origin:top;transform:scaleY(0);
	animation:linie .5s ease-out forwards;animation-delay:calc(var(--i,0) * 110ms + 400ms);
}
.zeit > li:last-child::before{display:none}
.zeit > li.voll::before{background:var(--haupt)}
.zeit > li.laeuft::before{background:linear-gradient(var(--haupt),var(--strich))}
@keyframes linie{to{transform:scaleY(1)}}

.punkt{position:absolute;left:4px;top:9px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--karte);border:3px solid var(--strich);z-index:1;transform:scale(0);animation:knall .45s cubic-bezier(.3,1.6,.5,1) forwards;animation-delay:calc(var(--i,0) * 110ms + 350ms)}
@keyframes knall{to{transform:scale(1)}}
.voll .punkt{background:var(--knopf);border-color:var(--knopf);color:#fff}
.voll .punkt svg{width:15px;height:15px}
/* Akzent NUR am Abschnitt „jetzt“ (.aktuell) — Rueckmeldung des Users 2026-10-07: mit vier
   angefangenen Abschnitten waren alle Punkte orange. Angefangen = Ring in der Hauptfarbe */
.laeuft .punkt{border-color:var(--haupt)}
.aktuell .punkt{background:var(--akzent);border-color:var(--akzent);color:var(--auf-akzent)}
.aktuell .punkt::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--akzent);animation:ring 2s ease-out infinite}

.zeit details{border-radius:var(--rund);background:color-mix(in oklab,var(--text) 2%,transparent);border:1px solid var(--linie);backdrop-filter:blur(4px);transition:box-shadow .3s,border-color .3s}
.zeit details:hover{border-color:var(--rand-stark)}
.zeit details[open]{box-shadow:var(--schatten);background:var(--karte)}
.aktuell details{border-color:color-mix(in oklab,var(--akzent) 45%,transparent)}
.zeit summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;list-style:none;border-radius:var(--rund)}
.zeit summary::-webkit-details-marker{display:none}
.zeit summary:focus-visible{outline:3px solid var(--akzent);outline-offset:2px}
.monat{display:inline-block;min-width:92px;padding:5px 10px;border-radius:10px;background:var(--flaeche);font-size:13px;font-weight:600;text-align:center;color:var(--leise);white-space:nowrap}
.monat small{display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.voll .monat{background:var(--haupt-hell);color:var(--haupt-text)}
.aktuell .monat{background:var(--akzent-hell);color:var(--akzent-text)}
.zeit summary strong{display:block;font-size:17px;font-weight:600;line-height:1.3}
.zeit-mitte{display:grid;gap:6px;min-width:0}
/* Klapp-Pfeil: gezeichneter Winkel in 18 px, beim Öffnen gedreht, Kreis beim Darüberfahren */
.klapp{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--leise);transition:background .25s,color .25s}
.klapp svg{width:18px;height:18px;transition:transform .35s var(--weich)}
.zeit summary:hover .klapp{background:var(--haupt-hell);color:var(--haupt-text)}
.zeit details[open] .klapp svg{transform:rotate(90deg)}
/* Aufklappen mit Bewegung (wo der Browser es kann), sonst Einblenden */
/* Chrome gleitet in der Höhe (interpolate-size), Firefox öffnet sofort mit Einblenden — so gewollt (Wahl A des Users 2026-10-08) */
.zeit details::details-content{block-size:0;overflow:hidden;transition:block-size .4s var(--weich),content-visibility .4s allow-discrete}
.zeit details[open]::details-content{block-size:auto}
.inhalt{padding:0 18px 16px 18px}
/* der Satz eines Abschnitts als kleine Überschrift über den Punkten (wie im Startblock) */
.zsatz{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--text);line-height:1.45}
/* NUR einblenden, nicht verschieben: Firefox rastet die Schrift am Ende einer Verschiebung um 1 px
   ein (Rückmeldung des Users 2026-10-08). Das Gleiten macht die Höhe (::details-content) */
.zeit details[open] .inhalt{animation:einblenden .45s ease}
@keyframes einblenden{from{opacity:0}}
.inhalt ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.inhalt li{position:relative;padding-left:22px;color:var(--text-2);font-size:15px}
.inhalt li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--haupt);opacity:.5}
@media (max-width:480px){
	.zeit > li{padding-left:44px}
	.zeit summary{grid-template-columns:1fr auto;gap:8px 12px}
	.monat{grid-column:1 / -1;justify-self:start;min-width:0}
}

/* Gut zu wissen */
.wissen{margin-top:56px;display:grid;grid-template-columns:auto 1fr;gap:14px;padding:20px 22px;border-radius:var(--rund);background:var(--glas);border:1px dashed var(--strich);font-size:15px;color:var(--text-2)}
.wissen svg{width:24px;height:24px;color:var(--akzent-text);margin-top:2px}
.wissen p{margin:0}

.fuss{margin-top:40px;text-align:center;font-size:13px;color:var(--leise)}
.fuss a{color:inherit}

@media (max-width:480px){
	.eintrag{grid-template-columns:auto 1fr;padding:16px}
	.eintrag .pfeil{display:none}
	.tag{width:54px;height:54px}
}

/* Werkzeug-Hinweis nur in der Demo */
.demo{position:fixed;right:12px;bottom:12px;padding:6px 10px;border-radius:8px;background:#333;color:#fff;font:12px/1.3 system-ui,sans-serif;opacity:.75}

@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{animation:none !important;transition:none !important}
	.auf{opacity:1;transform:none}
	.flaeche > span,.balken i,.zeit > li::before,.punkt{transform:none}
	h1 em::after{transform:none}
}

/* Fehler im Zeitplan — nur lokal sichtbar (index.php), beim Kunden fehlt dann der Abschnitt.
   WERKZEUG: feste Farben, unabhängig von Palette und Dunkel */
/* Fixiert oben im Sichtfeld, damit sie auch nach dem Scrollen auffällt (Ansage des Users 2026-10-07); × schließt */
.zp-fehler{position:fixed;top:16px;left:50%;z-index:100;width:min(720px,calc(100% - 32px));transform:translateX(-50%);
	padding:14px 48px 14px 18px;border-radius:12px;background:#fdecea;border:1px solid #e8a39b;color:#8a2a1f;font-size:14px;
	box-shadow:0 12px 32px rgba(138,42,31,.25);animation:zp-rein .4s var(--weich)}
.zp-fehler ul{margin:6px 0 0;padding-left:20px}
.zp-zu{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.zp-zu svg{width:16px;height:16px}
.zp-zu:hover,.zp-zu:focus-visible{background:rgba(138,42,31,.12)}
@keyframes zp-rein{from{opacity:0;transform:translate(-50%,-12px)}}

/* Startblock: kein Link → „Entwurf folgt“ statt Knopf; der Block selbst ist kein Link mehr */
.neu .knopf{margin-top:22px}
.folgt{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:12px 20px;border-radius:999px;border:1.5px dashed var(--strich);color:var(--leise);font-size:15px}
.knopf.klein{margin-top:14px;padding:10px 18px;font-size:15px;box-shadow:0 4px 10px color-mix(in oklab,var(--knopf) 25%,transparent)}
/* „Entwurf ansehen“ im Akzent, wo es um JETZT geht: im Startblock und im aktuellen Abschnitt
   des Verlaufs (Ansage des Users 2026-10-07). Die übrigen Abschnitte bleiben in der Hauptfarbe.
   Schrift --auf-akzent: beim Hotel weiß (Original, 2,1 : 1 — neue Farben entscheidet der Kunde, User 2026-10-11).
   Beim Darüberfahren --akzent-hover — beim Hotel #ff6600 (Vorgabe des Users 2026-10-08):
   abgedunkelt wirkte es „dreckig“. Reagiert nur auf den Knopf, nicht auf die Karte */
.neu .knopf,.aktuell .knopf{background:var(--akzent);color:var(--auf-akzent);box-shadow:0 6px 16px color-mix(in oklab,var(--akzent) 35%,transparent)}
.aktuell .knopf.klein{box-shadow:0 4px 10px color-mix(in oklab,var(--akzent) 30%,transparent)}
.neu .knopf:hover,.neu .knopf:focus-visible,.aktuell .knopf:hover,.aktuell .knopf:focus-visible{background:var(--akzent-hover)}
.neu .knopf:focus-visible,.aktuell .knopf:focus-visible{outline-color:var(--haupt)}
/* index.php $mitPunkten: je Entwurfsordner ein Punkt über dem Akzent-Knopf im Startblock (für alle) */
.knopfzeile{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:22px}   /* Punkte über dem Knopf, links wie der Balken */
.knopfzeile > .knopf,.knopfzeile > .folgt{margin-top:0}
.ordnerpunkte{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}
.ordnerpunkte > a,.ordnerpunkte > span{width:12px;height:12px;border-radius:50%;background:var(--haupt);border:2px solid var(--haupt)}
.ordnerpunkte > .neuester{background:var(--akzent);border-color:var(--akzent)}
.ordnerpunkte > .hohl{background:transparent;border-color:var(--leise);cursor:help}
.ordnerpunkte > a:hover{box-shadow:0 0 0 3px var(--linie)}   /* fester Ring statt Vergrößern — das ruckelte (User 2026-10-07) */
.ordnerpunkte > a:focus-visible{outline:2px solid var(--akzent);outline-offset:2px}
.unsichtbar{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* FAQ-Karten aufklappbar: Kopf = summary, die Antwort darunter */
details.eintrag{display:block;padding:0}
details.eintrag > summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:18px 20px;cursor:pointer;list-style:none;border-radius:var(--rund)}
details.eintrag > summary::-webkit-details-marker{display:none}
details.eintrag > summary:focus-visible{outline:3px solid var(--akzent);outline-offset:3px}
details.eintrag:hover{transform:none}
details.eintrag[open]{background:var(--karte);box-shadow:var(--schatten);border-color:var(--rand-stark)}
details.eintrag .tag b{font-size:28px}
details.eintrag[open] .pfeil{background:var(--knopf);color:#fff}
details.eintrag .pfeil svg{transition:transform .35s var(--weich)}
details.eintrag[open] .pfeil svg{transform:rotate(90deg)}
details.eintrag:hover .pfeil svg{transform:none}
details.eintrag[open]:hover .pfeil svg{transform:rotate(90deg)}
details.eintrag::details-content{block-size:0;overflow:hidden;transition:block-size .4s var(--weich),content-visibility .4s allow-discrete}
details.eintrag[open]::details-content{block-size:auto}
.antwort{padding:0 20px 18px 102px;color:var(--text-2)}
.antwort p{margin:0}
.antwort p+p{margin-top:8px}
details.eintrag[open] .antwort{animation:einblenden .45s ease}   /* wie .inhalt: ohne Verschiebung */
@media (max-width:480px){
	details.eintrag > summary{grid-template-columns:auto 1fr;padding:16px}
	.antwort{padding:0 16px 16px}
}
@media (prefers-reduced-motion:reduce){
	.fort-bahn i{transform:none}
}
/* ================= Knöpfe „Hochladen“ und „Landingpage“ — NUR LOKAL (index.php, TODO_ENTWURF Nr. 7, 9) =================
   Werkzeug für uns, nicht für den Kunden: sachlich, feste neutrale Farben, unten links */
.hl{position:fixed;left:16px;bottom:16px;z-index:90;display:flex;flex-wrap:wrap;gap:8px;font-size:14px}
.hl-auf{display:inline-block;text-decoration:none;padding:10px 16px;border:1px solid #111;border-radius:999px;background:#111;color:#fff;font:inherit;font-weight:600;cursor:pointer;box-shadow:var(--schatten)}
.hl-auf:hover,.hl-auf:focus-visible{background:#3d3d3d;border-color:#3d3d3d}   /* auf Schwarz wirkt ein grüner Rand nicht — aufhellen (User 2026-10-09) */
@media (prefers-color-scheme:dark){.hl-auf,.hl-wahl{border-color:#5a5a55}}   /* im Dunkeln sonst unsichtbarer Rand */
/* „Projekt: hso · mus“ — NUR LOKAL, ab zwei Projekten (projekt.php ftp_projekt_wahl, TODO_FARBEN.md
   Nr. 6.1). Werkzeug wie „Hochladen“: eine schwarze Pille, das gewählte Kürzel weiß hinterlegt */
.hl-wahl{display:inline-flex;align-items:center;gap:2px;padding:3px 3px 3px 14px;border:1px solid #111;border-radius:999px;background:#111;color:#bbb;font-weight:600;box-shadow:var(--schatten)}
.hl-wahl > span{margin-right:6px}
.hl-wahl a{padding:7px 12px;border-radius:999px;color:#fff;text-decoration:none}
.hl-wahl a:hover,.hl-wahl a:focus-visible{background:#3d3d3d}
.hl-wahl a.an{background:#fff;color:#111}
/* Noch nichts gewählt (nur lokal): in der Mitte nur die Wahl */
.wahl{margin:56px 0;padding:28px;border-radius:calc(var(--rund) + 6px);background:var(--karte);border:1px dashed var(--strich)}
.wahl h2{margin:0 0 8px;font-size:clamp(24px,3.4vw,32px);font-weight:300}
.wahl h2 + p{margin:0;color:var(--text-2)}   /* nur der Satz — eine breitere Regel (p:not(.dach)) nahm den Knöpfen den Abstand (User 2026-10-11) */
.wahl .wahl-knoepfe{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0}
.wahl .knopf{align-items:baseline}   /* Kürzel und Firmenname auf einer Schriftlinie (User 2026-10-11) */
.wahl .knopf small{font-weight:400;opacity:.85}
