/* ── Reset & Base ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#030712;--bg-card:#0f172a;--bg-card-hover:#1e293b;
  --border:#1e293b;--border-light:#334155;
  --text:#f8fafc;--text-dim:#cbd5e1;--text-muted:#64748b;
  --primary:#3b82f6;--primary-glow:rgba(59,130,246,0.3);
  --accent:#8b5cf6;--accent-glow:rgba(139,92,246,0.25);
  --success:#10b981;--warning:#f59e0b;--danger:#ef4444;
  --gradient-primary:linear-gradient(135deg,#3b82f6,#8b5cf6);
  --gradient-dark:linear-gradient(180deg,#030712 0%,#0f172a 100%);
  --r:12px;--r-lg:16px;--r-xl:24px;
  --shadow:0 4px 24px rgba(0,0,0,0.4);
  --shadow-glow:0 0 40px rgba(59,130,246,0.15);
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:#60a5fa}
img{max-width:100%;height:auto;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* ── Navbar ── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 0;transition:all .3s}
.navbar.scrolled{background:rgba(3,7,18,0.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:10px 0}
.navbar .container{display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:var(--text)}
.nav-logo .logo-icon{width:36px;height:36px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#fff}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{color:var(--text-dim);font-size:14px;font-weight:500;transition:color .2s}
.nav-links a:hover{color:var(--text)}
.nav-cta{padding:10px 24px;background:var(--gradient-primary);border:none;border-radius:var(--r);color:#fff;font-weight:700;font-size:13px;cursor:pointer;transition:transform .15s,box-shadow .3s;text-transform:uppercase;letter-spacing:.04em}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 4px 20px var(--primary-glow)}
.nav-hamburger{display:none;background:none;border:none;color:var(--text);font-size:24px;cursor:pointer}

/* ── Hero ── */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;padding:120px 0 80px;overflow:hidden}
.hero::before{content:'';position:absolute;top:-50%;left:-30%;width:80%;height:120%;background:radial-gradient(ellipse,rgba(59,130,246,0.08) 0%,transparent 70%);pointer-events:none}
.hero::after{content:'';position:absolute;top:20%;right:-20%;width:60%;height:80%;background:radial-gradient(ellipse,rgba(139,92,246,0.06) 0%,transparent 70%);pointer-events:none}
.hero .container{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;position:relative;z-index:1}
.hero-content{max-width:560px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(59,130,246,0.1);border:1px solid rgba(59,130,246,0.2);border-radius:999px;padding:6px 16px;font-size:12px;font-weight:600;color:var(--primary);margin-bottom:24px}
.hero-badge .pulse{width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse 2s infinite}
.hero h1{font-size:clamp(36px,5vw,56px);font-weight:800;line-height:1.1;margin-bottom:20px;background:linear-gradient(135deg,#f8fafc 30%,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero h1 span{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-desc{font-size:17px;color:var(--text-dim);margin-bottom:36px;line-height:1.7}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.btn-hero{padding:14px 32px;border-radius:var(--r);font-weight:700;font-size:15px;border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}
.btn-hero.primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 20px var(--primary-glow)}
.btn-hero.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--primary-glow)}
.btn-hero.outline{background:transparent;color:var(--text);border:1px solid var(--border-light)}
.btn-hero.outline:hover{border-color:var(--primary);color:var(--primary)}
.hero-visual{position:relative}
.hero-visual img{border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--shadow),var(--shadow-glow);transition:transform .4s}
.hero-visual:hover img{transform:scale(1.02)}
.hero-stats{display:flex;gap:32px;margin-top:40px;padding-top:24px;border-top:1px solid var(--border)}
.hero-stat .num{font-size:28px;font-weight:800;color:var(--text)}
.hero-stat .label{font-size:12px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* ── Section base ── */
section{padding:100px 0;position:relative}
.section-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(139,92,246,0.1);border:1px solid rgba(139,92,246,0.2);border-radius:999px;padding:6px 14px;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}
.section-title{font-size:clamp(28px,4vw,42px);font-weight:800;margin-bottom:16px;line-height:1.2}
.section-desc{font-size:16px;color:var(--text-dim);max-width:600px;line-height:1.7}
.section-header{text-align:center;margin-bottom:60px}
.section-header .section-desc{margin:0 auto}

/* ── Features ── */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:32px 28px;transition:all .3s;position:relative;overflow:hidden}
.feature-card:hover{border-color:var(--border-light);transform:translateY(-4px);box-shadow:var(--shadow)}
.feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:0;transition:opacity .3s}
.feature-card:hover::before{opacity:1}
.feature-icon{width:48px;height:48px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:22px}
.feature-icon.blue{background:rgba(59,130,246,0.12);color:#60a5fa}
.feature-icon.green{background:rgba(16,185,129,0.12);color:#34d399}
.feature-icon.purple{background:rgba(139,92,246,0.12);color:#a78bfa}
.feature-icon.amber{background:rgba(245,158,11,0.12);color:#fbbf24}
.feature-icon.pink{background:rgba(236,72,153,0.12);color:#f472b6}
.feature-icon.cyan{background:rgba(6,182,212,0.12);color:#22d3ee}
.feature-card h3{font-size:17px;font-weight:700;margin-bottom:10px;color:var(--text)}
.feature-card p{font-size:14px;color:var(--text-muted);line-height:1.6}

/* ── Architecture ── */
.arch-section{background:var(--bg-card)}
.arch-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.arch-image img{border-radius:var(--r-xl);border:1px solid var(--border)}
.arch-points{display:flex;flex-direction:column;gap:20px;margin-top:32px}
.arch-point{display:flex;gap:16px;align-items:flex-start}
.arch-point .icon{width:40px;height:40px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;background:rgba(59,130,246,0.1);color:#60a5fa}
.arch-point h4{font-size:15px;font-weight:700;margin-bottom:4px}
.arch-point p{font-size:13px;color:var(--text-muted);line-height:1.5}

/* ── Benefits ── */
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.benefit-card{text-align:center;padding:36px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);transition:all .3s}
.benefit-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 8px 32px rgba(59,130,246,0.1)}
.benefit-num{font-size:42px;font-weight:900;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px;font-family:var(--font-mono)}
.benefit-card h4{font-size:14px;font-weight:700;margin-bottom:6px}
.benefit-card p{font-size:12px;color:var(--text-muted)}

/* ── Analytics ── */
.analytics-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.analytics-list{display:flex;flex-direction:column;gap:16px;margin-top:28px}
.analytics-item{display:flex;gap:14px;align-items:center;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);transition:all .2s}
.analytics-item:hover{border-color:var(--primary);background:var(--bg-card-hover)}
.analytics-item .check{width:28px;height:28px;border-radius:50%;background:rgba(16,185,129,0.12);color:var(--success);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;font-weight:700}
.analytics-item span{font-size:14px;font-weight:600}

/* ── Pricing ── */
.pricing-section{background:var(--bg-card)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pricing-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);padding:36px 32px;position:relative;transition:all .3s}
.pricing-card.featured{border-color:var(--primary);box-shadow:0 0 40px var(--primary-glow)}
.pricing-card.featured::before{content:'POPULAR';position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gradient-primary);padding:4px 16px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em}
.pricing-card:hover{transform:translateY(-4px)}
.pricing-name{font-size:14px;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.pricing-price{font-size:36px;font-weight:900;margin-bottom:4px}
.pricing-price small{font-size:14px;color:var(--text-muted);font-weight:500}
.pricing-desc{font-size:13px;color:var(--text-muted);margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.pricing-features{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.pricing-features li{font-size:13px;color:var(--text-dim);display:flex;align-items:center;gap:10px}
.pricing-features li::before{content:'✓';color:var(--success);font-weight:700;font-size:14px}
.pricing-btn{display:block;width:100%;padding:14px;border-radius:var(--r);font-weight:700;font-size:14px;text-align:center;border:none;cursor:pointer;transition:all .2s}
.pricing-btn.primary{background:var(--gradient-primary);color:#fff}
.pricing-btn.outline{background:transparent;border:1px solid var(--border-light);color:var(--text)}
.pricing-btn:hover{transform:translateY(-1px)}

/* ── Contact ── */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.contact-info{display:flex;flex-direction:column;gap:24px;margin-top:32px}
.contact-item{display:flex;gap:14px;align-items:center}
.contact-item .icon{width:44px;height:44px;border-radius:var(--r);background:rgba(59,130,246,0.1);color:#60a5fa;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.contact-item .info h4{font-size:14px;font-weight:700;margin-bottom:2px}
.contact-item .info p{font-size:13px;color:var(--text-muted)}
.contact-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:36px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:14px;font-family:var(--font);transition:border-color .2s}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}
.form-group textarea{min-height:100px;resize:vertical}
.form-submit{width:100%;padding:14px;background:var(--gradient-primary);border:none;border-radius:var(--r);color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:all .2s}
.form-submit:hover{box-shadow:0 4px 20px var(--primary-glow);transform:translateY(-1px)}

/* ── Footer ── */
.footer{background:var(--bg-card);border-top:1px solid var(--border);padding:48px 0 24px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-brand p{font-size:13px;color:var(--text-muted);margin-top:12px;line-height:1.6}
.footer-col h4{font-size:12px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}
.footer-col a{display:block;font-size:13px;color:var(--text-dim);margin-bottom:10px;transition:color .2s}
.footer-col a:hover{color:var(--primary)}
.footer-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-muted)}
.footer-bottom-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.footer-bottom a{color:var(--text-muted);display:inline-flex;align-items:center;gap:4px;transition:color .2s}
.footer-bottom a:hover{color:var(--text-dim)}

/* ── Showcase Tabs ── */
.showcase-section{background:var(--bg-card)}
.showcase-tabs{display:flex;justify-content:center;gap:12px;margin-bottom:40px;flex-wrap:wrap}
.showcase-tab{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:12px 24px;border-radius:var(--r);font-weight:700;font-size:14px;cursor:pointer;transition:all .2s}
.showcase-tab:hover{border-color:var(--primary);color:var(--text)}
.showcase-tab.active{background:var(--gradient-primary);color:#fff;border-color:transparent;box-shadow:0 4px 20px var(--primary-glow)}
.showcase-panels{position:relative}
.showcase-panel{display:none;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.showcase-panel.active{display:grid;animation:fadeUp .4s ease forwards}
.showcase-image img{border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--shadow),var(--shadow-glow)}
.showcase-info h3{font-size:24px;font-weight:800;margin-bottom:16px;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.showcase-info p{color:var(--text-dim);font-size:15px;margin-bottom:24px;line-height:1.6}
.showcase-features{display:grid;grid-template-columns:1fr;gap:12px}
.showcase-feature{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r)}
.showcase-feature .bullet{width:24px;height:24px;border-radius:50%;background:rgba(59,130,246,0.1);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.showcase-feature span{font-size:13px;font-weight:600}

/* ── Animations ── */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.fade-up{opacity:0;transform:translateY(30px);transition:all .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* ── Responsive ── */
@media(max-width:1024px){
  .hero .container,.arch-layout,.analytics-layout,.contact-layout,.showcase-panel{grid-template-columns:1fr}
  .hero-visual,.showcase-image{order:-1}
  .features-grid{grid-template-columns:repeat(2,1fr)}
  .benefits-grid{grid-template-columns:repeat(2,1fr)}
  .pricing-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .nav-links{display:none}
  .nav-hamburger{display:block}
  .features-grid,.benefits-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .hero-stats{flex-direction:column;gap:16px}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:12px;text-align:center}
  .footer-bottom-left{justify-content:center}
}


/* ============================================================ */
/* CPD Flow Simulator and WA float styles */
/* ============================================================ */

/* ── WhatsApp Floating Button ── */
.wa-float {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 40px;
  right: 40px;
  background-color: #25d366;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4), 0 0 20px rgba(37, 211, 102, 0.2);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
  text-decoration: none;
}
.wa-float:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.5), 0 0 30px rgba(37, 211, 102, 0.3);
  color: #fff;
}
.wa-float svg {
  width: 30px;
  height: 30px;
}

/* ── Simulation Teaser Card ── */
.simulation-teaser-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 40px;
  text-align: center;
  box-shadow: var(--shadow), var(--shadow-glow);
  transition: all 0.3s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.simulation-teaser-card:hover {
  transform: translateY(-4px);
  border-color: var(--primary);
  box-shadow: var(--shadow), 0 0 40px rgba(59,130,246,0.25);
}
.simulation-teaser-card .teaser-icon {
  font-size: 48px;
  margin-bottom: 20px;
  animation: float 3s ease-in-out infinite;
}
.simulation-teaser-card h3 {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 12px;
  color: var(--text);
}
.simulation-teaser-card p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.6;
  max-width: 320px;
  margin-bottom: 20px;
}

/* ── Scope Scrollbar ── */
/* Let's make sure scrollbars don't look ugly */
.diagram-container::-webkit-scrollbar {
  height: 6px;
}
.diagram-container::-webkit-scrollbar-track {
  background: rgba(3, 7, 18, 0.5);
}
.diagram-container::-webkit-scrollbar-thumb {
  background: var(--border-light);
  border-radius: 3px;
}
.diagram-container::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

/* ============================================================
   CPD Flow Diagram - Enhanced Styles
   VOXAGRID Call Progress Detection / Analysis
   Rich animations for non-technical audience
   ============================================================ */

:root {
    --bg-primary: #030712;
    --bg-secondary: #0f172a;
    --bg-tertiary: #1e293b;
    --bg-card: rgba(15, 23, 42, 0.8);
    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --accent-amber: #f59e0b;
    --accent-amber-light: #fbbf24;
    --accent-blue: #3b82f6;
    --accent-blue-light: #60a5fa;
    --accent-green: #10b981;
    --accent-green-light: #34d399;
    --accent-red: #ef4444;
    --accent-red-light: #f87171;
    --accent-purple: #8b5cf6;
    --accent-cyan: #06b6d4;
    --border-subtle: rgba(148, 163, 184, 0.1);
    --border-medium: rgba(148, 163, 184, 0.2);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.4);
    --shadow-glow-amber: 0 0 20px rgba(245, 158, 11, 0.15);
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
    --transition-fast: 150ms ease;
    --transition-normal: 300ms ease;
}






#particleCanvas {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    z-index: 0; pointer-events: none;
}

/* ===== Header ===== */








 50% { opacity:0.5; transform:scale(1.3); } }

/* ===== Main ===== */

.interactive-simulator-wrapper .section { margin-bottom: 3rem; animation: fadeInUp 0.6s ease forwards; }
#intro-section { animation-delay: 0.1s; }
#scenario-selector { animation-delay: 0.2s; }

.interactive-simulator-wrapper .section-header { margin-bottom: 1.5rem; }
.interactive-simulator-wrapper .section-title { display: flex; align-items: center; gap: 10px; font-size: 1.5rem; font-weight: 800; margin-bottom: 0.5rem; }
.title-icon { font-size: 1.3rem; }
.interactive-simulator-wrapper .section-desc { font-size: 0.9rem; color: var(--text-secondary); max-width: 700px; line-height: 1.7; }
.section-desc strong { color: var(--accent-amber-light); font-weight: 600; }

/* ===== Info Card ===== */
.info-card { background: var(--bg-card); border: 1px solid var(--border-medium); border-radius: var(--radius-lg); overflow: hidden; backdrop-filter: blur(10px); transition: border-color var(--transition-normal); }
.info-card:hover { border-color: rgba(239, 68, 68, 0.3); }
.info-card-header { display: flex; align-items: center; gap: 12px; padding: 1rem 1.5rem; background: rgba(239, 68, 68, 0.05); border-bottom: 1px solid var(--border-subtle); }
.info-icon { font-size: 1.5rem; }
.info-card-header h3 { font-size: 1rem; font-weight: 700; color: var(--accent-red-light); }
.info-card-
.info-card-body p { font-size: 0.85rem; color: var(--text-secondary); margin-bottom: 1rem; }
.keyword-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1rem; }
.keyword-tag { padding: 5px 12px; background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.25); border-radius: 20px; font-size: 0.78rem; font-family: var(--font-mono); color: var(--accent-red-light); font-weight: 500; transition: all var(--transition-fast); }
.keyword-tag:hover { background: rgba(239, 68, 68, 0.2); transform: translateY(-1px); }
.info-note { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: rgba(245, 158, 11, 0.08); border: 1px solid rgba(245, 158, 11, 0.2); border-radius: var(--radius-sm); font-size: 0.8rem; color: var(--accent-amber-light); }
.info-note svg { flex-shrink: 0; color: var(--accent-amber); }

/* ===== CPD Toggle Box ===== */
.cpd-toggle-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-lg);
    padding: 1.2rem 1.8rem;
    margin-bottom: 2rem;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    flex-wrap: wrap;
    gap: 1.5rem;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
}
.cpd-toggle-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
    min-width: 280px;
}
.cpd-toggle-icon {
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: rgba(59, 130, 246, 0.1);
    border: 1px solid rgba(59, 130, 246, 0.25);
    animation: pulseDot 3s ease-in-out infinite;
}
.cpd-toggle-text h3 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
    color: var(--text-primary);
}
.cpd-toggle-text p {
    font-size: 0.78rem;
    color: var(--text-secondary);
    line-height: 1.4;
}
.cpd-toggle-text p strong {
    color: var(--accent-blue-light);
}
.cpd-toggle-buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.cpd-toggle-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--bg-tertiary);
    border: 1px solid var(--border-medium);
    border-radius: var(--radius-md);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-normal);
}
.cpd-toggle-btn:hover {
    background: rgba(148, 163, 184, 0.1);
    border-color: var(--text-muted);
    color: var(--text-primary);
}
.cpd-toggle-btn.active {
    background: rgba(59, 130, 246, 0.15);
    border-color: var(--accent-blue);
    color: var(--text-primary);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.15);
}
.cpd-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}
.cpd-status-dot.cpd-status-on {
    background: var(--accent-green);
    box-shadow: 0 0 8px var(--accent-green);
}
.cpd-status-dot.cpd-status-off {
    background: var(--accent-red);
    box-shadow: 0 0 8px var(--accent-red);
}

/* By default, direct Autodialer-Telco connection is hidden */
#conn-ad-telco, #lbl-ad-telco {
    display: none;
}

/* Disabled ASR & SBC SVG state */
.asr-disabled #node-asr,
.asr-disabled #conn-sbc-asr,
.asr-disabled #lbl-sbc-asr,
.asr-disabled #conn-asr-ad,
.asr-disabled #lbl-asr-ad,
.asr-disabled #node-sbc,
.asr-disabled #conn-ad-sbc,
.asr-disabled #lbl-ad-sbc,
.asr-disabled #conn-sbc-telco,
.asr-disabled #lbl-sbc-telco,
.asr-disabled #sound-waves-to-sbc {
    display: none !important;
}

/* Show direct Autodialer-Telco connection when CPD is off */
.asr-disabled #conn-ad-telco,
.asr-disabled #lbl-ad-telco {
    display: inline !important;
}

@media (max-width: 768px) {
    .cpd-toggle-box {
        padding: 12px 14px !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        margin-bottom: 1.2rem !important;
    }
    .cpd-toggle-info {
        gap: 8px !important;
        min-width: 100% !important;
    }
    .cpd-toggle-icon {
        width: 34px !important;
        height: 34px !important;
        font-size: 1.2rem !important;
        border-radius: 8px !important;
        flex-shrink: 0 !important;
    }
    .cpd-toggle-text h3 {
        font-size: 0.85rem !important;
    }
    .cpd-toggle-text p {
        font-size: 0.72rem !important;
    }
    .cpd-toggle-buttons {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        flex-direction: row !important;
    }
    .cpd-toggle-btn {
        padding: 8px 6px !important;
        font-size: 0.72rem !important;
        border-radius: 8px !important;
        justify-content: center !important;
        white-space: nowrap !important;
    }
}

/* ===== Scenario Cards ===== */
.scenario-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.scenario-card { position: relative; background: var(--bg-card); border: 1px solid var(--border-medium); border-radius: var(--radius-lg); padding: 1.8rem; cursor: pointer; transition: all var(--transition-normal); text-align: left; color: inherit; font-family: inherit; overflow: hidden; }
.scenario-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--accent-amber), transparent); opacity: 0; transition: opacity var(--transition-normal); }
.scenario-card:hover { transform: translateY(-4px); border-color: rgba(245, 158, 11, 0.4); box-shadow: var(--shadow-glow-amber); }
.scenario-card:hover::before, .scenario-card.active::before { opacity: 1; }
.scenario-card.active { border-color: var(--accent-amber); box-shadow: var(--shadow-glow-amber); }
.scenario-number { position: absolute; top: 12px; right: 16px; font-size: 2.5rem; font-weight: 900; color: var(--text-primary); opacity: 0.06; line-height: 1; }
.scenario-icon { font-size: 2rem; margin-bottom: 1rem; display: inline-block; animation: float 3s ease-in-out infinite; }
.scenario-icon-success { animation-delay: 0s; }
.scenario-icon-reject { animation-delay: 1s; }
.scenario-icon-inactive { animation-delay: 2s; }
@keyframes float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
.scenario-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.5rem; }
.scenario-card p { font-size: 0.82rem; color: var(--text-secondary); line-height: 1.5; margin-bottom: 1rem; }
.scenario-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 20px; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.scenario-status .status-dot { width: 6px; height: 6px; border-radius: 50%; }
.scenario-status.success { background: rgba(16,185,129,0.1); color: var(--accent-green-light); border: 1px solid rgba(16,185,129,0.25); }
.scenario-status.success .status-dot { background: var(--accent-green); }
.scenario-status.reject { background: rgba(239,68,68,0.1); color: var(--accent-red-light); border: 1px solid rgba(239,68,68,0.25); }
.scenario-status.reject .status-dot { background: var(--accent-red); }
.scenario-status.inactive { background: rgba(107,114,128,0.15); color: #9ca3af; border: 1px solid rgba(107,114,128,0.3); }
.scenario-status.inactive .status-dot { background: #6b7280; }

/* ===== Flow Controls ===== */
.flow-header { margin-bottom: 1.5rem; }
.flow-title-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; }
.flow-controls { display: flex; gap: 8px; align-items: center; }
.control-btn { display: flex; align-items: center; gap: 6px; padding: 8px 16px; background: var(--bg-tertiary); border: 1px solid var(--border-medium); border-radius: var(--radius-sm); color: var(--text-secondary); font-family: var(--font-sans); font-size: 0.8rem; font-weight: 600; cursor: pointer; transition: all var(--transition-fast); }
.control-btn:hover { background: rgba(245,158,11,0.1); border-color: var(--accent-amber); color: var(--accent-amber); transform: translateY(-1px); }
.control-btn svg { width: 16px; height: 16px; }
.btn-back { margin-left: 8px; }
.btn-back:hover { background: rgba(59,130,246,0.1); border-color: var(--accent-blue); color: var(--accent-blue); }

/* Speed Control */
.speed-control { display: flex; align-items: center; gap: 4px; margin-right: 12px; padding-right: 12px; border-right: 1px solid var(--border-medium); }
.speed-control label { font-size: 0.72rem; color: var(--text-muted); font-weight: 600; margin-right: 4px; }
.speed-btn { padding: 4px 10px; background: var(--bg-tertiary); border: 1px solid var(--border-subtle); border-radius: 6px; color: var(--text-muted); font-family: var(--font-mono); font-size: 0.7rem; font-weight: 600; cursor: pointer; transition: all var(--transition-fast); }
.speed-btn:hover { border-color: var(--accent-amber); color: var(--accent-amber); }
.speed-btn.active { background: rgba(245,158,11,0.15); border-color: var(--accent-amber); color: var(--accent-amber); }

/* ===== Progress Bar ===== */
.progress-container { position: relative; height: 6px; background: var(--bg-tertiary); border-radius: 3px; overflow: hidden; }
.progress-bar { height: 100%; width: 0%; background: linear-gradient(90deg, var(--accent-amber), var(--accent-red)); border-radius: 3px; transition: width 0.5s ease; }
.progress-text { position: absolute; right: 0; top: -20px; font-size: 0.7rem; color: var(--text-muted); font-family: var(--font-mono); }

/* ===== Diagram Container ===== */
.diagram-container { background: var(--bg-card); border: 1px solid var(--border-medium); border-radius: var(--radius-lg); padding: 1.5rem; overflow-x: auto; backdrop-filter: blur(10px); position: relative; margin-bottom: 1.5rem; }
#flow-svg { width: 100%; min-width: 900px; height: auto; }

/* ===== SVG Connection Lines ===== */
.conn-line { stroke: #334155; stroke-width: 2; fill: none; transition: stroke 0.5s ease, stroke-width 0.3s ease, opacity 0.5s ease; }
.conn-line.active { stroke: var(--accent-amber); stroke-width: 2.5; }
.conn-line.success { stroke: var(--accent-green); stroke-width: 2.5; }
.conn-line.danger { stroke: var(--accent-red); stroke-width: 2.5; }
.conn-line.conn-hidden { opacity: 0; pointer-events: none; }
.conn-line.conn-visible { opacity: 1; }

/* Flowing dashes on active lines */
.conn-line.flowing { stroke-dasharray: 10 5; animation: flowDash 0.6s linear infinite; }
.conn-line.flowing-reverse { stroke-dasharray: 10 5; animation: flowDashReverse 0.6s linear infinite; }
@keyframes flowDash { to { stroke-dashoffset: -15; } }
@keyframes flowDashReverse { to { stroke-dashoffset: 15; } }

.conn-label { font-family: var(--font-mono); font-size: 9px; fill: #64748b; font-weight: 500; transition: fill 0.3s ease, opacity 0.3s ease; }
.conn-label.conn-hidden { opacity: 0; }
.conn-label.conn-visible { opacity: 1; }
.conn-label.active { fill: var(--accent-amber); }
.conn-label.success { fill: var(--accent-green); }
.conn-label.danger { fill: var(--accent-red); }

/* ===== SVG Node Effects ===== */
.node { transition: opacity 0.5s ease, filter 0.3s ease; cursor: default; }
.node.dim { opacity: 0.2; }
.node.highlight { filter: brightness(1.3); }
.node.glow-amber { filter: drop-shadow(0 0 15px rgba(245,158,11,0.5)); }
.node.glow-green { filter: drop-shadow(0 0 15px rgba(16,185,129,0.5)); }
.node.glow-red { filter: drop-shadow(0 0 15px rgba(239,68,68,0.5)); }
.node.glow-blue { filter: drop-shadow(0 0 15px rgba(59,130,246,0.5)); }
.node.glow-purple { filter: drop-shadow(0 0 15px rgba(139,92,246,0.5)); }
.node.glow-cyan { filter: drop-shadow(0 0 15px rgba(6,182,212,0.5)); }

/* ===== PHONE RINGING Animation ===== */
#node-customer.ringing #customer-phone {
    animation: phoneShake 0.15s ease-in-out infinite;
    transform-origin: 87px 44px;
}
@keyframes phoneShake {
    0%, 100% { transform: translate(65px,8px) rotate(0deg); }
    25% { transform: translate(62px,8px) rotate(-3deg); }
    75% { transform: translate(68px,8px) rotate(3deg); }
}

/* Ringing rings expanding */
.ring-wave { opacity: 0; }
.ring-wave-1 { animation: ringExpand 1.5s ease-out infinite; }
.ring-wave-2 { animation: ringExpand 1.5s ease-out 0.4s infinite; }
.ring-wave-3 { animation: ringExpand 1.5s ease-out 0.8s infinite; }
@keyframes ringExpand {
    0% { r: 30; opacity: 0.8; stroke-width: 3; }
    100% { r: 70; opacity: 0; stroke-width: 0.5; }
}

/* Bell bounce */
.ring-bell-anim {
    animation: bellBounce 0.4s ease-in-out infinite alternate;
    transform-origin: center;
}
@keyframes bellBounce {
    0% { transform: rotate(-15deg) scale(1); }
    100% { transform: rotate(15deg) scale(1.1); }
}

/* ===== ANSWER Waves ===== */
.answer-wave { opacity: 0; }
.answer-wave-1 { animation: answerPulse 2s ease-out infinite; }
.answer-wave-2 { animation: answerPulse 2s ease-out 0.7s infinite; }
@keyframes answerPulse {
    0% { r: 25; opacity: 0.6; }
    100% { r: 55; opacity: 0; }
}

/* Phone screen green when answered */
#node-customer.answered #phone-screen { fill: #064e3b; transition: fill 0.5s ease; }
#node-customer.answered { border-color: #10b981; }

/* ===== REJECT Effect ===== */
.reject-x {
    stroke-dasharray: 80;
    stroke-dashoffset: 80;
    animation: drawX 0.4s ease forwards;
}
@keyframes drawX { to { stroke-dashoffset: 0; } }
#node-customer.rejected #phone-screen { fill: #450a0a; transition: fill 0.3s ease; }

/* ===== INACTIVE Effect ===== */
.inactive-ring {
    animation: inactiveRotate 3s linear infinite;
    transform-origin: 1057px 200px;
}
@keyframes inactiveRotate { to { transform: rotate(360deg); } }
.inactive-slash { stroke-dasharray: 80; stroke-dashoffset: 80; animation: drawX 0.5s ease forwards; }

/* ===== ASR AI BLINK ===== */
.asr-blink-ring { animation: asrBlink 0.3s ease-in-out infinite; }
.asr-blink-ring-outer { animation: asrBlinkOuter 0.5s ease-in-out infinite; }
@keyframes asrBlink {
    0%, 100% { opacity: 0.05; r: 55; }
    50% { opacity: 0.3; r: 60; }
}
@keyframes asrBlinkOuter {
    0%, 100% { opacity: 0.2; stroke-width: 2; }
    50% { opacity: 0.7; stroke-width: 4; }
}
#node-asr.detecting {
    animation: asrNodeBlink 0.35s ease-in-out infinite;
}
#node-asr.detecting circle {
    animation: asrStrokeBlink 0.35s ease-in-out infinite;
}
@keyframes asrNodeBlink {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(239,68,68,0.3)); }
    50% { filter: drop-shadow(0 0 25px rgba(239,68,68,0.8)); }
}
@keyframes asrStrokeBlink {
    0%, 100% { stroke: #ef4444; stroke-width: 2.5px; }
    50% { stroke: #f87171; stroke-width: 4.5px; }
}

/* ===== TELCO PROVIDER BLINK ===== */
#node-telco.transmitting {
    animation: telcoNodeBlink 0.35s ease-in-out infinite;
}
#node-telco.transmitting rect {
    animation: telcoStrokeBlink 0.35s ease-in-out infinite;
}
@keyframes telcoNodeBlink {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(139,92,246,0.3)); }
    50% { filter: drop-shadow(0 0 25px rgba(139,92,246,0.8)); }
}
@keyframes telcoStrokeBlink {
    0%, 100% { stroke: #8b5cf6; stroke-width: 2px; }
    50% { stroke: #c4b5fd; stroke-width: 4px; }
}


/* ===== Speech Bubbles ===== */
.speech-bubble-anim-1 { animation: speechPop 2s ease-in-out infinite; }
.speech-bubble-anim-2 { animation: speechPop 2s ease-in-out 1s infinite; }
@keyframes speechPop {
    0%, 20%, 100% { opacity: 0; transform: scale(0.8); }
    30%, 80% { opacity: 1; transform: scale(1); }
    90% { opacity: 0; transform: scale(0.9); }
}

/* ===== Sound Waves (voice notif to SBC) ===== */
.sound-arc-1 { animation: soundWavePulse 1.2s ease-out infinite; }
.sound-arc-2 { animation: soundWavePulse 1.2s ease-out 0.3s infinite; }
.sound-arc-3 { animation: soundWavePulse 1.2s ease-out 0.6s infinite; }
@keyframes soundWavePulse {
    0% { opacity: 0.8; }
    50% { opacity: 0.4; }
    100% { opacity: 0; }
}

/* ===== Hangup Pulse ===== */
.hangup-pulse { animation: hangupPulse 1s ease-in-out infinite; }
@keyframes hangupPulse {
    0%, 100% { opacity: 0.85; }
    50% { opacity: 1; }
}

/* ===== Flowing Data Packets ===== */
.flow-packet {
    fill: var(--accent-amber);
    filter: drop-shadow(0 0 4px rgba(245,158,11,0.6));
}
.flow-packet.green { fill: var(--accent-green); filter: drop-shadow(0 0 4px rgba(16,185,129,0.6)); }
.flow-packet.red { fill: var(--accent-red); filter: drop-shadow(0 0 4px rgba(239,68,68,0.6)); }
.flow-packet.purple { fill: var(--accent-purple); filter: drop-shadow(0 0 4px rgba(139,92,246,0.6)); }

/* ===== Step Description ===== */
.step-description { display: flex; align-items: flex-start; gap: 12px; padding: 1.2rem 1.5rem; background: var(--bg-card); border: 1px solid var(--border-medium); border-radius: var(--radius-md); margin-bottom: 1.5rem; min-height: 60px; transition: border-color var(--transition-normal), box-shadow var(--transition-normal); }
.step-description.active { border-color: rgba(245,158,11,0.4); box-shadow: 0 0 20px rgba(245,158,11,0.08); }
.step-badge { padding: 4px 12px; background: rgba(245,158,11,0.15); border: 1px solid rgba(245,158,11,0.3); border-radius: 20px; font-size: 0.72rem; font-weight: 700; color: var(--accent-amber); white-space: nowrap; font-family: var(--font-mono); }
.step-text { font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6; padding-top: 2px; }
.step-text strong { color: var(--text-primary); font-weight: 600; }
.step-text .hl-amber { color: var(--accent-amber-light); font-weight: 600; }
.step-text .hl-green { color: var(--accent-green-light); font-weight: 600; }
.step-text .hl-red { color: var(--accent-red-light); font-weight: 600; }
.step-text .hl-blue { color: var(--accent-blue-light); font-weight: 600; }
.step-text .hl-purple { color: #a78bfa; font-weight: 600; }
.step-text .hl-cyan { color: #22d3ee; font-weight: 600; }

/* ===== Timeline ===== */
.timeline-container { position: relative; padding-left: 28px; }
.timeline-container::before { content: ''; position: absolute; left: 8px; top: 0; bottom: 0; width: 2px; background: var(--bg-tertiary); border-radius: 1px; }
.timeline-item { position: relative; padding: 0.4rem 0 0.4rem 1.2rem; opacity: 0.3; transition: opacity var(--transition-normal); cursor: pointer; }
.timeline-item.active { opacity: 1; }
.timeline-item.completed { opacity: 0.7; }
.timeline-dot { position: absolute; left: -25px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; border-radius: 50%; background: var(--bg-tertiary); border: 1.5px solid var(--text-muted); transition: all var(--transition-normal); z-index: 1; }
.timeline-item.active .timeline-dot { background: var(--accent-amber); border-color: var(--accent-amber); box-shadow: 0 0 10px rgba(245,158,11,0.5); }
.timeline-item.completed .timeline-dot { background: var(--accent-green); border-color: var(--accent-green); }
.timeline-item.completed .timeline-dot::after { content: '✓'; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 7px; color: white; font-weight: 900; }
.timeline-label { font-size: 0.78rem; color: var(--text-secondary); font-weight: 500; }
.timeline-item.active .timeline-label { color: var(--text-primary); font-weight: 600; }
.timeline-sublabel { font-size: 0.65rem; color: var(--text-muted); font-family: var(--font-mono); margin-top: 2px; }
.timeline-duration { font-size: 0.6rem; color: var(--accent-amber); font-family: var(--font-mono); margin-top: 2px; opacity: 0.7; }

/* ===== Footer ===== */


.footer-dot { margin: 0 8px; }

/* ===== Step Number Markers on Arrows ===== */
.step-marker-group { transition: opacity 0.3s ease; }
.step-marker-circle {
    filter: drop-shadow(0 0 6px rgba(0,0,0,0.5));
    transition: all 0.3s ease;
}
.step-marker-circle.current { filter: drop-shadow(0 0 10px rgba(245,158,11,0.6)); }
.step-marker-circle.completed { opacity: 0.65; }
.step-marker-text { font-family: 'Inter', sans-serif; pointer-events: none; }

/* ASR Stopped overlay */
#asr-stopped text { font-family: var(--font-mono); }

/* ===== Fade In ===== */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ===== Active state tactile feedback ===== */
.control-btn:active {
    transform: translateY(1px) scale(0.97);
    transition: transform 50ms;
}
.scenario-card:active {
    transform: scale(0.98);
    transition: transform 100ms;
}

/* ===== Zoom toggle button ===== */
.zoom-toggle-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 20;
    display: none; /* Hidden on desktop */
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: rgba(15, 23, 42, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--border-medium);
    border-radius: 20px;
    color: var(--text-primary);
    font-size: 0.7rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
}
.zoom-toggle-btn:hover {
    background: rgba(245, 158, 11, 0.15);
    border-color: var(--accent-amber);
    color: var(--accent-amber-light);
}

/* ===== Swipe Hint ===== */
.swipe-hint {
    display: none; /* Hidden on desktop */
}

/* ===== Desktop Grid Layout ===== */
@media (min-width: 1025px) {
    .flow-grid-layout {
        display: grid;
        grid-template-columns: 2.3fr 1fr;
        gap: 1.5rem;
        align-items: start;
    }
    .flow-sidebar {
        display: flex;
        flex-direction: column;
        gap: 1.2rem;
        position: sticky;
        top: 80px; /* Offset for sticky header */
        max-height: calc(100vh - 180px);
        overflow-y: auto;
        padding-right: 8px;
    }
    .flow-sidebar .step-description {
        margin-bottom: 0;
        flex-shrink: 0;
    }
    .flow-sidebar .timeline-container {
        flex-shrink: 0;
    }
    .flow-sidebar::-webkit-scrollbar {
        width: 4px;
    }
    .flow-sidebar::-webkit-scrollbar-track {
        background: transparent;
    }
    .flow-sidebar::-webkit-scrollbar-thumb {
        background: var(--bg-tertiary);
        border-radius: 2px;
    }
    .flow-sidebar::-webkit-scrollbar-thumb:hover {
        background: var(--text-muted);
    }
    .diagram-container {
        margin-bottom: 0;
    }
}

@media (max-width: 1024px) {
    .flow-grid-layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .flow-sidebar {
        display: contents;
    }
    .step-description {
        order: 1;
        margin-bottom: 0 !important;
    }
    .diagram-container {
        order: 2;
        margin-bottom: 0;
    }
    .timeline-container {
        order: 3;
    }
}

/* ===== Responsive ===== */
@media (max-width: 900px) {
    .scenario-cards { grid-template-columns: 1fr; }
    
    .flow-title-row { flex-direction: column; align-items: flex-start; }
    .flow-controls { flex-wrap: wrap; }
    
    .speed-control { display: none; }
}

@media (max-width: 768px) {
    
    
    /* Zoom toggle & Swipe hint displays on mobile */
    .zoom-toggle-btn {
        display: flex;
    }
    .swipe-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        position: absolute;
        bottom: 8px;
        left: 50%;
        transform: translateX(-50%);
        background: rgba(15, 23, 42, 0.8);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        border: 1px solid var(--border-subtle);
        padding: 4px 12px;
        border-radius: 12px;
        font-size: 0.65rem;
        color: var(--text-secondary);
        pointer-events: none;
        z-index: 10;
        animation: pulseHint 2s infinite ease-in-out;
        white-space: nowrap;
    }
    
    @keyframes pulseHint {
        0%, 100% { opacity: 0.6; transform: translate(-50%, 0); }
        50% { opacity: 1; transform: translate(-50%, -2px); }
    }

    /* Diagram fit-mode classes */
    .diagram-container.fit-mode {
        overflow-x: hidden;
    }
    .diagram-container.fit-mode #flow-svg {
        min-width: 100% !important;
        width: 100% !important;
    }

    /* Pinned floating controls at the bottom */
    .flow-controls {
        position: fixed;
        bottom: 16px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 1000;
        background: rgba(15, 23, 42, 0.85);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border: 1px solid rgba(255, 255, 255, 0.08);
        padding: 8px 12px;
        border-radius: 30px;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.1);
        display: flex;
        align-items: center;
        gap: 8px;
        width: 92%;
        max-width: 420px;
        margin: 0;
    }
    
    .flow-controls .control-btn {
        flex: 1;
        justify-content: center;
        padding: 10px 8px;
        border-radius: 20px;
        font-size: 0.75rem;
        margin: 0 !important;
        height: 40px;
    }
    
    #btn-play, #btn-pause {
        background: rgba(245, 158, 11, 0.15);
        border-color: rgba(245, 158, 11, 0.4);
        color: var(--accent-amber-light);
    }
    #btn-play:hover, #btn-pause:hover {
        background: rgba(245, 158, 11, 0.25);
    }
    
    #flow-section {
        padding-bottom: 72px; /* Pad for floating controls */
    }

    /* Horizontal scrollable timeline stepper */
    .timeline-container {
        display: flex;
        overflow-x: auto;
        gap: 12px;
        padding: 8px 4px 16px 4px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    .timeline-container::before {
        display: none;
    }
    .timeline-item {
        flex: 0 0 160px;
        scroll-snap-align: start;
        background: var(--bg-card);
        border: 1px solid var(--border-medium);
        border-radius: var(--radius-md);
        padding: 8px 8px 8px 28px;
        margin: 0;
        min-height: 60px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }
    .timeline-item.active {
        border-color: rgba(245, 158, 11, 0.4);
        background: rgba(245, 158, 11, 0.05);
        box-shadow: var(--shadow-glow-amber);
    }
    .timeline-item.completed {
        border-color: rgba(16, 185, 129, 0.2);
        background: rgba(16, 185, 129, 0.02);
    }
    .timeline-dot {
        left: 10px;
        top: 50%;
        transform: translateY(-50%);
    }
    .timeline-label {
        font-size: 0.75rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        width: 100%;
    }
    .timeline-sublabel {
        font-size: 0.62rem;
    }
    .timeline-duration {
        font-size: 0.58rem;
    }
}

@media (max-width: 600px) {
    /* Header optimization */
    
    
    
    
    .logo-icon svg {
        width: 24px;
        height: 24px;
    }

    /* Scenario Card scaling */
    .scenario-cards {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8px !important;
    }
    .scenario-card {
        padding: 12px 6px !important;
        border-radius: 10px !important;
        text-align: center !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 85px !important;
    }
    .scenario-card p,
    .scenario-card .scenario-number,
    .scenario-card .scenario-status {
        display: none !important;
    }
    .scenario-icon {
        font-size: 1.3rem !important;
        margin-bottom: 4px !important;
    }
    .scenario-card h3 {
        font-size: 0.75rem !important;
        line-height: 1.2 !important;
        font-weight: 700 !important;
        margin-bottom: 0 !important;
    }

    /* Info card mobile spacing */
    .info-card-header {
        padding: 0.8rem 1rem;
    }
    .info-card-
    .keyword-tag {
        padding: 4px 10px;
        font-size: 0.72rem;
    }
    .info-note {
        padding: 8px 12px;
        font-size: 0.75rem;
    }

    /* Step Description layout stack */
    .step-description {
        flex-direction: column;
        gap: 6px;
        padding: 10px 12px;
        border-radius: var(--radius-md);
        margin-bottom: 1rem;
    }
    .step-badge {
        padding: 2px 8px;
        font-size: 0.65rem;
        align-self: flex-start;
    }
    .step-text {
        font-size: 0.8rem;
        line-height: 1.5;
        padding-top: 0;
    }

    /* Progress bar spacing */
    .flow-title-row {
        gap: 0.5rem;
        margin-bottom: 0.5rem;
    }
    .progress-container {
        margin-top: 20px;
    }
    #flow-title, #flow-title-text {
        font-size: 0.95rem !important;
        font-weight: 700 !important;
        line-height: 1.3 !important;
    }
}

@media (max-width: 480px) {
    
    .interactive-simulator-wrapper .section {
        margin-bottom: 2rem;
    }
    .interactive-simulator-wrapper .section-title {
        font-size: 1.2rem;
    }
    .interactive-simulator-wrapper .section-desc {
        font-size: 0.8rem;
    }
}

/* ===== Scrollbar ===== */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb { background: var(--bg-tertiary); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #475569; }
