*{margin:0;padding:0;box-sizing:border-box}
/* Color tokens moved to tokens.css, font tokens moved to typography.css
   (both loaded before this file) — see CLAUDE.md "Frontend Design System
   Rules". Only non-color, non-font layout tokens remain here. */
:root{
  --sidebar-w:232px;
  --radius:10px;
  --radius-lg:14px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.08);
  --shadow:0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:0 8px 32px rgba(0,0,0,.12);
}

body{
  font-family:var(--font-sans);
  background:var(--bg);
  color:var(--black);
  min-height:100vh;
  font-size:var(--fs-md);
}

/* ===== AUTH ===== */
#auth-view{display:flex;min-height:100vh}
.auth-left{
  flex:1;
  background:var(--black);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:48px;color:#fff;min-width:400px;
}
.auth-left .logo{font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);margin-bottom:12px;letter-spacing:-0.5px}
.auth-left .tagline{font-size:var(--fs-lg);opacity:.7;max-width:300px;line-height:var(--lh-loose);text-align:center;margin-bottom:40px}
.auth-feature{display:flex;align-items:center;gap:12px;margin-bottom:16px;width:100%;max-width:300px}
.auth-feature .icon{
  width:36px;height:36px;background:rgba(255,255,255,.1);
  border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);flex-shrink:0
}
.auth-feature p{font-size:var(--fs-base);opacity:.8;line-height:var(--lh-normal)}

.auth-right{
  width:460px;min-width:460px;background:var(--white);
  display:flex;flex-direction:column;justify-content:center;padding:48px;overflow-y:auto
}
.auth-right .auth-title{font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);color:var(--black);margin-bottom:4px}
.auth-right .auth-subtitle{font-size:var(--fs-base);color:var(--gray-500);margin-bottom:32px}

.auth-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px}
.auth-tab{
  padding:10px 20px;font-size:var(--fs-base);font-weight:var(--fw-bold);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--gray-400);transition:.15s;
  text-transform:uppercase;letter-spacing:.5px;
}
.auth-tab.active{color:var(--black);border-bottom-color:var(--black)}

/* ===== FORM ===== */
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--gray-700);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:10px 14px;
  border:1.5px solid var(--border);border-radius:var(--radius);
  font-size:var(--fs-base);color:var(--black);outline:none;transition:.15s;background:var(--white);
  font-family:var(--font-sans);
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--black);box-shadow:0 0 0 3px rgba(3,3,3,.07)
}
.form-group textarea{resize:vertical;min-height:80px}
.form-group .hint{font-size:var(--fs-sm);color:var(--gray-400);margin-top:5px}

/* OTP */
.otp-boxes{display:flex;gap:10px;justify-content:center;margin:24px 0}
.otp-box{
  width:52px;height:60px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);text-align:center;outline:none;
  color:var(--black);transition:.15s;font-family:var(--font-sans);
}
.otp-box:focus{border-color:var(--black);box-shadow:0 0 0 3px rgba(3,3,3,.07)}

/* ===== BUTTONS / ALERTS =====
   Retired — Bootstrap/Velzon's own .btn and .alert classes now own
   these (see dashboard/vendor/velzon/css). See CLAUDE.md "Frontend
   Design System Rules". .btn-full has no Bootstrap equivalent — use
   Bootstrap's own `w-100` utility class instead at the call site. */

.or-divider{
  display:flex;align-items:center;gap:12px;margin:18px 0;
  font-size:var(--fs-sm);color:var(--gray-400);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.5px;
}
.or-divider::before,.or-divider::after{content:'';flex:1;height:1px;background:var(--border)}

/* ===== SIDEBAR ===== */
#dashboard-view{display:none;min-height:100vh}

/* ===== SIDEBAR / TOPBAR / MAIN LAYOUT =====
   Retired — dashboard-view's chrome is now Velzon's real
   .app-menu/.navbar-menu + #page-topbar + .main-content/.page-content,
   styled entirely by dashboard/vendor/velzon/css/*.css. */
.content{padding:24px 28px;flex:1}

/* Velzon's own CSS never sets a height on .sidebar-menu-scroll, so
   the data-simplebar div sizes to its content instead of the fixed
   0-to-viewport-bottom .app-menu box around it — the nav list has no
   scroll container and just overflows past the viewport. Constrain
   it to the remaining space below the logo so SimpleBar (see
   vendor/velzon/js/simplebar.min.js, now loaded in index.html) can
   compute a real scrollable area. */
.app-menu.navbar-menu{display:flex;flex-direction:column}
.sidebar-menu-scroll{flex:1;min-height:0}

/* ===== STAT CARDS ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px}
.stat-card{
  background:var(--white);border-radius:var(--radius-lg);padding:22px;
  border:1px solid var(--border);display:flex;align-items:center;gap:16px;
}
.stat-card .stat-icon-box{
  width:50px;height:50px;border-radius:10px;border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);flex-shrink:0;
}
.stat-card .stat-info .label{
  font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--gray-400);
  text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;
}
.stat-card .stat-info .value{font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);color:var(--black);line-height:var(--lh-tight)}
.stat-card.connected .stat-icon-box{border-color:#BBF7D0;background:#F0FDF4;color:var(--success)}
.stat-card.missed .stat-icon-box{border-color:#FECACA;background:var(--danger-bg);color:var(--danger)}
.stat-card.duration .stat-icon-box{border-color:#FED7AA;background:#FFF7ED;color:#EA580C}
.stat-card.total .stat-icon-box{border-color:#DDD6FE;background:#F5F3FF;color:#7C3AED}

/* ===== CARD / TABLE / BADGE =====
   Retired — Bootstrap/Velzon's own .card, .table, and .badge classes
   now own these. `.table-wrap` -> Bootstrap's `.table-responsive`. Bare
   `<table>` needs `class="table"` (add `.table-striped`/`.table-hover`
   as wanted) to pick up Velzon's real styling. */

/* ===== LEAD AVATAR ===== */
.lead-avatar{
  width:36px;height:36px;border-radius:50%;background:var(--gray-200);
  display:flex;align-items:center;justify-content:center;
  font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--gray-600);flex-shrink:0;
}
.lead-info{display:flex;align-items:center;gap:10px}
.lead-name{font-weight:var(--fw-bold);color:var(--black);font-size:var(--fs-base)}
.lead-sub{font-size:var(--fs-xs);color:var(--gray-400);margin-top:1px}

/* ===== SIDEBAR LOGO TEXT =====
   `.logo-txt` isn't a Velzon class (Velzon's own logos are images via
   .logo-sm/.logo-lg) so it has no color rule of its own and was
   inheriting body's near-black ink color — invisible against the
   sidebar, which is hardcoded dark (data-sidebar="dark") regardless
   of the light/dark theme toggle. */
.logo-txt{color:#fff}

/* ===== TOPBAR THEME TOGGLE ICON SWAP ===== */
#topbar-theme-toggle .topbar-icon-dark{display:none}
html[data-theme="dark"] #topbar-theme-toggle .topbar-icon-light{display:none}
html[data-theme="dark"] #topbar-theme-toggle .topbar-icon-dark{display:inline-block}

/* ===== CALL BUTTON ===== */
.btn-call{
  background:var(--accent);color:#fff;border:none;
  padding:7px 14px;border-radius:8px;font-size:var(--fs-sm);font-weight:var(--fw-bold);
  cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-sans);
}
.btn-call:hover{background:#1D4ED8}

/* ===== AUTO-DIAL CONTROLS ===== */
.autodial-bar{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:14px 20px;margin-bottom:18px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
}
.autodial-title{font-size:var(--fs-md);font-weight:var(--fw-extrabold);color:var(--black)}
.autodial-sub{font-size:var(--fs-xs);color:var(--gray-400);margin-top:1px}
.autodial-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ===== AGENT CARDS ===== */
.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.agent-card{
  background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--border);
  padding:20px;transition:.12s;
}
.agent-card:hover{box-shadow:var(--shadow)}
.agent-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.agent-name{font-size:var(--fs-md);font-weight:var(--fw-extrabold);color:var(--black)}
.agent-company{font-size:var(--fs-sm);color:var(--gray-400);margin-top:2px}
.agent-stats{display:flex;gap:16px;margin:12px 0;padding-top:12px;border-top:1px solid var(--border-light)}
.agent-stat-item .num{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--black)}
.agent-stat-item .lbl{font-size:var(--fs-2xs);color:var(--gray-400);text-transform:uppercase;letter-spacing:.3px}
.agent-actions{display:flex;gap:6px;margin-top:12px}

/* Create agent card */
.create-agent-card{
  background:var(--white);border:2px dashed var(--border);border-radius:var(--radius-lg);
  padding:32px 20px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;cursor:pointer;transition:.12s;text-align:center;min-height:180px;
}
.create-agent-card:hover{border-color:var(--black);background:var(--bg)}
.create-agent-card .plus{font-size:var(--fs-5xl);color:var(--gray-400);margin-bottom:10px}
.create-agent-card:hover .plus{color:var(--black)}
.create-agent-card .clabel{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--black)}
.create-agent-card .csub{font-size:var(--fs-sm);color:var(--gray-400);margin-top:4px}

/* ===== MODAL =====
   Retired — every modal is now a real Bootstrap `.modal.fade` (see
   app.js's openModal()/closeModal(), unchanged call sites everywhere
   else) styled by Velzon's vendored CSS. */

/* ===== TOOLBAR ===== */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.search-box{
  display:flex;align-items:center;gap:8px;background:var(--white);
  border:1.5px solid var(--border);border-radius:var(--radius);padding:8px 12px;min-width:220px;
}
.search-box input{
  border:none;outline:none;font-size:var(--fs-base);color:var(--black);
  width:100%;background:transparent;font-family:var(--font-sans);
}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:60px 20px;color:var(--gray-400)}
.empty-state .eicon{font-size:var(--fs-6xl);margin-bottom:14px}
.empty-state p{font-size:var(--fs-md);margin-bottom:6px;color:var(--gray-600);font-weight:var(--fw-bold)}
.empty-state span{font-size:var(--fs-sm)}

/* ===== SPINNER ===== */
.spinner{
  width:16px;height:16px;border:2.5px solid rgba(255,255,255,.35);
  border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== PAGES ===== */
.page{display:none}.page.active{display:block}
#page-inbox.active{display:flex}

/* ===== STEP WIZARD ===== */
.steps{display:flex;align-items:center;margin-bottom:28px}
.step-dot{
  width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:var(--fs-sm);font-weight:var(--fw-bold);flex-shrink:0;transition:.2s;
}
.step-dot.active{background:var(--black);color:#fff}
.step-dot.done{background:var(--success);color:#fff}
.step-dot.idle{background:var(--gray-200);color:var(--gray-500)}
.step-line{flex:1;height:2px;background:var(--gray-200);margin:0 8px}
.step-line.done{background:var(--success)}
.step-label{font-size:var(--fs-2xs);color:var(--gray-500);text-align:center;margin-top:4px;text-transform:uppercase;letter-spacing:.3px}

/* ===== ACTIVE CALL PANEL ===== */
.active-call-panel{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:20px;margin-bottom:20px;
}
.call-status-bar{
  display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.call-status-dot{
  width:10px;height:10px;border-radius:50%;background:var(--success);
  animation:pulse-dot 1.5s ease-in-out infinite;
}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}
.call-timer{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--gray-600)}
.call-name{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--black);margin-bottom:2px}
.call-phone{font-size:var(--fs-base);color:var(--gray-500);display:flex;align-items:center;gap:6px}
.call-tags{display:flex;gap:8px;margin:12px 0}
.tag-vip{background:#FEF3C7;color:#92400E;padding:3px 10px;border-radius:20px;font-size:var(--fs-xs);font-weight:var(--fw-bold)}
.tag-repeat{background:var(--accent-light);color:#1D4ED8;padding:3px 10px;border-radius:20px;font-size:var(--fs-xs);font-weight:var(--fw-bold)}

/* Waveform */
.waveform{
  display:flex;align-items:center;justify-content:center;gap:3px;
  height:48px;margin:16px 0;
}
.waveform-bar{
  width:4px;border-radius:2px;background:var(--gray-300);
  animation:wave-anim 1.2s ease-in-out infinite;
}
.waveform-bar:nth-child(1){height:12px;animation-delay:.0s}
.waveform-bar:nth-child(2){height:20px;animation-delay:.1s}
.waveform-bar:nth-child(3){height:32px;animation-delay:.2s}
.waveform-bar:nth-child(4){height:40px;animation-delay:.3s}
.waveform-bar:nth-child(5){height:44px;animation-delay:.2s}
.waveform-bar:nth-child(6){height:48px;animation-delay:.1s}
.waveform-bar:nth-child(7){height:44px;animation-delay:.0s}
.waveform-bar:nth-child(8){height:40px;animation-delay:.1s}
.waveform-bar:nth-child(9){height:32px;animation-delay:.2s}
.waveform-bar:nth-child(10){height:20px;animation-delay:.3s}
.waveform-bar:nth-child(11){height:12px;animation-delay:.2s}
.waveform-bar:nth-child(12){height:20px;animation-delay:.1s}
.waveform-bar:nth-child(13){height:32px;animation-delay:.0s}
.waveform-bar:nth-child(14){height:40px;animation-delay:.1s}
.waveform-bar:nth-child(15){height:48px;animation-delay:.2s}
.waveform-bar.active{background:var(--accent)}
@keyframes wave-anim{
  0%,100%{transform:scaleY(1)}
  50%{transform:scaleY(0.4)}
}

/* Call disposition sidebar */
.crm-panel{border-left:1px solid var(--border);padding-left:20px}
.crm-row{
  display:flex;align-items:center;gap:12px;padding:12px 0;
  border-bottom:1px solid var(--border-light);
}
.crm-row:last-child{border-bottom:none}
.crm-row-icon{
  width:34px;height:34px;border-radius:50%;border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);flex-shrink:0;
}
.crm-row-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--gray-400);text-transform:uppercase;letter-spacing:.4px;margin-bottom:1px}
.crm-row-value{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--black)}
.crm-action-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 0;border-bottom:1px solid var(--border-light);cursor:pointer;
}
.crm-action-row:hover{color:var(--accent)}
.crm-action-row:last-child{border-bottom:none}
.crm-action-label{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--black)}

/* ===== CALLS TAB ===== */
.calls-filter-select{
  padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-size:var(--fs-base);color:var(--black);background:var(--white);outline:none;cursor:pointer;
  font-family:var(--font-sans);font-weight:var(--fw-semibold);
}
#calls-body tr{cursor:pointer}
#calls-body tr:hover td{background:var(--bg)}

/* Call detail modal */
.cdm-section{margin-bottom:20px}
.cdm-section:last-child{margin-bottom:0}
.cdm-section-label{
  font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--gray-400);
  text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;
}
.cdm-header-strip{
  background:var(--bg);border-radius:var(--radius);padding:14px;
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;
}
.cdm-header-item .lbl{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.cdm-header-item .val{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--black)}

/* Transcript */
.transcript-block{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px;max-height:300px;overflow-y:auto;
  font-size:var(--fs-sm);line-height:var(--lh-loose);
}
.transcript-line{display:flex;gap:8px;margin-bottom:4px}
.tl-speaker{flex-shrink:0;width:70px;font-weight:var(--fw-bold);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.3px}
.tl-speaker.agent{color:var(--accent)}
.tl-speaker.customer{color:var(--gray-400)}
.tl-text{color:var(--gray-700);flex:1}

/* ===== VALIDATION CARDS ===== */
.val-card{
  background:var(--bg);border:1.5px solid var(--border);
  border-radius:var(--radius);padding:12px 14px;transition:.2s;
}
.val-card.valid{border-color:var(--success);background:var(--success-bg)}
.val-card.invalid{border-color:var(--danger);background:var(--danger-bg)}

/* ===== CREDENTIAL CARDS ===== */
.cred-card{
  background:var(--white);border:1.5px solid var(--border);
  border-radius:var(--radius-lg);padding:20px;transition:.15s;
}
.cred-card:hover{box-shadow:var(--shadow)}
.cred-icon{
  width:44px;height:44px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);
  margin-bottom:12px;
}
.cred-name{font-size:var(--fs-md);font-weight:var(--fw-extrabold);color:var(--black);margin-bottom:4px}
.cred-desc{font-size:var(--fs-sm);color:var(--gray-500);margin-bottom:12px;line-height:var(--lh-normal)}
.cred-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:var(--fs-xs);font-weight:var(--fw-bold);margin-bottom:10px;text-transform:uppercase;letter-spacing:.4px}
.cred-status.live{background:var(--success-bg);color:var(--success-strong)}
.cred-status.invalid{background:var(--warning-bg);color:var(--status-callback-fg)}
.cred-status.offline{background:var(--gray-100);color:var(--gray-400)}
.cred-masked{font-size:var(--fs-sm);color:var(--gray-500);margin-bottom:12px;font-weight:var(--fw-medium)}
.cred-form{display:none;margin-top:14px;border-top:1px solid var(--border-light);padding-top:14px}
.cred-form.open{display:block}
.cred-form input{
  width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-size:var(--fs-sm);color:var(--black);margin-bottom:8px;outline:none;
  font-family:var(--font-sans);transition:.15s;
}
.cred-form input:focus{border-color:var(--black)}

/* ===== VOICE STUDIO ===== */

/* Top bar */
.vs-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}
.vs-tabs{display:flex;border-bottom:2px solid var(--border);gap:0;align-self:flex-end}
.vs-tab{padding:10px 20px;border:none;background:none;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;color:var(--gray-500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s}
.vs-tab.active{color:var(--black);border-bottom-color:var(--black)}
.vs-tab:hover:not(.active){color:var(--gray-700)}
.vs-agent-row{display:flex;align-items:center;gap:10px}
.vs-agent-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-500);white-space:nowrap}
.vs-agent-select{min-width:200px;padding:7px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-base);background:var(--white);color:var(--black);cursor:pointer}
.vs-loading-badge{display:none;font-size:var(--fs-xs);color:var(--gray-400);font-weight:var(--fw-semibold)}

/* Voice Library box */
.voice-lib-box{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.voice-lib-header{padding:18px 20px 14px;border-bottom:1.5px solid var(--border)}
.voice-lib-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--black);margin-bottom:3px}
.voice-lib-subtitle{font-size:var(--fs-sm);color:var(--gray-500)}

/* Search + filter toolbar */
.voice-lib-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1.5px solid var(--border)}
.voice-search-wrap{flex:1;position:relative;display:flex;align-items:center}
.voice-search-wrap svg{position:absolute;left:10px;color:var(--gray-400);pointer-events:none}
.voice-search-input{width:100%;padding:7px 10px 7px 32px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-base);background:var(--white);color:var(--black);outline:none;transition:.15s}
.voice-search-input:focus{border-color:var(--black)}
.voice-gender-filter{display:flex;align-items:center;gap:8px;white-space:nowrap}
.vgf-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-500)}
.vgf-select{padding:7px 10px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);background:var(--white);color:var(--black);cursor:pointer;outline:none}

/* Voice rows */
.voice-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);transition:.12s;gap:12px}
.voice-row:last-child{border-bottom:none}
.voice-row:hover{background:#FAFAFA}
.voice-row-selected{background:#F8F8FF}
.voice-row-info{flex:1;min-width:0}
.voice-row-name{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--black);margin-bottom:3px}
.voice-row-sub{font-size:var(--fs-sm);color:var(--gray-500)}
.voice-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.voice-row-empty{padding:32px 20px;text-align:center;font-size:var(--fs-base);color:var(--gray-400)}

/* Sample button */
.voice-sample-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--black);background:var(--white);cursor:pointer;transition:.12s;white-space:nowrap}
.voice-sample-btn:hover{border-color:var(--black);background:#F9F9F9}
.voice-sample-btn:disabled{opacity:.5;cursor:not-allowed}

/* Select button */
.voice-select-btn{padding:7px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-600);background:var(--white);cursor:pointer;transition:.12s;white-space:nowrap}
.voice-select-btn:hover{border-color:var(--black);color:var(--black)}
.voice-select-btn-active{border-color:var(--black)!important;background:var(--black)!important;color:var(--white)!important}

/* Pagination */
.voice-lib-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1.5px solid var(--border);background:var(--white)}
.vp-info{font-size:var(--fs-sm);color:var(--gray-500)}
.vp-nav{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--gray-500)}
.vp-btn{width:28px;height:28px;border:1.5px solid var(--border);border-radius:6px;background:var(--white);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.12s}
.vp-btn:hover:not(:disabled){border-color:var(--black)}
.vp-btn:disabled{opacity:.35;cursor:not-allowed}

/* Error alert */
.voice-studio-alert{margin-top:12px;padding:10px 14px;border-radius:var(--radius);font-size:var(--fs-base);background:#FEF2F2;color:#B91C1C;border:1px solid #FECACA}

/* ─── Live Playground ─────────────────────────────────── */
/* Live panel fills remaining viewport so chat scrolls, not the page */
#vstab-live-panel{height:calc(100vh - 175px);min-height:480px;overflow:hidden;display:flex;flex-direction:column}
.pg-layout{display:grid;grid-template-columns:260px 1fr;height:100%;min-height:0;border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--white)}
@media(max-width:700px){.pg-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}}
/* Left controls panel */
.pg-controls-panel{padding:28px 20px;border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:16px;background:var(--gray-50);text-align:center;overflow-y:auto}
.pg-header-info{width:100%}
.pg-header-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--black);margin-bottom:3px}
.pg-header-sub{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal)}
/* Status badge */
.pg-status-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 16px;border-radius:20px;background:var(--gray-100);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-600)}
.pg-status-dot{width:7px;height:7px;border-radius:50%;background:var(--gray-400);display:inline-block;transition:background .3s}
/* Mic button */
.pg-mic-container{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center}
.pg-mic-btn{width:88px;height:88px;border-radius:50%;border:none;background:var(--black);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 28px rgba(0,0,0,.22);transition:all .25s;position:relative;z-index:1}
/* The mic glyph is a raw inline SVG with stroke="white" — a literal that
   never inverts with the theme. .pg-mic-btn's background is var(--black),
   which DOES invert (light in dark theme, matching every other --black/
   --white icon-on-circle pairing in this file, e.g. .ad-avatar-circle).
   Without this override the idle button renders a near-white icon on a
   near-white circle in dark mode. */
#pg-mic-icon svg{stroke:var(--white)}
.pg-mic-btn:hover:not(:disabled){transform:scale(1.07);box-shadow:0 8px 32px rgba(0,0,0,.28)}
.pg-mic-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.pg-mic-btn.active{background:#EF4444;box-shadow:0 6px 24px rgba(239,68,68,.35)}
.pg-mic-btn.connecting{background:#F59E0B}
.pg-pulse-ring{position:absolute;inset:-6px;border-radius:50%;border:2.5px solid var(--danger-strong);opacity:.45;animation:pulse-ring 1.3s ease-out infinite;pointer-events:none}
.pg-mic-hint{font-size:var(--fs-sm);color:var(--gray-500);font-weight:var(--fw-medium)}
/* Stop bar */
.pg-stop-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.pg-stop-btn{background:#EF4444!important;color:#fff!important;border:none!important;display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm)!important}
.pg-stop-btn:hover{background:#DC2626!important}
.pg-lang-row{display:flex;align-items:center;gap:8px;width:100%}
.pg-lang-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--gray-500);white-space:nowrap}
.pg-lang-select{flex:1;font-size:var(--fs-sm);padding:5px 8px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--white);color:var(--gray-700);cursor:pointer}
.pg-lang-select:disabled{opacity:.5;cursor:not-allowed}
.pg-footer-note{font-size:var(--fs-xs);color:var(--gray-400);margin-top:auto;padding-top:8px}
.pg-error{padding:10px 14px;border-radius:var(--radius);font-size:var(--fs-sm);background:#FEF2F2;color:#B91C1C;border:1px solid #FECACA;width:100%;box-sizing:border-box;text-align:left;line-height:var(--lh-snug)}
/* Right chat panel */
.pg-chat-panel{display:flex;flex-direction:column;overflow:hidden}
.pg-chat-header{padding:12px 18px;border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--gray-400);display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.5px}
.pg-chat-messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}
.pg-chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--gray-400);font-size:var(--fs-base);text-align:center;padding:40px 20px}
.pg-chat-empty p{margin:0;line-height:var(--lh-normal)}
/* Message bubbles */
.pg-msg-row{display:flex;flex-direction:column;gap:3px;max-width:82%}
.pg-msg-row.user-row{align-self:flex-end;align-items:flex-end}
.pg-msg-row.agent-row{align-self:flex-start;align-items:flex-start}
.pg-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--gray-400);text-transform:uppercase;letter-spacing:.4px}
.pg-msg{padding:9px 13px;border-radius:12px;font-size:var(--fs-base);line-height:var(--lh-normal);word-break:break-word}
.pg-msg.agent{background:var(--accent-light);color:var(--accent);border-radius:4px 12px 12px 12px}
.pg-msg.user{background:var(--gray-100);color:var(--gray-800);border-radius:12px 4px 12px 12px}


/* ===== AGENT DETAIL PAGE ===== */

/* Top bar */
.ad-topbar{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.ad-back-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--gray-600);background:var(--white);cursor:pointer;transition:.12s;white-space:nowrap}
.ad-back-btn:hover{border-color:var(--black);color:var(--black)}
.ad-hero{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.ad-avatar-circle{width:44px;height:44px;border-radius:50%;background:var(--black);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);font-weight:var(--fw-extrabold);flex-shrink:0}
.ad-agent-name{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--black)}
.ad-agent-meta{font-size:var(--fs-sm);color:var(--gray-400);margin-top:2px}
.ad-hero-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ad-try-live-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;border:none;background:var(--black);color:var(--white);font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-bold);cursor:pointer;transition:.15s}
.ad-try-live-btn:hover{background:#1a1a1a}

/* Tabs */
.ad-tabs-row{display:flex;border-bottom:1.5px solid var(--border);gap:0;margin-bottom:24px}
.ad-tab{padding:10px 20px;border:none;background:none;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;color:var(--gray-500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.12s}
.ad-tab.active{color:var(--black);border-bottom-color:var(--black)}
.ad-tab:hover:not(.active){color:var(--gray-700)}

/* Panel */
.ad-panel{max-width:860px}

/* Phone CTA */
.ad-phone-cta{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--white);font-size:var(--fs-base);color:var(--gray-600)}
.ad-phone-cta span{flex:1}
.ad-phone-cta svg{flex-shrink:0;color:var(--gray-400)}

/* Instructions box */
.ad-field-label{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--black);margin-bottom:8px}
.ad-instructions-box{position:relative;border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:visible}
.ad-instructions-textarea{width:100%;min-height:160px;padding:14px 14px 48px;border:none;border-radius:var(--radius-lg);font-family:inherit;font-size:var(--fs-base);color:var(--black);resize:vertical;outline:none;background:var(--white)}
.ad-instructions-textarea:focus{outline:none}
.ad-instructions-box:focus-within{border-color:var(--black)}
.ad-voice-chip-wrap{position:absolute;bottom:10px;right:10px}
.ad-voice-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1.5px solid var(--border);border-radius:20px;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-600);background:var(--white);cursor:pointer;transition:.12s}
.ad-voice-chip:hover{border-color:var(--black);color:var(--black)}
.ad-voice-dropdown{position:absolute;right:0;bottom:calc(100% + 6px);min-width:200px;max-height:260px;overflow-y:auto;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200}
.ad-voice-option{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;font-size:var(--fs-base);transition:.1s}
.ad-voice-option:hover{background:var(--gray-50)}
.avo-name{font-weight:var(--fw-semibold);color:var(--black)}
.avo-gender{font-size:var(--fs-xs);color:var(--gray-400)}

/* Add guardrail */
.ad-add-guardrail{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:0;border:none;background:none;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--gray-500);cursor:pointer;transition:.12s}
.ad-add-guardrail:hover{color:var(--black)}

/* Toggles */
.ad-toggle-section{padding:16px 0;border-bottom:1px solid var(--border)}
.ad-toggle-section:first-of-type{margin-top:16px}
.ad-bordered-top{border-top:1px solid var(--border)}
.ad-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ad-toggle-info{flex:1}
.ad-toggle-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--black)}
.ad-toggle-desc{font-size:var(--fs-sm);color:var(--gray-500);margin-top:3px}
.ad-welcome-input{width:100%;margin-top:12px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-base);color:var(--black);min-height:64px;resize:vertical;outline:none;transition:.12s}
.ad-welcome-input:focus{border-color:var(--black)}

/* Toggle switch */
.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-track{position:absolute;cursor:pointer;inset:0;background:var(--gray-300);border-radius:12px;transition:.2s}
.toggle-track:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:var(--white);border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-switch input:checked + .toggle-track{background:var(--black)}
.toggle-switch input:checked + .toggle-track:before{transform:translateX(20px)}

/* Tools section */
.ad-tools-section{padding:16px 0;border-bottom:1px solid var(--border)}
.ad-section-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.ad-section-hdr-desc{font-size:var(--fs-sm);color:var(--gray-500);margin-top:3px}
.ad-tools-list{display:flex;flex-direction:column;gap:8px}
.ad-tools-empty{font-size:var(--fs-base);color:var(--gray-400);padding:10px 0}
.ad-tool-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--white);transition:.12s}
.ad-tool-card:hover{border-color:var(--gray-300)}
.ad-tool-card-icon{width:28px;height:28px;border-radius:6px;background:var(--gray-100);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ad-tool-info{flex:1;min-width:0}
.ad-tool-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--black)}
.ad-tool-desc{font-size:var(--fs-sm);color:var(--gray-500);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Connectors grid */
.ad-connectors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:10px}
.ad-conn-card{display:flex;flex-direction:column;gap:10px;padding:14px;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--white);transition:.12s}
.ad-conn-card:hover{border-color:var(--gray-300)}
.ad-conn-card.connected{border-color:#16A34A;background:#F0FDF4}
.ad-conn-top{display:flex;align-items:center;gap:10px}
.ad-conn-logo{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);flex-shrink:0}
.ad-conn-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--black);flex:1}
.ad-conn-status{font-size:var(--fs-xs);color:var(--gray-400)}
.ad-conn-status.ok{color:#16A34A;font-weight:var(--fw-semibold)}
.ad-conn-actions{display:flex;gap:6px}

/* Advanced toggle */
.ad-advanced-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:8px 0;border:none;background:none;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--gray-500);cursor:pointer;transition:.12s}
.ad-advanced-toggle:hover{color:var(--black)}

/* Active + save row */
.ad-save-row{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1.5px solid var(--border)}
.ad-active-label{display:flex;align-items:center;gap:8px;font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;color:var(--gray-600)}
.ad-active-label input{width:15px;height:15px;cursor:pointer;accent-color:var(--black)}

/* Deployment */
.ad-deploy-section{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:20px}
.ad-deploy-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.ad-deploy-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--black);margin-bottom:4px}
.ad-deploy-desc{font-size:var(--fs-base);color:var(--gray-500)}
.ad-phone-list{min-height:80px}
.ad-phone-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:8px;text-align:center}
.ad-phone-empty-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--gray-700)}
.ad-phone-empty-sub{font-size:var(--fs-sm);color:var(--gray-400)}
.ad-phone-row{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:var(--fs-base)}
.ad-phone-num{font-weight:var(--fw-bold);color:var(--black)}
.ad-phone-name{color:var(--gray-500)}

/* Code block */
.ad-code-tabs-row{display:flex;gap:0;margin-bottom:0;border-bottom:1.5px solid var(--border)}
.ad-code-tab{padding:8px 16px;border:none;background:none;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;color:var(--gray-500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.12s}
.ad-code-tab.active{color:var(--black);border-bottom-color:var(--black)}
.ad-code-block{background:#0D1117;color:#C9D1D9;padding:20px;border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:var(--fs-sm);font-family:var(--font-mono);line-height:var(--lh-relaxed);overflow-x:auto;white-space:pre;margin:0}

/* Conversations */
.ad-convs-info{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--radius);background:var(--gray-50);border:1.5px solid var(--border);font-size:var(--fs-base);color:var(--gray-600);margin-bottom:16px}
.ad-convs-table{width:100%;border-collapse:collapse;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.ad-convs-table th{padding:11px 16px;text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--gray-500);text-transform:uppercase;letter-spacing:.4px;border-bottom:1.5px solid var(--border);background:var(--gray-50)}
.ad-convs-table td{padding:13px 16px;font-size:var(--fs-base);color:var(--gray-700);border-bottom:1px solid var(--border)}
.ad-convs-table tr:last-child td{border-bottom:none}
.convs-sid{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--black)}
.ad-convs-loading{text-align:center;padding:32px;color:var(--gray-400)}

/* ===== PHONE NUMBER MODAL ===== */
.pn-info-banner{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius);background:#EFF6FF;border:1px solid #BFDBFE;font-size:var(--fs-base);color:#1E40AF;margin-bottom:16px}
.pn-info-banner svg{flex-shrink:0;margin-top:2px}
.pn-section-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.pn-copy-row{display:flex;gap:8px}
.pn-readonly-input{flex:1;padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-600);background:var(--gray-50);cursor:default}
.pn-copy-btn{padding:8px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-600);background:var(--white);cursor:pointer;transition:.12s;white-space:nowrap}
.pn-copy-btn:hover{border-color:var(--black);color:var(--black)}

/* ===== REQUIREMENTS GRID ===== */
.req-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.req-item{background:var(--bg);border-radius:var(--radius);padding:10px 14px}
.req-item .r-lbl{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.req-item .r-val{font-size:var(--fs-base);color:var(--black);font-weight:var(--fw-semibold)}

/* Meeting strip */
.meeting-strip{
  background:var(--success-bg);border:1px solid #6EE7B7;border-radius:var(--radius);
  padding:12px 16px;display:flex;align-items:center;gap:10px;
}
.meeting-strip .m-icon{font-size:var(--fs-xl)}
.meeting-strip .m-dt{font-size:var(--fs-base);font-weight:var(--fw-bold);color:#065F46;flex:1}
.meeting-strip a{font-size:var(--fs-sm);color:#059669;font-weight:var(--fw-bold);text-decoration:none}
.meeting-strip a:hover{text-decoration:underline}

/* ===== ANIMATIONS ===== */
@keyframes pulse-ring{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(1.5);opacity:0}
}
@keyframes blink-cursor{
  0%,100%{opacity:1} 50%{opacity:0}
}
.pg-msg-live::after{content:'▋';animation:blink-cursor 1s step-end infinite;opacity:.7;font-size:.8em}

/* ===== VOICE AGENTS LIST PAGE ===== */
.va-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.va-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--black);margin-bottom:2px}
.va-subtitle{font-size:var(--fs-base);color:var(--gray-500)}
.va-list{display:flex;flex-direction:column;gap:0}
.va-list-box{background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.va-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}
.va-row:last-child{border-bottom:none}
.va-row:hover{background:var(--bg)}
.va-row-left{display:flex;align-items:center;gap:12px}
.va-row-avatar{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--tag-purple));display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--on-accent);flex-shrink:0}
.va-row-info{display:flex;flex-direction:column;gap:2px}
.va-row-name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--black)}
.va-row-meta{font-size:var(--fs-sm);color:var(--gray-500);display:flex;align-items:center;gap:6px}
.va-row-voice{color:var(--gray-400)}
.va-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.va-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.va-dot-active{background:var(--success-strong)}
.va-dot-inactive{background:var(--gray-300)}
.va-status-label{font-size:var(--fs-sm);color:var(--gray-500);min-width:48px}
.va-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}
.va-empty-icon{margin-bottom:12px;opacity:.5}
.va-empty-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--gray-600);margin-bottom:4px}
.va-empty-sub{font-size:var(--fs-base);color:var(--gray-400)}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .auth-left{display:none}
  .auth-right{width:100%;min-width:auto;padding:32px 20px}
  .stat-grid{grid-template-columns:1fr 1fr}
  .agent-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .navbar-header{flex-wrap:nowrap}
  .navbar-header .page-title,
  .navbar-header .page-subtitle{
    max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  #topbar-action .btn{padding:4px 10px;font-size:var(--fs-sm)}
}

/* ===== CAMPAIGN WIZARD — LEAD PICKER FILTER BAR ===== */
.cwf-filter-bar{
  display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;
  padding:12px 14px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;
}
.cwf-filter-field{display:flex;flex-direction:column;flex:1 1 170px;min-width:150px;max-width:240px}
.cwf-filter-field .form-label{margin-bottom:4px;font-size:var(--fs-2xs);letter-spacing:.4px}
/* job_title values can be long free-text strings — without a hard width cap
   + ellipsis, some browsers size a closed <select> to its widest OPTION,
   blowing the whole filter bar (and modal) out horizontally. */
.cwf-filter-select{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cwf-filter-clear-btn{margin-left:auto;white-space:nowrap;flex-shrink:0;padding-bottom:2px}
@media(max-width:600px){
  .cwf-filter-bar{gap:10px}
  .cwf-filter-field{flex:1 1 100%;max-width:none}
  .cwf-filter-clear-btn{margin-left:0}
}
