/* ═══════════════════════════════════════════════════════════════
   CONTRAQ DESIGN SYSTEM v2.0
   Shared styles for the M&E Estimation Platform
   ═══════════════════════════════════════════════════════════════ */

/* ── Section 1: Colour System ─────────────────────────────────── */
:root {
  /* Primary — steel blue */
  --c-primary:        #2C5D9E;
  --c-primary-dark:   #1E3F6E;
  --c-primary-light:  #4A7FBF;
  --c-primary-subtle: #E8F0FA;

  /* Action — construction orange */
  --c-action:         #F05A28;
  --c-action-dark:    #C04418;
  --c-action-light:   #FF7A4D;
  --c-action-subtle:  #FEF0EB;

  /* Accent — gold */
  --c-gold:           #D4A017;
  --c-gold-subtle:    #FBF3DC;

  /* Neutrals */
  --c-white:          #FFFFFF;
  --c-off-white:      #F5F7FA;
  --c-slate-light:    #E8ECEF;
  --c-slate:          #C8CDD5;
  --c-gray-text:      #4A4A4A;
  --c-gray-muted:     #717171;
  --c-charcoal:       #1E1E1E;
  --c-footer:         #181818;

  /* Semantic */
  --c-success:        #2E7D32;
  --c-success-bg:     #EAF3EB;
  --c-warning:        #B45309;
  --c-warning-bg:     #FEF3C7;
  --c-danger:         #B91C1C;
  --c-danger-bg:      #FEE2E2;
  --c-info:           #1E40AF;
  --c-info-bg:        #DBEAFE;

  /* Typography */
  --font-main:        'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:        'JetBrains Mono', 'Fira Code', monospace;

  /* Spacing */
  --radius-sm:        8px;
  --radius-md:        10px;
  --radius-lg:        16px;
  --radius-xl:        20px;

  /* Shadows */
  --shadow-sm:        0 1px 3px rgba(0,0,0,0.10);
  --shadow-md:        0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg:        0 8px 24px rgba(0,0,0,0.12);
}

/* ── Section 2: Typography ────────────────────────────────────── */
* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 400;
  color: var(--c-gray-text);
  line-height: 1.6;
  background: var(--c-off-white);
  -webkit-font-smoothing: antialiased;
}

h1 { font-size: 24px; font-weight: 700; color: #0B1E3E; letter-spacing: -0.3px; line-height: 1.3; }
h2 { font-size: 18px; font-weight: 600; color: #0B1E3E; letter-spacing: -0.3px; line-height: 1.4; }
h3 { font-size: 15px; font-weight: 600; color: #0B1E3E; line-height: 1.4; }

.label-sm {
  font-size: 12px; font-weight: 500; color: var(--c-gray-muted);
  text-transform: uppercase; letter-spacing: 0.4px;
}

.metric-number { font-size: 32px; font-weight: 800; line-height: 1; color: #0B1E3E; }
.metric-label { font-size: 11px; font-weight: 500; color: #717171; text-transform: uppercase; letter-spacing: 1px; }

.mono { font-family: var(--font-mono); }

/* ── Section 3: Components — Buttons ──────────────────────────── */
.btn-action {
  background: var(--c-action); color: var(--c-white); border: none;
  padding: 10px 22px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 600; cursor: pointer;
  transition: all 0.15s ease; display: inline-flex; align-items: center; gap: 8px;
}
.btn-action:hover { background: var(--c-action-dark); transform: translateY(-1px); }
.btn-action:active { transform: translateY(0); }

.btn-secondary {
  background: var(--c-white); color: var(--c-primary); border: 1.5px solid var(--c-primary);
  padding: 10px 22px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.15s ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.btn-secondary:hover { background: var(--c-primary-subtle); }

.btn-ghost {
  background: transparent; color: var(--c-gray-text); border: 1px solid var(--c-slate);
  padding: 10px 22px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.15s ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.btn-ghost:hover { background: var(--c-slate-light); }

.btn-danger {
  background: var(--c-danger-bg); color: var(--c-danger); border: 1px solid var(--c-danger);
  padding: 10px 22px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.15s ease;
}
.btn-danger:hover { background: #fecaca; }

.btn-sm { padding: 7px 16px; font-size: 13px; }
.btn-xs { padding: 4px 10px; font-size: 12px; }
.btn-icon { width: 36px; height: 36px; padding: 0; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-md); }

/* ── Components — Cards ───────────────────────────────────────── */
.card-v2 {
  background: #fff; border: 1px solid #E8ECEF;
  border-radius: 16px; padding: 20px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04); transition: all 0.2s ease;
}
.card-v2.clickable:hover { box-shadow: var(--shadow-md); border-color: var(--c-primary-light); }

.card-metric {
  background: var(--c-primary-subtle); border: none;
  border-radius: var(--radius-md); padding: 16px 20px;
  border-left: 3px solid var(--c-primary);
}

.card-alert-success { background: var(--c-success-bg); border-left: 3px solid var(--c-success); border-radius: var(--radius-md); padding: 14px 18px; }
.card-alert-warning { background: var(--c-warning-bg); border-left: 3px solid var(--c-warning); border-radius: var(--radius-md); padding: 14px 18px; }
.card-alert-danger  { background: var(--c-danger-bg);  border-left: 3px solid var(--c-danger);  border-radius: var(--radius-md); padding: 14px 18px; }
.card-alert-info    { background: var(--c-info-bg);    border-left: 3px solid var(--c-info);    border-radius: var(--radius-md); padding: 14px 18px; }

/* ── Components — Badges ──────────────────────────────────────── */
.badge-v2 {
  padding: 3px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px;
  display: inline-flex; align-items: center; gap: 4px;
}
.badge-success  { background: var(--c-success-bg); color: var(--c-success); }
.badge-warning  { background: var(--c-warning-bg); color: var(--c-warning); }
.badge-danger   { background: var(--c-danger-bg);  color: var(--c-danger); }
.badge-info     { background: var(--c-info-bg);    color: var(--c-info); }
.badge-action   { background: var(--c-action-subtle); color: var(--c-action-dark); }
.badge-gold     { background: var(--c-gold-subtle); color: var(--c-gold); }

/* ── Components — Inputs ──────────────────────────────────────── */
.input-v2 {
  background: #F8F9FB; border: 1px solid #D0D5DD;
  border-radius: 10px; padding: 9px 14px;
  font-size: 14px; color: var(--c-charcoal); font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  width: 100%; outline: none; transition: border-color 0.15s;
}
.input-v2:focus { border-color: #2C5D9E; box-shadow: 0 0 0 3px rgba(44,93,158,0.1); }
.input-v2::placeholder { color: var(--c-gray-muted); }

.textarea-v2 { resize: vertical; min-height: 80px; }

/* ── Components — Tables ──────────────────────────────────────── */
.table-v2 { width: 100%; border-collapse: collapse; }
.table-v2 thead th {
  background: #0B1E3E; color: #fff;
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.8px; padding: 12px 16px; text-align: left;
}
.table-v2 tbody tr { border-bottom: 1px solid #F0F2F5; }
.table-v2 tbody tr:nth-child(even) { background: #F8F9FB; }
.table-v2 tbody tr:hover { background: rgba(44,93,158,0.04); }
.table-v2 tbody td { padding: 12px 16px; font-size: 13px; }
.table-v2 tbody td:first-child { font-weight: 500; color: var(--c-charcoal); }

/* ── Components — Sidebar (new architecture) ──────────────────── */
.sidebar-v2 {
  width: 240px; background: #0B1E3E; position: fixed;
  top: 0; left: 0; bottom: 0; display: flex; flex-direction: column;
  z-index: 50; overflow-y: auto;
}
.sidebar-v2-logo {
  height: 60px; padding: 0 20px; display: flex; align-items: center;
  color: var(--c-white); font-size: 18px; font-weight: 700; letter-spacing: -0.3px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.sidebar-v2-logo span { color: var(--c-primary-light); font-weight: 400; font-size: 12px; margin-left: 8px; }

.mode-switcher {
  padding: 12px 12px 8px; display: flex; gap: 4px;
}
.mode-btn {
  flex: 1; height: 44px; border: none; border-radius: var(--radius-md);
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; cursor: pointer; transition: all 0.2s ease;
}
.mode-btn.active-estimating { background: var(--c-action); color: var(--c-white); }
.mode-btn.active-contracting { background: var(--c-primary-dark); color: var(--c-white); border: 1px solid rgba(255,255,255,0.2); }
.mode-btn.inactive { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.5); }

.nav-section-v2 {
  font-size: 10px; color: rgba(255,255,255,0.35); text-transform: uppercase;
  letter-spacing: 1.5px; font-weight: 700; padding: 16px 20px 6px;
}
.nav-item-v2 {
  padding: 10px 20px; color: rgba(255,255,255,0.65); font-size: 13px;
  font-weight: 500; cursor: pointer; display: flex; align-items: center;
  gap: 10px; transition: all 0.15s ease; text-decoration: none;
}
.nav-item-v2:hover { background: rgba(255,255,255,0.08); color: #fff; }
.nav-item-v2.active {
  background: rgba(255,255,255,0.12); color: #fff;
  border-left: 3px solid #F05A28; font-weight: 600;
}

/* ── Components — Top Navbar ──────────────────────────────────── */
.topnav-v2 {
  height: 56px; background: var(--c-white); border-bottom: 1px solid var(--c-slate);
  padding: 0 28px; display: flex; align-items: center; justify-content: space-between;
  margin-left: 240px; position: sticky; top: 0; z-index: 40;
}
/* When inside flex shell, margin is handled by flex — not margin-left */
.dash-shell .topnav-v2,
.dash-shell .main-content-v2 { margin-left: 0; }
.dash-shell .dash-topbar.topnav-v2 { height: 60px; }
.topnav-v2-title { font-size: 18px; font-weight: 700; color: var(--c-charcoal); }
.topnav-v2-breadcrumb { font-size: 12px; color: var(--c-gray-muted); margin-left: 12px; }
.topnav-v2-search {
  width: 280px; background: var(--c-slate-light); border: none;
  border-radius: 20px; padding: 8px 16px 8px 36px; font-size: 13px;
  color: var(--c-charcoal); outline: none;
}
.topnav-v2-search:focus { box-shadow: 0 0 0 2px var(--c-primary-subtle); }
.topnav-v2-avatar {
  width: 34px; height: 34px; border-radius: 50%; background: var(--c-primary);
  color: var(--c-white); font-size: 13px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}

/* ── Main Content Area ────────────────────────────────────────── */
.main-content-v2 { margin-left: 240px; padding: 28px 32px; min-height: 100vh; }

/* ── Loading States ───────────────────────────────────────────── */
.spinner {
  width: 20px; height: 20px; border: 2px solid var(--c-slate);
  border-top-color: var(--c-primary); border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.skeleton {
  background: var(--c-slate-light);
  background-image: linear-gradient(90deg, var(--c-slate-light) 0%, #d5d9de 50%, var(--c-slate-light) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  border-radius: var(--radius-sm);
}

/* ── Section 10: Animations ───────────────────────────────────── */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.5} }
@keyframes pulse-orange { 0%,100%{box-shadow:0 0 0 0 rgba(240,90,40,0.4)} 50%{box-shadow:0 0 0 8px rgba(240,90,40,0)} }
@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes countUp { from{opacity:0} to{opacity:1} }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-4px)} 75%{transform:translateX(4px)} }
@keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }

.animate-fadeIn { animation: fadeIn 0.2s ease forwards; }
.animate-shake { animation: shake 0.3s ease; }

/* ── Pipeline Stages ──────────────────────────────────────────── */
.stage-complete { background: var(--c-success); color: var(--c-white); }
.stage-active { background: var(--c-action); color: var(--c-white); animation: pulse 2s ease-in-out infinite; }
.stage-pending { background: var(--c-slate-light); color: var(--c-gray-muted); }
.stage-connector { height: 2px; flex: 1; }
.stage-connector.done { background: var(--c-success); }
.stage-connector.pending { background: var(--c-slate); }

/* ── Confidence Badges ────────────────────────────────────────── */
.conf-high   { background: var(--c-success-bg); color: var(--c-success); }
.conf-medium { background: var(--c-warning-bg); color: var(--c-warning); }
.conf-low    { background: var(--c-danger-bg);  color: var(--c-danger); }

/* ── Section 9: Mobile Responsiveness ─────────────────────────── */
@media (max-width: 1024px) {
  .sidebar-v2 { width: 200px; }
  .topnav-v2, .main-content-v2 { margin-left: 200px; }
  .dash-shell .topnav-v2, .dash-shell .main-content-v2 { margin-left: 0; }
  .dash-shell .dash-sidebar { width: 200px; }
  .main-content-v2 { padding: 20px; }
}

@media (max-width: 768px) {
  .sidebar-v2 {
    position: fixed; bottom: 0; top: auto; left: 0; right: 0;
    width: 100% !important; height: 60px; flex-direction: row;
    justify-content: space-around; align-items: center;
    border-top: 1px solid rgba(255,255,255,0.1);
    overflow: hidden; z-index: 100;
  }
  .sidebar-v2-logo, .mode-switcher, .nav-section-v2 { display: none; }
  .nav-item-v2 { flex-direction: column; font-size: 10px; padding: 6px 8px; gap: 2px; }
  .nav-item-v2.active { border-left: none; border-top: 2px solid var(--c-action); }
  .topnav-v2 { margin-left: 0; }
  .topnav-v2-search { display: none; }
  .main-content-v2 { margin-left: 0; padding: 16px; padding-bottom: 80px; }

  /* Platform shell mobile */
  .dash-shell { flex-direction: column; }
  .dash-shell .dash-sidebar {
    width: 100% !important; height: 60px !important;
    position: fixed !important; bottom: 0 !important; top: auto !important;
    left: 0 !important; right: 0 !important;
    flex-direction: row; justify-content: space-around; align-items: center;
  }
  .dash-shell .dash-main { margin-left: 0; }
  .dash-content { padding: 1rem !important; padding-bottom: 80px !important; }

  .metrics-grid { grid-template-columns: 1fr 1fr !important; }
  .quick-actions-grid { grid-template-columns: 1fr !important; }
  .table-v2 { display: block; overflow-x: auto; }
}

/* ── Utility Classes ──────────────────────────────────────────── */
.metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
.quick-actions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 28px; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.gap-8 { gap: 8px; } .gap-12 { gap: 12px; } .gap-16 { gap: 16px; }
.mb-16 { margin-bottom: 16px; } .mb-24 { margin-bottom: 24px; } .mb-28 { margin-bottom: 28px; }
.text-primary { color: var(--c-primary); } .text-action { color: var(--c-action); }
.text-success { color: var(--c-success); } .text-warning { color: var(--c-warning); }
.text-danger { color: var(--c-danger); } .text-gold { color: var(--c-gold); }
.text-muted { color: var(--c-gray-muted); }
.bg-primary-subtle { background: var(--c-primary-subtle); }
.bg-off-white { background: var(--c-off-white); }

/* ── Churn Prevention ─────────────────────────────────────────── */
.churn-banner {
  padding: 12px 28px; font-size: 13px; display: flex;
  align-items: center; justify-content: space-between; gap: 12px;
}
.churn-welcome { background: var(--c-gold-subtle); border-left: 3px solid var(--c-gold); }
.churn-failure { background: var(--c-danger-bg); border-left: 3px solid var(--c-danger); }
.churn-trial {
  background: var(--c-action); color: var(--c-white);
  font-weight: 600; text-align: center; justify-content: center;
}
.churn-export-pulse { animation: pulse-orange 2s ease-in-out infinite; }

/* ── v2 Overrides for legacy .field inputs ───────────────────── */
.field input, .field select, .field textarea {
  background: #F8F9FB; border: 1px solid #D0D5DD;
  border-radius: 10px; padding: 9px 14px;
  font-size: 14px; color: var(--c-charcoal); font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  outline: none; transition: border-color 0.15s;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: #2C5D9E; box-shadow: 0 0 0 3px rgba(44,93,158,0.1);
}
.field input::placeholder, .field textarea::placeholder { color: var(--c-gray-muted); }
.field select option { background: var(--c-white); }
.field label { color: var(--c-gray-muted); font-family: var(--font-main); }

/* ── v2 Overrides for modal containers ───────────────────────── */
.modal { background: #fff; color: var(--c-gray-text); border: 1px solid #E8ECEF; border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,0.15); }
.modal-header { border-bottom: 1px solid #E8ECEF; padding: 20px 24px; }
.modal-footer { border-top: 1px solid #E8ECEF; }
.modal-title { color: #0B1E3E; font-size: 18px; font-weight: 700; }
.modal-close { color: #717171; width: 32px; height: 32px; border-radius: 8px; background: #F5F7FA; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.15s; }
.modal-close:hover { background: #E8ECEF; color: #0B1E3E; }
.modal-err { background: var(--c-danger-bg); border-color: var(--c-danger); color: var(--c-danger); }

/* ── v2 Overrides for app shell ──────────────────────────────── */
/* ── Platform shell — flex layout fix ─────────────────────────── */
.dash-shell { background: var(--c-off-white); display: flex; height: 100vh; overflow: hidden; }
.dash-shell .dash-sidebar {
  width: 240px; flex-shrink: 0;
  /* Override sidebar-v2 position:fixed — flex handles positioning inside shell */
  position: relative !important; top: auto !important; left: auto !important; bottom: auto !important;
}
.dash-main { background: var(--c-off-white); flex: 1; min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
.dash-topbar { background: #fff; border-bottom: 1px solid #E8ECEF; }
.dash-topbar-title { color: #0B1E3E; font-size: 20px; font-weight: 800; letter-spacing: -0.3px; }
.dash-content { background: var(--c-off-white); flex: 1; overflow-y: auto; overflow-x: hidden; padding: 1.5rem; }
/* Scrollbar styling */
.dash-content::-webkit-scrollbar { width: 6px; }
.dash-content::-webkit-scrollbar-thumb { background: #D0D5DD; border-radius: 3px; }
.dash-content::-webkit-scrollbar-thumb:hover { background: #9CA3AF; }
.dash-sidebar::-webkit-scrollbar { width: 4px; }
.dash-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
.dash-content > .panel { width: 100%; max-width: 100%; overflow-x: hidden; }
.dash-content > .panel.active { display: flex; flex-direction: column; width: 100%; }
/* Ensure all grids, tables, and wide elements respect container width */
.dash-content .tbl { width: 100%; table-layout: auto; }
.dash-content .pl-kpi-grid,
.dash-content .qb-stat-grid,
.dash-content .metrics-grid,
.dash-content .quick-actions-grid { max-width: 100%; }
/* Modal positioning — relative to viewport not content */
.dash-content .modal-backdrop { position: fixed; }

/* ── Auth pages — full width, no sidebar bleed ────────────────── */
#page-login .auth-wrap,
#page-register .auth-wrap,
#page-security .auth-wrap,
#page-onboarding,
#page-trade,
#page-stripe { position: relative; z-index: 1; }

/* ── v2 Overrides for sidebar items ──────────────────────────── */
.sb-item.active { border-color: var(--c-action); }
.sb-logo-sq { background: var(--c-action); }
.sb-trial { background: var(--c-action-subtle); border-bottom-color: var(--c-slate); }

/* Admin button — high visibility on dark sidebar */
.sb-admin-only.sb-item {
  background: rgba(240,90,40,0.15) !important;
  border: 1px solid rgba(240,90,40,0.35) !important;
  border-radius: 8px !important;
  color: #FF7A4D !important;
  font-weight: 600;
}
.sb-admin-only.sb-item:hover {
  background: rgba(240,90,40,0.25) !important;
  border-color: rgba(240,90,40,0.5) !important;
  color: #fff !important;
}
.sb-admin-only .sb-icon { opacity: 1 !important; }
.sb-admin-only .sb-badge { background: #F05A28 !important; color: #fff !important; }
.sb-trial-label { color: var(--c-action); }
.sb-ai-btn { background: #F05A28 !important; color: #fff !important; }

/* ── v2 Overrides for global search ──────────────────────────── */
.global-search-input { background: var(--c-slate-light); color: var(--c-charcoal); border-color: var(--c-slate); }
.global-search-input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(44,93,158,0.12); }
.global-search-results { background: var(--c-white); border: 1px solid var(--c-slate); }

/* ── v2 Overrides for auth pages ─────────────────────────────── */
.auth-wrap { background: var(--c-off-white); }
.auth-card { background: var(--c-white); border-color: var(--c-slate); color: var(--c-gray-text); }
.auth-title { color: var(--c-charcoal); }
.auth-sub { color: var(--c-gray-muted); }
.auth-demo { background: var(--c-action-subtle); border-color: var(--c-action); color: var(--c-action-dark); }
.auth-err { background: var(--c-danger-bg); border-color: var(--c-danger); color: var(--c-danger); }
.auth-link { color: var(--c-gray-muted); }
.auth-link a { color: var(--c-primary); }

/* ── v2 Overrides for onboarding ─────────────────────────────── */
.ob-wrap { background: var(--c-off-white); }
.ob-card { background: var(--c-white); border-color: var(--c-slate); color: var(--c-gray-text); }
.ob-title { color: var(--c-charcoal); }
.ob-sub { color: var(--c-gray-muted); }
.ob-trade-tile { background: var(--c-white); border-color: var(--c-slate); color: var(--c-gray-text); }
.ob-trade-tile:hover { border-color: var(--c-primary-light); }
.ob-trade-tile.selected { border-color: var(--c-action); background: var(--c-action-subtle); }
.ob-step.active { background: var(--c-action); }

/* ── v2 Overrides for notifications ──────────────────────────── */
.notif-btn { background: var(--c-slate-light); border-color: var(--c-slate); }
.notif-btn:hover { border-color: var(--c-primary); }
.notif-panel { background: var(--c-white); border-color: var(--c-slate); }

/* ── v2 Overrides for AI extraction table ────────────────────── */
.ai-ext-table { width: 100%; border-collapse: collapse; }
.ai-ext-table thead th { background: #0B1E3E; color: var(--c-white); font-size: 11px; padding: 8px 10px; }
.ai-ext-table tbody td { padding: 8px 10px; font-size: 12px; border-bottom: 1px solid var(--c-slate-light); }
.ai-ext-table tbody tr:hover { background: var(--c-primary-subtle); }
