/* ------------------------------------------------------------------
   GDS AI COCKPIT — Gestaltung nach der Playbook-Identität
   ------------------------------------------------------------------ */
.apb {
  --paper:#F4EFE4; --ink:#16130F; --vermilion:#F0511E; --panel:#100E0C;
  --muted:#8B8175; --line:#D8D0C0; --sand:#E8E0CE;
  margin:0; background:var(--paper); color:var(--ink); min-height:100vh;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; line-height:1.5;
}
.apb *, .apb *::before, .apb *::after { box-sizing:border-box; }
.apb-shell { display:grid; grid-template-columns:274px minmax(0,1fr); min-height:100vh; }
@media (max-width:900px){ .apb-shell{ grid-template-columns:1fr; } }

/* ---------- Anmeldung ---------- */
.apb-gate { min-height:100vh; display:grid; place-items:center; padding:24px; background:var(--ink); }
.apb-gate-box { background:var(--paper); padding:30px; width:100%; max-width:360px; }
.apb-gate-box .apb-brand-mark { color:var(--ink); font-size:24px; }
.apb-gate-box .apb-brand-sub { color:var(--muted); margin-bottom:22px; }
.apb-gate-box .apb-in { margin-bottom:14px; }
.apb-gate-box .apb-btn { width:100%; }
.apb-gate-err { color:var(--vermilion); font-size:13px; font-weight:700; margin:-6px 0 12px; }

/* ---------- Navigation ---------- */
.apb-rail { background:var(--ink); color:var(--paper); padding:26px 0 40px; }
.apb-brand { padding:0 22px 20px; }
.apb-brand-mark { font-size:19px; font-weight:800; letter-spacing:-.02em; }
.apb-brand-mark em { font-style:normal; color:var(--vermilion); }
.apb-brand-sub { margin-top:6px; font-family:ui-monospace,Menlo,monospace; font-size:9.5px;
                 letter-spacing:.22em; color:#7C7469; text-transform:uppercase; }
.apb-group { font-family:ui-monospace,Menlo,monospace; font-size:9.5px; letter-spacing:.22em;
             color:#7C7469; text-transform:uppercase; padding:22px 22px 9px; }
.apb-nav { width:100%; text-align:left; background:none; border:0; cursor:pointer; color:#CFC7BA;
           padding:9px 22px; font:inherit; font-size:14px; display:flex; gap:11px;
           align-items:baseline; border-left:3px solid transparent; }
.apb-nav:hover { color:#fff; background:rgba(255,255,255,.05); }
.apb-nav[data-on="1"] { color:#fff; border-left-color:var(--vermilion); background:rgba(240,81,30,.1); }
.apb-nav code { font-family:ui-monospace,Menlo,monospace; font-size:10.5px; color:var(--vermilion);
                letter-spacing:.06em; min-width:26px; }
.apb-rail-foot { margin-top:26px; padding:16px 22px 0; border-top:1px solid #2C2721;
                 font-size:11.5px; color:#7C7469; line-height:1.7; }
.apb-rail-foot a { color:#CFC7BA; }

/* ---------- Hauptbereich ---------- */
.apb-main { padding:34px 40px 70px; max-width:1180px; }
@media (max-width:900px){ .apb-main{ padding:24px 18px 60px; } }
.apb-eyebrow { font-family:ui-monospace,Menlo,monospace; font-size:10px; letter-spacing:.2em;
               text-transform:uppercase; color:var(--vermilion); }
.apb-h1 { font-size:40px; font-weight:800; letter-spacing:-.035em; line-height:.96;
          text-transform:uppercase; margin:9px 0 0; }
@media (max-width:900px){ .apb-h1{ font-size:29px; } }
.apb-h1 span { color:var(--vermilion); }
.apb-lede { margin:13px 0 0; max-width:64ch; color:#4A423A; }
.apb-rule { border:0; border-top:2px solid var(--ink); margin:20px 0 26px; }
.apb-cols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:26px; align-items:start; }
@media (max-width:1000px){ .apb-cols{ grid-template-columns:1fr; } }

.apb-card { background:#FBF8F1; border:1px solid var(--line); padding:20px; }
.apb-card-h { font-family:ui-monospace,Menlo,monospace; font-size:10px; letter-spacing:.18em;
              text-transform:uppercase; color:var(--muted); margin-bottom:14px; }

/* ---------- Formulare ---------- */
.apb-field { margin-bottom:14px; }
.apb-field:last-child { margin-bottom:0; }
.apb-label { display:block; font-size:12.5px; font-weight:700; margin-bottom:5px; }
.apb-hint { font-size:11.5px; color:var(--muted); margin:0 0 6px; }
.apb-in, .apb-ta, .apb-sel { width:100%; background:#fff; border:1px solid var(--line);
  padding:9px 11px; font:inherit; font-size:13.5px; color:var(--ink); border-radius:0; }
.apb-ta { min-height:88px; resize:vertical; font-family:ui-monospace,Menlo,monospace; font-size:12.5px; }
.apb-in:focus, .apb-ta:focus, .apb-sel:focus, .apb-btn:focus-visible, .apb-nav:focus-visible,
.apb-tab:focus-visible, .apb-mini:focus-visible { outline:2px solid var(--vermilion); outline-offset:1px; }

.apb-btn { background:var(--vermilion); color:#fff; border:0; padding:12px 20px; font:inherit;
           font-weight:700; font-size:13.5px; cursor:pointer; }
.apb-btn:hover { background:#D8410F; }
.apb-btn:disabled { background:#C9C0B2; cursor:not-allowed; }
.apb-btn-ghost { background:none; color:var(--ink); border:1px solid var(--ink); }
.apb-btn-ghost:hover { background:var(--ink); color:var(--paper); }
.apb-btn-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }

/* ---------- Prompt-Fenster ---------- */
.apb-win { background:var(--panel); border-left:4px solid var(--vermilion); }
.apb-win-bar { display:flex; gap:2px; background:#0A0908; }
.apb-tab { background:none; border:0; cursor:pointer; padding:11px 16px;
  font-family:ui-monospace,Menlo,monospace; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:#78706A; }
.apb-tab[data-on="1"] { color:#fff; background:var(--panel); }
.apb-win-body { padding:18px 20px 20px; max-height:560px; overflow:auto; }
.apb-pre { margin:0; font-family:ui-monospace,Menlo,monospace; font-size:12px; line-height:1.62;
           color:#E6E0D6; white-space:pre-wrap; word-break:break-word; }
.apb-pre b { color:var(--vermilion); font-weight:400; }
.apb-win-foot { display:flex; gap:10px; align-items:center; flex-wrap:wrap;
                padding:12px 20px; border-top:1px solid #2A2620; }
.apb-mini { background:none; border:1px solid #3B352E; color:#CFC7BA; padding:7px 13px;
            font:inherit; font-size:12px; cursor:pointer; }
.apb-mini:hover { border-color:var(--vermilion); color:#fff; }
.apb-mini:disabled { opacity:.45; cursor:not-allowed; }
.apb-mini-light { border-color:#C9C0B2; color:var(--ink); margin-left:auto; }
.apb-mini-light:hover { border-color:var(--vermilion); color:var(--ink); }
.apb-stat { font-family:ui-monospace,Menlo,monospace; font-size:10.5px; letter-spacing:.1em;
            color:#78706A; margin-left:auto; }
.apb-empty { color:#78706A; font-size:13px; margin:0; }
.apb-err { background:#3A1208; border-left:3px solid var(--vermilion); padding:12px 14px;
           color:#F6C7B6; font-size:13px; }

/* ---------- Produkt-Kontext ---------- */
.apb-ctx { background:var(--sand); border:1px solid var(--line); padding:16px 18px; margin-bottom:22px; }
.apb-ctx-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.apb-ctx-head strong { font-size:13.5px; }
.apb-ctx-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin-top:14px; }
#ctx-body .apb-hint { margin:10px 0 0; }
.apb-chip { font-family:ui-monospace,Menlo,monospace; font-size:10.5px; letter-spacing:.08em;
            background:var(--ink); color:var(--paper); padding:3px 8px; }
.apb-chip[data-warn="1"] { background:var(--vermilion); }

/* ---------- Zeichen-Check ---------- */
.apb-meter { border:1px solid var(--line); background:#fff; padding:12px 14px; margin-bottom:10px; }
.apb-meter-top { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.apb-meter-name { font-size:12.5px; font-weight:700; }
.apb-meter-num { font-family:ui-monospace,Menlo,monospace; font-size:12px; }
.apb-meter-num[data-over="1"] { color:var(--vermilion); }
.apb-bar { height:5px; background:var(--line); margin-top:8px; }
.apb-bar i { display:block; height:100%; background:var(--ink); }
.apb-bar[data-over="1"] i { background:var(--vermilion); }
.apb-flag { margin-top:8px; font-size:12px; color:var(--vermilion); font-weight:700; }

/* ---------- Wissen ---------- */
.apb-grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.apb-tile { border:1px solid var(--line); background:#FBF8F1; padding:16px; }
.apb-tile[data-dark="1"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.apb-tile-n { font-size:28px; font-weight:800; color:var(--vermilion); line-height:1; letter-spacing:-.04em; }
.apb-tile-t { font-size:15px; font-weight:800; text-transform:uppercase; margin:7px 0 5px; }
.apb-tile p { margin:0; font-size:13px; color:#5A5148; }
.apb-tile[data-dark="1"] p { color:#BDB4A8; }
.apb-tbl { width:100%; border-collapse:collapse; font-size:13.5px; }
.apb-tbl th { text-align:left; font-family:ui-monospace,Menlo,monospace; font-size:10px;
              letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
              border-bottom:1px solid var(--line); padding:0 10px 8px 0; font-weight:400; }
.apb-tbl td { border-bottom:1px solid var(--line); padding:11px 10px 11px 0; vertical-align:top; }
.apb-td-name { font-weight:700; white-space:nowrap; }
.apb-td-mut { color:#5A5148; }
.apb-note { border-left:3px solid var(--vermilion); background:#FBE9E2; padding:12px 14px; font-size:13px; }

/* ---------- Nutzerverwaltung, Profile, Verlauf ---------- */
.apb-gate-wide { max-width:460px; }
.apb-gate-box .apb-label { margin-top:12px; }
.apb-btn-block { width:100%; display:block; text-align:center; text-decoration:none; margin-top:16px; }
.apb-step { font-size:13px; margin:6px 0; padding-left:20px; position:relative; }
.apb-step::before { content:"✓"; position:absolute; left:0; color:#1F7A4C; font-weight:700; }
.apb-step[data-kind="warn"]::before { content:"!"; color:var(--vermilion); }

.apb-admin { max-width:1100px; margin:0 auto; padding:30px 28px 70px; }
.apb-admin-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
.apb-brand-dark { color:var(--ink); }
.apb-inline-form { display:grid; grid-template-columns:1.2fr 1.4fr .8fr auto; gap:12px; align-items:end; }
@media (max-width:800px){ .apb-inline-form{ grid-template-columns:1fr; } }
.apb-actions { display:flex; gap:6px; flex-wrap:wrap; }
.apb-actions form { margin:0; }
.apb-mini-danger { border-color:#C58A78; color:#A93A18; }
.apb-mini-danger:hover { background:var(--vermilion); border-color:var(--vermilion); color:#fff; }
.apb-tag { font-family:ui-monospace,Menlo,monospace; font-size:9.5px; letter-spacing:.1em;
           text-transform:uppercase; background:var(--ink); color:var(--paper); padding:2px 6px; }
.apb-tag-off { background:var(--vermilion); }
.apb-pass { font-family:ui-monospace,Menlo,monospace; background:var(--ink); color:var(--paper);
            padding:3px 8px; font-size:13px; }
.apb-note-warn { background:#FBE0D6; }
.apb-stat-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-top:20px; }
.apb-stat-box { border:1px solid var(--line); background:#FBF8F1; padding:14px;
                font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em;
                font-family:ui-monospace,Menlo,monospace; }
.apb-stat-box span { display:block; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
                     font-size:26px; font-weight:800; color:var(--ink); letter-spacing:-.03em;
                     text-transform:none; margin-bottom:4px; }

.apb-ctx-select { width:auto; min-width:200px; max-width:320px; padding:6px 9px; font-size:13px; }
.apb-saved { font-size:12px; color:#1F7A4C; font-weight:700; }
.apb-saved[data-bad="1"] { color:var(--vermilion); }
.apb-ctx-head .apb-mini-light { margin-left:0; }
.apb-ctx-head #ctx-toggle { margin-left:auto; }

.apb-filter { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.apb-sel-inline { width:auto; min-width:170px; padding:6px 9px; font-size:13px; }
.apb-check { font-size:13px; display:flex; align-items:center; gap:6px; }
.apb-tbl-runs td { font-size:13px; padding:9px 10px 9px 0; }
.apb-td-clip { max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apb-empty-light { color:var(--muted); font-size:13px; }

/* ---------- Mein Konto ---------- */
.apb-konto-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:20px; margin-top:24px; }
.apb-konto-cols .apb-card { margin:0; }
.apb-td-warn { color:var(--vermilion); font-weight:700; }
.apb-admin-links { display:flex; gap:8px; }
