/* ═══════════════════════════════════════════
   style.css  —  Knowledge Networks Portal
   One file for ALL pages.
   Path: static/style/style.css
   ═══════════════════════════════════════════ */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --nav:       linear-gradient(90deg,#1a3a6e 0%,#1e56b0 45%,#2979d8 100%);
  --bg:        #eef1f6;
  --bg-dark:   #0f1117;
  --bg2:       #161b27;
  --bg3:       #1e2535;
  --card:      #ffffff;
  --card-dk:   #1a2235;
  --border:    #e2e8f0;
  --border-dk: rgba(255,255,255,.07);
  --text:      #0f172a;
  --mid:       #334155;
  --muted:     #64748b;
  --dim:       #4a5568;
  --text-dk:   #f0f4ff;
  --blue:      #2563eb;
  --teal:      #0d9488;
  --green:     #16a34a;
  --red:       #dc2626;
  --orange:    #f97316;
  --purple:    #7c3aed;
  --c-blue:    #3b82f6;
  --c-teal:    #14b8a6;
  --c-green:   #22c55e;
  --c-red:     #ef4444;
  --c-orange:  #f97316;
  --c-purple:  #a855f7;
  --radius:    14px;
  --shadow:    0 1px 4px rgba(0,0,0,.07),0 0 0 1px rgba(0,0,0,.04);
  --shadow-h:  0 8px 28px rgba(0,0,0,.13),0 0 0 1.5px rgba(37,99,235,.18);
}

html,body{min-height:100%;font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}

/* ── NAVBAR ── */
.navbar{background:var(--nav);height:58px;padding:0 28px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:200;box-shadow:0 2px 14px rgba(0,0,0,.22)}
.nav-logo-wrap{height:34px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:3px 8px;display:flex;align-items:center;flex-shrink:0}
.nav-logo-img{height:22px;width:auto;object-fit:contain;border-radius:3px}
.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.brand-text .t1{font-size:13px;font-weight:700;color:#fff;letter-spacing:1px;line-height:1.2}
.brand-text .t2{font-size:9px;color:rgba(255,255,255,.55);letter-spacing:2.5px;text-transform:uppercase}
.back-btn{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.72);text-decoration:none;flex-shrink:0;transition:color .2s}
.back-btn:hover{color:#fff}
.nav-title{font-size:13px;font-weight:600;color:#fff}
.nav-spacer{flex:1}
.nav-left  {display:flex;align-items:center}
.nav-center{display:flex;align-items:center;gap:10px;flex:1;justify-content:center}
.nav-right {display:flex;align-items:center;gap:14px}
.nav-user  {font-size:12px;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:8px}
.nav-user .name{font-size:12px;font-weight:600;color:#fff}
.nav-user .role{font-size:10px;color:rgba(255,255,255,.55)}
.user-dot  {width:8px;height:8px;border-radius:50%;background:#4ade80}
.nav-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f97316,#ef4444);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;border:2px solid rgba(255,255,255,.3);flex-shrink:0}
.nav-logout{padding:6px 13px;border-radius:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.85);font-size:12px;font-weight:500;text-decoration:none;transition:background .18s;font-family:'Inter',sans-serif;white-space:nowrap}
.nav-logout:hover{background:rgba(255,255,255,.22);color:#fff}

/* ── MODULES DROPDOWN ── */
.modules-wrap{position:relative}
.modules-btn{display:flex;align-items:center;gap:7px;height:36px;padding:0 16px;border-radius:8px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:background .18s;white-space:nowrap}
.modules-btn:hover{background:rgba(255,255,255,.24)}
.modules-btn .chev{font-size:9px;margin-left:2px;display:inline-block;transition:transform .2s}
.modules-wrap.open .chev{transform:rotate(180deg)}
.dd-panel{display:none;position:absolute;top:calc(100% + 8px);left:0;width:300px;background:#fff;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.16),0 0 0 1px rgba(0,0,0,.06);padding:6px;z-index:400;flex-direction:column;gap:1px;animation:dropIn .16s ease}
.modules-wrap.open .dd-panel{display:flex}
.dd-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--text);font-size:13px;font-weight:500;transition:background .14s;cursor:pointer}
.dd-row:hover{background:#f1f5f9}
.dd-row .ri{font-size:17px;width:26px;text-align:center;flex-shrink:0}
.dd-row .rl{flex:1}
.dd-row .rb{font-size:9px;font-weight:700;letter-spacing:.4px;padding:2px 8px;border-radius:20px;flex-shrink:0}
.rb-live {background:#dcfce7;color:#15803d}
.rb-ready{background:#eff6ff;color:#1d4ed8}
.rb-soon {background:#fef3c7;color:#92400e}
.rb-off  {background:#fee2e2;color:#991b1b}
.dd-sep  {height:1px;background:var(--border);margin:3px 0}

/* ── BOTTOM BAR ── */
.bottom-bar{position:fixed;bottom:0;left:0;right:0;height:40px;background:var(--card);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 36px;z-index:50}
.bottom-bar.dark{background:var(--bg2);border-color:var(--border-dk)}
.bottom-left,.bottom-right,.bottom-status{font-size:11px;color:var(--muted)}
.bottom-right,.bottom-status{display:flex;align-items:center;gap:6px}
.status-dot,.sys-dot{width:7px;height:7px;border-radius:50%;background:#16a34a;animation:pulse 2s infinite}

/* ── PAGE ── */
.page{padding:32px 28px 80px;max-width:1400px;margin:0 auto}
.page-center{min-height:calc(100vh - 58px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 36px 80px}
.page-header{margin-bottom:24px;animation:fadeUp .45s ease both}
.page-eyebrow{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.page-title{font-size:clamp(22px,3vw,32px);font-weight:800;color:var(--text);letter-spacing:-.4px}
.page-title span{color:var(--blue)}
.page-sub{font-size:13px;color:var(--muted);margin-top:5px}
.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;animation:fadeUp .45s ease both}
.header-eyebrow{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.header-title{font-size:24px;font-weight:700;color:var(--text)}
.header-title span{color:var(--blue)}
.agent-status-badge{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:7px 14px;font-size:12.5px;color:var(--muted);font-weight:500;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.pulse-dot{width:8px;height:8px;border-radius:50%;background:#22c55e}
.rule{height:1px;background:var(--border);margin-bottom:24px;animation:fadeUp .45s .05s ease both}

/* ── HOVER-LIFT CARDS ── */
.lcard{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 28px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;text-decoration:none;color:var(--text);border:1.5px solid transparent;position:relative;overflow:hidden;transition:box-shadow .22s,transform .22s,border-color .22s;cursor:pointer}
.lcard::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--ac,var(--blue));opacity:0;transition:opacity .22s;border-radius:var(--radius) var(--radius) 0 0}
.lcard:hover{box-shadow:var(--shadow-h);transform:translateY(-4px);border-color:rgba(37,99,235,.1)}
.lcard:hover::before{opacity:1}
.lcard-icon{width:72px;height:72px;border-radius:18px;background:var(--ic,#eff6ff);display:flex;align-items:center;justify-content:center;font-size:32px;transition:transform .22s}
.lcard:hover .lcard-icon{transform:scale(1.08)}
.lcard-title{font-size:17px;font-weight:700;letter-spacing:-.3px}
.lcard-desc {font-size:12.5px;color:var(--muted);line-height:1.7}
.lcard-badge{position:absolute;top:14px;right:14px;font-size:9px;font-weight:700;letter-spacing:.4px;padding:3px 9px;border-radius:20px}
.badge-live {background:#dcfce7;color:#15803d;border:1px solid #86efac}
.badge-ready{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.badge-soon {background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.badge-admin{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}
.lcard-arrow{font-size:20px;color:var(--ac,var(--blue));opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.lcard:hover .lcard-arrow{opacity:1;transform:translateX(0)}
.ac-blue  {--ac:#2563eb;--ic:#eff6ff}
.ac-teal  {--ac:#0d9488;--ic:#f0fdfa}
.ac-orange{--ac:#f97316;--ic:#fff7ed}
.ac-purple{--ac:#7c3aed;--ic:#f5f3ff}
.ac-green {--ac:#16a34a;--ic:#f0fdf4}
.ac-sky   {--ac:#0ea5e9;--ic:#f0f9ff}

/* ── PANEL ── */
.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel-head{padding:13px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.panel-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid)}
.panel-badge{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.panel-body {padding:18px;display:flex;flex-direction:column;gap:14px}
.dot-blue  {width:6px;height:6px;border-radius:50%;background:var(--blue);  animation:pulse 2s infinite}
.dot-orange{width:6px;height:6px;border-radius:50%;background:var(--orange);animation:pulse 2s infinite}
.dot-green {width:6px;height:6px;border-radius:50%;background:var(--green); animation:pulse 2s infinite}
.dot-teal  {width:6px;height:6px;border-radius:50%;background:var(--teal);  animation:pulse 2s infinite}
.dot-gold  {width:7px;height:7px;border-radius:50%;background:#f59e0b}

/* ── STATS BAR (agent pages) ── */
.stats-bar-section{margin-bottom:18px}
.stats-bar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.stats-bar-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.stats-bar{display:grid;grid-template-columns:repeat(11,1fr);gap:8px}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 10px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .2s}
.stat-card:hover{box-shadow:0 3px 10px rgba(0,0,0,.08)}
.stat-card.loading .stat-num{color:#cbd5e1}
.stat-num{font-size:20px;font-weight:700;color:var(--text);margin-bottom:4px}
.stat-lbl{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;line-height:1.3}
.stat-card.c-blue  .stat-num{color:var(--blue)}
.stat-card.c-green .stat-num{color:var(--green)}
.stat-card.c-red   .stat-num{color:var(--red)}
.stat-card.c-amber .stat-num{color:#d97706}

/* Legacy stat-box (speakers) */
.stats-section  {margin-bottom:20px}
.stats-label    {font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.stats-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.stats-row      {display:flex;gap:8px;flex-wrap:wrap}
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;min-width:100px;flex:1;text-align:center;box-shadow:var(--shadow);transition:box-shadow .2s}
.stat-box:hover{box-shadow:var(--shadow-h)}
.stat-box.loading .stat-val{color:#cbd5e1}
.stat-val {font-size:22px;font-weight:700;color:var(--text);margin-bottom:4px}
.stat-name{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.stat-box.stat-good .stat-val{color:var(--green)}
.stat-box.stat-warn .stat-val{color:var(--red)}
.stat-box.stat-blue .stat-val{color:var(--blue)}

/* ── DATE FILTER ── */
.date-filter-wrap,.filter-wrap{display:flex;align-items:center;gap:8px}
.filter-text{font-size:12px;font-weight:500;color:var(--muted)}
.date-filter-input,.date-input{padding:5px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;color:var(--muted);background:var(--card);font-family:'Inter',sans-serif;outline:none;transition:border-color .15s}
.date-filter-input:focus,.date-input:focus{border-color:var(--blue)}
.filter-apply-btn,.btn-apply{padding:5px 14px;background:#f97316;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s;font-family:'Inter',sans-serif}
.filter-apply-btn:hover,.btn-apply:hover{background:#ea580c}
.filter-today-btn,.btn-today,.filter-all-btn,.btn-all{padding:5px 12px;background:#f1f5f9;color:var(--muted);border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s;font-family:'Inter',sans-serif}
.filter-today-btn:hover,.btn-today:hover,.filter-all-btn:hover,.btn-all:hover{background:#e2e8f0}
.date-input-dark{background:#1e2535;border:1px solid rgba(255,255,255,.07);border-radius:8px;color:#f0f4ff;font-size:11px;padding:6px 10px;font-family:'Inter',sans-serif;outline:none;color-scheme:dark;transition:border-color .2s}
.date-input-dark:focus{border-color:rgba(59,130,246,.5)}

/* ── FORM ── */
.form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.form-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #f1f5f9}
.form-card-title{font-size:14px;font-weight:600;color:var(--text)}
.form-badge{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#f59e0b;font-weight:600}
.form-badge-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b}
.form-body{padding:18px;display:flex;flex-direction:column;gap:12px}
.form-row{display:grid;gap:10px}
.form-row.two{grid-template-columns:1fr 1fr}
.form-label{display:block;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.req{color:#ef4444;margin-left:2px}
.form-input{width:100%;padding:8px 11px;border:1.5px solid var(--border);border-radius:7px;font-size:13px;color:var(--text);font-family:'Inter',sans-serif;background:var(--card);transition:border-color .15s,box-shadow .15s;outline:none}
.form-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.form-input.readonly{background:#f8fafc;color:var(--muted);cursor:default}
.required-hint{font-size:11px;color:var(--muted)}
.submit-btn{width:100%;padding:11px;border:none;border-radius:8px;background:linear-gradient(135deg,#1e3a5f 0%,#2563eb 100%);color:#fff;font-size:14px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s,transform .1s}
.submit-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}
.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}

/* ── POPUP ── */
.popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:999}
.popup-overlay.hidden{display:none}
.popup-box{background:var(--card);border-radius:14px;width:440px;max-width:94vw;box-shadow:0 20px 60px rgba(0,0,0,.18);overflow:hidden}
.popup-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f1f5f9}
.popup-title  {font-size:15px;font-weight:700;color:var(--text)}
.popup-close  {background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted)}
.popup-body   {display:flex;align-items:flex-start;gap:14px;padding:20px}
.popup-icon   {width:42px;height:42px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.popup-message{font-size:13.5px;color:var(--muted);line-height:1.5;padding-top:8px}
.popup-footer {padding:14px 20px;text-align:right;border-top:1px solid #f1f5f9}
.popup-ok{padding:8px 24px;background:var(--blue);color:#fff;border:none;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif}
.popup-ok:hover{background:#1d4ed8}
.popup-overlay.success .popup-icon{background:#dcfce7;color:#16a34a}
.popup-overlay.bounce  .popup-icon{background:#fef3c7;color:#d97706}
.popup-overlay.error   .popup-icon{background:#fee2e2;color:#dc2626}

/* ── ACCESS MODAL (dashboard) ── */
.modal-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.open{opacity:1;pointer-events:all}
.access-modal{background:var(--card);border-radius:18px;padding:36px 32px;max-width:420px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.2);transform:scale(.96);transition:transform .22s}
.modal-overlay.open .access-modal{transform:scale(1)}
.access-icon {font-size:44px;margin-bottom:14px}
.access-title{font-size:20px;font-weight:800;color:var(--text);margin-bottom:10px}
.access-msg  {font-size:13px;color:var(--mid);margin-bottom:16px;line-height:1.6;font-weight:500}
.access-contact{font-size:12px;color:var(--muted);line-height:1.7}
.access-emails{margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.access-emails a{color:var(--blue);font-weight:600;text-decoration:none}
.access-emails a:hover{text-decoration:underline}
.access-close-btn{margin-top:22px;padding:10px 32px;border-radius:8px;border:none;background:var(--blue);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;transition:opacity .2s}
.access-close-btn:hover{opacity:.85}

/* ── TABLE ── */
.table-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #f1f5f9}
.table-card-title{font-size:14px;font-weight:600;color:var(--text)}
.table-count{font-size:12px;color:var(--muted);font-weight:500}
.table-wrap{overflow-x:auto;max-height:400px;overflow-y:auto}
table.resp-table{width:100%;border-collapse:collapse;font-size:13px}
table.resp-table thead th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:#f8fafc;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}
table.resp-table tbody td{padding:10px 14px;border-bottom:1px solid #f1f5f9;color:#374151}
table.resp-table tbody tr:last-child td{border-bottom:none}
table.resp-table tbody tr:hover{background:#f8fafc}
td.td-event{font-weight:500;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td.td-email{color:var(--muted);font-size:12px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td.td-date {color:#94a3b8;font-size:12px;white-space:nowrap}
td.empty-cell{text-align:center;color:var(--muted);font-size:13px;padding:32px}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}
.pill-green{background:#dcfce7;color:#16a34a}
.pill-red  {background:#fee2e2;color:#dc2626}
.pill-amber{background:#fef3c7;color:#d97706}
.pill-blue {background:#dbeafe;color:#2563eb}

/* ── LAYOUTS ── */
.main-layout  {display:grid;grid-template-columns:1fr 400px;gap:20px;align-items:start}
.left-col     {display:flex;flex-direction:column;gap:18px}
.search-layout{display:grid;grid-template-columns:260px 1fr 300px;gap:16px;animation:fadeUp .5s .1s ease both}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

/* ── MODULE CONTROL ── */
.main-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:fadeUp .5s .1s ease both}
.card-head{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.card-head-title{font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid)}
.save-btn{padding:9px 24px;border-radius:8px;border:none;background:var(--blue);color:#fff;font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s,transform .2s;box-shadow:0 2px 8px rgba(37,99,235,.3)}
.save-btn:hover{opacity:.88;transform:translateY(-1px)}
.save-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ── DASHBOARD CENTER GRID ── */
.center-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;width:100%;max-width:960px;animation:fadeUp .5s ease both}
.ccard{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 28px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;text-decoration:none;color:var(--text);border:1.5px solid transparent;position:relative;overflow:hidden;transition:box-shadow .22s,transform .22s,border-color .22s;cursor:pointer}
.ccard::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--ac,var(--blue));opacity:0;transition:opacity .22s;border-radius:var(--radius) var(--radius) 0 0}
.ccard:hover{box-shadow:var(--shadow-h);transform:translateY(-4px);border-color:rgba(37,99,235,.1)}
.ccard:hover::before{opacity:1}
.ccard-icon{width:72px;height:72px;border-radius:18px;background:var(--ic,#eff6ff);display:flex;align-items:center;justify-content:center;font-size:32px;transition:transform .22s}
.ccard:hover .ccard-icon{transform:scale(1.08)}
.ccard-title{font-size:19px;font-weight:700;letter-spacing:-.3px}
.ccard-desc {font-size:12.5px;color:var(--muted);line-height:1.7;max-width:230px}
.ccard-soon{position:absolute;top:14px;right:14px;font-size:9px;font-weight:700;letter-spacing:.5px;padding:3px 9px;border-radius:20px;background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.ccard-arrow{font-size:20px;color:var(--ac,var(--blue));opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.ccard:hover .ccard-arrow{opacity:1;transform:translateX(0)}
.cc-analytics{--ac:#2563eb;--ic:#eff6ff}
.cc-modules  {--ac:#7c3aed;--ic:#f5f3ff}
.cc-system   {--ac:#0d9488;--ic:#f0fdfa}

/* ── GENERIC BUTTONS ── */
.btn-primary{padding:8px 18px;border-radius:8px;border:none;background:var(--blue);color:#fff;font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn-primary:hover{opacity:.88}
.btn-secondary{padding:8px 18px;border-radius:8px;background:#f1f5f9;color:var(--mid);border:1px solid var(--border);font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:background .2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn-secondary:hover{background:#e2e8f0}
.btn-danger{padding:8px 18px;border-radius:8px;border:none;background:var(--red);color:#fff;font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s}
.btn-danger:hover{opacity:.88}

/* ── ANALYTICS DARK ── */
body.dark{background:var(--bg-dark);color:var(--text-dk)}
body.dark .bottom-bar{background:var(--bg2);border-color:var(--border-dk)}
body.dark .bottom-left,body.dark .bottom-right{color:var(--dim)}
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:28px;animation:fadeUp .45s .05s ease both}
.kpi-card{background:var(--card-dk);border:1px solid var(--border-dk);border-radius:var(--radius);padding:16px 14px;position:relative;overflow:hidden;transition:transform .2s,border-color .2s}
.kpi-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.14)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent,var(--c-blue))}
.kpi-label{font-size:10px;font-weight:500;letter-spacing:.5px;color:#8892a4;text-transform:uppercase;margin-bottom:8px}
.kpi-value{font-size:28px;font-weight:700;color:var(--accent,var(--c-blue));line-height:1;margin-bottom:4px}
.kpi-sub  {font-size:10px;color:var(--dim)}
.agent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;animation:fadeUp .5s .1s ease both}
.agent-card{background:var(--card-dk);border:1px solid var(--border-dk);border-radius:var(--radius);padding:18px;border-top:3px solid var(--agent-color,var(--c-blue))}
.agent-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.agent-dot  {width:10px;height:10px;border-radius:50%;background:var(--agent-color,var(--c-blue));flex-shrink:0;animation:pulse 2s infinite}
.agent-name {font-size:13px;font-weight:700;color:var(--text-dk)}
.agent-type {font-size:10px;color:#8892a4;margin-left:auto}
.agent-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ast{background:#1e2535;border-radius:8px;padding:10px 12px}
.ast-val{font-size:20px;font-weight:700;color:var(--text-dk);line-height:1}
.ast-lbl{font-size:10px;color:#8892a4;margin-top:3px}
.ast.hi   .ast-val{color:var(--agent-color,var(--c-blue))}
.ast.warn .ast-val{color:var(--c-red)}
.ast.good .ast-val{color:var(--c-green)}
.rate-row{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-dk)}
.rate-label{font-size:10px;color:#8892a4;flex:1}
.rate-pill    {padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.25)}
.rate-pill.bad{background:rgba(239,68,68,.15);color:#f87171;border-color:rgba(239,68,68,.25)}
.charts-row  {display:grid;gap:14px;margin-bottom:28px}
.charts-row-2{grid-template-columns:1fr 1fr;animation:fadeUp .5s .15s ease both}
.charts-row-3{grid-template-columns:2fr 1fr 1fr;animation:fadeUp .5s .2s ease both}
.chart-card  {background:var(--card-dk);border:1px solid var(--border-dk);border-radius:var(--radius);padding:18px}
.chart-title {font-size:12px;font-weight:600;color:var(--text-dk);margin-bottom:4px}
.chart-sub   {font-size:10px;color:#8892a4;margin-bottom:14px}
.chart-wrap canvas{max-height:220px}
.chart-wrap-tall canvas{max-height:260px}
.funnel-wrap{display:flex;flex-direction:column;gap:6px;padding:4px 0}
.funnel-row {display:flex;align-items:center;gap:10px}
.funnel-label{font-size:11px;color:#8892a4;width:140px;flex-shrink:0;text-align:right}
.funnel-bar-wrap{flex:1;background:#1e2535;border-radius:4px;height:22px;overflow:hidden}
.funnel-bar{height:100%;border-radius:4px;display:flex;align-items:center;padding-left:8px;font-size:10px;font-weight:700;color:#fff;transition:width .8s ease}
.funnel-val{font-size:11px;color:#8892a4;width:44px;text-align:right;flex-shrink:0}
.health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;animation:fadeUp .5s .25s ease both}
.health-card{background:var(--card-dk);border:1px solid var(--border-dk);border-radius:var(--radius);padding:18px}
.health-title{font-size:12px;font-weight:600;color:var(--text-dk);margin-bottom:14px}
.metric-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border-dk)}
.metric-row:last-child{border-bottom:none}
.metric-name{font-size:11px;color:#8892a4}
.metric-val {font-size:12px;font-weight:600;color:var(--text-dk)}
.metric-val.g{color:var(--c-green)}
.metric-val.r{color:var(--c-red)}
.metric-val.b{color:var(--c-blue)}
.metric-val.o{color:var(--c-orange)}
.metric-val.p{color:var(--c-purple)}
.section-title{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#8892a4;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.section-title::after{content:'';flex:1;height:1px;background:var(--border-dk)}
.loading-overlay{position:fixed;inset:0;background:rgba(15,17,23,.85);display:flex;align-items:center;justify-content:center;z-index:999;backdrop-filter:blur(4px)}
.loading-overlay.hidden{display:none}
.loading-box{background:#1a2235;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);padding:32px 40px;text-align:center}
.loading-spinner{width:36px;height:36px;border-radius:50%;border:3px solid #1e2535;border-top-color:#3b82f6;animation:spin .8s linear infinite;margin:0 auto 14px}
.loading-text{font-size:13px;color:#8892a4}
.last-updated{font-size:10px;color:var(--dim);margin-top:2px}

/* ── SSE STAGES ── */
.stage-list{display:flex;flex-direction:column;gap:8px}
.stage-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:#f8fafc;border:1px solid var(--border);font-size:13px;color:var(--muted);transition:all .3s}
.stage-item.active{background:#eff6ff;border-color:#bfdbfe;color:var(--blue)}
.stage-item.done  {background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.stage-item.error {background:#fef2f2;border-color:#fecaca;color:#dc2626}
.stage-icon{font-size:16px;width:24px;text-align:center;flex-shrink:0}
.stage-name{flex:1;font-weight:500}
.stage-detail{font-size:11px;color:var(--muted)}

/* ── LANDING ── */
.landing-navbar{justify-content:space-between}
.landing-nav-links{display:flex;align-items:center;gap:4px}
.landing-nav-link{padding:6px 14px;border-radius:7px;font-size:13px;font-weight:500;color:rgba(255,255,255,.75);text-decoration:none;transition:all .2s}
.landing-nav-link:hover{background:rgba(255,255,255,.12);color:#fff}
.landing-nav-cta{padding:7px 18px;border-radius:8px;background:rgba(255,255,255,.95);color:var(--blue);font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.15);white-space:nowrap}
.landing-nav-cta:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2)}
.hero{min-height:90vh;background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 50%,#1e56b0 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:80px 40px}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;opacity:.35}
.orb-1{width:500px;height:500px;background:#2563eb;top:-100px;right:-100px}
.orb-2{width:350px;height:350px;background:#7c3aed;bottom:-80px;left:-80px}
.orb-3{width:250px;height:250px;background:#0d9488;top:50%;left:50%;transform:translate(-50%,-50%)}
.hero-content{position:relative;z-index:1;text-align:center;max-width:760px}
.hero-logo-wrap{width:80px;height:80px;border-radius:20px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin:0 auto 28px;overflow:hidden}
.hero-logo-img {width:60px;height:60px;object-fit:contain;border-radius:8px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.85);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:24px}
.badge-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;animation:pulse 2s infinite}
.hero-title{font-size:clamp(36px,5vw,64px);font-weight:800;color:#fff;letter-spacing:-1.5px;line-height:1.1;margin-bottom:20px}
.hero-shimmer{background:linear-gradient(90deg,#60a5fa,#a78bfa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:16px;color:rgba(255,255,255,.7);line-height:1.7;max-width:560px;margin:0 auto 36px}
.hero-btns{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:48px;flex-wrap:wrap}
.hero-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:10px;background:#fff;color:var(--blue);font-size:14px;font-weight:700;text-decoration:none;transition:all .2s;box-shadow:0 4px 20px rgba(0,0,0,.2)}
.hero-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.3)}
.btn-arrow{font-size:16px}
.hero-btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:14px;font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.25);transition:all .2s}
.hero-btn-secondary:hover{background:rgba(255,255,255,.2)}
.btn-large{padding:16px 36px;font-size:16px;border-radius:12px}
.hero-stats{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}
.hstat{text-align:center;padding:0 28px}
.hstat-val{font-size:28px;font-weight:800;color:#fff;letter-spacing:-1px}
.hstat-val span{font-size:14px;font-weight:600;color:rgba(255,255,255,.6)}
.hstat-lbl{font-size:11px;color:rgba(255,255,255,.5);letter-spacing:.5px;margin-top:4px}
.hstat-div{width:1px;height:40px;background:rgba(255,255,255,.15)}
.scroll-hint{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);text-align:center;color:rgba(255,255,255,.4);font-size:11px;letter-spacing:2px;text-transform:uppercase}
.scroll-arrow{width:20px;height:20px;border-right:2px solid rgba(255,255,255,.3);border-bottom:2px solid rgba(255,255,255,.3);transform:rotate(45deg);margin:8px auto 0;animation:bounce 2s infinite}
.section{padding:80px 0}
.bg-light{background:#f8fafc}
.bg-white{background:#fff}
.section-inner{max-width:1100px;margin:0 auto;padding:0 40px}
.section-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.section-title-lg{font-size:clamp(28px,3.5vw,44px);font-weight:800;color:var(--text);letter-spacing:-1px;line-height:1.2;margin-bottom:16px}
.section-title-lg span{color:var(--blue)}
.section-sub-lg{font-size:15px;color:var(--muted);line-height:1.7;max-width:560px;margin-bottom:56px}
.modules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mcard{background:var(--card);border-radius:16px;padding:28px;box-shadow:var(--shadow);border:1px solid var(--border);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.mcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-h)}
.mcard-status{font-size:10px;font-weight:700;letter-spacing:.5px;margin-bottom:16px;display:inline-block}
.status-live{color:#16a34a}
.status-soon{color:#d97706}
.mcard-icon{font-size:36px;margin-bottom:16px}
.mcard-name{font-size:16px;font-weight:700;color:var(--text);margin-bottom:10px;letter-spacing:-.3px}
.mcard-desc{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:16px}
.mcard-tags{display:flex;flex-wrap:wrap;gap:6px}
.mtag{font-size:10px;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--ic,#eff6ff);color:var(--ac,var(--blue));border:1px solid rgba(0,0,0,.07)}
.pipeline-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.ps{text-align:center}
.ps-circle{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#eff6ff,#dbeafe);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 12px;border:2px solid #bfdbfe}
.ps-num{font-size:10px;font-weight:700;color:var(--blue);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}
.ps-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}
.ps-desc{font-size:12px;color:var(--muted);line-height:1.6}
.stats-strip-section{background:linear-gradient(135deg,#1e3a5f,#1e56b0);padding:56px 0}
.stats-strip-inner{max-width:900px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.sstat{text-align:center;padding:0 24px;border-right:1px solid rgba(255,255,255,.15)}
.sstat:last-child{border-right:none}
.sstat-val{font-size:36px;font-weight:800;color:#fff;letter-spacing:-1px}
.sstat-val em{font-size:18px;font-style:normal;color:rgba(255,255,255,.5)}
.sstat-lbl{font-size:12px;color:rgba(255,255,255,.6);margin-top:6px;line-height:1.5}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.fcard{background:var(--card);border-radius:14px;padding:24px;box-shadow:var(--shadow);border:1px solid var(--border);display:flex;align-items:flex-start;gap:16px;transition:transform .2s}
.fcard:hover{transform:translateY(-2px)}
.fcard-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.fcard-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.2px}
.fcard-desc {font-size:12.5px;color:var(--muted);line-height:1.7}
.cta-section{background:linear-gradient(135deg,#0f172a,#1e3a5f);padding:100px 40px;text-align:center;position:relative;overflow:hidden}
.cta-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.cta-inner{position:relative;z-index:1;max-width:600px;margin:0 auto}
.cta-logo-wrap{width:64px;height:64px;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin:0 auto 28px;overflow:hidden}
.cta-logo-img{width:48px;height:48px;object-fit:contain;border-radius:6px}
.cta-title{font-size:clamp(32px,4vw,52px);font-weight:800;color:#fff;letter-spacing:-1px;line-height:1.2;margin-bottom:16px}
.cta-title span{color:#60a5fa}
.cta-sub  {font-size:15px;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:36px}
.cta-notice{font-size:11px;color:rgba(255,255,255,.35);margin-top:20px;letter-spacing:.5px}
.footer{background:#0f172a;padding:32px 40px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-logo-wrap{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;overflow:hidden}
.footer-logo-img{width:28px;height:28px;object-fit:contain;border-radius:4px}
.footer-name{font-size:13px;font-weight:600;color:rgba(255,255,255,.65)}
.footer-copy{font-size:12px;color:rgba(255,255,255,.35)}
.footer-right{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.4)}
.footer-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
.reveal-d3{transition-delay:.3s}
.reveal-d4{transition-delay:.4s}
.reveal-d5{transition-delay:.5s}

/* ── LOGIN ── */
body.login-body{display:flex;min-height:100vh;background:#fff;overflow:hidden}
.left-panel{flex:0 0 52%;background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 40%,#1e56b0 100%);display:flex;flex-direction:column;position:relative;overflow:hidden;padding:48px}
.grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.28}
.left-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center}
.brand{display:flex;align-items:center;gap:14px;margin-bottom:40px}
.brand-logo{width:60px;height:60px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.brand-logo-img{width:44px;height:44px;object-fit:contain;border-radius:6px}
.hero-eyebrow{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:12px}
.hero-title-sm{font-size:clamp(36px,4vw,52px);font-weight:800;color:#fff;letter-spacing:-1.5px;line-height:1.1;margin-bottom:16px}
.hero-title-sm span{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub-sm{font-size:14px;color:rgba(255,255,255,.6);line-height:1.75;max-width:380px;margin-bottom:40px}
.stats-strip-login{display:flex;align-items:center;gap:0}
.stat-item{text-align:center;padding:0 20px}
.stat-val-sm{font-size:22px;font-weight:800;color:#fff;letter-spacing:-.5px}
.stat-lbl-sm{font-size:10px;color:rgba(255,255,255,.45);letter-spacing:.5px;margin-top:3px}
.stat-div{width:1px;height:36px;background:rgba(255,255,255,.12)}
.left-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}
.sys-indicator{display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.45)}
.left-copy{font-size:11px;color:rgba(255,255,255,.3)}
.right-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;background:#fff}
.login-card{width:100%;max-width:420px}
.card-top{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.card-logo-small{width:44px;height:44px;border-radius:10px;background:#f0f4ff;border:1px solid #dbeafe;display:flex;align-items:center;justify-content:center;overflow:hidden}
.card-logo-img{width:32px;height:32px;object-fit:contain;border-radius:5px}
.card-eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.card-title{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.3px}
.card-divider{height:1px;background:var(--border);margin-bottom:24px}
.alert{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:16px}
.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}
.alert-icon{font-size:14px;font-weight:700}
.login-form{display:flex;flex-direction:column;gap:18px}
.field-group{display:flex;flex-direction:column;gap:6px}
.field-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.field-label-row{display:flex;justify-content:space-between;align-items:center}
.field-wrap{position:relative}
.field-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.field-input{width:100%;padding:11px 12px 11px 40px;border:1.5px solid var(--border);border-radius:9px;font-size:14px;color:var(--text);font-family:'Inter',sans-serif;outline:none;background:var(--card);transition:border-color .15s,box-shadow .15s}
.field-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.toggle-pw{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--muted);padding:2px;transition:color .15s}
.toggle-pw:hover{color:var(--text)}
.login-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px;border-radius:9px;border:none;background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;font-size:14px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:0 4px 16px rgba(37,99,235,.35)}
.login-btn:hover{opacity:.92;transform:translateY(-1px)}
.card-footer{margin-top:20px}
.restricted-notice{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--muted);line-height:1.5;padding:10px 14px;background:#f8fafc;border-radius:8px;border:1px solid var(--border)}
.right-footer{margin-top:24px}
.back-link{font-size:12px;color:var(--muted);text-decoration:none;transition:color .15s}
.back-link:hover{color:var(--blue)}

/* ── ANIMATIONS ── */
@keyframes fadeUp    {from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse     {0%,100%{opacity:1}50%{opacity:.35}}
@keyframes spin      {to{transform:rotate(360deg)}}
@keyframes dropIn    {from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounce    {0%,100%{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(6px)}}

/* ── RESPONSIVE ── */
@media(max-width:1200px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .modules-grid{grid-template-columns:repeat(2,1fr)}
  .features-grid{grid-template-columns:repeat(2,1fr)}
  .pipeline-steps{grid-template-columns:repeat(3,1fr)}
  .stats-bar{grid-template-columns:repeat(6,1fr)}
}
@media(max-width:1024px){
  .agent-grid{grid-template-columns:1fr 1fr}
  .health-grid{grid-template-columns:1fr 1fr}
  .charts-row-3{grid-template-columns:1fr 1fr}
  .left-panel{flex:0 0 45%}
}
@media(max-width:768px){
  .main-layout,.search-layout{grid-template-columns:1fr}
  .grid-2,.grid-3,.center-grid{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .agent-grid,.health-grid{grid-template-columns:1fr}
  .charts-row-2,.charts-row-3{grid-template-columns:1fr}
  .stats-bar{grid-template-columns:repeat(4,1fr)}
  .form-row.two{grid-template-columns:1fr}
  .page{padding:20px 16px 80px}
  .modules-grid,.features-grid{grid-template-columns:1fr}
  .pipeline-steps{grid-template-columns:1fr}
  .stats-strip-inner{grid-template-columns:1fr 1fr}
  body.login-body{flex-direction:column}
  .left-panel{flex:none;padding:32px 24px;min-height:auto}
  .right-panel{padding:32px 24px}
}
@media(max-width:480px){
  .stats-bar{grid-template-columns:repeat(2,1fr)}
  .navbar{padding:0 16px;gap:10px}
  .hero{padding:60px 20px}
  .section-inner{padding:0 20px}
}

/* ═══════════════════════════════════════════════════════════════
   SPEAKERS OUTREACH & SPEAKERS COLLECTOR — extra classes
   ═══════════════════════════════════════════════════════════════ */

/* ── Page header (left + badge layout) ─────────────────────── */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;animation:fadeUp .45s ease both}
.header-left{display:flex;flex-direction:column;gap:4px}
.header-eyebrow{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue);margin-bottom:2px}
.header-title{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.4px}
.header-title span{color:var(--blue)}

/* Agent live badge (pulse ring + dot) */
.agent-badge{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:24px;padding:8px 16px;font-size:12.5px;color:var(--muted);font-weight:500;box-shadow:var(--shadow);position:relative}
.pulse-dot {width:9px;height:9px;border-radius:50%;background:#22c55e;flex-shrink:0;z-index:1}
.pulse-ring{width:17px;height:17px;border-radius:50%;border:2px solid rgba(34,197,94,.35);position:absolute;left:13px;animation:pulse-ring 1.5s ease-out infinite}
@keyframes pulse-ring{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.8);opacity:0}}

/* ── 3-col main layout (speakers outreach) ──────────────────── */
.main-layout.three-col{grid-template-columns:240px 1fr 280px}
.center-col{display:flex;flex-direction:column;gap:16px}

/* Panel (speakers version uses .panel-header not .panel-head) */
.panel-header{padding:13px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}

/* Template section */
.template-icon{font-size:36px;text-align:center;margin-bottom:8px}
.template-desc{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:14px}
.template-cols{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.col-tag{font-size:10px;font-weight:600;padding:3px 10px;border-radius:20px;background:#f0f4ff;color:var(--blue);border:1px solid #dbeafe}
.download-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:8px;background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .2s;text-align:center}
.download-btn:hover{opacity:.88}

/* Drop zone (speakers outreach CSV upload) */
.drop-zone{border:2px dashed var(--border);border-radius:12px;padding:32px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#fafbff}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--blue);background:#eff6ff}
.drop-icon{font-size:36px;margin-bottom:10px}
.drop-text{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}
.drop-sub {font-size:12px;color:var(--muted)}
.file-info{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:13px}
.file-name{font-weight:600;color:var(--text);flex:1}
.file-meta{font-size:11px;color:var(--muted)}
.clear-btn{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted);padding:2px 6px;border-radius:4px;transition:color .15s}
.clear-btn:hover{color:var(--red)}

/* Send / Run buttons */
.send-btn,.run-btn{width:100%;padding:12px;border:none;border-radius:9px;background:linear-gradient(135deg,#1e3a5f 0%,#2563eb 100%);color:#fff;font-size:14px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer;transition:opacity .2s,transform .1s;box-shadow:0 4px 16px rgba(37,99,235,.3)}
.send-btn:hover:not(:disabled),.run-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}
.send-btn:disabled,.run-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

/* Progress bar */
.progress-wrap{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.progress-track{height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden}
.progress-fill {height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:99px;transition:width .5s ease;width:0%}
.progress-label{font-size:11px;color:var(--muted);text-align:center}

/* Hidden utility */
.hidden{display:none!important}

/* Status badge (speakers pipeline) */
.status-badge{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--muted)}
.dot-muted {width:7px;height:7px;border-radius:50%;background:#94a3b8}
.dot-purple{width:7px;height:7px;border-radius:50%;background:#7c3aed;animation:pulse 2s infinite}
.dot-green {width:7px;height:7px;border-radius:50%;background:#16a34a;animation:pulse 2s infinite}
.dot-orange{width:7px;height:7px;border-radius:50%;background:#f97316;animation:pulse 2s infinite}
.dot-red   {width:7px;height:7px;border-radius:50%;background:#dc2626}

/* Step list (pipeline progress) */
.step-list{display:flex;flex-direction:column;gap:0}
.step{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border-left:2px solid var(--border);margin-left:12px;position:relative;transition:all .3s}
.step:first-child{border-radius:8px 8px 0 0}
.step:last-child{border-radius:0 0 8px 8px}
.step-circle{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0;margin-left:-26px;transition:all .3s;z-index:1}
.step-content{flex:1;padding-top:3px}
.step-name  {font-size:13px;font-weight:600;color:var(--mid)}
.step-detail{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}

/* Step states */
.step-active .step-circle{border-color:var(--blue);background:#eff6ff;color:var(--blue)}
.step-active .step-name  {color:var(--blue)}
.step-active{border-left-color:var(--blue)}
.step-done  .step-circle{border-color:var(--green);background:#f0fdf4;color:var(--green)}
.step-done  .step-name  {color:var(--green)}
.step-done  {border-left-color:var(--green)}
.step-error .step-circle{border-color:var(--red);background:#fef2f2;color:var(--red)}
.step-error .step-name  {color:var(--red)}
.step-error {border-left-color:var(--red)}

/* ── Speakers Collector: Run card ────────────────────────────── */
.run-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.run-card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.run-card-title{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mid)}
.run-badge{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.run-card-body{padding:18px;display:flex;flex-direction:column;gap:14px}

/* Info rows inside run card */
.run-info-block{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.run-info-row{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #f1f5f9;font-size:12.5px}
.run-info-row:last-child{border-bottom:none}
.run-info-label{color:var(--muted);font-weight:500}
.run-info-val  {color:var(--text);font-weight:600;font-size:12px}

/* Status card (right col, collector) */
.status-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;height:100%}
.status-card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.status-card-title{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mid)}
.status-card-body{padding:18px}

/* Upload panel */
.upload-panel .panel-body{display:flex;flex-direction:column;gap:16px}
.status-panel  .panel-body{padding:16px}

/* Collector: 2-col layout override */
.collector-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}

/* Outreach: 3-col layout */
.outreach-layout{display:grid;grid-template-columns:220px 1fr 280px;gap:16px;align-items:start}

@media(max-width:900px){
  .collector-layout,.outreach-layout{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════
   DATA SEARCH ENGINE PAGES
   search_linkedin.html · search_location.html · search_email.html
   ═══════════════════════════════════════════════════════════════ */

/* ── Search page header colours ──────────────────────────────── */
.eyebrow-blue   { color: var(--blue); }
.eyebrow-teal   { color: var(--teal); }
.eyebrow-green  { color: var(--green); }
.title-blue span { color: var(--blue); }
.title-teal span { color: var(--teal); }
.title-green span{ color: var(--green); }

/* ── Template panel (left col) ───────────────────────────────── */
.template-icon { font-size: 30px; text-align: center; }
.template-desc { font-size: 11.5px; color: var(--muted); line-height: 1.7; text-align: center; }
.template-cols { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; }

/* col tags — 3 colour variants */
.col-tag-blue  { font-size:9px;letter-spacing:.5px;padding:3px 8px;background:rgba(37,99,235,.07);border:1px solid rgba(37,99,235,.2);border-radius:20px;color:var(--blue); }
.col-tag-teal  { font-size:9px;letter-spacing:.5px;padding:3px 8px;background:rgba(13,148,136,.07);border:1px solid rgba(13,148,136,.2);border-radius:20px;color:var(--teal); }
.col-tag-green { font-size:9px;letter-spacing:.5px;padding:3px 8px;background:rgba(22,163,74,.07);border:1px solid rgba(22,163,74,.2);border-radius:20px;color:var(--green); }

/* download buttons — 3 colour variants */
.dl-btn-blue  { display:block;text-align:center;padding:10px;background:rgba(37,99,235,.06);border:1.5px solid rgba(37,99,235,.25);border-radius:8px;color:var(--blue);font-size:11px;font-weight:600;letter-spacing:1px;text-decoration:none;transition:background .2s; }
.dl-btn-blue:hover  { background:rgba(37,99,235,.12); }
.dl-btn-teal  { display:block;text-align:center;padding:10px;background:rgba(13,148,136,.06);border:1.5px solid rgba(13,148,136,.25);border-radius:8px;color:var(--teal);font-size:11px;font-weight:600;letter-spacing:1px;text-decoration:none;transition:background .2s; }
.dl-btn-teal:hover  { background:rgba(13,148,136,.13); }
.dl-btn-green { display:block;text-align:center;padding:10px;background:rgba(22,163,74,.06);border:1.5px solid rgba(22,163,74,.25);border-radius:8px;color:var(--green);font-size:11px;font-weight:600;letter-spacing:1px;text-decoration:none;transition:background .2s; }
.dl-btn-green:hover { background:rgba(22,163,74,.13); }

/* template output note box (email page) */
.template-note { padding:10px;border-radius:8px;font-size:11px;line-height:1.6; }
.template-note-green { background:#f0fdf4;border:1px solid rgba(22,163,74,.2);color:var(--green); }
.template-note-teal  { background:#f0fdfa;border:1px solid rgba(13,148,136,.2);color:var(--teal); }

/* ── Drop zone (CSV upload) ──────────────────────────────────── */
.drop-zone {
  border:1.5px dashed var(--border);border-radius:10px;padding:28px 20px;
  text-align:center;cursor:pointer;background:#f8faff;
  transition:border-color .25s,background .25s;
}
.drop-zone:hover,.drop-zone.drag-over { border-color:var(--blue);background:rgba(37,99,235,.03); }
.drop-zone.dz-teal:hover,.drop-zone.dz-teal.drag-over   { border-color:var(--teal);background:rgba(13,148,136,.03); }
.drop-zone.dz-green:hover,.drop-zone.dz-green.drag-over { border-color:var(--green);background:rgba(22,163,74,.03); }
.drop-icon { font-size:26px;margin-bottom:8px; }
.drop-text { font-size:13px;color:var(--text);font-weight:500;margin-bottom:3px; }
.drop-sub  { font-size:11px;color:var(--muted); }

/* file selected info strip */
.file-info { display:flex;align-items:center;gap:10px;padding:9px 13px;background:rgba(22,163,74,.06);border:1px solid rgba(22,163,74,.2);border-radius:8px; }
.file-info.hidden { display:none; }
.file-name { color:var(--text);font-size:12px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.file-meta { color:var(--muted);font-size:11px;white-space:nowrap; }
.clear-btn { background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px; }
.clear-btn:hover { color:var(--red); }

/* ── Run / search buttons — 3 colour variants ────────────────── */
.run-btn-blue {
  width:100%;padding:12px;border-radius:9px;border:none;
  background:linear-gradient(135deg,var(--blue),#1d4ed8);color:#fff;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 14px rgba(37,99,235,.28);transition:transform .2s,box-shadow .2s,opacity .2s;
}
.run-btn-blue:hover:not(:disabled)  { transform:translateY(-1px);box-shadow:0 6px 20px rgba(37,99,235,.38); }

.run-btn-teal {
  width:100%;padding:12px;border-radius:9px;border:none;
  background:linear-gradient(135deg,var(--teal),#0f766e);color:#fff;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 14px rgba(13,148,136,.28);transition:transform .2s,box-shadow .2s,opacity .2s;
}
.run-btn-teal:hover:not(:disabled)  { transform:translateY(-1px);box-shadow:0 6px 20px rgba(13,148,136,.38); }

.run-btn-green {
  width:100%;padding:12px;border-radius:9px;border:none;
  background:linear-gradient(135deg,var(--green),#15803d);color:#fff;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 14px rgba(22,163,74,.28);transition:transform .2s,box-shadow .2s,opacity .2s;
}
.run-btn-green:hover:not(:disabled) { transform:translateY(-1px);box-shadow:0 6px 20px rgba(22,163,74,.38); }

.run-btn-blue:disabled,.run-btn-teal:disabled,.run-btn-green:disabled { opacity:.45;cursor:not-allowed;transform:none; }

/* manual search button variants */
.srch-btn-blue  { width:100%;padding:11px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--blue),#1d4ed8);color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .2s; }
.srch-btn-teal  { width:100%;padding:11px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--teal),#0f766e);color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .2s; }
.srch-btn-green { width:100%;padding:11px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--green),#15803d);color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .2s; }
.srch-btn-blue:hover:not(:disabled),.srch-btn-teal:hover:not(:disabled),.srch-btn-green:hover:not(:disabled) { opacity:.88; }
.srch-btn-blue:disabled,.srch-btn-teal:disabled,.srch-btn-green:disabled { opacity:.45;cursor:not-allowed; }

/* ── Progress bar ────────────────────────────────────────────── */
.search-progress { display:flex;flex-direction:column;gap:6px; }
.search-progress.hidden { display:none; }
.prog-top   { display:flex;justify-content:space-between;align-items:center; }
.prog-label { font-size:12px;font-weight:600;color:var(--text); }
.prog-count { font-size:11px;color:var(--muted); }
.prog-track { height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden; }
.prog-fill  { height:100%;width:0%;border-radius:3px;transition:width .4s ease; }
.prog-fill-blue  { background:linear-gradient(90deg,var(--blue),#60a5fa); }
.prog-fill-teal  { background:linear-gradient(90deg,var(--teal),#2dd4bf); }
.prog-fill-green { background:linear-gradient(90deg,var(--green),#4ade80); }
.prog-detail { font-size:11px;color:var(--muted); }

/* ── Manual search input fields ──────────────────────────────── */
.s-field-group { display:flex;flex-direction:column;gap:5px; }
.s-field-label { font-size:11px;font-weight:600;color:var(--mid);letter-spacing:.2px; }
.s-field-input {
  padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;
  background:#f8faff;color:var(--text);font-size:13px;
  font-family:'Inter',sans-serif;outline:none;transition:border-color .2s,background .2s;
}
.s-field-input:focus { background:#fff; }
.s-field-input.focus-blue:focus  { border-color:var(--blue); }
.s-field-input.focus-teal:focus  { border-color:var(--teal); }
.s-field-input.focus-green:focus { border-color:var(--green); }

/* ── Result boxes ────────────────────────────────────────────── */
.s-result-box { border-radius:9px;padding:14px 16px;display:flex;flex-direction:column;gap:8px; }
.s-result-box.hidden { display:none; }

/* LinkedIn result */
.s-result-found-blue    { background:rgba(22,163,74,.07);border:1.5px solid rgba(22,163,74,.25); }
.s-result-notfound      { background:rgba(220,38,38,.05);border:1.5px solid rgba(220,38,38,.18); }
.s-result-found-teal    { background:rgba(13,148,136,.07);border:1.5px solid rgba(13,148,136,.25); }
.s-result-found-green   { background:rgba(22,163,74,.07);border:1.5px solid rgba(22,163,74,.25); }

.s-result-label { font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase; }
.s-result-label.lbl-green { color:var(--green); }
.s-result-label.lbl-teal  { color:var(--teal); }
.s-result-label.lbl-red   { color:var(--red); }

.s-result-url  { font-size:12px;color:var(--blue);word-break:break-all;line-height:1.5;text-decoration:none; }
.s-result-url:hover { text-decoration:underline; }
.s-result-meta { font-size:11px;color:var(--muted); }

/* copy buttons */
.s-copy-btn-blue  { padding:7px 14px;border-radius:7px;border:1.5px solid rgba(37,99,235,.3);background:rgba(37,99,235,.06);color:var(--blue);font-size:11px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:background .2s;align-self:flex-start; }
.s-copy-btn-blue:hover  { background:rgba(37,99,235,.14); }
.s-copy-btn-teal  { padding:7px 14px;border-radius:7px;border:1.5px solid rgba(13,148,136,.3);background:rgba(13,148,136,.06);color:var(--teal);font-size:11px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:background .2s;align-self:flex-start; }
.s-copy-btn-teal:hover  { background:rgba(13,148,136,.14); }
.copied-green { background:rgba(22,163,74,.1)!important;border-color:rgba(22,163,74,.3)!important;color:var(--green)!important; }

/* ── Location result grid ────────────────────────────────────── */
.loc-grid    { display:grid;grid-template-columns:1fr 1fr;gap:6px; }
.loc-item    { background:#f8faff;border:1px solid var(--border);border-radius:7px;padding:8px 10px; }
.loc-key     { font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:3px; }
.loc-val     { font-size:12px;font-weight:600;color:var(--text); }
.loc-val.empty { color:var(--muted);font-weight:400;font-style:italic; }
.loc-raw     { font-size:11px;color:var(--muted);padding:6px 10px;background:#f1f5f9;border-radius:6px; }

/* ── Email scraper results ───────────────────────────────────── */
.s-result-company    { font-size:13px;font-weight:700;color:var(--text); }
.email-list-result   { display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto; }
.email-item-result   { background:#f8faff;border:1px solid var(--border);border-radius:7px;padding:8px 10px; }
.email-addr          { font-size:12px;font-weight:600;color:var(--blue);word-break:break-all; }
.email-about         { font-size:11px;color:var(--muted);margin-top:2px; }
.email-row-btns      { display:flex;gap:6px;margin-top:4px; }
.copy-email-btn      { padding:4px 10px;border-radius:6px;border:1px solid rgba(37,99,235,.25);background:rgba(37,99,235,.06);color:var(--blue);font-size:10px;font-weight:600;cursor:pointer;transition:background .15px;font-family:'Inter',sans-serif; }
.copy-email-btn:hover{ background:rgba(37,99,235,.14); }
.copy-email-btn.copied{ background:rgba(22,163,74,.1);border-color:rgba(22,163,74,.3);color:var(--green); }
.result-none         { font-size:12px;color:var(--muted);font-style:italic; }

/* ── Toast (search pages) ────────────────────────────────────── */
.s-toast { position:fixed;bottom:52px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--text);color:#fff;padding:9px 20px;border-radius:8px;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:700;white-space:nowrap; }
.s-toast.show    { opacity:1;transform:translateX(-50%) translateY(0); }
.s-toast.success { background:var(--green); }
.s-toast.error   { background:var(--red); }

/* ── 3-col search layout (shared) ───────────────────────────── */
.search-3col { display:grid;grid-template-columns:260px 1fr 300px;gap:16px;animation:fadeUp .5s .1s ease both; }
.search-3col-wide { display:grid;grid-template-columns:260px 1fr 320px;gap:16px;animation:fadeUp .5s .1s ease both; }

@media(max-width:1000px) {
  .search-3col,.search-3col-wide { grid-template-columns:1fr 1fr; }
  .search-3col .left-col,.search-3col-wide .left-col { grid-column:1/-1; }
}
@media(max-width:640px) {
  .search-3col,.search-3col-wide { grid-template-columns:1fr; }
}

/* Loading state */
.ccard-loading {
  grid-column: 1 / -1;
  text-align: center;
  font-size: 14px;
  color: var(--muted, #64748b);
  padding: 60px 0;
}
 
/* Active / Inactive badge on each card */
.ccard-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.badge-on  { background: #dcfce7; color: #166534; }
.badge-off { background: #fee2e2; color: #991b1b; }
 
/* Per-module card accent colours (non-admin view) */
/* Moonshot — blue */
.cc-moonshot {
  border-top: 3px solid #2563eb;
}
.cc-moonshot:hover { box-shadow: 0 8px 32px rgba(37,99,235,.13); }
 
/* Partnership — teal */
.cc-partnership {
  border-top: 3px solid #0d9488;
}
.cc-partnership:hover { box-shadow: 0 8px 32px rgba(13,148,136,.13); }
 
/* AISB — orange */
.cc-aisb {
  border-top: 3px solid #f97316;
}
.cc-aisb:hover { box-shadow: 0 8px 32px rgba(249,115,22,.13); }
 
/* Data Search — green */
.cc-search {
  border-top: 3px solid #16a34a;
}
.cc-search:hover { box-shadow: 0 8px 32px rgba(22,163,74,.13); }
 
/* Future modules — add more .cc-* rules here as needed */

.cc-access { border-top: 3px solid #7c3aed; }
.cc-access:hover { box-shadow: 0 8px 32px rgba(124,58,237,.13); }

.cc-dataview { border-top: 3px solid #0ea5e9; }
.cc-dataview:hover { box-shadow: 0 8px 32px rgba(14,165,233,.13); }

.cc-modules { border-top: 3px solid #7c3aed; }


/* CAIO 10 — gold/amber */
.cc-caio { --ac: #d97706; --ic: #fffbeb; border-top: 3px solid #d97706; }
.cc-caio:hover { box-shadow: 0 8px 32px rgba(217,119,6,.15); }

/* RAI 10 — indigo */
.cc-rai { --ac: #4f46e5; --ic: #eef2ff; border-top: 3px solid #4f46e5; }
.cc-rai:hover { box-shadow: 0 8px 32px rgba(79,70,229,.15); }

/* Podcast Outreach — rose */
.cc-podcast { --ac: #e11d48; --ic: #fff1f2; border-top: 3px solid #e11d48; }
.cc-podcast:hover { box-shadow: 0 8px 32px rgba(225,29,72,.15); }

.cc-podcast-host { border-top: 3px solid #7c3aed; }
.cc-podcast-host:hover { box-shadow: 0 8px 32px rgba(124,58,237,.15); }

.cc-podcast-host { border-top:3px solid #7c3aed; }
.cc-podcast-host:hover { box-shadow:0 8px 32px rgba(124,58,237,.15); }

.cc-listicle-news { border-top: 3px solid #0891b2; }
.cc-listicle-news:hover { box-shadow: 0 8px 32px rgba(8,145,178,.15); }