/* ════════════════════════════════════════════════════════════════════
   PORTAL-EMBED — Onboarding-Demo extrahiert aus index.html
   Datum: 2026-05-29 · Quelle: index.html Z. 1588-2422
   Verwendet auf: mitarbeiterportal.html

   Wrapper-Scope: alle benötigten CSS-Variablen scoped auf .portal-host
   damit keine globalen Konflikte mit Seiten-CSS-Tokens entstehen.
   ════════════════════════════════════════════════════════════════════ */

.portal-host{
  /* aus :root von index.html — globale Tokens */
  --bg:#060e1e; --card:rgba(255,255,255,.02);
  --brd:rgba(255,255,255,.06); --brdh:rgba(59,130,246,.2);
  --t1:#f1f5f9; --t2:#94a3b8; --t3:#64748b; --t4:#475569;
  --blue:#3b82f6; --cyan:#06b6d4; --green:#2dd4bf;
  --red:#ef4444; --amber:#f59e0b; --purple:#8b5cf6;
  --gp:linear-gradient(135deg,#2563eb,#0ea5e9);
  --gd:linear-gradient(135deg,#ef4444,#f97316);
  --mono:'JetBrains Mono',monospace;
}

/* ══════ ONBOARDING PORTAL INLINE ══════ */
.portal-embed-outer{position:relative;padding:1.5px;border-radius:18px;background:conic-gradient(from var(--pe-angle,0deg),#0f1f3d 0%,#2563eb 20%,#3b82f6 35%,#0f1f3d 50%,#0f1f3d 70%,#2563eb 85%,#3b82f6 95%,#0f1f3d 100%);animation:rotatePeAngle 6s linear infinite;box-shadow:0 0 70px rgba(37,99,235,.22),0 32px 80px rgba(0,0,0,.7)}
@property --pe-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes rotatePeAngle{to{--pe-angle:360deg}}
.rsp-portal-wrap{width:100%;border-radius:16.5px;overflow:hidden;}

/* Video preview: clean poster frame, hide decorative overlays */
.rsp-vpost .rsp-vstudio,.rsp-vpost .rsp-vglow,
.rsp-vpost .rsp-vpresenter,.rsp-vpost .rsp-vscr,
.rsp-vpost .rsp-vbrand{display:none}

/* Waveform: only animate when playing */
.rsp-wave.paused .rsp-wbar{animation-play-state:paused;transform:scaleY(.2)}
body.rsp-video-active #globalCanvas{opacity:0}
body.rsp-video-active .portal-embed-outer{animation:none!important;box-shadow:0 18px 48px rgba(0,0,0,.55),0 0 30px rgba(37,99,235,.12)!important}
body.rsp-video-active .rsp-card.on::before,
body.rsp-video-active .rsp-dot,
body.rsp-video-active .rs-particles span,
body.rsp-video-active #rs-ts-particles>*{animation-play-state:paused!important}
body.rsp-video-active .rsp-wbar{height:4px!important;animation:none!important;transform:scaleY(.2)!important}
body.rsp-video-active .rsp-vwrap,
body.rsp-video-active .rsp-card.on{box-shadow:0 0 0 1px rgba(37,99,235,.18)!important}

/* Volume slider */
#j-volslider{
  -webkit-appearance:none;appearance:none;
  width:64px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--al) var(--vol,100%),rgba(255,255,255,.08) var(--vol,100%));
  outline:none;cursor:pointer;vertical-align:middle;flex-shrink:0;
}
#j-volslider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:10px;height:10px;border-radius:50%;
  background:#fff;box-shadow:0 0 0 2px var(--ac),0 0 6px rgba(37,99,235,.6);cursor:pointer;
}
#j-volslider::-moz-range-thumb{
  width:10px;height:10px;border-radius:50%;border:none;
  background:#fff;box-shadow:0 0 0 2px var(--ac);cursor:pointer;
}

.rsp {
  --bg:   #060e1e;
  --sb:   #070f1e;
  --card: #0c1a32;
  --bd:   #1a3358;
  --bdl:  #1e3a5f;
  --ac:   #2563eb;
  --ach:  #1d4ed8;
  --agl:  rgba(37,99,235,.3);
  --al:   #3b82f6;
  --ok:   #10b981;
  --tp:   #f0f6ff;
  --ts:   #b6c9e6;
  --tm:   #7893b7;

  background: var(--bg);
  border-radius: 14.5px;
  display: flex;
  font-size: 12px; line-height: 1.4; color: var(--tp);
  overflow: hidden;
  position: relative;
}

/* subtle grid overlay on entire portal */
.rsp::before {
  content: '';
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(37,99,235,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,.025) 1px, transparent 1px);
  background-size: 32px 32px;
}

.rsp > * { position: relative; z-index: 1; }

/* ============================================================
   SIDEBAR
   ============================================================ */
.rsp-sb {
  width: 192px; min-width: 192px;
  background: var(--sb);
  border-right: 1px solid var(--bd);
  display: flex; flex-direction: column;
  position: relative;
}

/* Ambient glow blob in sidebar */
.rsp-sb::after {
  content: '';
  position: absolute; bottom: 80px; left: -40px;
  width: 160px; height: 160px;
  background: radial-gradient(circle, rgba(37,99,235,.12) 0%, transparent 70%);
  pointer-events: none;
}

.rsp-logo {
  display: flex; align-items: center; gap: 8px;
  padding: 14px 12px 10px;
}
.rsp-logo svg { filter: drop-shadow(0 0 4px rgba(37,99,235,.6)); }
.rsp-logo-t { font-size: 11px; font-weight: 700; color: var(--tp); letter-spacing: .01em; }

/* animated LED divider */
.rsp-led {
  height: 1px; margin: 0 10px 6px;
  background: linear-gradient(90deg, transparent 0%, var(--ac) 30%, var(--al) 60%, transparent 100%);
  background-size: 200% 100%;
  animation: ledSweep 3s linear infinite;
  box-shadow: 0 0 6px var(--agl);
}
@keyframes ledSweep { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }

/* Progress arc in sidebar */
.rsp-progress-wrap {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 12px 4px;
}
.rsp-arc { width: 36px; height: 36px; flex-shrink: 0; }
.rsp-arc-bg { fill: none; stroke: var(--bd); stroke-width: 3; }
.rsp-arc-fill {
  fill: none; stroke: url(#arcGrad); stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 88; stroke-dashoffset: 80;
  transform: rotate(-90deg); transform-origin: 50% 50%;
  animation: arcGrow 1.4s ease .5s both;
  filter: drop-shadow(0 0 3px rgba(37,99,235,.8));
}
@keyframes arcGrow { from { stroke-dashoffset: 88; } to { stroke-dashoffset: 80; } }

.rsp-progress-info { flex: 1; min-width: 0; }
.rsp-progress-label { font-size: 9px; color: #96afd0; margin-bottom: 1px; font-weight: 650; }
.rsp-progress-val { font-size: 11px; font-weight: 800; color: #7db7ff; }
.rsp-progress-sub { font-size: 9px; color: #8fa8c8; }

.rsp-nav { flex: 1; padding: 4px 0; }

.rsp-ni {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 10px; margin: 1px 6px;
  border-radius: 6px; cursor: pointer;
  border: 1px solid transparent;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s, opacity .2s;
  position: relative; user-select: none;
}
.rsp-ni.locked { pointer-events: auto; opacity: .78; cursor: not-allowed; }
.rsp-ni.locked:hover {
  opacity: .94;
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(37,99,235,.045));
  border-color: rgba(96,165,250,.34);
  box-shadow: 0 0 12px rgba(37,99,235,.16), inset 0 0 10px rgba(37,99,235,.04);
  transform: translateY(-1px);
}
.rsp-ni.locked:hover .rsp-ni-n { color: #9fbee4; }
.rsp-ni.locked:hover .rsp-ni-i { color: #bfdbfe; filter: drop-shadow(0 0 3px rgba(96,165,250,.45)); }
.rsp-ni.locked:hover .rsp-ni-l { color: #d7e6fb; }
.rsp-ni.always-active { pointer-events: none; }

.rsp-ni.active {
  background: linear-gradient(135deg, rgba(37,99,235,.18), rgba(37,99,235,.08));
  border-color: rgba(37,99,235,.6);
  box-shadow:
    0 0 16px rgba(37,99,235,.2),
    0 0 40px rgba(37,99,235,.08),
    inset 0 0 16px rgba(37,99,235,.06);
}
.rsp-ni.active::before {
  content: '';
  position: absolute; left: 0; top: 5px; bottom: 5px;
  width: 3px; background: linear-gradient(180deg, var(--al), var(--ac));
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 8px var(--ac), 0 0 16px rgba(37,99,235,.4);
}
/* pulsing glow on active item */
.rsp-ni.active::after {
  content: '';
  position: absolute; inset: -1px; border-radius: 6px;
  box-shadow: 0 0 0 1px rgba(37,99,235,.4);
  animation: itemGlow 2.5s ease-in-out infinite;
}
@keyframes itemGlow {
  0%,100% { box-shadow: 0 0 0 1px rgba(37,99,235,.35), 0 0 12px rgba(37,99,235,.1); }
  50%      { box-shadow: 0 0 0 1px rgba(37,99,235,.6), 0 0 20px rgba(37,99,235,.2); }
}

.rsp-ni-n { font-size: 9.5px; color: #7f9abd; font-weight: 750; min-width: 11px; }
.rsp-ni.active .rsp-ni-n { color: var(--al); }
.rsp-ni-i { color: #9eb6d5; width: 15px; height: 15px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: color .2s; }
.rsp-ni.active .rsp-ni-i { color: var(--al); filter: drop-shadow(0 0 3px var(--al)); }
.rsp-ni-l { font-size: 10.5px; color: #b8c9e3; font-weight: 650; line-height: 1.25; text-align: left; }
.rsp-ni { justify-content: flex-start; }
.rsp-ni.active .rsp-ni-l { color: #fff; font-weight: 750; }

/* User area */
.rsp-user {
  border-top: 1px solid var(--bd);
  padding: 9px 12px;
  display: flex; align-items: center; gap: 8px;
  background: linear-gradient(0deg, rgba(37,99,235,.04), transparent);
}
.rsp-av {
  width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg,#1e3a5f,#2563eb);
  border: 1.5px solid var(--bdl);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  box-shadow: 0 0 8px rgba(37,99,235,.3);
}
.rsp-uname { font-size: 10.5px; font-weight: 600; color: var(--tp); }
.rsp-urole { font-size: 9.5px; color: #a9bdd8; }
.rsp-ustat { display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.rsp-dot   { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 6px var(--ok); animation: pulse 2s ease-in-out infinite; }
.rsp-onl   { font-size: 9px; color: var(--ok); }

/* ============================================================
   MAIN AREA
   ============================================================ */
.rsp-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }

/* Topbar */
.rsp-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 16px;
  border-bottom: 1px solid var(--bd);
  background: rgba(7,15,30,.6);
  backdrop-filter: blur(10px);
  flex-shrink: 0;
}
.rsp-bc { display: flex; align-items: center; gap: 6px; }
.rsp-bc-ico {
  width: 22px; height: 22px;
  background: linear-gradient(135deg, rgba(37,99,235,.25), rgba(37,99,235,.1));
  border: 1px solid rgba(37,99,235,.3);
  border-radius: 5px; display: flex; align-items: center; justify-content: center; color: var(--al);
  box-shadow: 0 0 8px rgba(37,99,235,.2);
}
.rsp-bc-s { font-size: 11px; font-weight: 600; color: var(--al); }
.rsp-bc-sep { color: #8aa3c4; font-size: 12px; }
.rsp-bc-l { font-size: 11px; font-weight: 600; color: var(--tp); }

.rsp-tr { display: flex; align-items: center; gap: 7px; }

/* Search – disabled */
.rsp-srch {
  display: flex; align-items: center; gap: 5px;
  background: var(--card); border: 1px solid var(--bd);
  border-radius: 6px; padding: 4px 9px; width: 170px;
  opacity: .72; cursor: not-allowed;
}
.rsp-srch input {
  background: none; border: none; outline: none;
  color: var(--tp); font-size: 10.5px; width: 100%; font-family: inherit;
  cursor: not-allowed;
}
.rsp-srch input::placeholder { color: #8fa8c8; }

.rsp-ibtn {
  width: 28px; height: 28px;
  background: linear-gradient(135deg, var(--card), rgba(37,99,235,.06));
  border: 1px solid var(--bd); border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #a7bfdd;
  transition: background .2s, border-color .2s, box-shadow .2s, color .2s, opacity .2s, transform .2s; position: relative;
  opacity: .72; pointer-events: none;
}
.rsp-badge {
  position: absolute; top: -4px; right: -4px;
  width: 13px; height: 13px;
  background: var(--ac); border-radius: 50%;
  font-size: 7.5px; font-weight: 700; color: #fff;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--bg);
  box-shadow: 0 0 6px rgba(37,99,235,.5);
}

/* ============================================================
   CONTENT
   ============================================================ */
.rsp-cnt { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 12px; }

/* Video row */
.rsp-vrow { display: grid; grid-template-columns: 1fr 252px; gap: 14px; align-items: start; }

/* ============================================================
   VIDEO PLAYER
   ============================================================ */
.rsp-vwrap {
  border-radius: 10px; overflow: hidden;
  border: 1px solid rgba(37,99,235,.35);
  background: #020810;
  box-shadow:
    0 0 0 1px rgba(37,99,235,.15),
    0 0 30px rgba(37,99,235,.12),
    0 0 80px rgba(37,99,235,.06);
  animation: fadeSlideUp .6s ease .2s both;
}

.rsp-vpost {
  position: relative; aspect-ratio: 16/9;
  overflow: hidden; background: #060f22; cursor: pointer;
}

/* Studio BG */
.rsp-vstudio {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(180deg, transparent 0, transparent 16px, rgba(255,255,255,.015) 16px, rgba(255,255,255,.015) 17px),
    linear-gradient(135deg, #04091a 0%, #08152e 55%, #040a18 100%);
}

/* Ambient glow */
.rsp-vglow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 55% 70% at 68% 50%, rgba(37,99,235,.2) 0%, transparent 70%);
}


/* Corner brackets */
.rsp-vcorner {
  position: absolute; z-index: 9; pointer-events: none;
  width: 18px; height: 18px;
  opacity: 1; transition: opacity .4s ease;
}
.rsp-vpost.rsp-playing .rsp-vcorner { opacity: 0; }
.rsp-vcorner.tl { top: 8px; left: 8px; border-top: 2px solid var(--al); border-left: 2px solid var(--al); }
.rsp-vcorner.tr { top: 8px; right: 8px; border-top: 2px solid var(--al); border-right: 2px solid var(--al); }
.rsp-vcorner.bl { bottom: 8px; left: 8px; border-bottom: 2px solid var(--al); border-left: 2px solid var(--al); }
.rsp-vcorner.br { bottom: 8px; right: 8px; border-bottom: 2px solid var(--al); border-right: 2px solid var(--al); }

.rsp-vpresenter {
  position: absolute; bottom: 0; left: 4%;
  height: 91%; object-fit: contain; object-position: bottom; z-index: 2;
}

/* Monitor */
.rsp-vscr { position: absolute; right: 6%; top: 50%; transform: translateY(-50%); z-index: 3; width: 44%; }
.rsp-vmon {
  background: #020810; border: 1.5px solid rgba(37,99,235,.4); border-radius: 6px;
  aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  box-shadow: 0 0 30px rgba(37,99,235,.25), inset 0 0 20px rgba(37,99,235,.05);
}
.rsp-mglow { position: absolute; inset: 0; background: radial-gradient(ellipse 80% 80% at 50% 50%, rgba(37,99,235,.25) 0%, transparent 70%); }

/* floating particles inside monitor */
.rsp-mparticle {
  position: absolute; border-radius: 50%; pointer-events: none;
  background: rgba(96,165,250,.6);
  animation: floatUp linear infinite;
}
@keyframes floatUp {
  0%   { transform: translateY(0) scale(1); opacity: .8; }
  100% { transform: translateY(-80px) scale(0); opacity: 0; }
}

/* Brand watermark */
.rsp-vbrand {
  position: absolute; top: 7px; right: 7px; z-index: 10;
  display: flex; align-items: center; gap: 4px;
  background: rgba(4,9,24,.88); border: 1px solid rgba(37,99,235,.4);
  padding: 2px 6px; border-radius: 3px; backdrop-filter: blur(6px);
}
.rsp-vbrand-t { font-size: 8px; font-weight: 700; color: #fff; letter-spacing: .03em; }

/* Play overlay */
.rsp-pov {
  position: absolute; inset: 0; z-index: 7;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  opacity: 1; transition: opacity .3s;
  background: rgba(2,6,18,.18);
  pointer-events: auto;
}
.rsp-vpost.rsp-playing .rsp-pov { opacity: 0; pointer-events: none; }
.rsp-pause-hover {
  position: absolute; inset: 0; z-index: 8;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .18s ease;
  background: rgba(2,6,18,.08);
}
.rsp-vpost.rsp-playing:hover .rsp-pause-hover { opacity: 1; }
.rsp-pause-pill {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(3,10,24,.58);
  border: 1px solid rgba(125,211,252,.28);
  color: #e0f2fe;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
  box-shadow: 0 12px 34px rgba(0,0,0,.42), 0 0 24px rgba(37,99,235,.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.rsp-pause-icon {
  width: 30px; height: 30px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg,#2563eb,#3b82f6);
  box-shadow: 0 4px 16px rgba(37,99,235,.42);
  color: #fff;
}
.rsp-pbig {
  display: flex; align-items: center; gap: 11px;
  padding: 11px 22px 11px 18px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 40px;
  box-shadow: 0 8px 32px rgba(0,0,0,.35), 0 0 0 1px rgba(37,99,235,.15);
  transition: transform .18s, background .18s, box-shadow .18s;
  cursor: pointer;
}
.rsp-pbig:hover {
  transform: scale(1.05);
  background: rgba(37,99,235,.22);
  box-shadow: 0 12px 40px rgba(0,0,0,.4), 0 0 0 1px rgba(59,130,246,.35);
}
.rsp-pbig-icon {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(37,99,235,.5);
  flex-shrink: 0;
}
.rsp-pbig-label {
  display: flex; flex-direction: column; gap: 1px;
}
.rsp-pbig-label span:first-child {
  font-size: 12px; font-weight: 700; color: #fff; letter-spacing: .01em;
}
.rsp-pbig-label span:last-child {
  font-size: 9.5px; color: rgba(255,255,255,.5); font-weight: 400;
}

/* Video controls */
.rsp-vctrl {
  display: flex; align-items: center; gap: 7px;
  padding: 6px 12px 8px;
  background: linear-gradient(0deg, rgba(2,6,18,.98), rgba(4,10,22,.9));
  border-top: 1px solid rgba(37,99,235,.1);
  position: relative;
}

/* Waveform visualizer */
.rsp-wave {
  display: flex; align-items: center; gap: 2px; height: 20px;
}
.rsp-wbar {
  width: 2px; background: linear-gradient(180deg, var(--al), var(--ac));
  border-radius: 2px; opacity: .7;
  animation: waveBar .8s ease-in-out infinite alternate;
}
@keyframes waveBar {
  from { transform: scaleY(.2); }
  to   { transform: scaleY(1); }
}

.rsp-cbtn {
  background: none; border: none; color: var(--ts);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  padding: 2px; border-radius: 3px; transition: color .15s, transform .1s;
}
.rsp-cbtn:hover { color: var(--tp); transform: scale(1.1); }
.rsp-settings{position:relative;display:flex}
.rsp-settings-btn.is-hd{color:#bfdbfe;background:rgba(37,99,235,.22)}
.rsp-settings-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:30;min-width:144px;border-radius:9px;border:1px solid rgba(96,165,250,.28);background:rgba(3,10,25,.96);box-shadow:0 16px 34px rgba(0,0,0,.42),0 0 18px rgba(37,99,235,.16);padding:7px;opacity:0;transform:translateY(5px) scale(.98);pointer-events:none;transition:opacity .15s ease,transform .15s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.rsp-settings.is-open .rsp-settings-menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.rsp-settings-title{padding:4px 7px 7px;color:var(--ts);font-size:9.5px;font-weight:800}
.rsp-settings-option{width:100%;min-height:28px;border:0;border-radius:6px;background:transparent;color:var(--tp);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 8px;font-size:10px;font-weight:750;cursor:pointer;text-align:left}
.rsp-settings-option:hover,.rsp-settings-option[aria-checked="true"]{background:rgba(37,99,235,.24);color:#fff}
.rsp-settings-option span{font-size:8px;color:var(--ts);font-weight:700}
.rsp-settings-option::after{content:'';width:5px;height:5px;border-radius:50%;background:transparent}
.rsp-settings-option[aria-checked="true"]::after{background:var(--al);box-shadow:0 0 8px rgba(96,165,250,.72)}

.rsp-prog {
  flex: 1; height: 3px; background: rgba(255,255,255,.07);
  border-radius: 2px; cursor: pointer; position: relative;
  overflow: visible;
  /* größeres Klickziel */
  padding: 7px 0;
  margin: -7px 0;
  box-sizing: content-box;
}
.rsp-prog:hover .rsp-pf,
.rsp-prog:active .rsp-pf { height: 5px; }
.rsp-prog:hover,
.rsp-prog:active { background: rgba(255,255,255,.12); }
.rsp-pf {
  height: 100%; width: 19%;
  background: linear-gradient(90deg, var(--ac), var(--al));
  border-radius: 2px; position: relative;
  transition: width .1s;
}
.rsp-pf::after {
  content: ''; position: absolute; right: -5px; top: 50%; transform: translateY(-50%);
  width: 9px; height: 9px; background: #fff; border-radius: 50%;
  box-shadow: 0 0 0 2px var(--ac), 0 0 8px rgba(37,99,235,.8);
}
.rsp-ctime { font-size: 9.5px; color: var(--ts); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rsp-cspd {
  font-size: 9.5px; color: var(--ts);
  background: rgba(37,99,235,.1); border: 1px solid rgba(37,99,235,.25);
  border-radius: 3px; padding: 1px 6px; cursor: pointer;
  transition: background .15s, color .15s;
}
.rsp-cspd:hover { background: rgba(37,99,235,.2); color: var(--al); }

/* ============================================================
   INFO PANEL
   ============================================================ */
.rsp-info {
  display: flex; flex-direction: column; gap: 10px;
  animation: fadeSlideUp .6s ease .3s both;
}

.rsp-lbdg {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.35);
  color: var(--al); font-size: 9.5px; font-weight: 700;
  padding: 3px 10px; border-radius: 20px; width: fit-content;
  position: relative; overflow: hidden;
}
/* shimmer on badge */
.rsp-lbdg::after {
  content: '';
  position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
  animation: shimmer 2.5s ease-in-out infinite;
}
@keyframes shimmer { 0%,100% { left: -60%; } 60%,100% { left: 120%; } }

.rsp-lbdg-dot {
  width: 5px; height: 5px; border-radius: 50%; background: var(--al);
  box-shadow: 0 0 5px var(--al); animation: pulse 1.8s ease-in-out infinite;
}

.rsp-ititle {
  font-size: 15px; font-weight: 800; color: var(--tp);
  line-height: 1.2; letter-spacing: -.025em;
  background: linear-gradient(135deg, #fff 0%, #93c5fd 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.rsp-idesc { font-size: 10.5px; color: var(--ts); line-height: 1.6; }

/* Meta row */
.rsp-meta {
  display: flex;
  border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd);
  padding: 8px 0;
}
.rsp-mi {
  flex: 1; display: flex; align-items: center; gap: 6px;
  padding: 0 8px; border-right: 1px solid var(--bd);
}
.rsp-mi:first-child { padding-left: 0; }
.rsp-mi:last-child  { border-right: none; }
.rsp-mi-i { color: var(--al); flex-shrink: 0; filter: drop-shadow(0 0 3px var(--al)); }
.rsp-mi-v { font-size: 11px; font-weight: 700; color: var(--tp); display: block; }
.rsp-mi-l { font-size: 9px; color: var(--tm); display: block; }

/* Pflicht badge */
.rsp-pflicht {
  display: inline-flex; align-items: center; gap: 3px;
  background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.3);
  color: #fbbf24; font-size: 9px; font-weight: 700;
  padding: 1px 6px; border-radius: 4px; margin-top: 2px;
  letter-spacing: .04em;
}

/* Buttons */
.rsp-btns { display: flex; flex-direction: column; gap: 7px; }

.rsp-bp {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff; border: none; border-radius: 8px; padding: 9px 14px;
  font-size: 12px; font-weight: 700; cursor: pointer;
  font-family: inherit; letter-spacing: .01em;
  box-shadow: 0 4px 20px rgba(37,99,235,.35), 0 0 0 1px rgba(37,99,235,.4);
  transition: box-shadow .2s, transform .1s;
  position: relative; overflow: hidden;
}
.rsp-bp::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.12), transparent);
  pointer-events: none;
}
.rsp-bp:hover { box-shadow: 0 6px 28px rgba(37,99,235,.5), 0 0 0 1px rgba(37,99,235,.6); transform: translateY(-1px); }
.rsp-bp:active { transform: scale(.98); }

/* ripple */
.rsp-ripple {
  position: absolute; border-radius: 50%;
  background: rgba(255,255,255,.25); transform: scale(0);
  animation: ripple .5s linear;
  pointer-events: none;
}
@keyframes ripple { to { transform: scale(4); opacity: 0; } }

.rsp-bs {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  background: rgba(255,255,255,.03); color: var(--ts);
  border: 1px solid var(--bdl); border-radius: 8px; padding: 8px 14px;
  font-size: 11px; font-weight: 500; cursor: pointer;
  transition: background .2s, border-color .2s, box-shadow .2s, color .2s, opacity .2s, transform .2s; font-family: inherit;
}
.rsp-bs:hover { background: rgba(37,99,235,.08); color: var(--tp); border-color: rgba(37,99,235,.4); }
.rsp-bs.bm { color: var(--al); border-color: rgba(37,99,235,.5); background: rgba(37,99,235,.1); }

/* Certificate teaser */
.rsp-cert {
  display: flex; align-items: center; gap: 8px;
  background: linear-gradient(135deg, rgba(16,185,129,.07), rgba(16,185,129,.03));
  border: 1px solid rgba(16,185,129,.2); border-radius: 7px; padding: 8px 10px;
  margin-top: 2px;
}
.rsp-cert-icon { color: #34d399; flex-shrink: 0; filter: drop-shadow(0 0 4px rgba(52,211,153,.4)); }
.rsp-cert-txt { font-size: 9.5px; color: #6ee7b7; line-height: 1.4; }
.rsp-cert-txt strong { color: #34d399; }

/* ============================================================
   LESSON CARDS SECTION
   ============================================================ */
.rsp-lsec { flex-shrink: 0; animation: fadeSlideUp .6s ease .4s both; }

.rsp-lhd {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px;
}
.rsp-ltit { font-size: 11.5px; font-weight: 700; color: var(--tp); }
.rsp-lctrl { display: flex; align-items: center; gap: 7px; }
.rsp-lsort { display: flex; align-items: center; gap: 4px; font-size: 10px; color: var(--ts); opacity: .35; pointer-events: none; }
.rsp-lsort select {
  background: var(--card); border: 1px solid var(--bd); color: var(--tp);
  border-radius: 4px; padding: 2px 5px; font-size: 10px; font-family: inherit;
}
.rsp-vbs { display: flex; gap: 3px; }
.rsp-vb {
  width: 22px; height: 22px; background: var(--card); border: 1px solid var(--bd);
  border-radius: 4px; display: flex; align-items: center; justify-content: center;
  color: var(--tm); pointer-events: none;
}
.rsp-vb.on { background: rgba(37,99,235,.2); border-color: rgba(37,99,235,.4); color: var(--al); }

/* Cards grid */
.rsp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; }

/* ---- Individual Card ---- */
.rsp-card {
  background: linear-gradient(145deg, var(--card), rgba(10,22,45,.9));
  border: 1px solid var(--bd);
  border-radius: 8px; overflow: hidden;
  cursor: not-allowed;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, opacity .22s ease;
  will-change: transform;
  animation: cardPop .5s ease backwards;
  position: relative;
}

/* staggered card animation */
.rsp-card:nth-child(1) { animation-delay: .05s; }
.rsp-card:nth-child(2) { animation-delay: .1s; }
.rsp-card:nth-child(3) { animation-delay: .15s; }
.rsp-card:nth-child(4) { animation-delay: .2s; }
.rsp-card:nth-child(5) { animation-delay: .25s; }
.rsp-card:nth-child(6) { animation-delay: .3s; }
.rsp-card:nth-child(7) { animation-delay: .35s; }

@keyframes cardPop {
  from { transform: translateY(10px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.rsp-card:not(.on):not(.ok) { opacity: .8; }
.rsp-card:hover {
  transform: translate3d(0,-4px,0);
  border-color: rgba(96,165,250,.42);
  box-shadow: 0 10px 22px rgba(0,0,0,.24), 0 0 18px rgba(37,99,235,.16);
}
.rsp-card.on:hover {
  box-shadow: 0 0 0 1px rgba(96,165,250,.58), 0 10px 24px rgba(0,0,0,.24), 0 0 24px rgba(37,99,235,.28);
}
.rsp-card.ok:hover {
  border-color: rgba(96,165,250,.62);
  box-shadow: 0 12px 26px rgba(0,0,0,.28), 0 0 22px rgba(37,99,235,.2);
}

/* active card – holographic shimmer */
.rsp-card.on {
  border-color: var(--ac); cursor: default;
  box-shadow: 0 0 0 1px rgba(37,99,235,.5), 0 0 18px rgba(37,99,235,.25);
}
.rsp-card.on::before {
  content: '';
  position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: 8px;
  background: linear-gradient(135deg, rgba(37,99,235,.06) 0%, transparent 50%, rgba(37,99,235,.03) 100%);
  animation: holoShift 3s ease-in-out infinite;
}
@keyframes holoShift {
  0%,100% { opacity: 1; }
  50%      { opacity: .4; }
}

.rsp-card.ok { opacity: 1; }

/* Thumbnail */
.rsp-ct {
  position: relative; aspect-ratio: 16/9;
  background: linear-gradient(135deg,#080f20,#0c1a32); overflow: hidden;
}
.rsp-ct img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; position: relative; z-index: 1; }
.rsp-card.on .rsp-ct img,
.rsp-card.ok .rsp-ct img { /* no scale for locked feel */ }

.rsp-ctfb {
  position: absolute; inset: 0;
  background: linear-gradient(135deg,#080f20,#0e1d38 50%,#080f20);
  display: flex; align-items: center; justify-content: center;
}
.rsp-ctfb svg { opacity: .2; color: var(--al); }

.rsp-cbr {
  position: absolute; top: 3px; right: 3px; z-index: 3;
  background: rgba(4,9,24,.85); border: 1px solid rgba(37,99,235,.25);
  border-radius: 3px; padding: 1px 3px;
  display: flex; align-items: center; gap: 2px;
}
.rsp-cbr-t { font-size: 5.5px; font-weight: 700; color: #fff; letter-spacing: .02em; }

.rsp-cchk {
  position: absolute; top: 3px; left: 3px; z-index: 3;
  width: 15px; height: 15px; border-radius: 50%; background: var(--ok);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 8px rgba(16,185,129,.6);
}

/* Play button */
.rsp-cplay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 2; }
.rsp-cpb {
  width: 24px; height: 24px;
  background: rgba(37,99,235,.9); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 3px rgba(37,99,235,.2), 0 0 14px rgba(37,99,235,.35);
  transition: transform .2s, box-shadow .2s;
}
.rsp-card.on .rsp-cpb {
  animation: playPulse 2s ease-in-out infinite;
}
@keyframes playPulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(37,99,235,.25), 0 0 12px rgba(37,99,235,.3); }
  50%      { box-shadow: 0 0 0 6px rgba(37,99,235,.1), 0 0 22px rgba(37,99,235,.5); }
}

/* Lock overlay on non-active cards */
.rsp-lock-overlay {
  position: absolute; inset: 0; z-index: 4;
  background: rgba(4,9,24,.60); backdrop-filter: blur(2px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  opacity: 0; transition: opacity .22s;
}
.rsp-card:not(.on):not(.ok):hover .rsp-lock-overlay { opacity: 1; }
.rsp-card.ok .rsp-ct::before{content:'';position:absolute;inset:0;z-index:4;background:rgba(4,9,24,.52);backdrop-filter:blur(2px);opacity:0;transition:opacity .22s;pointer-events:none}
.rsp-card.ok .rsp-ct::after{content:'Demo-Version';position:absolute;left:50%;top:50%;z-index:5;transform:translate(-50%,-50%) scale(.96);opacity:0;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);background:rgba(37,99,235,.25);border:1px solid rgba(59,130,246,.4);border-radius:4px;padding:2px 7px;transition:opacity .22s,transform .22s;pointer-events:none}
.rsp-card.ok:hover .rsp-ct::before,.rsp-card.ok:hover .rsp-ct::after{opacity:1}
.rsp-card.ok:hover .rsp-ct::after{transform:translate(-50%,-50%) scale(1)}
.rsp-lock-overlay svg { opacity: .7; color: var(--al); }
.rsp-lock-overlay::after {
  content: 'Demo-Version';
  font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.75);
  background: rgba(37,99,235,.25);
  border: 1px solid rgba(59,130,246,.4);
  border-radius: 4px; padding: 2px 7px;
}

/* Card body */
.rsp-cb { padding: 6px 6px 5px; position: relative; z-index: 1; }
.rsp-cn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; border-radius: 50%;
  background: linear-gradient(135deg, var(--ac), var(--al));
  font-size: 7.5px; font-weight: 800; color: #fff; margin-bottom: 3px;
  box-shadow: 0 0 6px rgba(37,99,235,.4);
}
.rsp-card.ok .rsp-cn { background: linear-gradient(135deg,#059669,#10b981); box-shadow: 0 0 6px rgba(16,185,129,.4); }
.rsp-card:not(.on):not(.ok) .rsp-cn { background: linear-gradient(135deg,#1e3a5f,#243d60); box-shadow: none; }

.rsp-ctit { font-size: 9.5px; font-weight: 600; color: var(--tp); line-height: 1.25; margin-bottom: 4px; min-height: 2.5em; }
.rsp-cdur { display: flex; align-items: center; gap: 3px; font-size: 9px; color: var(--ts); margin-bottom: 4px; }

/* Progress bar */
.rsp-cpg { height: 2px; background: rgba(255,255,255,.06); border-radius: 2px; margin-bottom: 5px; overflow: hidden; }
.rsp-cpgf { height: 100%; border-radius: 2px; }
.rsp-cpgf.g { background: linear-gradient(90deg,#059669,#10b981); width: 100%; }
.rsp-cpgf.b {
  background: linear-gradient(90deg, var(--ac), var(--al));
  width: 25%; box-shadow: 0 0 4px rgba(37,99,235,.6);
  animation: progressGlow 2s ease-in-out infinite;
}
@keyframes progressGlow {
  0%,100% { box-shadow: 0 0 3px rgba(37,99,235,.4); }
  50%      { box-shadow: 0 0 8px rgba(37,99,235,.8); }
}
.rsp-cpgf.n { width: 0; }

.rsp-cst { display: flex; align-items: center; justify-content: space-between; }
.rsp-cstl {
  display: flex; align-items: center; gap: 2px;
  font-size: 8.5px; font-weight: 600; padding: 2px 5px; border-radius: 3px;
}
.rsp-cstl.g { background: rgba(16,185,129,.1); color: #34d399; }
.rsp-cstl.b { background: rgba(37,99,235,.1); color: var(--al); }
.rsp-cstl.m { color: var(--tm); }

/* ============================================================
   GLOBAL ANIMATIONS
   ============================================================ */
@keyframes fadeSlideDown { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeSlideUp   { from { opacity:0; transform:translateY(12px);  } to { opacity:1; transform:translateY(0); } }
@keyframes pulse         { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.5; transform:scale(.7); } }

/* ══════ ONBOARDING VIDEO-FRAMES STRIP ══════ */
.portal-frames-wrap{margin-top:36px;text-align:left}
.portal-frames-label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:18px}
.portal-frames-label::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.07),transparent)}
.portal-frames-label-dot{width:7px;height:7px;border-radius:50%;background:#06b6d4;box-shadow:0 0 8px rgba(6,182,212,.7);flex-shrink:0}
.portal-frames-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
@media(max-width:900px){.portal-frames-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:500px){.portal-frames-grid{grid-template-columns:repeat(2,1fr)}}
.portal-frame-item{border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.06);aspect-ratio:16/9;position:relative;cursor:pointer;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.portal-frame-item:hover{transform:translateY(-4px) scale(1.04);border-color:rgba(6,182,212,.4);box-shadow:0 14px 36px rgba(0,0,0,.5),0 0 28px rgba(6,182,212,.18)}
.portal-frame-item img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.82) saturate(.85);transition:filter .25s ease}
.portal-frame-item:hover img{filter:brightness(1.05) saturate(1.15)}
.portal-frame-num{position:absolute;top:5px;left:5px;padding:2px 7px;border-radius:5px;background:rgba(5,12,26,.8);color:#7dd3fc;font-size:10px;font-weight:700;font-family:var(--mono);backdrop-filter:blur(6px);line-height:1.5;pointer-events:none}

/* ── HOST-Wrapper für Heading + Layout (mitarbeiterportal-spezifisch) ── */
.portal-host{ padding: 4rem 1.5rem 5rem; position: relative; }
@media(min-width:720px){ .portal-host{ padding: 5rem 2rem 6rem; } }
.portal-host-inner{ max-width: 1240px; margin: 0 auto; }
.portal-host-head{ text-align: center; margin-bottom: 3rem; }
.portal-host-eyebrow{
  display:inline-block; font-family:'Inter Tight',sans-serif;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:#3b82f6; margin-bottom:1.1rem; padding:.45rem 1.1rem;
  border:1px solid rgba(59,130,246,.28); border-radius:999px;
  background:rgba(59,130,246,.04);
}
.portal-host-title{
  font-family:'Fraunces',serif; font-weight:300;
  font-size:clamp(2rem,4.5vw,3.6rem); letter-spacing:-.025em; line-height:1.08;
  color:#f5f8fc; margin-bottom:1.1rem;
}
.portal-host-title em{ font-style:italic; color:#3b82f6; }
.portal-host-sub{
  font-family:'Inter Tight',sans-serif; font-size:1.05rem;
  color:#94a3b8; max-width:640px; margin:0 auto; line-height:1.65;
}

/* ════════════════════════════════════════════════════════════════════
   10 KATEGORIE-SEKTIONEN — professionelle Tiefen-Erklärung pro Bereich
   Alternierendes Layout (links/rechts), nummerierte Hierarchie, ruhige Typografie
   ════════════════════════════════════════════════════════════════════ */
.cat-sections{ padding: 6rem 0 8rem; position: relative; }
.cat-sections::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse at 15% 25%, rgba(37,99,235,.05) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 75%, rgba(6,182,212,.04) 0%, transparent 50%);
}
.cat-sections-intro{
  max-width: 760px; margin: 0 auto 5rem; padding: 0 1.5rem; text-align: center; position: relative;
}
.cat-sections-intro-eyebrow{
  display:inline-block; font-family:'Inter Tight',sans-serif;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:#7dd3fc; margin-bottom:1rem; padding:.45rem 1.1rem;
  border:1px solid rgba(125,211,252,.25); border-radius:999px;
  background:rgba(6,182,212,.05);
}
.cat-sections-intro-title{
  font-family:'Fraunces',serif; font-weight:300;
  font-size:clamp(1.9rem,4.2vw,3.2rem); letter-spacing:-.025em; line-height:1.12;
  color:#f5f8fc; margin-bottom:1.1rem;
}
.cat-sections-intro-title em{ font-style:italic; color:#3b82f6; }
.cat-sections-intro-sub{
  font-family:'Inter Tight',sans-serif; font-size:1.02rem;
  color:#94a3b8; line-height:1.65;
}

.cat{
  max-width:1180px; margin:0 auto 4.5rem; padding: 0 1.5rem; position: relative;
  display:grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items:center;
}
@media(max-width:900px){ .cat{ grid-template-columns: 1fr; gap: 2rem; margin-bottom: 3rem; } }
.cat:nth-child(even) .cat-text{ order: 2; }
.cat:nth-child(even) .cat-visual{ order: 1; }
@media(max-width:900px){
  .cat:nth-child(even) .cat-text,
  .cat:nth-child(even) .cat-visual{ order: initial; }
}

.cat-text{ display:flex; flex-direction:column; gap:1.25rem; }
.cat-eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:'Inter Tight',sans-serif; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:#7dd3fc;
}
.cat-eyebrow-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  background:linear-gradient(135deg, rgba(59,130,246,.18), rgba(6,182,212,.10));
  border:1px solid rgba(59,130,246,.3);
  color:#3b82f6; font-weight:700; font-size:.78rem; letter-spacing:0;
}
.cat-eyebrow-pflicht{
  padding:.2rem .55rem; border-radius:4px;
  background:rgba(245,158,11,.1); color:#f59e0b;
  font-size:.62rem; letter-spacing:.12em; border:1px solid rgba(245,158,11,.25);
}
.cat-eyebrow-empfehlung{
  padding:.2rem .55rem; border-radius:4px;
  background:rgba(16,185,129,.08); color:#10b981;
  font-size:.62rem; letter-spacing:.12em; border:1px solid rgba(16,185,129,.22);
}
.cat-title{
  font-family:'Fraunces',serif; font-weight:300;
  font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:-.02em; line-height:1.15;
  color:#f5f8fc;
}
.cat-title em{ font-style:italic; color:#3b82f6; }
.cat-desc{
  font-family:'Inter Tight',sans-serif; font-size:1.02rem;
  color:#94a3b8; line-height:1.7; max-width:48ch;
}
.cat-bullets{
  list-style:none; padding:0; margin:.5rem 0 0; display:flex; flex-direction:column; gap:.75rem;
}
.cat-bullets li{
  display:flex; align-items:flex-start; gap:.7rem;
  font-family:'Inter Tight',sans-serif; font-size:.95rem; color:#cbd5e1; line-height:1.55;
}
.cat-bullets li::before{
  content:''; flex:0 0 6px; height:6px; border-radius:50%;
  background:#3b82f6; margin-top:.55rem;
  box-shadow:0 0 8px rgba(59,130,246,.5);
}
.cat-meta{
  display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:.5rem;
  padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.06);
}
.cat-meta-item{
  display:flex; align-items:center; gap:.5rem;
  font-family:'Inter Tight',sans-serif; font-size:.78rem;
  color:#94a3b8;
}
.cat-meta-item strong{ color:#f5f8fc; font-weight:600; font-size:.85rem; margin-right:.15rem; }
.cat-meta-item svg{ width:14px; height:14px; opacity:.7; }

.cat-visual{
  position:relative; aspect-ratio: 4/3; border-radius:18px; overflow:hidden;
  background: linear-gradient(135deg, #0a1628 0%, #060e1e 100%);
  border:1px solid rgba(255,255,255,.05);
  box-shadow: 0 24px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(59,130,246,.04);
  display:flex; align-items:center; justify-content:center;
}
.cat-visual::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(59,130,246,.12) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 80%, rgba(6,182,212,.08) 0%, transparent 50%);
  pointer-events:none;
}
.cat-visual-icon{
  position:relative; z-index:2;
  width:clamp(80px, 14vw, 130px); height:clamp(80px,14vw,130px);
  display:flex; align-items:center; justify-content:center;
  color:#3b82f6; opacity:.9;
}
.cat-visual-icon svg{ width:100%; height:100%; filter: drop-shadow(0 0 20px rgba(59,130,246,.35)); }
.cat-visual-num{
  position:absolute; bottom:18px; right:20px; z-index:2;
  font-family:'Fraunces',serif; font-weight:300; font-style:italic;
  font-size:clamp(3rem, 7vw, 5rem); color:#3b82f6;
  opacity:.22; line-height:1; letter-spacing:-.04em;
  pointer-events:none; user-select:none;
}

/* CTA-Block am Ende */
.cat-finale{
  max-width:880px; margin:6rem auto 0; padding:3rem 2rem;
  text-align:center;
  background: linear-gradient(135deg, rgba(37,99,235,.06) 0%, rgba(6,182,212,.04) 100%);
  border:1px solid rgba(59,130,246,.18);
  border-radius:20px; position:relative; overflow:hidden;
}
.cat-finale::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse at 50% 0%, rgba(59,130,246,.12) 0%, transparent 60%);
}
.cat-finale-title{
  font-family:'Fraunces',serif; font-weight:300;
  font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:-.02em; line-height:1.15;
  color:#f5f8fc; margin-bottom:1rem; position:relative;
}
.cat-finale-title em{ font-style:italic; color:#3b82f6; }
.cat-finale-desc{
  font-family:'Inter Tight',sans-serif; font-size:1rem;
  color:#cbd5e1; max-width:560px; margin:0 auto 2rem; line-height:1.65; position:relative;
}
.cat-finale-cta{
  display:inline-flex; align-items:center; gap:.7rem;
  padding:1rem 2.2rem;
  background:linear-gradient(135deg,#2563eb 0%,#0ea5e9 100%);
  color:#fff; font-family:'Inter Tight',sans-serif; font-size:1rem; font-weight:600; letter-spacing:.01em;
  border-radius:999px; text-decoration:none;
  box-shadow:0 10px 30px rgba(37,99,235,.28);
  transition:transform .28s cubic-bezier(.25,.46,.45,.94), box-shadow .28s cubic-bezier(.25,.46,.45,.94);
  position:relative;
}
.cat-finale-cta:hover{ transform:translateY(-2px) scale(1.02); box-shadow:0 16px 40px rgba(37,99,235,.4), 0 0 60px rgba(6,182,212,.25); }
.cat-finale-cta svg{ width:16px; height:16px; transition:transform .25s; }
.cat-finale-cta:hover svg{ transform:translateX(4px); }

/* ════════════════════════════════════════════════════════════════════ */
/* FULLSCREEN — wenn .rsp-vwrap in Vollbild geht (statt nackt <video>), */
/* sind alle Custom-Controls inkl. 720p/1080p-Settings-Menu sichtbar.   */
/* ════════════════════════════════════════════════════════════════════ */
.rsp-vwrap:fullscreen,
.rsp-vwrap:-webkit-full-screen,
.rsp-vwrap:-moz-full-screen{
  width:100vw !important; height:100vh !important;
  max-width:none !important; max-height:none !important;
  border-radius:0 !important;
  border:0 !important;
  background:#000;
  box-shadow:none;
  display:flex; flex-direction:column;
}

/* Video füllt Großteil — Controls fix unten */
.rsp-vwrap:fullscreen .rsp-vpost,
.rsp-vwrap:-webkit-full-screen .rsp-vpost,
.rsp-vwrap:-moz-full-screen .rsp-vpost{
  flex:1; aspect-ratio:auto; height:auto;
  border-radius:0;
}
.rsp-vwrap:fullscreen video,
.rsp-vwrap:-webkit-full-screen video,
.rsp-vwrap:-moz-full-screen video{
  object-fit:contain;
  background:#000;
}

/* Custom-Control-Bar in Vollbild — etwas größer + Glasmorphismus für lesbare Buttons */
.rsp-vwrap:fullscreen .rsp-vctrl,
.rsp-vwrap:-webkit-full-screen .rsp-vctrl,
.rsp-vwrap:-moz-full-screen .rsp-vctrl{
  flex:0 0 auto;
  padding:14px 22px;
  background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.55));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid rgba(125,211,252,.18);
  gap:14px;
}
.rsp-vwrap:fullscreen .rsp-cbtn,
.rsp-vwrap:-webkit-full-screen .rsp-cbtn,
.rsp-vwrap:-moz-full-screen .rsp-cbtn{
  width:36px; height:36px;
}
.rsp-vwrap:fullscreen .rsp-cbtn svg,
.rsp-vwrap:-webkit-full-screen .rsp-cbtn svg,
.rsp-vwrap:-moz-full-screen .rsp-cbtn svg{
  width:16px; height:16px;
}
.rsp-vwrap:fullscreen .rsp-ctime,
.rsp-vwrap:-webkit-full-screen .rsp-ctime,
.rsp-vwrap:-moz-full-screen .rsp-ctime{
  font-size:14px;
}
.rsp-vwrap:fullscreen .rsp-cspd,
.rsp-vwrap:-webkit-full-screen .rsp-cspd,
.rsp-vwrap:-moz-full-screen .rsp-cspd{
  font-size:13px; padding:6px 12px;
}

/* Settings-Menu (Quality 720p/1080p) — prominenter im Fullscreen */
.rsp-vwrap:fullscreen .rsp-settings-menu,
.rsp-vwrap:-webkit-full-screen .rsp-settings-menu,
.rsp-vwrap:-moz-full-screen .rsp-settings-menu{
  min-width:180px;
  padding:10px;
  border-radius:12px;
  font-size:14px;
}
.rsp-vwrap:fullscreen .rsp-settings-option,
.rsp-vwrap:-webkit-full-screen .rsp-settings-option,
.rsp-vwrap:-moz-full-screen .rsp-settings-option{
  padding:9px 12px;
  font-size:14px;
}
.rsp-vwrap:fullscreen .rsp-settings-title,
.rsp-vwrap:-webkit-full-screen .rsp-settings-title,
.rsp-vwrap:-moz-full-screen .rsp-settings-title{
  font-size:11px; padding:5px 8px;
}
