/* ============================================================
   BSP DESIGN SYSTEM
   Dark, near-black. Solid borders. No shadows. Purple accent.
   Abgeleitet aus Teamify-Dashboard.
   ============================================================ */

:root{
  /* surfaces */
  --bg:        #0c0d11;   /* near-black page */
  --surface:   #14161c;   /* card / panel */
  --surface-2: #1b1e26;   /* raised panel */
  --surface-3: #232733;   /* hover / active */

  /* lines */
  --border:    #2a2e3a;
  --border-2:  #383d4d;

  /* text */
  --text:      #f4f6fa;
  --muted:     #d6dae4;
  --muted-2:   #aab1c2;

  /* accent (purple) — knallig, beamer-tauglich */
  --accent:    #a64dff;
  --accent-2:  #8e2bff;
  --accent-ink:#ffffff;
  --accent-soft:#2a1547;

  /* status */
  --green:  #4fd186;
  --amber:  #f5b94e;
  --rose:   #f0637e;
  --cyan:   #51d0c9;

  /* type */
  --sans: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  /* metrics */
  --r:   10px;   /* radius */
  --r-sm: 6px;
  --gap: 18px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:19px;
  line-height:1.55;
}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em;line-height:1.08}
h1{font-size:clamp(3.4rem,8vw,6.5rem)}
h2{font-size:clamp(2.4rem,5vw,3.8rem)}
h3{font-size:1.5rem}
h4{font-size:1.15rem}
p{color:var(--muted)}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--text)}
code,kbd,.mono{font-family:var(--mono)}
.eyebrow{
  font-family:var(--mono);
  font-size:1.4rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);
}
.lead{font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--muted);max-width:34ch;line-height:1.45}

/* ---------- chip / badge ---------- */
.chip{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--mono);font-size:1rem;letter-spacing:.04em;
  padding:.55em 1em;border-radius:99px;
  border:1px solid var(--border-2);color:var(--muted);
  background:var(--surface);
}
.chip.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.chip.green{border-color:var(--green);color:var(--green)}
.chip.amber{border-color:var(--amber);color:var(--amber)}
.chip .dot{width:7px;height:7px;border-radius:99px;background:currentColor}

/* ---------- panel (mit Titelbar oben) ---------- */
.panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:16px;
  display:flex;flex-direction:column;gap:14px;
}
.panel > .cap{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted-2);
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--border);padding-bottom:12px;
}
.panel > .cap .hint{color:var(--accent)}

/* ---------- card / panel ---------- */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:22px;
}
.card.raised{background:var(--surface-2)}
.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-title h4{margin:0}

/* stat */
.stat{display:flex;flex-direction:column;gap:4px}
.stat .num{font-size:2rem;font-weight:700;letter-spacing:-.03em}
.stat .label{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.stat .delta{font-family:var(--mono);font-size:.8rem;color:var(--green)}
.stat .delta.down{color:var(--rose)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--sans);font-size:.92rem;font-weight:600;
  padding:.62em 1.15em;border-radius:var(--r-sm);
  border:1px solid var(--border-2);
  background:var(--surface-2);color:var(--text);
  cursor:pointer;transition:.14s;
}
.btn:hover{background:var(--surface-3);border-color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{background:var(--accent-2)}
.btn.ghost{background:transparent}
.btn.icon{padding:.55em;width:2.4em;height:2.4em;justify-content:center}

/* ---------- key / kbd ---------- */
kbd{
  font-family:var(--mono);font-size:.8em;
  padding:.15em .5em;border-radius:5px;
  border:1px solid var(--border-2);border-bottom-width:2px;
  background:var(--surface-2);color:var(--text);
}

/* ---------- code block ---------- */
pre{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:18px 20px;
  font-family:var(--mono);font-size:.86rem;line-height:1.6;
  color:var(--text);overflow:auto;
}
pre .kw{color:var(--accent)}
pre .cm{color:var(--muted-2)}
pre .fn{color:var(--cyan)}

/* ---------- table ---------- */
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border)}
th{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);font-weight:500}
td{color:var(--muted)}
td:first-child{color:var(--text);font-weight:600}
tr:last-child td{border-bottom:none}

/* ---------- list ---------- */
.ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.ul li{display:flex;gap:12px;color:var(--muted)}
.ul li::before{
  content:"";flex:none;margin-top:.55em;
  width:7px;height:7px;border-radius:2px;
  background:var(--accent);
}

/* ---------- divider ---------- */
.hr{height:1px;background:var(--border);border:none;margin:24px 0}

/* ---------- grid helpers ---------- */
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ============================================================
   SLIDE DECK CHROME
   ============================================================ */
.deck{position:fixed;inset:0;overflow:hidden}
.slide{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(40px,7vw,110px);
  opacity:0;visibility:hidden;
  transform:translateY(14px);
  transition:opacity .4s ease, transform .4s ease, visibility .4s;
}
.slide.active{opacity:1;visibility:visible;transform:none}
.slide-inner{width:100%;max-width:1100px;margin:0 auto}
/* Eyebrow als Label oben links in der Folie, weit weg von der Überschrift */
.slide .eyebrow{
  position:absolute;
  top:clamp(40px,7vw,110px);
  left:clamp(40px,7vw,110px);
}

/* hud */
.hud{position:fixed;z-index:50;display:flex;align-items:center;gap:8px}
.hud.tl{top:22px;left:26px}
.hud.hide-idle{opacity:0;pointer-events:none;transition:opacity .22s ease}
.hud.hide-idle.show{opacity:1;pointer-events:auto}
.hud.tr{top:22px;right:26px}
.hud.br{bottom:22px;right:26px}
.hud.bl{bottom:22px;left:26px}

.pageno{
  font-family:var(--mono);font-size:.85rem;color:var(--muted);
  border:1px solid var(--border);border-radius:var(--r-sm);
  padding:.4em .75em;background:var(--surface);
}
.pageno b{color:var(--text)}

.progress{
  position:fixed;top:0;left:0;height:6px;z-index:60;
  background:var(--accent);transition:width .4s ease;
}

/* Zeit-Leiste: laeuft in 35 min durch, liegt durchscheinend ueber dem Lila-Balken */
.timebar{
  position:fixed;top:0;left:0;height:6px;z-index:61;width:0;
  background:rgba(120,230,255,.5);
  animation:timeRun 2100s linear forwards;
}
@keyframes timeRun{from{width:0}to{width:100%}}

/* Folien-Abschnittsmarken auf der Leiste */
.tick{position:fixed;top:0;width:2px;height:6px;background:var(--accent);z-index:62}

.brand{font-weight:700;letter-spacing:-.02em;font-size:1rem}
.brand .sq{color:var(--accent)}

/* Inhalt-Zoom fuer Vektor/HTML (Element mit class="zoom"); Canvas zoomt per JS */
.zoom{transform:scale(var(--cv-scale,1));transform-origin:center}

/* "R": nur Visuals neu laden (Canvas/SVG faden, nicht die ganze Folie) */
.deck canvas, .deck .viz{transition:opacity .3s ease}
.cv-reload{opacity:0 !important}

/* "P": Pause-Indikator unten (analog Zoom-Anzeige) */
.pause-ind{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(6px);z-index:60;
  font-family:var(--mono);font-size:.85rem;color:var(--text);
  border:1px solid var(--border);border-radius:var(--r-sm);
  padding:.4em .9em;background:var(--surface);
  display:flex;align-items:center;gap:.55em;
  opacity:0;transition:.18s;pointer-events:none;
}
.pause-ind::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--amber)}
.pause-ind.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* kurze Anzeige der Skalierung (W/S oder Pfeil hoch/runter) */
.cv-toast{
  position:fixed;bottom:22px;left:26px;z-index:60;
  font-family:var(--mono);font-size:.85rem;color:var(--text);
  border:1px solid var(--border);border-radius:var(--r-sm);
  padding:.4em .75em;background:var(--surface);
  opacity:0;transform:translateY(6px);transition:.18s;pointer-events:none;
}
.cv-toast.show{opacity:1;transform:none}

/* ---------- transcript console ---------- */
.transcript-console {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 35vh;
  background: var(--surface-2);
  border-top: 2px solid var(--accent);
  box-shadow: 0 -10px 40px rgba(0,0,0,0.5);
  z-index: 100;
  padding: 30px clamp(40px, 7vw, 110px);
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  font-size: 1.15rem;
  line-height: 1.6;
  color: var(--text);
}
.transcript-console.open {
  transform: translateY(0);
}
.transcript-console h4 {
  color: var(--accent);
  font-family: var(--mono);
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  margin-bottom: 12px;
}
.transcript-console p { margin-bottom: 1em; color: var(--text); }
.transcript-console blockquote {
  border-left: 3px solid var(--accent);
  background: var(--bg);
  padding: 16px 20px;
  margin: 14px 0;
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  font-style: italic;
  color: var(--muted);
}
