/* ══════════════════════════════════════════════════════════
   TOKENS — direct from app.css
══════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --v50:#f5f3ff;--v100:#ede9fe;--v200:#ddd6fe;--v300:#c4b5fd;
  --v400:#a78bfa;--v500:#8b5cf6;--v600:#7c3aed;--v700:#6d28d9;--v800:#5b21b6;--v900:#4c1d95;
  --sb:linear-gradient(170deg,#1a0840 0%,#2e1269 40%,#5b21b6 80%,#7c3aed 100%);
  --dark:#0a0714;--dark2:#13102a;--dark3:#1c1838;
  --rc:#dc2626;--rh:#ea580c;--rm:#d97706;--rl:#16a34a;
  --font:'DM Sans',system-ui,sans-serif;
  --mono:'DM Mono',monospace;
  --ease:all .2s cubic-bezier(.4,0,.2,1);
}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:#fff;color:#1a1028;overflow-x:hidden;font-size:16px;line-height:1.6}

/* ══ SCROLLBAR ══ */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--v400);border-radius:3px}

/* ══ PAGE SYSTEM ══ */
.pg{display:none}.pg.on{display:block}

/* ══════════════════════════════════════════════════════════
   NAV
══════════════════════════════════════════════════════════ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  height:60px;display:flex;align-items:center;padding:0 clamp(16px,5%,72px);
  background:linear-gradient(170deg,#1a0840 0%,#2e1269 40%,#5b21b6 80%,#7c3aed 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.06),0 4px 24px rgba(0,0,0,.4);
}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;flex-shrink:0}
.nav-logo-name{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.5px;line-height:1}
.nav-logo-sub{font-size:8.5px;color:rgba(255,255,255,.32);text-transform:uppercase;letter-spacing:1.8px;margin-top:1px}
.nav-links{display:flex;gap:2px;margin-right:18px}
.nav-btn{background:none;border:none;font-family:var(--font);font-size:13.5px;font-weight:500;color:rgba(255,255,255,.65);padding:7px 14px;border-radius:8px;cursor:pointer;transition:var(--ease)}
.nav-btn:hover,.nav-btn.on{color:#fff;background:rgba(255,255,255,.1)}
.nav-right{display:flex;align-items:center;gap:8px}
.lang-sw{display:flex;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:7px;overflow:hidden;margin-right:6px}
.lb{padding:5px 9px;font-size:11px;font-weight:600;cursor:pointer;border:none;background:transparent;color:rgba(255,255,255,.5);font-family:var(--font);transition:.15s;letter-spacing:.3px}
.lb.on{background:rgba(255,255,255,.18);color:#fff}
.btn-app{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;transition:var(--ease);letter-spacing:-.1px}
.btn-app:hover{background:rgba(255,255,255,.22);transform:translateY(-1px)}
.btn-cta-nav{background:linear-gradient(135deg,#fff 0%,#f0ebff 100%);color:var(--v800);padding:7px 16px;border-radius:8px;font-size:13px;font-weight:700;border:none;font-family:var(--font);cursor:pointer;transition:var(--ease);letter-spacing:-.1px}
.btn-cta-nav:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.25)}
@media(max-width:820px){.nav-links{display:none}}
@media(max-width:520px){.lang-sw{display:none}}

/* ══════════════════════════════════════════════════════════
   WAVE SEPARATOR UTILITY
══════════════════════════════════════════════════════════ */
.wave{display:block;width:100%;overflow:hidden;line-height:0;flex-shrink:0}
.wave svg{display:block;width:100%}

/* ══════════════════════════════════════════════════════════
   HERO
══════════════════════════════════════════════════════════ */
.hero{
  min-height:100vh;padding-top:60px;
  background:linear-gradient(170deg,#08071a 0%,#1a0840 32%,#2e1269 60%,#5b21b6 85%,#7c3aed 100%);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
}
#hero-c{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero-inner{
  position:relative;z-index:2;flex:1;
  max-width:1400px;margin:0 auto;width:100%;padding:0 clamp(16px,4%,56px) 0;
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(167,139,250,.12);border:1px solid rgba(167,139,250,.22);
  padding:5px 12px 5px 8px;border-radius:20px;margin-bottom:22px;
}
.hero-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--v400);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.hero-eyebrow span{font-size:11.5px;font-weight:600;letter-spacing:.5px;color:var(--v300)}
.hero-h1{
  font-size:clamp(34px,4.8vw,58px);font-weight:800;color:#fff;
  letter-spacing:-2px;line-height:1.06;margin-bottom:20px;
}
.hero-h1 em{
  font-style:normal;
  background:linear-gradient(135deg,var(--v300),var(--v400),#c4b5fd);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-sub{font-size:16.5px;color:rgba(255,255,255,.6);line-height:1.75;max-width:440px;margin-bottom:32px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}
.btn-hero-primary{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(135deg,#fff 0%,#f0ebff 100%);
  color:var(--v800);padding:13px 26px;border-radius:11px;
  font-size:14.5px;font-weight:700;text-decoration:none;
  transition:var(--ease);letter-spacing:-.2px;
  box-shadow:0 4px 20px rgba(255,255,255,.15);
}
.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(255,255,255,.2)}
.btn-hero-primary svg{width:14px;height:14px;fill:currentColor}
.btn-hero-ghost{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);
  padding:13px 24px;border-radius:11px;font-size:14.5px;font-weight:600;
  text-decoration:none;cursor:pointer;font-family:var(--font);transition:var(--ease);letter-spacing:-.2px;
}
.btn-hero-ghost:hover{background:rgba(255,255,255,.15)}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px}
.hero-pill{
  display:flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  padding:6px 13px;border-radius:20px;font-size:12px;color:rgba(255,255,255,.6);
}
.hero-pill svg{width:12px;height:12px;stroke:var(--v400);fill:none;stroke-width:2.5}

/* App window in hero */
.hero-win{
  background:var(--dark2);border:1px solid rgba(167,139,250,.2);
  border-radius:16px;overflow:hidden;
  box-shadow:0 32px 80px rgba(0,0,0,.65),0 0 0 1px rgba(167,139,250,.05);
}

/* ══════════════════════════════════════════════════════════
   HERO DASHBOARD MOCKUP — 1:1 from /pages/dashboard.php
   Default = LIGHT theme (from app.css body.light)
   [data-theme="dark"] = DARK theme (from app.css body.dark)
   ══════════════════════════════════════════════════════════ */
.hero-dash{
  /* LIGHT — mirrors app.css body.light */
  --hd-bg:#f7f5fc;
  --hd-surf:#fff;
  --hd-card:#fff;
  --hd-tx:#1a1028;
  --hd-tx2:#5b4d7a;
  --hd-txm:#8b7faa;
  --hd-bd:#d4cce8;
  --hd-ac:#7c3aed;
  --hd-seg-bg:rgba(124,58,237,.08);
  --hd-pie-track:rgba(124,58,237,.08);
  --hd-hdr-bg:rgba(124,58,237,.02);
  --hd-hdr-border:rgba(124,58,237,.06);
  --hd-tbl-rowbd:rgba(124,58,237,.05);
  --hd-tbl-th-bg:rgba(124,58,237,.04);
  --hd-todo-bd:rgba(124,58,237,.08);
  --hd-todo-bg:rgba(124,58,237,.02);
  --hd-topbar-bg:#fff;
  --hd-topbar-bd:#d4cce8;
  --hd-topbar-tx:#1a1028;
  --hd-topbar-sh:0 1px 3px rgba(109,40,217,.06);
  transition:background .25s;
}
.hero-dash[data-theme="dark"]{
  /* DARK — refined premium palette with better depth and hierarchy */
  --hd-bg:#0b0818;           /* deeper base — more indigo than pure black */
  --hd-surf:#15112e;          /* elevated surface */
  --hd-card:#1d1940;          /* card — clearly lighter than bg */
  --hd-tx:#f1ebff;            /* brighter primary text */
  --hd-tx2:#c4b5e8;           /* secondary — mid-lilac */
  --hd-txm:#8779b8;           /* muted — lighter than before for readability */
  --hd-bd:#2d2556;            /* border — visible without shouting */
  --hd-ac:#b498ff;            /* accent — lifted purple */
  --hd-seg-bg:rgba(180,152,255,.1);
  --hd-pie-track:rgba(180,152,255,.08);
  /* Table header — clear elevation from card */
  --hd-hdr-bg:linear-gradient(180deg,rgba(180,152,255,.09) 0%,rgba(180,152,255,.04) 100%);
  --hd-hdr-border:rgba(180,152,255,.14);
  --hd-tbl-rowbd:rgba(180,152,255,.07);
  --hd-tbl-th-bg:linear-gradient(180deg,rgba(180,152,255,.08) 0%,rgba(180,152,255,.03) 100%);
  --hd-todo-bd:rgba(180,152,255,.1);
  --hd-todo-bg:rgba(180,152,255,.03);
  --hd-topbar-bg:#15112e;
  --hd-topbar-bd:#2d2556;
  --hd-topbar-tx:#e8dfff;
  --hd-topbar-sh:0 1px 0 rgba(180,152,255,.06), 0 2px 8px rgba(0,0,0,.5);
}
/* Body — same padding as .app-body (14px) */
.hd-body{background:var(--hd-bg);padding:14px}
.hd-content{display:flex;flex-direction:column;gap:10px}

/* KPI row (4 cards) — compact */
.hd-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.hd-kpi{background:var(--hd-card);border:1px solid var(--hd-bd);border-radius:8px;padding:8px 9px 7px;display:flex;flex-direction:column;gap:4px;min-width:0}
.hero-dash[data-theme="dark"] .hd-kpi{box-shadow:0 1px 0 rgba(180,152,255,.04) inset,0 4px 16px rgba(0,0,0,.35)}
.hd-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:5px}
.hd-kpi-icon{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hd-kpi-icon svg{width:9px;height:9px;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hd-kpi-badge{font-size:7.5px;font-weight:600;padding:1px 5px;border-radius:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hd-kpi-valrow{display:flex;align-items:baseline;gap:5px;min-width:0}
.hd-kpi-val{font-size:17px;font-weight:700;letter-spacing:-.6px;line-height:1;flex-shrink:0}
.hd-kpi-lbl{font-size:10px;color:var(--hd-tx);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Segment bar */
.hd-seg{position:relative;height:4px;background:var(--hd-seg-bg);border-radius:2px;overflow:hidden}
.hd-seg::before{content:'';position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:linear-gradient(90deg,#6d28d9,#7c3aed,#8b5cf6,#6366f1,#3b82f6,#0ea5e9,#06b6d4,#10b981,#22c55e,#16a34a);background-size:250px 100%;width:var(--p,0%)}
.hd-seg[data-pct="22"]{--p:22%}
.hd-seg[data-pct="33"]{--p:33%}
.hd-seg[data-pct="47"]{--p:47%}
.hd-seg[data-pct="68"]{--p:68%}

/* Two-column widget layout */
.hd-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hd-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.hd-w{background:var(--hd-card);border:1px solid var(--hd-bd);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.hero-dash[data-theme="dark"] .hd-w{box-shadow:0 1px 0 rgba(180,152,255,.04) inset,0 4px 16px rgba(0,0,0,.35)}
.hd-w-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding:9px 11px 7px;border-bottom:1px solid var(--hd-hdr-border);background:var(--hd-hdr-bg)}
.hd-w-title{font-size:11px;font-weight:600;color:var(--hd-tx);letter-spacing:-.2px}
.hd-w-sub{font-size:8.5px;color:var(--hd-txm);margin-top:1px}
.hd-w-link{font-size:9px;color:var(--hd-ac);text-decoration:none;white-space:nowrap;cursor:default;font-weight:600}

/* Table widget */
.hd-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:9.5px;table-layout:fixed}
.hd-tbl th{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--hd-tx2);padding:7px 9px 6px;text-align:left;background:var(--hd-tbl-th-bg);border-bottom:1px solid var(--hd-hdr-border);white-space:nowrap;position:relative}
.hero-dash[data-theme="dark"] .hd-tbl th{color:#d4c5ff}
.hd-tbl td{padding:5px 9px;border-bottom:1px solid var(--hd-tbl-rowbd);color:var(--hd-tx2);vertical-align:middle}
.hd-tbl tbody tr:last-child td{border-bottom:none}
.hd-tbl col.hd-c-id{width:44px}
.hd-tbl col.hd-c-score{width:42px}
.hd-tbl col.hd-c-pct{width:76px}
.hd-tbl col.hd-c-due{width:72px}
.hd-tbl col.hd-c-status{width:68px}
.hd-rid{font-family:var(--mono);font-size:8.5px;color:var(--hd-ac);font-weight:600;white-space:nowrap}
.hd-name{font-weight:500;color:var(--hd-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.hd-scnum{font-family:var(--mono);font-weight:700;font-size:10px}
.hd-prog{display:inline-block;width:30px;height:3px;background:var(--hd-seg-bg);border-radius:2px;overflow:hidden;margin-right:5px;vertical-align:middle}
.hd-prog-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#7c3aed,#a78bfa)}
.hd-pct{font-size:8.5px;font-weight:600;color:var(--hd-tx2);vertical-align:middle}
.hd-due{font-size:8.5px;color:var(--hd-txm);white-space:nowrap}
.hd-due.hd-over{color:#dc2626;font-weight:600}
.hero-dash[data-theme="dark"] .hd-due.hd-over{color:#f87171;font-weight:500}
.hd-st{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:20px;font-size:7.5px;font-weight:700;white-space:nowrap}
/* Light-mode status pills — mirror app.css m-status in body.light */
.hd-st-over{background:rgba(220,38,38,.12);color:#dc2626;border:1px solid rgba(220,38,38,.2)}
.hd-st-prog{background:rgba(217,119,6,.12);color:#d97706;border:1px solid rgba(217,119,6,.2)}
.hd-st-open{background:#f5f3ff;color:#6d28d9;border:1px solid rgba(124,58,237,.15)}
/* Dark-mode status pills — original values */
.hero-dash[data-theme="dark"] .hd-st-over{background:rgba(220,38,38,.18);color:#fca5a5;border:1px solid rgba(220,38,38,.25)}
.hero-dash[data-theme="dark"] .hd-st-prog{background:rgba(59,130,246,.15);color:#93c5fd;border:1px solid rgba(59,130,246,.22)}
.hero-dash[data-theme="dark"] .hd-st-open{background:rgba(167,139,250,.15);color:#c4b5fd;border:1px solid rgba(167,139,250,.22)}

/* Pie/donut widget */
.hd-pie-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;padding:10px 12px 12px}
.hd-pie-col{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.hd-pie-lbl{font-size:7.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--hd-txm)}
.hd-pie-wrap{position:relative;width:100%;aspect-ratio:1;max-width:86px}
.hd-pie-svg{width:100%;height:100%;display:block}
/* Track circle (first circle in each donut) — swap via CSS per theme */
.hd-pie-svg > circle:first-child{stroke:var(--hd-pie-track) !important}
.hd-pie-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.hd-pie-center span{font-size:14px;font-weight:700;color:var(--hd-tx);line-height:1}
.hd-pie-center small{font-size:7px;color:var(--hd-txm);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}
.hd-pie-legend{display:flex;flex-direction:column;gap:4px}
.hd-pl-item{display:flex;align-items:center;gap:5px;font-size:8.5px;color:var(--hd-tx2);white-space:nowrap}
.hd-pl-item span{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* Todo list widget */
.hd-todo-list{display:flex;flex-direction:column;gap:3px;padding:6px 8px 10px}
.hd-todo{display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:6px;border:1px solid var(--hd-todo-bd);background:var(--hd-todo-bg)}
.hd-todo-icon{width:18px;height:18px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hd-todo-icon svg{width:9px;height:9px;stroke-width:2;fill:none;stroke-linecap:round}
.hd-todo-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0;letter-spacing:.1px}
/* Type-specific tag colors — Light uses saturated app colors, Dark uses softer pastels with stronger bg */
.hero-dash .hd-todo-tag-crisis{color:#dc2626;background:rgba(220,38,38,.12)}
.hero-dash .hd-todo-tag-measure{color:#6d28d9;background:rgba(109,40,217,.12)}
.hero-dash .hd-todo-tag-risk{color:#dc2626;background:rgba(220,38,38,.1)}
.hero-dash .hd-todo-tag-supplier{color:#0369a1;background:rgba(3,105,161,.12)}
.hero-dash[data-theme="dark"] .hd-todo-tag-crisis{color:#fca5a5;background:rgba(220,38,38,.22)}
.hero-dash[data-theme="dark"] .hd-todo-tag-measure{color:#c4b5fd;background:rgba(167,139,250,.2)}
.hero-dash[data-theme="dark"] .hd-todo-tag-risk{color:#fca5a5;background:rgba(220,38,38,.18)}
.hero-dash[data-theme="dark"] .hd-todo-tag-supplier{color:#7dd3fc;background:rgba(14,165,233,.2)}
.hd-todo-code{font-family:var(--mono);font-size:8.5px;color:var(--hd-txm);flex-shrink:0}
.hd-todo-name{font-size:9.5px;font-weight:500;color:var(--hd-tx);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Light: darker red text; Dark: soft red */
.hd-todo-badge{font-size:8.5px;font-weight:700;color:#dc2626;background:rgba(220,38,38,.1);padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0;letter-spacing:.1px}
.hero-dash[data-theme="dark"] .hd-todo-badge{color:#fca5a5;background:rgba(220,38,38,.18)}

/* Responsive — hide hero window on narrow screens (handled by existing media query hiding .hero-win) */
.win-chrome{
  background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.07);
  padding:10px 14px;display:flex;align-items:center;gap:8px;
}
.win-dot{width:10px;height:10px;border-radius:50%}
.win-title{flex:1;text-align:center;font-size:11px;color:rgba(255,255,255,.28);font-family:var(--mono)}
/* Sidebar mini inside hero window */
.win-body{display:flex;height:300px}
.win-sb{
  width:52px;background:linear-gradient(170deg,#1a0840,#2e1269 50%,#5b21b6);
  border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;
  align-items:center;padding:10px 0;gap:4px;flex-shrink:0;
}
.win-sb-icon{
  width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:.15s;
}
.win-sb-icon.active{background:rgba(255,255,255,.15)}
.win-sb-icon:hover{background:rgba(255,255,255,.08)}
.win-sb-icon svg{width:14px;height:14px;stroke:rgba(255,255,255,.55);fill:none;stroke-width:2;stroke-linecap:round}
.win-sb-icon.active svg{stroke:rgba(255,255,255,.9)}
.win-sb-icon.active::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:18px;background:var(--v400);border-radius:0 2px 2px 0;
}
.win-sb-icon{position:relative}
.win-content{flex:1;padding:14px;overflow:hidden;background:var(--dark2)}
/* KPI row in win */
.w-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}
.w-kpi{background:rgba(255,255,255,.04);border:1px solid rgba(167,139,250,.1);border-radius:9px;padding:9px 10px}
.w-kpi-lbl{font-size:8px;text-transform:uppercase;letter-spacing:.7px;color:rgba(255,255,255,.3);margin-bottom:3px}
.w-kpi-val{font-size:20px;font-weight:700;letter-spacing:-1px;line-height:1}
.w-kpi-seg{height:3px;border-radius:2px;background:rgba(255,255,255,.07);margin-top:6px;overflow:hidden}
.w-kpi-seg-fill{height:100%;border-radius:2px}
/* Chart area */
.w-chart-area{background:rgba(255,255,255,.025);border:1px solid rgba(167,139,250,.08);border-radius:9px;padding:10px;margin-bottom:8px}
.w-chart-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.w-chart-title{font-size:10px;font-weight:600;color:rgba(255,255,255,.55)}
.w-chart-badge{font-size:9px;padding:2px 7px;border-radius:10px;font-weight:600}
/* Brutto vs residual chart bars */
.bvr-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.bvr-col{display:flex;flex-direction:column;gap:3px}
.bvr-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.6px;color:rgba(255,255,255,.3);margin-bottom:2px}
.bvr-bar-row{display:flex;align-items:center;gap:5px}
.bvr-bar-label{font-size:8px;color:rgba(255,255,255,.4);width:36px;text-align:right;flex-shrink:0}
.bvr-bar-track{flex:1;height:6px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.bvr-bar-fill{height:100%;border-radius:3px}
.bvr-val{font-size:8.5px;font-weight:700;width:14px;flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   SECTION SCAFFOLDING
══════════════════════════════════════════════════════════ */
.section{padding:88px clamp(16px,5%,72px)}
.si{max-width:1200px;margin:0 auto}
.eyebrow{font-size:10.5px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase;color:var(--v600);display:flex;align-items:center;gap:8px;margin-bottom:10px}
.eyebrow::before{content:'';width:20px;height:2px;background:var(--v600);border-radius:1px;flex-shrink:0}
.h2{font-size:clamp(26px,3.6vw,42px);font-weight:800;color:#1a1028;letter-spacing:-1.2px;line-height:1.13;margin-bottom:14px}
.h2 em{color:var(--v700);font-style:normal}
.lead{font-size:17px;color:#5b4d7a;line-height:1.75;max-width:560px}

.bg-white{background:#fff}
.bg-soft{background:#f7f5fc}
.bg-lav{background:#ede9fe}
.bg-dark{background:var(--dark)}
.bg-darker{background:var(--dark2)}

/* ══════════════════════════════════════════════════════════
   TRUST BAR
══════════════════════════════════════════════════════════ */
.trust-bar{
  background:#f7f5fc;
  padding:20px clamp(16px,5%,72px);
}
.trust-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px}
.ti{
  display:flex;align-items:center;gap:6px;
  font-size:12px;color:#4a3b72;font-weight:600;
  background:#fff;
  border-radius:20px;
  padding:6px 14px;
  box-shadow:0 1px 4px rgba(109,40,217,.08);
  white-space:nowrap;
}
.ti svg{width:13px;height:13px;stroke:var(--v600);fill:none;stroke-width:2.5;flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   STATS
══════════════════════════════════════════════════════════ */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:52px}
.stat-card{
  text-align:center;padding:28px 16px;
  background:#fff;border-radius:14px;border:1px solid #e8e0f8;
  box-shadow:0 2px 12px rgba(109,40,217,.04);
  transition:var(--ease);
}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 10px 32px rgba(109,40,217,.1);border-color:var(--v300)}
.stat-num{font-size:42px;font-weight:800;color:var(--v700);letter-spacing:-2.5px;line-height:1}
.stat-lbl{font-size:13px;color:#8b7aad;margin-top:6px;line-height:1.4}
@media(max-width:680px){.stats-grid{grid-template-columns:1fr 1fr}}

/* ══════════════════════════════════════════════════════════
   FEATURE ROWS
══════════════════════════════════════════════════════════ */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:56px}
.feat.flip{direction:rtl}.feat.flip>*{direction:ltr}
.feat-text h3{font-size:clamp(22px,2.8vw,32px);font-weight:800;color:#1a1028;letter-spacing:-.8px;line-height:1.15;margin-bottom:12px}
.feat-text p{font-size:15.5px;color:#5b4d7a;line-height:1.75;margin-bottom:20px}
.feat-checklist{display:flex;flex-direction:column;gap:10px}
.fci{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:#3d2f61;line-height:1.5}
.fci-dot{width:18px;height:18px;border-radius:50%;background:var(--v600);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.fci-dot svg{width:10px;height:10px;stroke:#fff;fill:none;stroke-width:3}

/* App window wrapper for features */
.app-win{
  background:var(--dark2);border:1px solid rgba(167,139,250,.18);
  border-radius:16px;overflow:hidden;
  box-shadow:0 20px 60px rgba(109,40,217,.16),0 4px 16px rgba(0,0,0,.15);
}
.app-topbar{
  background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.07);
  padding:10px 16px;display:flex;align-items:center;gap:10px;
}
/* Inside hero-dash the topbar follows the current theme */
.hero-dash .app-topbar{background:var(--hd-topbar-bg);border-bottom:1px solid var(--hd-topbar-bd);box-shadow:var(--hd-topbar-sh);transition:background .25s,border-color .25s,box-shadow .25s}
.hero-dash .app-tb-title{color:var(--hd-topbar-tx)}
/* Themed badges inside hero-dash topbar — override inline styles via specificity */
.hero-dash .app-tb-badge.hd-badge-crit{background:rgba(220,38,38,.1);color:#b91c1c;border:1px solid rgba(220,38,38,.22)}
.hero-dash[data-theme="dark"] .app-tb-badge.hd-badge-crit{background:rgba(220,38,38,.18);color:#fca5a5;border:1px solid rgba(220,38,38,.3)}
.hero-dash .app-tb-badge.hd-badge-total{background:rgba(124,58,237,.08);color:#6d28d9;border:1px solid rgba(124,58,237,.2)}
.hero-dash[data-theme="dark"] .app-tb-badge.hd-badge-total{background:rgba(167,139,250,.15);color:#c4b5fd;border:1px solid rgba(167,139,250,.25)}
.app-tb-dots{display:flex;gap:5px}
.app-tb-dot{width:9px;height:9px;border-radius:50%}
.app-tb-title{font-size:12px;font-weight:600;color:rgba(255,255,255,.7);flex:1;margin-left:4px}
.app-topbar > .app-tb-title:first-child{margin-left:0}
.app-tb-badge{font-size:9.5px;padding:2px 8px;border-radius:20px;font-weight:700}
.app-body{padding:14px}

/* Theme toggle inside hero-dash topbar */
.hd-theme-tog{
  display:inline-flex;align-items:center;gap:0;
  background:var(--hd-card);border:1px solid var(--hd-bd);border-radius:20px;
  padding:2px;cursor:pointer;transition:background .2s,border-color .2s;
  font-family:var(--font);flex-shrink:0;
}
.hd-theme-tog:hover{border-color:var(--hd-ac)}
.hd-theme-opt{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:18px;border-radius:20px;
  color:var(--hd-txm);transition:all .2s;
}
.hd-theme-opt svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hero-dash:not([data-theme="dark"]) .hd-theme-opt.hd-theme-light{background:var(--hd-ac);color:#fff}
.hero-dash[data-theme="dark"] .hd-theme-opt.hd-theme-dark{background:var(--hd-ac);color:#0a0714}

/* ── HEATMAP MOCKUP (1:1 from app /pages/heatmap-matrix.php) ── */
/* Theme variables — Light+Dark palette, matches .hero-dash system */
.heatmap-dash{
  /* LIGHT (default not used — default is dark; these activate with data-theme="light") */
  --hm-bg:#f7f5fc;
  --hm-card:#fff;
  --hm-tx:#1a1028;
  --hm-tx2:#5b4d7a;
  --hm-txm:#8b7faa;
  --hm-bd:#d4cce8;
  --hm-ac:#7c3aed;
  --hm-panel-bg:rgba(124,58,237,.03);
  --hm-panel-bd:rgba(124,58,237,.1);
  --hm-toggle-bg:#fff;
  --hm-toggle-bd:#d4cce8;
  --hm-toggle-tx:#5b4d7a;
  --hm-seg-track:rgba(124,58,237,.1);
  --hm-rid-bg:rgba(124,58,237,.08);
  --hm-rid-bd:rgba(124,58,237,.2);
  --hm-rid-tx:#6d28d9;
  --hm-topbar-bg:#fff;
  --hm-topbar-bd:#d4cce8;
  --hm-topbar-tx:#1a1028;
  --hm-topbar-sh:0 1px 3px rgba(109,40,217,.06);
  transition:background .25s;
}
.heatmap-dash[data-theme="dark"]{
  /* DARK — premium palette matching .hero-dash dark */
  --hm-bg:#0b0818;
  --hm-card:#1d1940;
  --hm-tx:#f1ebff;
  --hm-tx2:#c4b5e8;
  --hm-txm:#8779b8;
  --hm-bd:#2d2556;
  --hm-ac:#b498ff;
  --hm-panel-bg:rgba(180,152,255,.04);
  --hm-panel-bd:rgba(180,152,255,.1);
  --hm-toggle-bg:rgba(180,152,255,.08);
  --hm-toggle-bd:rgba(180,152,255,.14);
  --hm-toggle-tx:#c4b5e8;
  --hm-seg-track:rgba(180,152,255,.1);
  --hm-rid-bg:rgba(180,152,255,.12);
  --hm-rid-bd:rgba(180,152,255,.2);
  --hm-rid-tx:#d4c5ff;
  --hm-topbar-bg:#15112e;
  --hm-topbar-bd:#2d2556;
  --hm-topbar-tx:#e8dfff;
  --hm-topbar-sh:0 1px 0 rgba(180,152,255,.06),0 2px 8px rgba(0,0,0,.5);
}
/* Inside heatmap-dash the topbar follows the theme */
.heatmap-dash .app-topbar{background:var(--hm-topbar-bg);border-bottom:1px solid var(--hm-topbar-bd);box-shadow:var(--hm-topbar-sh);transition:background .25s,border-color .25s,box-shadow .25s}
.heatmap-dash .app-tb-title{color:var(--hm-topbar-tx)}
/* Themed badges — override inline styles via specificity */
.heatmap-dash .app-tb-badge.hd-badge-crit{background:rgba(220,38,38,.1);color:#b91c1c;border:1px solid rgba(220,38,38,.22)}
.heatmap-dash[data-theme="dark"] .app-tb-badge.hd-badge-crit{background:rgba(220,38,38,.18);color:#fca5a5;border:1px solid rgba(220,38,38,.3)}
.heatmap-dash .app-tb-badge.hd-badge-total{background:rgba(124,58,237,.08);color:#6d28d9;border:1px solid rgba(124,58,237,.2)}
.heatmap-dash[data-theme="dark"] .app-tb-badge.hd-badge-total{background:rgba(167,139,250,.15);color:#c4b5fd;border:1px solid rgba(167,139,250,.25)}
/* Theme toggle (reuse hd-theme-tog styling, but scoped to heatmap-dash) */
.heatmap-dash .hd-theme-tog{background:var(--hm-card);border:1px solid var(--hm-bd)}
.heatmap-dash .hd-theme-tog:hover{border-color:var(--hm-ac)}
.heatmap-dash .hd-theme-opt{color:var(--hm-txm)}
.heatmap-dash:not([data-theme="dark"]) .hd-theme-opt.hd-theme-light{background:var(--hm-ac);color:#fff}
.heatmap-dash[data-theme="dark"] .hd-theme-opt.hd-theme-dark{background:var(--hm-ac);color:#0b0818}
/* App-win inside heatmap-dash uses themed bg */
.heatmap-dash.app-win{background:var(--hm-bg);border-color:var(--hm-bd);transition:background .25s,border-color .25s}
.heatmap-dash[data-theme="dark"].app-win{background:var(--hm-bg);border-color:rgba(180,152,255,.14)}

/* Widen the feature row for the heatmap so the matrix gets more breathing room */
.feat.feat-wide{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px}
.feat.feat-wider{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px}
/* Layout: matrix (left) + risk list (right) like app's grid-template-columns:1fr 340px */
.hm-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:start}
.hm-matrix-box{position:relative;min-width:0}
.hm-grid{display:grid;grid-template-columns:52px minmax(0,1fr);gap:5px;width:100%}
.hm-yrow{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding-right:6px}
.hm-ylbl{font-size:9px;font-weight:500;color:var(--hm-txm);text-align:right;line-height:1.25}
.hm-rowcells{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.hm-xrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px}
.hm-xlbl{text-align:center;font-size:9px;font-weight:500;color:var(--hm-txm)}
/* Cell — pastel tints matching app cellBg(). Larger cells now that the box is wider.
   overflow:visible allows hover-scaled bubbles to pop over the cell border cleanly. */
.hm-cell{
  aspect-ratio:1;border-radius:7px;position:relative;overflow:visible;min-height:64px;
  transition:.15s;
}
.hm-cell .sc{position:absolute;bottom:3px;right:5px;font-size:10.5px;font-weight:700;line-height:1;font-family:var(--mono);transition:opacity .15s;pointer-events:none;opacity:.85}
.hm-cell.has-bubbles .sc{opacity:.45}
/* 4 severity tints — dark-theme adapted from app rgba values */
.hm-c-low  {background:rgba(22,163,74,.14); border:1.5px solid rgba(22,163,74,.35)}
.hm-c-low  .sc{color:rgba(134,239,172,.85)}
.hm-c-med  {background:rgba(217,119,6,.15); border:1.5px solid rgba(217,119,6,.4)}
.hm-c-med  .sc{color:rgba(253,230,138,.9)}
.hm-c-high {background:rgba(234,88,12,.18); border:1.5px solid rgba(234,88,12,.45)}
.hm-c-high .sc{color:rgba(253,186,116,.95)}
.hm-c-crit {background:rgba(220,38,38,.22); border:1.5px solid rgba(220,38,38,.5)}
.hm-c-crit .sc{color:rgba(252,165,165,.95)}
/* Light-mode cell variants — softer tints for white background */
.heatmap-dash:not([data-theme="dark"]) .hm-c-low  {background:rgba(22,163,74,.1); border:1.5px solid rgba(22,163,74,.3)}
.heatmap-dash:not([data-theme="dark"]) .hm-c-low  .sc{color:#15803d}
.heatmap-dash:not([data-theme="dark"]) .hm-c-med  {background:rgba(217,119,6,.11); border:1.5px solid rgba(217,119,6,.32)}
.heatmap-dash:not([data-theme="dark"]) .hm-c-med  .sc{color:#b45309}
.heatmap-dash:not([data-theme="dark"]) .hm-c-high {background:rgba(234,88,12,.12); border:1.5px solid rgba(234,88,12,.36)}
.heatmap-dash:not([data-theme="dark"]) .hm-c-high .sc{color:#c2410c}
.heatmap-dash:not([data-theme="dark"]) .hm-c-crit {background:rgba(220,38,38,.14); border:1.5px solid rgba(220,38,38,.42)}
.heatmap-dash:not([data-theme="dark"]) .hm-c-crit .sc{color:#b91c1c}
/* Risk bubbles — brutto red, residual violet — exactly like app */
.hm-bub{
  position:absolute;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;color:#fff;font-family:var(--mono);
  cursor:pointer;transition:transform .15s,opacity .15s;
  box-shadow:0 1px 2px rgba(0,0,0,.25);
}
.hm-bub.brutto{background:rgba(220,38,38,.92);z-index:2}
.hm-bub.residual{background:rgba(124,58,237,.92);z-index:1}
/* Hover state — set via JS on bubbles, list rows, and arrows */
.hm-matrix-box.is-hovering .hm-bub:not(.is-hover){opacity:.12}
.hm-matrix-box.is-hovering .hm-bub.is-hover{transform:scale(1.25);z-index:10;opacity:1}
.hm-matrix-box.is-hovering .hm-arrows line:not(.is-hover){opacity:.1}
.hm-list-panel.is-hovering .hm-lrow:not(.is-hover){opacity:.35}
/* Arrow overlay layer (brutto → residual) */
.hm-arrows{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}
/* Arrow lines — themed for visibility. Default = dark mode. */
.hm-arr-line{
  stroke:#c4b5e8;
  stroke-width:1.3;
  stroke-dasharray:3 2;
  stroke-linecap:round;
  opacity:.7;
}
.hm-arr-marker path{fill:#c4b5e8;opacity:.8}
/* Light mode — medium purple with subtle white halo for contrast on colored cells */
.heatmap-dash:not([data-theme="dark"]) .hm-arr-line{
  stroke:#7c3aed;
  stroke-width:1.3;
  stroke-dasharray:3 2;
  opacity:.75;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.7));
}
.heatmap-dash:not([data-theme="dark"]) .hm-arr-marker path{fill:#7c3aed;opacity:.85}
/* On hover, the active arrow pops */
.hm-matrix-box.is-hovering .hm-arr-line.is-hover{stroke-width:2;opacity:1;stroke-dasharray:none}
/* View toggles + legend (app: radios + colored dots) */
.hm-view-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.hm-legend-inline{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--hm-tx2)}
.hm-leg-item{display:flex;align-items:center;gap:5px}
.hm-leg-dot-brut{width:9px;height:9px;border-radius:50%;background:rgba(220,38,38,.92);display:inline-block}
.hm-leg-dot-res{width:9px;height:9px;border-radius:50%;background:rgba(124,58,237,.92);display:inline-block}
.hm-toggle{display:flex;background:var(--hm-toggle-bg);border:1px solid var(--hm-toggle-bd);border-radius:7px;overflow:hidden}
.hm-toggle-btn{padding:4px 11px;font-size:10px;font-weight:600;border:none;background:transparent;color:var(--hm-toggle-tx);font-family:var(--font);cursor:pointer;transition:.15s}
.hm-toggle-btn.on{background:var(--v700);color:#fff}
.heatmap-dash[data-theme="dark"] .hm-toggle-btn.on{background:var(--hm-ac);color:#0b0818}
.hm-filter{background:var(--hm-toggle-bg);border:1px solid var(--hm-toggle-bd);border-radius:7px;padding:4px 10px;font-size:10px;color:var(--hm-tx2);font-family:var(--font)}
/* Risk list panel (right side, mirrors app's side panel) */
.hm-list-panel{
  background:var(--hm-panel-bg);border:1px solid var(--hm-panel-bd);
  border-radius:10px;padding:12px;
}
.hm-list-hdr{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--hm-txm);margin-bottom:10px}
.hm-list{display:flex;flex-direction:column;gap:3px}
.hm-lrow{
  display:grid;grid-template-columns:16px 42px 1fr 54px 28px;align-items:center;gap:6px;
  padding:5px 6px;border-radius:5px;cursor:pointer;transition:.1s;
}
.hm-lrow:hover{background:rgba(180,152,255,.08)}
.heatmap-dash:not([data-theme="dark"]) .hm-lrow:hover{background:rgba(124,58,237,.06)}
.hm-lnum{font-size:9.5px;font-weight:700;color:var(--hm-txm);font-family:var(--mono);text-align:right}
.heatmap-dash .rid{font-size:8.5px;font-weight:700;color:var(--hm-rid-tx);font-family:var(--mono);
  background:var(--hm-rid-bg);border:1px solid var(--hm-rid-bd);
  padding:1px 4px;border-radius:3px;text-align:center;letter-spacing:.2px}
.hm-lname{font-size:10.5px;color:var(--hm-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 10-segment fulfillment bar — exactly like app jsSegmentBar() */
.seg-bar{display:flex;gap:1.5px;align-items:center}
.seg{flex:1;min-width:0;height:5px;border-radius:1.5px;background:var(--hm-seg-track)}
.seg.on-0{background:#6d28d9}.seg.on-1{background:#7c3aed}.seg.on-2{background:#8b5cf6}
.seg.on-3{background:#6366f1}.seg.on-4{background:#3b82f6}.seg.on-5{background:#0ea5e9}
.seg.on-6{background:#06b6d4}.seg.on-7{background:#10b981}.seg.on-8{background:#22c55e}
.seg.on-9{background:#16a34a}
/* Severity score badge (right side of list rows) */
.b-badge{
  font-size:9px;font-weight:700;padding:1px 0;border-radius:20px;
  display:flex;align-items:center;justify-content:center;gap:3px;
  font-family:var(--mono);letter-spacing:.2px;
}
.b-badge .b-dot{width:5px;height:5px;border-radius:50%;display:inline-block}
/* Dark-mode severity pills (default) */
.b-c{background:rgba(220,38,38,.18);color:#fca5a5;border:1px solid rgba(220,38,38,.3)}
.b-c .b-dot{background:#fca5a5}
.b-h{background:rgba(234,88,12,.16);color:#fdba74;border:1px solid rgba(234,88,12,.28)}
.b-h .b-dot{background:#fdba74}
.b-m{background:rgba(217,119,6,.16);color:#fde68a;border:1px solid rgba(217,119,6,.28)}
.b-m .b-dot{background:#fde68a}
.b-l{background:rgba(22,163,74,.16);color:#86efac;border:1px solid rgba(22,163,74,.28)}
.b-l .b-dot{background:#86efac}
/* Light-mode severity pills — saturated for white background */
.heatmap-dash:not([data-theme="dark"]) .b-c{background:rgba(220,38,38,.1);color:#b91c1c;border:1px solid rgba(220,38,38,.22)}
.heatmap-dash:not([data-theme="dark"]) .b-c .b-dot{background:#dc2626}
.heatmap-dash:not([data-theme="dark"]) .b-h{background:rgba(234,88,12,.1);color:#c2410c;border:1px solid rgba(234,88,12,.22)}
.heatmap-dash:not([data-theme="dark"]) .b-h .b-dot{background:#ea580c}
.heatmap-dash:not([data-theme="dark"]) .b-m{background:rgba(217,119,6,.1);color:#b45309;border:1px solid rgba(217,119,6,.22)}
.heatmap-dash:not([data-theme="dark"]) .b-m .b-dot{background:#d97706}
.heatmap-dash:not([data-theme="dark"]) .b-l{background:rgba(22,163,74,.1);color:#15803d;border:1px solid rgba(22,163,74,.22)}
.heatmap-dash:not([data-theme="dark"]) .b-l .b-dot{background:#16a34a}
/* Axis outer labels */
.hm-axis-outer-x{text-align:center;margin-top:6px;font-size:9.5px;color:var(--hm-txm)}
/* Responsive: stack list under matrix on narrow */
@media(max-width:1100px){
  .hm-layout{grid-template-columns:1fr}
}

/* ── GRAPH MOCKUP — 1:1 from /pages/graph.php ── */
/* Toolbar — matches #graph-controls */
.gr-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);margin:-14px -14px 10px}
.gr-filter{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 9px;border-radius:7px;
  font-size:10.5px;font-weight:600;font-family:var(--font);
  white-space:nowrap;transition:.12s;cursor:pointer;
  border:1px solid transparent;
}
/* 5 type-specific filter chip colors — exact app stroke colors */
.gr-filter.gr-f-risk    {color:#fca5a5;background:rgba(220,38,38,.14);border-color:rgba(220,38,38,.3)}
.gr-filter.gr-f-measure {color:#c4b5fd;background:rgba(124,58,237,.15);border-color:rgba(124,58,237,.32)}
.gr-filter.gr-f-asset   {color:#67e8f9;background:rgba(8,145,178,.15);border-color:rgba(8,145,178,.3)}
.gr-filter.gr-f-threat  {color:#fcd34d;background:rgba(217,119,6,.14);border-color:rgba(217,119,6,.3)}
.gr-filter.gr-f-supplier{color:#6ee7b7;background:rgba(5,150,105,.14);border-color:rgba(5,150,105,.3)}
.gr-filter.gr-off{opacity:.4;filter:grayscale(.4)}
.gr-filter .gr-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.gr-filter.gr-f-risk .gr-chip-dot    {background:#dc2626}
.gr-filter.gr-f-measure .gr-chip-dot {background:#7c3aed}
.gr-filter.gr-f-asset .gr-chip-dot   {background:#0891b2}
.gr-filter.gr-f-threat .gr-chip-dot  {background:#d97706}
.gr-filter.gr-f-supplier .gr-chip-dot{background:#059669}
.gr-filter .gr-cnt{opacity:.65;font-weight:500}
.gr-sep{width:1px;height:18px;background:rgba(255,255,255,.1);margin:0 2px}
.gr-tbtn{
  display:inline-flex;align-items:center;gap:4px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.65);padding:3px 8px;border-radius:6px;
  font-size:10px;font-weight:500;font-family:var(--font);cursor:pointer;transition:.12s;
}
.gr-tbtn:hover{background:rgba(255,255,255,.08);color:#fff}
.gr-tbtn svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
/* Canvas wrapper */
.gr-canvas{
  position:relative;width:100%;aspect-ratio:16/9;
  background:
    radial-gradient(ellipse at 30% 20%,rgba(124,58,237,.06) 0%,transparent 55%),
    radial-gradient(ellipse at 70% 80%,rgba(167,139,250,.05) 0%,transparent 55%),
    rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.05);border-radius:9px;overflow:hidden;
}
.gr-canvas svg{width:100%;height:100%;display:block}
/* Nodes inside SVG — lifted hover */
.gr-node{cursor:pointer;transition:transform .15s,opacity .18s}
.gr-node circle{transition:stroke-width .15s,filter .15s}
.gr-canvas svg line{transition:stroke-opacity .18s}
/* Hover: dim unconnected nodes + links, keep connected ones bright */
.gr-canvas.gr-hovering .gr-node.gr-dim{opacity:.15}
.gr-canvas.gr-hovering line.gr-dim{stroke-opacity:.05}
.gr-canvas.gr-hovering line.gr-active{stroke-opacity:.9}
.gr-node:hover circle{stroke-width:2.5}
/* Node label */
.gr-label{font-family:var(--font);font-size:9px;fill:rgba(255,255,255,.82);font-weight:500;pointer-events:none;transition:fill .25s}
.gr-sublbl{font-family:var(--mono);font-size:7.5px;fill:rgba(255,255,255,.4);pointer-events:none;transition:fill .25s}
/* Node icon character */
.gr-ico{font-size:10px;pointer-events:none;text-anchor:middle;dominant-baseline:central;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Segoe UI Symbol",sans-serif}

/* ── GRAPH-DASH THEME SYSTEM (mirrors .heatmap-dash) ── */
.graph-dash{
  /* LIGHT theme variables (activate with data-theme="light") */
  --gr-bg:#f7f5fc;
  --gr-card:#fff;
  --gr-tx:#1a1028;
  --gr-tx2:#5b4d7a;
  --gr-txm:#8b7faa;
  --gr-bd:#d4cce8;
  --gr-ac:#7c3aed;
  --gr-topbar-bg:#fff;
  --gr-topbar-bd:#d4cce8;
  --gr-topbar-tx:#1a1028;
  --gr-topbar-sh:0 1px 3px rgba(109,40,217,.06);
  --gr-canvas-bg:
    radial-gradient(ellipse at 30% 20%,rgba(124,58,237,.05) 0%,transparent 55%),
    radial-gradient(ellipse at 70% 80%,rgba(167,139,250,.04) 0%,transparent 55%),
    #fbfaff;
  --gr-canvas-bd:#e4ddf4;
  --gr-toolbar-bg:rgba(124,58,237,.03);
  --gr-toolbar-bd:rgba(124,58,237,.1);
  --gr-sep-col:rgba(26,16,40,.1);
  --gr-tbtn-bg:#fff;
  --gr-tbtn-bd:#d4cce8;
  --gr-tbtn-tx:#5b4d7a;
  --gr-tbtn-bg-h:rgba(124,58,237,.08);
  --gr-tbtn-tx-h:#1a1028;
  --gr-label-fill:rgba(26,16,40,.78);
  --gr-sublbl-fill:rgba(91,77,122,.65);
  transition:background .25s;
}
.graph-dash[data-theme="dark"]{
  /* DARK — matches existing .app-win default (premium dark palette) */
  --gr-bg:var(--dark2);
  --gr-card:#1d1940;
  --gr-tx:#f1ebff;
  --gr-tx2:#c4b5e8;
  --gr-txm:#8779b8;
  --gr-bd:rgba(167,139,250,.18);
  --gr-ac:#b498ff;
  --gr-topbar-bg:rgba(255,255,255,.04);
  --gr-topbar-bd:rgba(255,255,255,.07);
  --gr-topbar-tx:rgba(255,255,255,.7);
  --gr-topbar-sh:none;
  --gr-canvas-bg:
    radial-gradient(ellipse at 30% 20%,rgba(124,58,237,.06) 0%,transparent 55%),
    radial-gradient(ellipse at 70% 80%,rgba(167,139,250,.05) 0%,transparent 55%),
    rgba(0,0,0,.25);
  --gr-canvas-bd:rgba(255,255,255,.05);
  --gr-toolbar-bg:rgba(255,255,255,.02);
  --gr-toolbar-bd:rgba(255,255,255,.06);
  --gr-sep-col:rgba(255,255,255,.1);
  --gr-tbtn-bg:rgba(255,255,255,.04);
  --gr-tbtn-bd:rgba(255,255,255,.08);
  --gr-tbtn-tx:rgba(255,255,255,.65);
  --gr-tbtn-bg-h:rgba(255,255,255,.08);
  --gr-tbtn-tx-h:#fff;
  --gr-label-fill:rgba(255,255,255,.82);
  --gr-sublbl-fill:rgba(255,255,255,.4);
}
/* Apply themed surfaces — only active when .graph-dash is present */
.graph-dash.app-win{background:var(--gr-bg);border-color:var(--gr-bd);transition:background .25s,border-color .25s}
.graph-dash .app-topbar{background:var(--gr-topbar-bg);border-bottom:1px solid var(--gr-topbar-bd);box-shadow:var(--gr-topbar-sh);transition:background .25s,border-color .25s,box-shadow .25s}
.graph-dash .app-tb-title{color:var(--gr-topbar-tx)}
.graph-dash .gr-toolbar{background:var(--gr-toolbar-bg);border-bottom:1px solid var(--gr-toolbar-bd)}
.graph-dash .gr-sep{background:var(--gr-sep-col)}
.graph-dash .gr-tbtn{background:var(--gr-tbtn-bg);border-color:var(--gr-tbtn-bd);color:var(--gr-tbtn-tx)}
.graph-dash .gr-tbtn:hover{background:var(--gr-tbtn-bg-h);color:var(--gr-tbtn-tx-h)}
.graph-dash .gr-canvas{background:var(--gr-canvas-bg);border-color:var(--gr-canvas-bd)}
.graph-dash .gr-label{fill:var(--gr-label-fill)}
.graph-dash .gr-sublbl{fill:var(--gr-sublbl-fill)}
/* Topbar badges retain their themed look across both modes */
.graph-dash[data-theme="light"] .app-tb-badge[style*="rgba(167,139,250"]{background:rgba(124,58,237,.08)!important;color:#6d28d9!important;border:1px solid rgba(124,58,237,.2)!important}
.graph-dash[data-theme="light"] .app-tb-badge[style*="rgba(34,197,94"]{background:rgba(22,163,74,.1)!important;color:#15803d!important;border:1px solid rgba(22,163,74,.25)!important}
/* Light-mode filter chips — slightly deeper colors for white background */
.graph-dash[data-theme="light"] .gr-filter.gr-f-risk    {color:#b91c1c;background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.25)}
.graph-dash[data-theme="light"] .gr-filter.gr-f-measure {color:#6d28d9;background:rgba(124,58,237,.08);border-color:rgba(124,58,237,.25)}
.graph-dash[data-theme="light"] .gr-filter.gr-f-asset   {color:#0e7490;background:rgba(8,145,178,.08);border-color:rgba(8,145,178,.25)}
.graph-dash[data-theme="light"] .gr-filter.gr-f-threat  {color:#b45309;background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.25)}
.graph-dash[data-theme="light"] .gr-filter.gr-f-supplier{color:#047857;background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.25)}
/* Theme toggle inside graph-dash */
.graph-dash .hd-theme-tog{background:var(--gr-card);border:1px solid var(--gr-bd)}
.graph-dash .hd-theme-tog:hover{border-color:var(--gr-ac)}
.graph-dash .hd-theme-opt{color:var(--gr-txm)}
.graph-dash[data-theme="light"] .hd-theme-opt.hd-theme-light{background:var(--gr-ac);color:#fff}
.graph-dash[data-theme="dark"]  .hd-theme-opt.hd-theme-dark {background:var(--gr-ac);color:#0b0818}

/* ── BCM TOPOLOGY ── 1:1 from /pages/bcm-process-detail.php Recovery Topology */
/* Theme variables (mirrors .heatmap-dash / .graph-dash system) */
.bcm-dash{
  --bc-bg:#f7f5fc;
  --bc-card:#fff;
  --bc-tx:#1a1028;
  --bc-tx2:#5b4d7a;
  --bc-txm:#8b7faa;
  --bc-bd:#d4cce8;
  --bc-ac:#7c3aed;
  --bc-topbar-bg:#fff;
  --bc-topbar-bd:#d4cce8;
  --bc-topbar-tx:#1a1028;
  --bc-topbar-sh:0 1px 3px rgba(109,40,217,.06);
  --bc-canvas-bg:#fbfaff;
  --bc-canvas-bd:#e4ddf4;
  --bc-col-sep:rgba(124,58,237,.08);
  --bc-col-lbl:#8b7faa;
  --bc-node-lbl:#1a1028;
  --bc-node-sub:#8b7faa;
  --bc-kpi-bg:#fff;
  --bc-kpi-bd:#d4cce8;
  --bc-kpi-lbl:#8b7faa;
  --bc-kpi-val:#1a1028;
  transition:background .25s;
}
.bcm-dash[data-theme="dark"]{
  --bc-bg:var(--dark2);
  --bc-card:#1d1940;
  --bc-tx:#f1ebff;
  --bc-tx2:#c4b5e8;
  --bc-txm:#8779b8;
  --bc-bd:rgba(167,139,250,.18);
  --bc-ac:#b498ff;
  --bc-topbar-bg:rgba(255,255,255,.04);
  --bc-topbar-bd:rgba(255,255,255,.07);
  --bc-topbar-tx:rgba(255,255,255,.7);
  --bc-topbar-sh:none;
  --bc-canvas-bg:rgba(0,0,0,.22);
  --bc-canvas-bd:rgba(255,255,255,.05);
  --bc-col-sep:rgba(167,139,250,.1);
  --bc-col-lbl:rgba(255,255,255,.45);
  --bc-node-lbl:#f1ebff;
  --bc-node-sub:#9a8cc2;
  --bc-kpi-bg:rgba(255,255,255,.04);
  --bc-kpi-bd:rgba(255,255,255,.08);
  --bc-kpi-lbl:rgba(255,255,255,.4);
  --bc-kpi-val:#f1ebff;
}
.bcm-dash.app-win{background:var(--bc-bg);border-color:var(--bc-bd);transition:background .25s,border-color .25s}
.bcm-dash .app-topbar{background:var(--bc-topbar-bg);border-bottom:1px solid var(--bc-topbar-bd);box-shadow:var(--bc-topbar-sh);transition:background .25s,border-color .25s,box-shadow .25s}
.bcm-dash .app-tb-title{color:var(--bc-topbar-tx)}
/* Theme toggle inside bcm-dash */
.bcm-dash .hd-theme-tog{background:var(--bc-card);border:1px solid var(--bc-bd)}
.bcm-dash .hd-theme-tog:hover{border-color:var(--bc-ac)}
.bcm-dash .hd-theme-opt{color:var(--bc-txm)}
.bcm-dash[data-theme="light"] .hd-theme-opt.hd-theme-light{background:var(--bc-ac);color:#fff}
.bcm-dash[data-theme="dark"]  .hd-theme-opt.hd-theme-dark {background:var(--bc-ac);color:#0b0818}
/* Live badge adapts to theme */
.bcm-dash[data-theme="light"] .bcm-live-badge{background:rgba(22,163,74,.1)!important;color:#15803d!important;border-color:rgba(22,163,74,.25)!important}
/* Body grid: topology on top (full width), KPIs below */
.bcm-body{padding:14px;display:flex;flex-direction:column;gap:12px}
/* ── Legend row above topology ── */
.bcm-topo-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.bcm-topo-ttl{font-size:12.5px;font-weight:700;color:var(--bc-tx)}
.bcm-topo-legend{display:flex;flex-wrap:wrap;gap:10px 12px;font-size:9.5px;color:var(--bc-txm)}
.bcm-topo-legend span{display:inline-flex;align-items:center;gap:5px}
.bcm-topo-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}
/* ── Recovery Topology SVG Canvas ── */
.bcm-topo{
  background:var(--bc-canvas-bg);border:1px solid var(--bc-canvas-bd);
  border-radius:9px;padding:14px 12px 10px;position:relative;overflow:hidden;
  transition:background .25s,border-color .25s;
}
.bcm-topo svg{width:100%;height:auto;display:block;overflow:visible}
/* Column headers (above SVG) */
.bcm-col-headers{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  padding:0 4px 8px;border-bottom:1px dashed var(--bc-col-sep);margin-bottom:10px;
}
.bcm-col-head{text-align:center;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--bc-col-lbl)}
.bcm-col-head .bcm-col-cnt{font-size:8.5px;font-weight:500;opacity:.65;margin-left:4px}
/* SVG node text styling via CSS */
.bcm-topo text.bc-nlbl{font-family:var(--font);font-size:11px;font-weight:700;fill:var(--bc-node-lbl)}
.bcm-topo text.bc-nsub{font-family:var(--font);font-size:9px;font-weight:500;fill:var(--bc-node-sub)}
.bcm-topo text.bc-nico{font-family:var(--mono);font-size:13px;font-weight:500}
.bcm-topo .bc-node{transition:filter .18s ease, opacity .18s ease;cursor:pointer}
.bcm-topo .bc-node:hover{filter:drop-shadow(0 4px 10px rgba(0,0,0,.22))}
/* ── Focus mode: when any node in the topology is hovered, dim everything ── */
.bcm-topo svg:has(.bc-node:hover) .bc-node{opacity:.28}
.bcm-topo svg:has(.bc-node:hover) .bc-link{opacity:.12}
/* Keep the hovered node fully visible */
.bcm-topo .bc-node:hover{opacity:1!important}
/* Keep connections touching the hovered node fully visible */
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-link[data-from="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-link[data-to="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-r1"]:hover) .bc-link[data-from="n-r1"],
.bcm-topo svg:has(.bc-node[data-id="n-r1"]:hover) .bc-link[data-to="n-r1"],
.bcm-topo svg:has(.bc-node[data-id="n-r2"]:hover) .bc-link[data-from="n-r2"],
.bcm-topo svg:has(.bc-node[data-id="n-r2"]:hover) .bc-link[data-to="n-r2"],
.bcm-topo svg:has(.bc-node[data-id="n-s1"]:hover) .bc-link[data-from="n-s1"],
.bcm-topo svg:has(.bc-node[data-id="n-s1"]:hover) .bc-link[data-to="n-s1"],
.bcm-topo svg:has(.bc-node[data-id="n-t1"]:hover) .bc-link[data-from="n-t1"],
.bcm-topo svg:has(.bc-node[data-id="n-t1"]:hover) .bc-link[data-to="n-t1"],
.bcm-topo svg:has(.bc-node[data-id="n-t2"]:hover) .bc-link[data-from="n-t2"],
.bcm-topo svg:has(.bc-node[data-id="n-t2"]:hover) .bc-link[data-to="n-t2"],
.bcm-topo svg:has(.bc-node[data-id="n-t3"]:hover) .bc-link[data-from="n-t3"],
.bcm-topo svg:has(.bc-node[data-id="n-t3"]:hover) .bc-link[data-to="n-t3"],
.bcm-topo svg:has(.bc-node[data-id="n-t4"]:hover) .bc-link[data-from="n-t4"],
.bcm-topo svg:has(.bc-node[data-id="n-t4"]:hover) .bc-link[data-to="n-t4"],
.bcm-topo svg:has(.bc-node[data-id="n-a1"]:hover) .bc-link[data-from="n-a1"],
.bcm-topo svg:has(.bc-node[data-id="n-a1"]:hover) .bc-link[data-to="n-a1"],
.bcm-topo svg:has(.bc-node[data-id="n-a2"]:hover) .bc-link[data-from="n-a2"],
.bcm-topo svg:has(.bc-node[data-id="n-a2"]:hover) .bc-link[data-to="n-a2"],
.bcm-topo svg:has(.bc-node[data-id="n-f1"]:hover) .bc-link[data-from="n-f1"],
.bcm-topo svg:has(.bc-node[data-id="n-f1"]:hover) .bc-link[data-to="n-f1"]{opacity:1}
/* Un-dim nodes at both ends of active links */
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-r1"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-r2"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-s1"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-t1"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-t2"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-t3"],
.bcm-topo svg:has(.bc-node[data-id="n-proc"]:hover) .bc-node[data-id="n-t4"],
.bcm-topo svg:has(.bc-node[data-id="n-r1"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-r2"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-s1"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-t1"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-t1"]:hover) .bc-node[data-id="n-a1"],
.bcm-topo svg:has(.bc-node[data-id="n-t2"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-t2"]:hover) .bc-node[data-id="n-a1"],
.bcm-topo svg:has(.bc-node[data-id="n-t2"]:hover) .bc-node[data-id="n-a2"],
.bcm-topo svg:has(.bc-node[data-id="n-t3"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-t3"]:hover) .bc-node[data-id="n-a2"],
.bcm-topo svg:has(.bc-node[data-id="n-t4"]:hover) .bc-node[data-id="n-proc"],
.bcm-topo svg:has(.bc-node[data-id="n-t4"]:hover) .bc-node[data-id="n-f1"],
.bcm-topo svg:has(.bc-node[data-id="n-a1"]:hover) .bc-node[data-id="n-t1"],
.bcm-topo svg:has(.bc-node[data-id="n-a1"]:hover) .bc-node[data-id="n-t2"],
.bcm-topo svg:has(.bc-node[data-id="n-a2"]:hover) .bc-node[data-id="n-t2"],
.bcm-topo svg:has(.bc-node[data-id="n-a2"]:hover) .bc-node[data-id="n-t3"],
.bcm-topo svg:has(.bc-node[data-id="n-f1"]:hover) .bc-node[data-id="n-t4"]{opacity:1}
/* ── Right: KPIs + incidents (grid underneath) ── */
.bcm-foot{display:grid;grid-template-columns:repeat(4,1fr) 1.4fr;gap:10px;align-items:stretch}
.bcm-kpi{
  background:var(--bc-kpi-bg);border:1px solid var(--bc-kpi-bd);
  border-radius:8px;padding:10px 12px;transition:background .25s,border-color .25s;
  display:flex;flex-direction:column;justify-content:space-between;min-height:78px;
}
.bcm-kpi-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--bc-kpi-lbl);font-weight:600}
.bcm-kpi-val{font-size:22px;font-weight:800;letter-spacing:-.5px;line-height:1;color:var(--bc-kpi-val);font-family:var(--mono);margin:6px 0 4px}
.bcm-kpi-val .u{font-size:11px;font-weight:600;opacity:.55;margin-left:2px}
.bcm-kpi-sub{font-size:9px;color:var(--bc-txm);display:flex;align-items:center;gap:4px}
.bcm-kpi-sub.ok{color:#16a34a}
.bcm-dash[data-theme="dark"] .bcm-kpi-sub.ok{color:#4ade80}
/* Incident card (rightmost cell of foot grid) */
.bcm-incident{
  background:rgba(220,38,38,.07);border:1px solid rgba(220,38,38,.25);
  border-radius:8px;padding:10px 12px;position:relative;
  display:flex;flex-direction:column;justify-content:space-between;
}
.bcm-dash[data-theme="dark"] .bcm-incident{background:rgba(220,38,38,.12);border-color:rgba(220,38,38,.3)}
.bcm-incident::before{
  content:"";position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;
  background:#dc2626;animation:bcm-pulse 1.8s infinite;
}
@keyframes bcm-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.5)}
  50%    {box-shadow:0 0 0 6px rgba(220,38,38,0)}
}
.bcm-incident-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.7px;color:#dc2626;font-weight:700}
.bcm-dash[data-theme="dark"] .bcm-incident-lbl{color:#fca5a5}
.bcm-incident-ttl{font-size:12px;font-weight:700;color:var(--bc-tx);margin:4px 0 2px}
.bcm-incident-sub{font-size:9.5px;color:var(--bc-txm);font-family:var(--mono)}

/* ══════════════════════════════════════════════════════════
   MODULE CARDS
══════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════
   MODULE PAGE — new v2
══════════════════════════════════════════════════════════ */

/* KPI row — "orbit" layout: 3 chips on the left connected by a line to the hero bubble on the right */
.mdl-kpis{
  display:flex;align-items:center;justify-content:center;gap:0;
  margin:24px auto 0;max-width:100%;flex-wrap:nowrap;row-gap:10px;
  position:relative;padding:0;
}
/* supporting chips */
.mdl-kpi{
  display:inline-flex;align-items:baseline;gap:6px;padding:7px 13px;border-radius:999px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);
  backdrop-filter:blur(8px);
  position:relative;z-index:2;transition:background .2s,border-color .2s,transform .2s;
  white-space:nowrap;flex-shrink:0;
}
.mdl-kpi:hover{background:rgba(255,255,255,.09);border-color:rgba(196,181,253,.3);transform:translateY(-1px)}
.mdl-kpi-num{
  font-size:15px;font-weight:800;color:#fff;letter-spacing:-.3px;font-family:var(--mono);
  line-height:1;
}
.mdl-kpi-lbl{font-size:11px;color:rgba(255,255,255,.62);font-weight:500;letter-spacing:.1px}

/* Separator dot between chips */
.mdl-kpi-sep{
  display:inline-block;width:3px;height:3px;border-radius:50%;background:rgba(196,181,253,.35);
  margin:0 7px;align-self:center;flex-shrink:0;
}

/* Connector: soft gradient line from chips toward the hero */
.mdl-kpi-link{
  display:inline-block;width:26px;height:1px;
  background:linear-gradient(90deg,rgba(196,181,253,.15) 0%,rgba(196,181,253,.55) 100%);
  margin:0 10px 0 12px;align-self:center;position:relative;flex-shrink:0;
}
.mdl-kpi-link::after{
  content:'';position:absolute;right:-1px;top:50%;transform:translateY(-50%);
  width:4px;height:4px;border-radius:50%;background:rgba(196,181,253,.7);
  box-shadow:0 0 8px rgba(196,181,253,.6);
}

/* Hero KPI bubble — "1 Datenmodell" — EYE CATCHER */
.mdl-kpi-hero{
  display:inline-flex;align-items:center;gap:11px;padding:10px 18px 10px 14px;
  border-radius:999px;position:relative;z-index:2;flex-shrink:0;
  background:linear-gradient(135deg,#a78bfa 0%,#8b5cf6 45%,#6d28d9 100%);
  border:1px solid rgba(255,255,255,.35);
  box-shadow:
    0 0 0 4px rgba(139,92,246,.18),
    0 0 32px rgba(167,139,250,.5),
    0 10px 28px -6px rgba(109,40,217,.65),
    inset 0 1px 0 rgba(255,255,255,.35),
    inset 0 -1px 0 rgba(0,0,0,.15);
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;
  overflow:hidden;
}
/* Subtle shine sweep */
.mdl-kpi-hero::before{
  content:'';position:absolute;inset:0;border-radius:999px;pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 48%,transparent 62%);
  opacity:.7;
}
.mdl-kpi-hero:hover{
  transform:translateY(-2px) scale(1.02);
  box-shadow:
    0 0 0 4px rgba(139,92,246,.25),
    0 0 46px rgba(167,139,250,.7),
    0 14px 36px -6px rgba(109,40,217,.75),
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 -1px 0 rgba(0,0,0,.15);
}
.mdl-kpi-hero-num{
  font-size:26px;font-weight:800;letter-spacing:-1.2px;font-family:var(--mono);line-height:.9;
  color:#fff;
  text-shadow:0 2px 8px rgba(76,29,149,.5);
  position:relative;z-index:1;
}
.mdl-kpi-hero-txt{display:flex;flex-direction:column;gap:1px;text-align:left;position:relative;z-index:1}
.mdl-kpi-hero-lbl{font-size:12.5px;font-weight:700;color:#fff;letter-spacing:-.2px;line-height:1.1;text-shadow:0 1px 4px rgba(76,29,149,.4)}
.mdl-kpi-hero-sub{font-size:9.5px;color:rgba(255,255,255,.85);font-weight:700;text-transform:uppercase;letter-spacing:1.2px}

/* Mobile: stack on two rows, hide connector */
@media(max-width:720px){
  .mdl-kpis{flex-wrap:wrap;justify-content:center;row-gap:10px;gap:8px 6px}
  .mdl-kpi-link{display:none}
  .mdl-kpi-sep{display:none}
  .mdl-kpis > .mdl-kpi{margin:0 3px}
  .mdl-kpi-hero{margin-top:6px;flex-basis:100%;justify-content:center}
}

/* Intro band: "Wie alles zusammenspielt" */
.mdl-intro{max-width:980px;margin:0 auto;padding:72px clamp(16px,5%,72px) 32px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.mdl-intro-eye{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:var(--v600);margin-bottom:14px}
.mdl-intro h2{font-size:clamp(24px,2.6vw,34px);font-weight:800;color:#1a1028;letter-spacing:-1px;line-height:1.15;margin-bottom:16px}
.mdl-intro p{color:#5a4f7a;font-size:15px;line-height:1.75;margin-bottom:14px}
.mdl-intro-diagram{background:var(--dark2);border:1px solid rgba(167,139,250,.18);border-radius:16px;padding:0;aspect-ratio:1/.92;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 20px 60px rgba(109,40,217,.16),0 4px 16px rgba(0,0,0,.15)}
.mdl-intro-diagram-topbar{background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.07);padding:10px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0}
.mdl-intro-diagram-title{font-size:12px;font-weight:600;color:rgba(255,255,255,.7);flex:1}
.mdl-intro-diagram-badge{font-size:9.5px;padding:2px 8px;border-radius:20px;font-weight:700;background:rgba(34,197,94,.15);color:#86efac;border:1px solid rgba(34,197,94,.25);display:inline-flex;align-items:center;gap:5px}
.mdl-intro-diagram-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e;animation:pulse 2s infinite}
.mdl-intro-diagram-badge-count{font-size:9.5px;padding:2px 8px;border-radius:20px;font-weight:700;background:rgba(167,139,250,.15);color:#c4b5fd;border:1px solid rgba(167,139,250,.25)}
.mdl-intro-diagram-canvas{flex:1;position:relative;padding:16px;background-image:radial-gradient(rgba(167,139,250,.08) 1px,transparent 1px);background-size:18px 18px;overflow:hidden}

/* Ambient soft glow behind the center Risk node — subtle, not dominant */
.mdd-ambient{position:absolute;left:50%;top:50%;width:120px;height:120px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(220,38,38,.18) 0%,rgba(220,38,38,0) 70%);pointer-events:none;z-index:0}

/* Connector lines fill the canvas behind pills */
.mdd-edges{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}

/* HTML pill nodes — dark bg, shiny sheen, colored accent dot, bold white text */
.mdd-node{
  position:absolute;z-index:2;transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 13px 7px 10px;
  border-radius:999px;
  background:linear-gradient(180deg,#2a2450 0%,#1c1838 55%,#15112e 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(0,0,0,.4),
    0 4px 12px rgba(0,0,0,.35);
  border:1px solid rgba(167,139,250,.25);
  font-size:11.5px;font-weight:700;color:#fff;
  white-space:nowrap;
  letter-spacing:.1px;
}
.mdd-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:currentColor;
  box-shadow:0 0 8px currentColor,0 0 0 3px rgba(255,255,255,.04);
}

/* Per-type accent color (border + dot) */
.mdd-n-asset    {border-color:rgba(8,145,178,.55);  color:#22d3ee}
.mdd-n-process  {border-color:rgba(5,150,105,.55);  color:#10b981}
.mdd-n-threat   {border-color:rgba(217,119,6,.55);  color:#fbbf24}
.mdd-n-risk     {border-color:rgba(220,38,38,.75);  color:#f87171;
  padding:9px 16px 9px 13px;font-size:12.5px;font-weight:800;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.5),
    0 4px 14px rgba(0,0,0,.4),
    0 0 24px rgba(220,38,38,.3);}
.mdd-n-risk .mdd-dot{width:9px;height:9px}
.mdd-n-supplier {border-color:rgba(13,148,136,.55); color:#2dd4bf}
.mdd-n-measure  {border-color:rgba(124,58,237,.65); color:#a78bfa}
.mdd-n-policy   {border-color:rgba(219,39,119,.55); color:#f472b6}
.mdd-n-control  {border-color:rgba(100,116,139,.6); color:#cbd5e1}

/* Pill text stays white, only the dot inherits currentColor */
.mdd-node{color:#fff}
.mdd-n-asset .mdd-dot    {color:#22d3ee}
.mdd-n-process .mdd-dot  {color:#10b981}
.mdd-n-threat .mdd-dot   {color:#fbbf24}
.mdd-n-risk .mdd-dot     {color:#f87171}
.mdd-n-supplier .mdd-dot {color:#2dd4bf}
.mdd-n-measure .mdd-dot  {color:#a78bfa}
.mdd-n-policy .mdd-dot   {color:#f472b6}
.mdd-n-control .mdd-dot  {color:#cbd5e1}
@media(max-width:860px){.mdl-intro{grid-template-columns:1fr;gap:32px}}

/* Module grid (2-col) */
.mdl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:40px}
@media(max-width:860px){.mdl-grid{grid-template-columns:1fr}}

/* Module card */
.mdl-card{
  position:relative;background:#fff;border:1px solid #e8e0f8;border-radius:18px;
  padding:30px 30px 26px;overflow:hidden;
  transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s,border-color .28s;
  display:flex;flex-direction:column;
}
/* Left accent bar (appears on hover) */
.mdl-card::before{
  content:'';position:absolute;left:0;top:28px;bottom:28px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--mdl-c1,var(--v500)),var(--mdl-c2,var(--v700)));
  transform:scaleY(0);transform-origin:center;transition:transform .35s cubic-bezier(.4,0,.2,1);
}
/* Subtle corner gradient wash, tinted by module */
.mdl-card::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(circle at 100% 0%,var(--mdl-wash,rgba(124,58,237,.06)) 0%,transparent 55%);
}
.mdl-card:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(76,29,149,.14);border-color:var(--mdl-c1,var(--v300))}
.mdl-card:hover::before{transform:scaleY(1)}

.mdl-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;position:relative;z-index:1}
.mdl-ico{
  flex-shrink:0;width:52px;height:52px;border-radius:13px;
  background:linear-gradient(135deg,var(--mdl-bg1,var(--v50)),var(--mdl-bg2,var(--v100)));
  border:1px solid var(--mdl-bd,var(--v200));
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.mdl-ico svg{width:24px;height:24px;stroke:var(--mdl-ic,var(--v700));fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mdl-head-txt{flex:1;min-width:0}
.mdl-eye{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:var(--mdl-ic,var(--v600));margin-bottom:4px;display:block}
.mdl-title{font-size:19px;font-weight:800;color:#1a1028;letter-spacing:-.5px;line-height:1.2}

.mdl-body{color:#5a4f7a;font-size:14px;line-height:1.7;margin-bottom:18px;position:relative;z-index:1}

.mdl-features-ttl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:#8b7faa;margin:4px 0 10px;position:relative;z-index:1}
.mdl-features{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-bottom:18px;position:relative;z-index:1}
.mdl-feat{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#3d3253;font-weight:500}
.mdl-feat-dot{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--mdl-ic,var(--v500))}
@media(max-width:480px){.mdl-features{grid-template-columns:1fr}}

.mdl-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px dashed #e8e0f8;position:relative;z-index:1}
.mdl-frameworks{display:flex;flex-wrap:wrap;gap:5px}
.mdl-fw{
  font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;
  background:var(--mdl-bg1,var(--v50));color:var(--mdl-ic,var(--v700));
  border:1px solid var(--mdl-bd,var(--v200));letter-spacing:.2px;white-space:nowrap;
}
.mdl-more{
  display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;
  color:var(--mdl-ic,var(--v700));text-decoration:none;white-space:nowrap;
  transition:transform .2s;
}
.mdl-more svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.mdl-card:hover .mdl-more svg{transform:translateX(3px)}

/* Per-module color theming — subtle hue shifts within the violet/purple family + accents */
.mdl-card.m-risk     {--mdl-c1:#8b5cf6;--mdl-c2:#6d28d9;--mdl-ic:#6d28d9;--mdl-bg1:#f5f3ff;--mdl-bg2:#ede9fe;--mdl-bd:#ddd6fe;--mdl-wash:rgba(139,92,246,.07)}
.mdl-card.m-supplier {--mdl-c1:#f59e0b;--mdl-c2:#d97706;--mdl-ic:#b45309;--mdl-bg1:#fffbeb;--mdl-bg2:#fef3c7;--mdl-bd:#fde68a;--mdl-wash:rgba(217,119,6,.07)}
.mdl-card.m-privacy  {--mdl-c1:#0ea5e9;--mdl-c2:#0369a1;--mdl-ic:#0369a1;--mdl-bg1:#f0f9ff;--mdl-bg2:#e0f2fe;--mdl-bd:#bae6fd;--mdl-wash:rgba(3,105,161,.07)}
.mdl-card.m-bcm      {--mdl-c1:#10b981;--mdl-c2:#047857;--mdl-ic:#047857;--mdl-bg1:#ecfdf5;--mdl-bg2:#d1fae5;--mdl-bd:#a7f3d0;--mdl-wash:rgba(4,120,87,.07)}
.mdl-card.m-isms     {--mdl-c1:#ec4899;--mdl-c2:#be185d;--mdl-ic:#be185d;--mdl-bg1:#fdf2f8;--mdl-bg2:#fce7f3;--mdl-bd:#fbcfe8;--mdl-wash:rgba(190,24,93,.07)}
.mdl-card.m-recon    {--mdl-c1:#ef4444;--mdl-c2:#b91c1c;--mdl-ic:#b91c1c;--mdl-bg1:#fef2f2;--mdl-bg2:#fee2e2;--mdl-bd:#fecaca;--mdl-wash:rgba(185,28,28,.07)}
.mdl-card.m-platform {--mdl-c1:#64748b;--mdl-c2:#334155;--mdl-ic:#334155;--mdl-bg1:#f8fafc;--mdl-bg2:#f1f5f9;--mdl-bd:#cbd5e1;--mdl-wash:rgba(51,65,85,.06)}

/* Closing CTA band */
.mdl-cta{
  margin-top:80px;padding:56px 40px;
  background:linear-gradient(135deg,#1a0840 0%,#2e1269 45%,#5b21b6 100%);
  border-radius:22px;color:#fff;text-align:center;position:relative;overflow:hidden;
}
.mdl-cta::before{
  content:'';position:absolute;inset:0;opacity:.35;pointer-events:none;
  background:radial-gradient(circle at 20% 20%,rgba(167,139,250,.4) 0%,transparent 45%),radial-gradient(circle at 85% 90%,rgba(196,181,253,.3) 0%,transparent 50%);
}
.mdl-cta-eye{position:relative;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:rgba(196,181,253,.9);margin-bottom:14px}
.mdl-cta h3{position:relative;font-size:clamp(26px,3vw,38px);font-weight:800;letter-spacing:-1px;line-height:1.18;margin-bottom:14px}
.mdl-cta p{position:relative;color:rgba(255,255,255,.72);font-size:15.5px;line-height:1.7;max-width:640px;margin:0 auto 24px}
.mdl-cta-row{position:relative;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.mdl-cta-btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:10px;
  font-size:14.5px;font-weight:700;text-decoration:none;transition:var(--ease);border:1px solid transparent;
}
.mdl-cta-btn.primary{background:#fff;color:#2e1269}
.mdl-cta-btn.primary:hover{background:var(--v100);transform:translateY(-1px)}
.mdl-cta-btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.25)}
.mdl-cta-btn.ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.45)}

/* ══════════════════════════════════════════════════════════
   RESOURCE CARDS
══════════════════════════════════════════════════════════ */
.res-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:52px}
.res-card{
  background:#fff;border:1px solid #e8e0f8;border-radius:16px;overflow:hidden;
  transition:var(--ease);
}
.res-card:hover{transform:translateY(-4px);box-shadow:0 20px 52px rgba(109,40,217,.14);border-color:var(--v300)}
.res-card-hdr{
  background:linear-gradient(135deg,#f8f6ff 0%,#eee9ff 50%,#f0f4ff 100%);
  border-bottom:1px solid rgba(167,139,250,.18);
  padding:20px 22px 18px;position:relative;overflow:hidden;
}
/* dp-top-wave inside resource card headers — hidden */
.res-wave{display:none}
.res-hdr-bubble{position:absolute;border-radius:50%;pointer-events:none}
.res-badge{
  display:inline-flex;align-items:center;
  background:#6d28d9;border:1px solid #5b21b6;
  padding:3px 10px;border-radius:20px;font-size:9.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;color:#fff;margin-bottom:10px;
  position:relative;z-index:2;
}
.res-title{font-size:15.5px;font-weight:700;color:#1a1028;margin-bottom:4px;letter-spacing:-.3px;position:relative;z-index:2}
.res-sub{font-size:12px;color:#7c6fa0;position:relative;z-index:2}
.res-body{padding:16px 20px 20px}
.res-desc{font-size:13.5px;color:#5b4d7a;line-height:1.65}
@media(max-width:760px){.res-grid{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════
   CONTACT
══════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════
   PRICING PAGE — new v2
══════════════════════════════════════════════════════════ */

/* Credo hero card: "Ein Preis. Alle Module." */
.prc-credo{
  max-width:980px;margin:-40px auto 0;padding:0 clamp(16px,5%,72px);position:relative;z-index:3;
}
.prc-credo-card{
  background:linear-gradient(135deg,#1a0840 0%,#2e1269 45%,#5b21b6 100%);
  border-radius:22px;padding:48px 48px;color:#fff;
  box-shadow:0 30px 80px -20px rgba(76,29,149,.5),0 0 0 1px rgba(196,181,253,.15);
  position:relative;overflow:hidden;
}
.prc-credo-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.4;
  background:radial-gradient(circle at 15% 20%,rgba(167,139,250,.4) 0%,transparent 45%),radial-gradient(circle at 90% 100%,rgba(196,181,253,.35) 0%,transparent 50%);
}
.prc-credo-grid{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.prc-credo-eye{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:rgba(196,181,253,.85);margin-bottom:14px}
.prc-credo h2{font-size:clamp(26px,2.8vw,36px);font-weight:800;letter-spacing:-1px;line-height:1.15;margin-bottom:16px;color:#fff}
.prc-credo h2 em{font-style:normal;background:linear-gradient(135deg,var(--v300),var(--v400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.prc-credo p{color:rgba(255,255,255,.75);font-size:15px;line-height:1.7}
.prc-credo-badge{
  display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  font-size:12px;font-weight:600;color:#fff;margin-top:18px;
}
.prc-credo-badge svg{width:14px;height:14px;stroke:#86efac;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
/* Right side visual: stacked module pills */
.prc-credo-viz{display:flex;flex-direction:column;gap:8px}
.prc-credo-pill{
  display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  font-size:13px;font-weight:600;color:#fff;backdrop-filter:blur(6px);
}
.prc-credo-pill-dot{width:7px;height:7px;border-radius:50%;background:#86efac;flex-shrink:0;box-shadow:0 0 10px rgba(134,239,172,.6)}
.prc-credo-pill-chk{margin-left:auto;font-size:11px;color:#86efac;font-weight:700}
@media(max-width:780px){.prc-credo-grid{grid-template-columns:1fr;gap:28px}.prc-credo-card{padding:32px 24px}}

/* Compare strip: us vs others */
.prc-compare{max-width:980px;margin:72px auto 0;padding:0 clamp(16px,5%,72px)}
.prc-compare-head{text-align:center;margin-bottom:32px}
.prc-compare-eye{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:var(--v600);margin-bottom:10px}
.prc-compare h3{font-size:clamp(22px,2.4vw,30px);font-weight:800;color:#1a1028;letter-spacing:-.8px;line-height:1.2}
.prc-compare h3 em{font-style:normal;background:linear-gradient(135deg,var(--v500),var(--v700));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

.prc-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}
.prc-comp{border-radius:16px;padding:24px 24px 20px;position:relative}
.prc-comp.us{
  background:linear-gradient(135deg,#f5f3ff 0%,#ede9fe 100%);
  border:2px solid var(--v500);
  box-shadow:0 10px 30px -10px rgba(124,58,237,.25);
}
.prc-comp.them{background:#f8f7fb;border:1.5px solid #e5e0ec}
.prc-comp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed rgba(124,58,237,.15)}
.prc-comp.them .prc-comp-head{border-bottom-color:#ddd5e5}
.prc-comp-ttl{font-size:16px;font-weight:800;color:#1a1028;letter-spacing:-.3px}
.prc-comp.them .prc-comp-ttl{color:#6b5f7a}
.prc-comp-badge{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.3px;white-space:nowrap}
.prc-comp.us .prc-comp-badge{background:var(--v600);color:#fff}
.prc-comp.them .prc-comp-badge{background:#e5e0ec;color:#8b7aad}
.prc-comp-list{display:flex;flex-direction:column;gap:10px}
.prc-comp-item{display:flex;align-items:center;gap:10px;font-size:13.5px}
.prc-comp-ico{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.prc-comp.us .prc-comp-ico{background:rgba(22,163,74,.15)}
.prc-comp.them .prc-comp-ico{background:rgba(220,38,38,.12)}
.prc-comp-ico svg{width:10px;height:10px;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.prc-comp.us .prc-comp-ico svg{stroke:#16a34a}
.prc-comp.them .prc-comp-ico svg{stroke:#dc2626}
.prc-comp.us .prc-comp-item{color:#2a1e4a;font-weight:500}
.prc-comp.them .prc-comp-item{color:#7a6b8f}
@media(max-width:720px){.prc-compare-grid{grid-template-columns:1fr}}

/* Factor cards: what drives the price */
.prc-factors{max-width:980px;margin:72px auto 0;padding:0 clamp(16px,5%,72px)}
.prc-factors-head{text-align:center;margin-bottom:28px}
.prc-factors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.prc-factor{
  background:#fff;border:1px solid #e8e0f8;border-radius:14px;padding:24px 22px;
  text-align:left;transition:transform .25s,box-shadow .25s,border-color .25s;
}
.prc-factor:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(109,40,217,.1);border-color:var(--v300)}
.prc-factor-ico{
  width:40px;height:40px;border-radius:10px;
  background:linear-gradient(135deg,var(--v50),var(--v100));border:1px solid var(--v200);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.prc-factor-ico svg{width:19px;height:19px;stroke:var(--v700);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.prc-factor-ttl{font-size:15px;font-weight:800;color:#1a1028;margin-bottom:6px;letter-spacing:-.2px}
.prc-factor-desc{font-size:13px;color:#6b5f8a;line-height:1.6}
@media(max-width:780px){.prc-factors-grid{grid-template-columns:1fr}}

/* Perks bar (horizontal, replaces vertical list) */
.prc-perks-bar{
  max-width:980px;margin:72px auto 0;padding:24px clamp(16px,5%,72px);
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  background:#fff;border:1px solid #e8e0f8;border-radius:16px;
  box-shadow:0 8px 24px rgba(76,29,149,.06);
}
.prc-perk{display:flex;align-items:center;gap:12px;padding:8px 6px}
.prc-perk-ico{
  width:36px;height:36px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,var(--v600),var(--v800));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(109,40,217,.3);
}
.prc-perk-ico svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.prc-perk-ttl{font-size:13px;font-weight:700;color:#1a1028;letter-spacing:-.2px;line-height:1.2;margin-bottom:2px}
.prc-perk-sub{font-size:11.5px;color:#8b7aad;line-height:1.3}
@media(max-width:780px){.prc-perks-bar{grid-template-columns:repeat(2,1fr);padding:20px}}
@media(max-width:480px){.prc-perks-bar{grid-template-columns:1fr}}

/* Timeline: "Was passiert nach Ihrer Anfrage" */
.prc-timeline{max-width:980px;margin:72px auto 0;padding:0 clamp(16px,5%,72px)}
.prc-timeline-head{text-align:center;margin-bottom:32px}
.prc-timeline-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative}
.prc-timeline-line{
  position:absolute;top:28px;left:14%;right:14%;height:2px;
  background:linear-gradient(90deg,var(--v300) 0%,var(--v500) 50%,var(--v300) 100%);
  z-index:0;
}
.prc-step{position:relative;z-index:1;text-align:center;padding:0 14px}
.prc-step-num{
  width:56px;height:56px;border-radius:50%;margin:0 auto 16px;
  background:linear-gradient(135deg,var(--v600),var(--v800));color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:800;font-family:var(--mono);letter-spacing:-.5px;
  box-shadow:0 6px 20px rgba(109,40,217,.35),0 0 0 4px #fff;
}
.prc-step-time{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.3px;color:var(--v600);margin-bottom:6px}
.prc-step-ttl{font-size:15px;font-weight:800;color:#1a1028;margin-bottom:6px;letter-spacing:-.2px}
.prc-step-desc{font-size:12.5px;color:#6b5f8a;line-height:1.55;max-width:240px;margin:0 auto}
@media(max-width:720px){
  .prc-timeline-steps{grid-template-columns:1fr;gap:32px}
  .prc-timeline-line{display:none}
}

/* FAQ accordion */
.prc-faq{max-width:820px;margin:72px auto 0;padding:0 clamp(16px,5%,72px)}
.prc-faq-head{text-align:center;margin-bottom:32px}
.prc-faq-list{display:flex;flex-direction:column;gap:10px}
.prc-faq-item{
  background:#fff;border:1px solid #e8e0f8;border-radius:12px;
  overflow:hidden;transition:border-color .2s,box-shadow .2s;
}
.prc-faq-item:hover{border-color:var(--v300)}
.prc-faq-item[open]{border-color:var(--v400);box-shadow:0 6px 20px rgba(109,40,217,.08)}
.prc-faq-item summary{
  list-style:none;cursor:pointer;padding:18px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-size:14.5px;font-weight:700;color:#1a1028;letter-spacing:-.2px;
}
.prc-faq-item summary::-webkit-details-marker{display:none}
.prc-faq-plus{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--v50);color:var(--v700);
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s,background .25s;font-size:18px;font-weight:500;line-height:1;
}
.prc-faq-item[open] .prc-faq-plus{transform:rotate(45deg);background:var(--v600);color:#fff}
.prc-faq-answer{padding:0 22px 20px;font-size:13.5px;color:#5a4f7a;line-height:1.7}

/* CONTACT (legacy — kept, widened below) */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:start;margin-top:52px}
.contact-perks{display:flex;flex-direction:column;gap:16px;margin-top:28px}
.perk{display:flex;gap:14px;align-items:flex-start}
.perk-icon{
  width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,var(--v700),var(--v900));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 4px 12px rgba(109,40,217,.3);
}
.perk-icon svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round}
.perk-title{font-size:14.5px;font-weight:700;color:#1a1028;margin-bottom:2px;letter-spacing:-.2px}
.perk-sub{font-size:13px;color:#6b5f8a;line-height:1.55}

.contact-form{
  background:#fff;border-radius:20px;padding:36px;
  box-shadow:0 20px 60px rgba(109,40,217,.1),0 2px 8px rgba(0,0,0,.04);
  border:1px solid #e8e0f8;
}
.cf-title{font-size:20px;font-weight:800;color:#1a1028;margin-bottom:4px;letter-spacing:-.4px}
.cf-sub{font-size:13px;color:#8b7aad;margin-bottom:24px}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:12.5px;font-weight:700;color:#3d2f61;margin-bottom:6px;letter-spacing:.2px}
.fi{
  width:100%;padding:11px 14px;
  border:1.5px solid #e0d8f8;border-radius:10px;
  font-family:var(--font);font-size:14px;color:#1a1028;outline:none;
  background:#faf9ff;transition:var(--ease);
}
.fi:focus{border-color:var(--v500);box-shadow:0 0 0 3px rgba(139,92,246,.1);background:#fff}
.fi::placeholder{color:#b0a0cc}
.fg-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fi-ta{width:100%;padding:11px 14px;border:1.5px solid #e0d8f8;border-radius:10px;font-family:var(--font);font-size:14px;color:#1a1028;outline:none;min-height:88px;resize:vertical;background:#faf9ff;transition:var(--ease)}
.fi-ta:focus{border-color:var(--v500);box-shadow:0 0 0 3px rgba(139,92,246,.1);background:#fff}
.fi-sel{width:100%;padding:11px 14px;border:1.5px solid #e0d8f8;border-radius:10px;font-family:var(--font);font-size:14px;color:#1a1028;outline:none;background:#faf9ff;cursor:pointer;appearance:none;transition:var(--ease)}
.fi-sel:focus{border-color:var(--v500);box-shadow:0 0 0 3px rgba(139,92,246,.1)}
.btn-submit{
  width:100%;padding:14px;margin-top:4px;
  background:linear-gradient(135deg,var(--v700),var(--v900));
  color:#fff;border:none;border-radius:11px;
  font-family:var(--font);font-size:15px;font-weight:700;cursor:pointer;
  transition:var(--ease);letter-spacing:-.2px;
}
.btn-submit:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(109,40,217,.4)}
.cf-legal{font-size:11.5px;color:#b0a0cc;text-align:center;margin-top:12px}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}.fg-2{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════
   CTA DARK SECTION
══════════════════════════════════════════════════════════ */
.cta-dark{background:#1a0840;padding:80px clamp(16px,5%,72px)}
.cta-dark-inner{max-width:680px;margin:0 auto;text-align:center}
.cta-dark h2{font-size:clamp(26px,3.5vw,40px);font-weight:800;color:#fff;letter-spacing:-1.2px;margin-bottom:14px}
.cta-dark p{font-size:16.5px;color:rgba(255,255,255,.52);line-height:1.7;margin-bottom:36px}
.cta-dark-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ══════════════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════════════ */
footer{
  background:#2e1269;
  padding:52px clamp(16px,5%,72px) 32px;
}
.footer-grid{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;
  padding-bottom:44px;
}
.footer-brand-name{font-size:18px;font-weight:800;color:#fff;letter-spacing:-.5px}
.footer-brand-sub{font-size:8.5px;color:rgba(255,255,255,.28);text-transform:uppercase;letter-spacing:1.8px;margin-top:1px}
.footer-tagline{font-size:13.5px;color:rgba(255,255,255,.45);line-height:1.7;max-width:210px;margin:14px 0}
.footer-addr{font-size:12px;color:rgba(255,255,255,.3);line-height:2}
.footer-col-ttl{font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:14px}
.footer-col a{display:block;font-size:13.5px;color:rgba(255,255,255,.5);text-decoration:none;margin-bottom:9px;transition:.15s}
.footer-col a:hover{color:#fff}
.footer-bottom{max-width:1200px;margin:28px auto 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer-copy{font-size:12px;color:rgba(255,255,255,.25)}
.footer-legal{display:flex;gap:20px}
.footer-legal a{font-size:12px;color:rgba(255,255,255,.3);text-decoration:none;transition:.15s}
.footer-legal a:hover{color:rgba(255,255,255,.7)}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.footer-grid{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE SHARED
══════════════════════════════════════════════════════════ */
@media(max-width:900px){
  .hero-inner,.feat,.feat.flip{grid-template-columns:1fr;direction:ltr}
  .hero-win,.feat-mock-hide{display:none}
}
@media(max-width:900px){.feat.flip>*{direction:ltr}}

/* ══════════════════════════════════════════════════════════
   SCROLL REVEAL
══════════════════════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s ease}
.reveal.visible{opacity:1;transform:none}