/* ============================================================
   Gemeinsame Bausteine der App-Seiten (AEVO-Paket 28.09.2026):
   Konzept-Check, KI-Fachgespräch, Konzept-Builder, Lernplan.
   Optik wie das Dashboard (app.html): dunkle Karten, Indigo-Akzent, Indigo auch für Aktionen (Walied 02.10.2026: Orange passt nicht).
   ============================================================ */
/* hidden muss gewinnen, auch wenn eine Klasse display: grid/flex setzt (Builder zeigte Gästen leere Kästen, 02.10.2026) */
.ap-main [hidden] { display: none !important; }
.ap-main { max-width: 1060px; margin: 0 auto; color: #e8eaf0; }
.ap-kopf { margin-bottom: 20px; }
.ap-kopf h1 { font-size: 1.6rem; font-weight: 800; margin: 0 0 4px; color: #e8eaf0; }
.ap-kopf p { font-size: 15px; color: #9aa0b0; margin: 0; line-height: 1.6; }
.ap-box { background: #13161f; border: 1px solid #1e2233; border-radius: 14px; padding: 20px 22px; margin-bottom: 16px; }
.ap-box h2 { font-size: 16px; font-weight: 700; margin: 0 0 12px; color: #e8eaf0; }
.ap-label { font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8b8fa6; }
.ap-text { font-size: 15px; color: #9aa0b0; line-height: 1.65; }
.ap-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #6366f1; color: #fff; font-weight: 700; font-size: 15px; padding: 10px 18px; border-radius: 9px; text-decoration: none; border: 1px solid transparent; cursor: pointer; font-family: inherit; }
.ap-btn:hover { filter: brightness(1.08); }
.ap-btn:disabled { opacity: .5; cursor: default; filter: none; }
.ap-btn.ghost { background: transparent; border-color: #2a2f45; color: #e8eaf0; }
.ap-btn.ghost:hover { border-color: #6366f1; }
.ap-btn.indigo { background: #6366f1; }
.ap-btn.klein { padding: 7px 12px; font-size: 14.5px; }
.ap-reihe { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ap-feld { width: 100%; box-sizing: border-box; background: #0f1119; border: 1px solid #2a2f45; border-radius: 9px; color: #e8eaf0; padding: 10px 12px; font-size: 15px; font-family: inherit; line-height: 1.55; }
.ap-feld:focus { outline: none; border-color: #6366f1; }
textarea.ap-feld { resize: vertical; min-height: 90px; }
.ap-feldlabel { display: block; font-size: 14.5px; font-weight: 600; color: #cfd2de; margin: 12px 0 6px; }
.ap-hinweis { border-radius: 10px; padding: 12px 14px; font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
.ap-hinweis.info { background: rgba(99,102,241,.1); border: 1px solid rgba(99,102,241,.35); color: #cfd2de; }
.ap-hinweis.warn { background: rgba(240,160,60,.1); border: 1px solid rgba(240,160,60,.4); color: #f5d2a3; }
.ap-hinweis.fehler { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.4); color: #fca5a5; }
.ap-hinweis a { color: #a5b4fc; }
.ap-demo { background: rgba(240,160,60,.12); border: 1px dashed rgba(240,160,60,.6); color: #f5d2a3; border-radius: 10px; padding: 10px 14px; font-size: 14.5px; margin-bottom: 16px; }
.ap-drop { border: 2px dashed #2a2f45; border-radius: 12px; padding: 22px; text-align: center; color: #9aa0b0; font-size: 15px; cursor: pointer; transition: border-color .2s, background .2s; }
.ap-drop.aktiv, .ap-drop:hover { border-color: #6366f1; background: rgba(99,102,241,.06); }
.ap-drop strong { color: #e8eaf0; }
.ap-trenner { text-align: center; color: #6b6f82; font-size: 13.5px; margin: 12px 0; }
.ap-laden { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.3); border-top-color: #fff; border-radius: 50%; animation: ap-dreh .8s linear infinite; vertical-align: -3px; }
@keyframes ap-dreh { to { transform: rotate(360deg); } }
.ap-kontingent { font-size: 14px; color: #9aa0b0; }
.ap-kontingent strong { color: #e8eaf0; }

/* Ampel-Listen */
.ap-ampel { display: inline-block; width: 11px; height: 11px; border-radius: 50%; flex: 0 0 11px; margin-top: 5px; }
.ap-ampel.gruen { background: #10b981; } .ap-ampel.gelb { background: #f0a03c; } .ap-ampel.rot { background: #ef4444; } .ap-ampel.grau { background: #3a3f55; } .ap-ampel.neutral { background: #6366f1; }
.ap-liste-zeile { display: flex; gap: 12px; padding: 10px 0; border-top: 1px solid #1e2233; }
.ap-liste-zeile:first-child { border-top: 0; }
.ap-liste-titel { font-size: 15px; font-weight: 600; color: #e8eaf0; }
.ap-liste-text { font-size: 14.5px; color: #9aa0b0; line-height: 1.55; margin-top: 2px; }

/* Aufklappkarten */
.ap-karte { border: 1px solid #1e2233; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.ap-karte > summary { list-style: none; cursor: pointer; padding: 12px 14px; display: flex; gap: 10px; align-items: flex-start; }
.ap-karte > summary::-webkit-details-marker { display: none; }
.ap-karte > summary::after { content: '▸'; margin-left: auto; color: #6b6f82; transition: transform .2s; }
.ap-karte[open] > summary::after { transform: rotate(90deg); }
.ap-karte-inhalt { padding: 0 14px 14px 35px; font-size: 15px; color: #cfd2de; line-height: 1.65; }
.ap-karte-inhalt .ap-zitat { border-left: 3px solid #6366f1; padding-left: 10px; color: #9aa0b0; font-style: italic; margin: 8px 0; }
.ap-vorschlag { background: rgba(16,185,129,.08); border: 1px solid rgba(16,185,129,.35); border-radius: 10px; padding: 10px 12px; margin-top: 10px; white-space: pre-wrap; }
.ap-platzhalter { background: rgba(239,68,68,.18); color: #fca5a5; border-radius: 4px; padding: 0 3px; }

/* Fortschritt / Balken */
.ap-balken { height: 8px; background: #1e2233; border-radius: 5px; overflow: hidden; }
.ap-balken > div { height: 100%; border-radius: 5px; transition: width .5s; }
.ap-score { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ap-score-wert { font-size: 2.2rem; font-weight: 800; }

/* Tabs / Chips */
.ap-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.ap-chip { background: #1a1e2c; border: 1px solid #2a2f45; color: #cfd2de; border-radius: 20px; padding: 6px 12px; font-size: 14.5px; cursor: pointer; font-family: inherit; }
.ap-chip.aktiv { background: #6366f1; border-color: #6366f1; color: #fff; }

/* Sperre (Paket) */
.ap-sperre { text-align: center; padding: 30px 20px; }
.ap-sperre-titel { font-size: 17px; font-weight: 800; margin-bottom: 8px; }
.ap-sperre-text { font-size: 15px; color: #9aa0b0; line-height: 1.7; margin: 0 auto 16px; max-width: 560px; }

@media (max-width: 560px) {
  .ap-kopf h1 { font-size: 1.35rem; }
  .ap-box { padding: 16px; }
  .ap-karte-inhalt { padding-left: 14px; }
  .ap-reihe .ap-btn { flex: 1 1 auto; }
}

/* Warte-Anzeige KI-Abgleich (Konzept-Check und Konzept-Builder, 04.10.2026 aus konzept-check.html hierher) */
.kc-warten { text-align: center; padding: 34px 16px 26px; }
.kc-warten-kreis { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; border: 5px solid rgba(99,102,241,.25); border-top-color: #6366f1; animation: ap-dreh 1s linear infinite; }
.kc-warten-titel { font-size: 1.3rem; font-weight: 800; color: #fff; }
.kc-warten-zeit { font-size: 15px; color: #a5b4fc; margin: 6px 0 14px; font-variant-numeric: tabular-nums; }
.kc-warten-text { max-width: 520px; margin: 0 auto; font-size: 15px; color: #cfd2de; line-height: 1.6; }
.kc-warten-ausruf { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #ef4444; vertical-align: middle; margin: 0 2px; box-shadow: 0 0 0 3px rgba(239,68,68,.25); }

/* ── Vorschau auf Sperrseiten (KI-Sparringspartner, Konzept-Builder; Walied 04.10.2026) ── */
.vs { padding: 6px 2px 4px; }
.vs-kopf { text-align: center; max-width: 640px; margin: 0 auto 22px; }
.vs-marke { display: inline-block; font-size: 12.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #a5b4fc;
  background: rgba(99,102,241,.14); border: 1px solid rgba(99,102,241,.35); border-radius: 999px; padding: 4px 12px; margin-bottom: 12px; }
.vs-titel, .ap-box .vs-titel { font-size: clamp(1.45rem, 3.4vw, 2rem); font-weight: 800; line-height: 1.2; margin: 0 0 10px; color: #fff; }
.vs-titel em { font-style: normal; background: linear-gradient(90deg, #a5b4fc, #f0a03c); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vs-unter { font-size: 16.5px; color: #c4c8d6; line-height: 1.65; margin: 0; }
.vs-bild { position: relative; max-width: 700px; margin: 0 auto 22px; border-radius: 16px; border: 1px solid #262b40;
  background: linear-gradient(180deg, #121527, #0e1020); padding: 18px; overflow: hidden; box-shadow: 0 18px 50px rgba(0,0,0,.35); }
.vs-bild::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 70px; background: linear-gradient(180deg, transparent, #0e1020); pointer-events: none; }
.vs-bild-leiste { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; color: #8b8fa6; margin-bottom: 14px; }
.vs-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 4px 10px;
  background: rgba(99,102,241,.16); color: #c7d2fe; }
.vs-chip.uhr { background: rgba(240,160,60,.14); color: #f5c27a; font-variant-numeric: tabular-nums; }
.vs-blase { max-width: 88%; border-radius: 14px; padding: 11px 14px; font-size: 14.5px; line-height: 1.55; margin-bottom: 10px; text-align: left; }
.vs-blase.ki { background: #1b1f36; border: 1px solid #2c3254; color: #e3e6f3; border-top-left-radius: 4px; }
.vs-blase.du { margin-left: auto; background: #6366f1; color: #fff; border-top-right-radius: 4px; }
.vs-blase .wer { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: .7; margin-bottom: 3px; }
.vs-kriterien { background: #12162a; border: 1px solid #262b40; border-radius: 12px; padding: 10px 14px; margin: 4px 0 10px; font-size: 14px; text-align: left; }
.vs-kriterien div { display: flex; gap: 8px; align-items: baseline; color: #cfd2de; padding: 2px 0; }
.vs-kriterien .ja { color: #34d399; font-weight: 800; }
.vs-kriterien .offen { color: #f5c27a; font-weight: 800; }
.vs-muster { border: 1px dashed rgba(165,180,252,.5); border-radius: 12px; padding: 9px 14px; color: #a5b4fc; font-size: 14px; font-weight: 700; text-align: left; margin-bottom: 10px; }
.vs-vorteile { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 760px; margin: 0 auto 20px; text-align: left; }
.vs-vorteil { background: #12152a; border: 1px solid #23283d; border-radius: 12px; padding: 14px; }
.vs-vorteil .sym { font-size: 22px; line-height: 1; margin-bottom: 8px; }
.vs-vorteil strong { display: block; font-size: 15.5px; color: #fff; margin-bottom: 4px; }
.vs-vorteil span { font-size: 14.5px; color: #a9aec0; line-height: 1.55; }
.vs-hinweis { text-align: center; font-size: 15px; color: #c4c8d6; margin: 0 auto 14px; max-width: 600px; }
.vs-hinweis strong { color: #fff; }
/* Builder-Attrappe */
.vs-builder { display: grid; grid-template-columns: 200px 1fr; gap: 14px; text-align: left; }
.vs-schritte div { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #b8bccb; padding: 6px 8px; border-radius: 8px; }
.vs-schritte div.aktiv { background: #1e2340; color: #fff; font-weight: 700; }
.vs-punkt { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.vs-punkt.gruen { background: #34d399; } .vs-punkt.gelb { background: #fbbf24; } .vs-punkt.rot { background: #ef4444; }
.vs-feld-label { font-size: 13.5px; font-weight: 700; color: #e3e6f3; margin: 2px 0 5px; text-decoration: underline dotted rgba(165,180,252,.6); text-underline-offset: 4px; }
.vs-feld-label i { font-style: normal; display: inline-flex; width: 16px; height: 16px; border-radius: 50%; align-items: center; justify-content: center;
  background: rgba(99,102,241,.25); color: #c7d2fe; font-size: 11px; margin-left: 6px; }
.vs-feld { background: #0b0d18; border: 1px solid #2a2f45; border-radius: 9px; padding: 9px 11px; font-size: 14px; color: #dfe2ee; margin-bottom: 10px; }
.vs-erkl { background: #161a2e; border: 1px solid rgba(99,102,241,.45); border-radius: 10px; padding: 9px 12px; font-size: 13.5px; color: #dfe2ee; line-height: 1.5; margin-bottom: 10px; }
.vs-fehlt { background: rgba(239,68,68,.09); border: 1px solid rgba(239,68,68,.45); border-radius: 10px; padding: 9px 12px; font-size: 13.5px; color: #fca5a5; }
.vs-fehlt.gut { background: rgba(52,211,153,.08); border-color: rgba(52,211,153,.45); color: #86efac; }
@media (max-width: 720px) {
  .vs-vorteile { grid-template-columns: 1fr; }
  .vs-builder { grid-template-columns: 1fr; }
  .vs-schritte { display: flex; overflow: hidden; gap: 4px; }
  .vs-schritte div { flex: 0 0 auto; }
  .vs-schritte div span.n { display: none; }
  .vs-bild { padding: 14px; }
  .vs-chip { white-space: nowrap; font-size: 11.5px; padding: 4px 8px; }
}
