/* Mailbox Factory — product UI (hand-tuned, Linear/Stripe density)
   No decorative gradients, no Inter-from-CDN, no emerald-everything. */
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#09090b;
  --surface:#111113;
  --surface-2:#18181b;
  --surface-3:#1f1f23;
  --border:#27272a;
  --border-soft:#1f1f23;
  --text:#fafafa;
  --muted:#a1a1aa;
  --muted-2:#83838d;
  --color-brand:#fafafa;
  --color-brand-hover:#e4e4e7;
  --color-brand-fg:#09090b;
  --color-brand-muted:rgba(250,250,250,.08);
  --color-brand-border:rgba(250,250,250,.18);
  --color-success:#34d399;
  --color-success-hover:#10b981;
  --color-success-muted:rgba(52,211,153,.1);
  --color-success-border:rgba(52,211,153,.28);
  --color-success-fg:#6ee7b7;
  --status-running:#60a5fa;
  --status-idle:#71717a;
  --status-warning:#fbbf24;
  --status-danger:#f87171;
  --status-captcha:#fbbf24;
  --warn:#fbbf24;
  --danger:#f87171;
  --accent:var(--color-brand);
  --accent-2:var(--status-running);
  --focus-ring:0 0 0 2px var(--bg),0 0 0 3px rgba(250,250,250,.45);
  --radius-sm:4px;--radius-md:6px;--radius:6px;--radius-lg:8px;
  --shadow:none;
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --header-h:3rem;
  --page-max:68rem;
}
.app-body,body{
  margin:0;
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  line-height:1.5;
  font-size:14px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--text)}
main,.main-shell,.app-main{
  max-width:var(--page-max);
  margin:0 auto;
  padding:2rem 1.5rem 4rem;
}
.app-header{
  border-bottom:1px solid var(--border);
  background:var(--bg);
  position:sticky;top:0;z-index:50;
}
.header-inner,.app-header-inner{
  max-width:var(--page-max);
  margin:0 auto;
  padding:0 1.5rem;
  height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
}
.brand-link{
  display:inline-flex;align-items:center;gap:.55rem;
  color:var(--text);text-decoration:none;flex-shrink:0;
}
.brand-link:hover{opacity:.9}
.brand-mark{
  width:1.125rem;height:1.125rem;border-radius:3px;
  background:var(--text);
  flex-shrink:0;
}
.brand-name{font-size:.875rem;font-weight:560;letter-spacing:-.01em}
.brand-block,.brand-tagline{display:none}
.nav{
  display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;min-width:0;
}
.nav-spacer{flex:1;min-width:.5rem}
.nav-item,.nav a,.nav-link{
  display:inline-flex;align-items:center;
  padding:.35rem .55rem;border-radius:var(--radius-md);
  font-size:.8125rem;font-weight:450;color:var(--muted);
  text-decoration:none;border:none;background:transparent;
}
.nav-item:hover,.nav a:hover{color:var(--text);background:var(--surface-2)}
.nav-item.is-active,.nav-active,.nav a.nav-active,.nav a.is-active{
  color:var(--text);background:var(--surface-2);font-weight:500;
}
.nav-item--muted{color:var(--muted-2)}
:focus{outline:none}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
a:focus-visible,button:focus-visible,.nav-item:focus-visible,.btn:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  box-shadow:var(--focus-ring);
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* —— Page / panel / form primitives —— */
.page{display:flex;flex-direction:column;gap:1.25rem}
.page--center{align-items:center}
.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.page-header--center{flex-direction:column;align-items:center;text-align:center}
.page-title{margin:0;font-size:1.25rem;font-weight:560;letter-spacing:-.025em;line-height:1.25}
.page-desc{margin:.35rem 0 0;font-size:.8125rem;color:var(--muted);max-width:36rem;line-height:1.45}
.panel{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface);
  padding:1.25rem 1.35rem;
}
.panel--narrow{max-width:28rem}
.panel--price{max-width:24rem;width:100%}
.panel-title{margin:0 0 .85rem;font-size:.8125rem;font-weight:560;letter-spacing:-.01em}
.card-surface{
  border:1px solid var(--border)!important;
  border-radius:var(--radius-lg)!important;
  background:var(--surface)!important;
  padding:1.25rem 1.35rem;
  box-shadow:none!important;
}
.grid-2{display:grid;gap:1rem}
@media(min-width:800px){.grid-2{grid-template-columns:1.1fr .9fr}}
.muted{color:var(--muted);font-size:.8125rem}
.meta-list{margin:0;display:flex;flex-direction:column;gap:.65rem}
.meta-list > div{display:grid;grid-template-columns:7rem 1fr;gap:.5rem;font-size:.8125rem}
.meta-list dt{margin:0;color:var(--muted-2)}
.meta-list dd{margin:0;color:var(--text)}
.feature-list{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.8125rem;line-height:1.7}
.price-label{margin:0 0 .35rem;font-size:1rem;font-weight:560}
.price-note{margin:0 0 1.25rem;font-size:.8125rem;color:var(--muted);line-height:1.45}
.badge{
  display:inline-flex;align-items:center;
  padding:.15rem .45rem;border-radius:999px;
  font-size:.6875rem;font-weight:500;letter-spacing:.01em;
  border:1px solid var(--border);background:var(--surface-2);color:var(--muted);
  text-transform:none;
}
.badge--ok{border-color:var(--color-success-border);background:var(--color-success-muted);color:var(--color-success-fg)}
.badge--neutral{color:var(--muted)}
.banner{
  padding:.7rem .9rem;border-radius:var(--radius-md);
  border:1px solid var(--border);background:var(--surface-2);
  font-size:.8125rem;line-height:1.45;color:var(--text);
}
.banner--error{border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.08);color:#fecaca}
.banner--warn{border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.07);color:#fde68a}
.banner--info{border-color:var(--border);background:var(--surface-2);color:var(--muted)}
.banner a{text-decoration:underline;text-underline-offset:2px}
.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.stack-form{display:flex;flex-direction:column;gap:.9rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field-label{font-size:.75rem;font-weight:500;color:var(--muted)}
.field-input,.input-md,input.input-md,select.input-md,textarea.input-md{
  width:100%;
  padding:.55rem .7rem;
  font:inherit;font-size:.875rem;
  color:var(--text);
  background:var(--bg)!important;
  border:1px solid var(--border)!important;
  border-radius:var(--radius-md)!important;
  outline:none;
}
.field-input:hover,.input-md:hover{border-color:#3f3f46!important}
.field-input:focus,.input-md:focus{border-color:#52525b!important;box-shadow:var(--focus-ring)}
.field-input::placeholder{color:var(--muted-2)}

/* Auth */
.auth-shell{
  min-height:calc(100vh - var(--header-h) - 4rem);
  display:flex;align-items:center;justify-content:center;
  padding:1rem 0 2rem;
}
.auth-panel{
  width:100%;max-width:22.5rem;
  padding:0;
  border:none;background:transparent;
}
.auth-kicker{
  margin:0 0 .5rem;font-size:.6875rem;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);
}
.auth-title{margin:0 0 .4rem;font-size:1.35rem;font-weight:560;letter-spacing:-.03em}
.auth-lead{margin:0 0 1.5rem;font-size:.8125rem;color:var(--muted);line-height:1.45}
.auth-meta{margin:1.25rem 0 0;font-size:.8125rem;color:var(--muted);text-align:center}
.auth-meta a{color:var(--text);text-decoration:underline;text-underline-offset:2px}
.auth-card{/* legacy alias */}
.auth-card{width:100%;max-width:22.5rem}
.auth-error,.auth-form .auth-error{
  margin:0 0 1rem;padding:.65rem .75rem;border-radius:var(--radius-md);
  border:1px solid rgba(248,113,113,.35);background:rgba(248,113,113,.08);color:#fecaca;font-size:.8125rem;
}

/* Buttons — monochrome primary (not blue SaaS cliché) */
button{cursor:pointer;background:transparent;color:inherit;border:none;padding:0;font:inherit}
a.btn{cursor:pointer;text-decoration:none;display:inline-flex}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  padding:.45rem .85rem;border-radius:var(--radius-md);
  font-size:.8125rem;font-weight:500;line-height:1.2;
  border:1px solid var(--border);
  background:var(--surface-2);color:var(--text);
  transition:background .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease;
}
.btn:hover{background:var(--surface-3);border-color:#3f3f46}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-sm{padding:.3rem .55rem;font-size:.75rem}
.btn-lg,.btn-block{width:auto}
.btn-block{width:100%;padding:.6rem .85rem}
.btn-primary{
  background:var(--text)!important;color:var(--color-brand-fg)!important;
  border-color:var(--text)!important;
}
.btn-primary:hover{background:var(--color-brand-hover)!important;border-color:var(--color-brand-hover)!important;color:var(--color-brand-fg)!important}
.btn-run,.btn-continue{background:var(--text)!important;color:var(--color-brand-fg)!important;border-color:var(--text)!important}
.btn-run:hover,.btn-continue:hover{background:var(--color-brand-hover)!important}
.btn-secondary,.btn-ghost{
  background:transparent!important;color:var(--text)!important;border-color:var(--border)!important;
}
.btn-secondary:hover,.btn-ghost:hover{background:var(--surface-2)!important}
.btn-warn{background:rgba(251,191,36,.12)!important;color:#fde68a!important;border-color:rgba(251,191,36,.3)!important}
.btn-danger{background:transparent!important;color:#fca5a5!important;border-color:rgba(248,113,113,.35)!important}
.btn-dry{background:var(--surface-2)!important;color:var(--muted)!important}
.link-accent{color:var(--text)!important;text-decoration:underline;text-underline-offset:2px}
.link-accent:hover{color:var(--muted)!important}
.text-ok{color:var(--color-success)!important}

/* Dashboard / saas panels — flat */
.saas-app,.page .saas-workspace{display:flex;flex-direction:column;gap:1.25rem}
.saas-workspace{display:grid!important;grid-template-columns:1fr;gap:1rem!important}
@media(min-width:1100px){
  .saas-workspace{grid-template-columns:minmax(0,1fr) 20rem!important}
}
.saas-topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.saas-topbar-brand h1{margin:0;font-size:1.25rem;font-weight:560;letter-spacing:-.025em}
.saas-topbar-brand p{margin:.3rem 0 0;font-size:.8125rem;color:var(--muted)}
.saas-panel,.saas-panel--highlight,.saas-panel--activity,.saas-panel--error{
  border:1px solid var(--border)!important;
  border-radius:var(--radius-lg)!important;
  background:var(--surface)!important;
  box-shadow:none!important;
  overflow:hidden;
}
.saas-panel--highlight{border-color:#3f3f46!important}
.saas-panel-head{border-bottom:1px solid var(--border)!important;padding:.85rem 1rem!important}
.saas-panel-title{font-size:.8125rem!important;font-weight:560!important}
.saas-panel-desc{font-size:.75rem!important;color:var(--muted)!important}
.stat-card,.kpi-card{
  border:1px solid var(--border)!important;
  background:var(--surface)!important;
  border-radius:var(--radius-lg)!important;
  box-shadow:none!important;
}
.tenant-card,.job-card{
  border:1px solid var(--border)!important;
  background:var(--surface)!important;
  border-radius:var(--radius-lg)!important;
  box-shadow:none!important;
}
.tenant-card:hover,.job-card:hover{border-color:#3f3f46!important;box-shadow:none!important}
.empty-state{
  border:1px dashed var(--border)!important;
  background:var(--surface)!important;
  border-radius:var(--radius-lg)!important;
}
.setup-banner{
  border:1px solid rgba(251,191,36,.3)!important;
  background:rgba(251,191,36,.07)!important;
  color:#fde68a!important;
  border-radius:var(--radius-md)!important;
}
.phase-pill,.status-pill{
  text-transform:none!important;
  letter-spacing:0!important;
  font-weight:500!important;
  border-radius:999px!important;
}
.nav a,.nav-link{/* keep utility nav working */}
.settings-page{max-width:36rem!important;margin:0 auto}
.settings-header h1{font-size:1.25rem!important;font-weight:560!important;letter-spacing:-.025em}
.settings-header p{color:var(--muted)!important;font-size:.8125rem!important}
.settings-card{margin:0}
.settings-stack{gap:1rem!important}
.onboarding-hero{
  background:var(--surface)!important;
  border:1px solid var(--border)!important;
  border-radius:var(--radius-lg)!important;
}
.text-xl{font-size:1.25rem;font-weight:700}
.text-3xl{font-size:1.875rem;font-weight:700}
.text-lg{font-size:1.125rem}
.text-sm{font-size:.875rem}
.text-xs{font-size:.75rem}
.font-bold{font-weight:700}
.font-semibold{font-weight:600}
.font-medium{font-weight:500}
.font-mono{font-family:ui-monospace,monospace}
.text-white{color:#fff}
.text-slate-100{color:#f1f5f9}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-emerald-300{color:#6ee7b7}
.text-emerald-400{color:#34d399}
.text-emerald-200{color:#a7f3d0}
.text-amber-200{color:#fde68a}
.text-amber-300{color:#fcd34d}
.text-amber-400{color:#fbbf24}
.text-amber-100{color:#fef3c7}
.text-blue-300{color:#93c5fd}
.text-red-300{color:#fca5a5}
.text-red-400{color:#f87171}
.hover\:text-emerald-400:hover{color:#34d399}
.underline{text-decoration:underline}
.flex{display:flex}
.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1}
.flex-shrink-0{flex-shrink:0}
.grid{display:grid}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.space-y-1>*+*{margin-top:.25rem}
.space-y-2>*+*{margin-top:.5rem}
.space-y-3>*+*{margin-top:.75rem}
.space-x-1>*+*{margin-left:.25rem}
.mb-1{margin-bottom:.25rem}
.mb-2{margin-bottom:.5rem}
.mb-3{margin-bottom:.75rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mt-1{margin-top:.25rem}
.mt-2{margin-top:.5rem}
.mt-3{margin-top:.75rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.p-2{padding:.5rem}
.p-3{padding:.75rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.w-full{width:100%}
.w-40{width:10rem}
.w-36{width:9rem}
.w-16{width:4rem}
.w-14{width:3.5rem}
.w-48{width:12rem}
.w-7{width:1.75rem}
.w-8{width:2rem}
.h-2{height:.5rem}
.h-1\.5{height:.375rem}
.h-7{height:1.75rem}
.h-8{height:2rem}
.max-w-xl{max-width:36rem}
.max-w-lg{max-width:32rem}
.max-w-6xl{max-width:72rem}
.max-w-\[200px\]{max-width:200px}
.max-w-xs{max-width:20rem}
.min-w-0{min-width:0}
.min-h-screen{min-height:100vh}
.rounded{border-radius:.25rem}
.rounded-lg{border-radius:.5rem}
.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.border{border:1px solid #1e293b}
.border-t{border-top:1px solid #1e293b}
.border-b{border-bottom:1px solid #1e293b}
.border-dashed{border-style:dashed}
.border-slate-700{border-color:#334155}
.border-slate-800{border-color:#1e293b}
.border-emerald-700{border-color:#047857}
.border-emerald-800{border-color:#065f46}
.border-amber-800{border-color:#92400e}
.border-red-800{border-color:#991b1b}
.border-blue-800{border-color:#1e40af}
.bg-slate-950{background:#020617}
.bg-slate-900{background:#0f172a}
.bg-slate-800{background:#1e293b}
.bg-slate-700{background:#334155}
.bg-emerald-600{background:#059669}
.bg-emerald-700{background:#047857}
.bg-emerald-500{background:#10b981}
.bg-emerald-900{background:#064e3b}
.bg-blue-600{background:#2563eb}
.bg-blue-700{background:#1d4ed8}
.bg-amber-700{background:#b45309}
.bg-amber-600{background:#d97706}
.bg-red-900{background:#7f1d1d}
.bg-red-700{background:#b91c1c}
.bg-slate-900\/80{background:rgba(15,23,42,.8)}
.bg-slate-900\/20{background:rgba(15,23,42,.2)}
.bg-slate-800\/30{background:rgba(30,41,59,.3)}
.bg-slate-950\/50{background:rgba(2,6,23,.5)}
.bg-emerald-900\/20{background:rgba(6,78,59,.2)}
.bg-emerald-900\/30{background:rgba(6,78,59,.3)}
.bg-amber-900\/20{background:rgba(120,53,15,.2)}
.bg-blue-900\/20{background:rgba(30,58,138,.2)}
.bg-red-900\/20{background:rgba(127,29,29,.2)}
.hover\:bg-slate-800:hover{background:#1e293b}
.hover\:bg-slate-600:hover{background:#475569}
.hover\:bg-slate-500:hover{background:#64748b}
.hover\:bg-emerald-500:hover{background:#10b981}
.hover\:bg-emerald-600:hover{background:#059669}
.hover\:bg-blue-500:hover{background:#3b82f6}
.hover\:bg-amber-600:hover{background:#d97706}
.hover\:bg-red-800:hover{background:#991b1b}
.hover\:border-emerald-600:hover{border-color:#059669}
.hover\:border-slate-500:hover{border-color:#64748b}
.nav a,.nav-link{
  display:inline-block;padding:.4rem .75rem;border-radius:.5rem;text-decoration:none;
  font-size:.8125rem;font-weight:500;color:var(--muted);border:1px solid transparent;
}
.nav a:hover{background:var(--surface-2);color:var(--text)}
.nav-active,.nav a.nav-active{
  background:var(--color-brand-muted);color:#dbeafe;border-color:var(--color-brand-border);font-weight:600;
}
/* Bare buttons: no emerald cascade — .btn / .btn-* own their own styles */
button{cursor:pointer;background:transparent;color:inherit;border:none;padding:0;font:inherit}
a.btn{cursor:pointer;text-decoration:none;display:inline-flex}
input,select,button,textarea{font:inherit}
input,select{background:#1e293b;border:1px solid #334155;border-radius:.5rem;padding:.5rem .75rem;color:#f1f5f9;width:100%}
.overflow-x-auto{overflow-x:auto}
.overflow-auto{overflow:auto}
.overflow-y-hidden{overflow-y:hidden}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.max-w-\[180px\]{max-width:180px}
.max-w-\[220px\]{max-width:220px}
/* Jobs table: grid children need min-width:0 for horizontal scroll */
.jobs-table-scroll{
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  max-width:100%;
}
.jobs-table-scroll-hint{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.35rem;
  padding:.35rem .75rem;
  font-size:.7rem;
  color:#64748b;
  background:#0f172a;
  border-bottom:1px solid #1e293b;
  user-select:none;
}
.jobs-table th,.jobs-table td{vertical-align:top}
.jobs-table .col-domain{width:9rem}
.jobs-table .col-org{width:7rem}
.jobs-table .col-mailboxes{width:4.5rem}
.jobs-table .col-style{width:5rem}
.jobs-table .col-progress{width:10rem}
.jobs-table .col-live{width:11rem}
.jobs-table .col-status{width:11rem}
.jobs-table .col-actions{width:auto;min-width:12rem}
.jobs-table th.col-actions,
.jobs-table td.col-actions{
  position:sticky;
  right:0;
  z-index:2;
  background:#020617;
  box-shadow:-6px 0 12px rgba(0,0,0,.45);
}
.jobs-table thead th.col-actions{background:#0f172a}
.jobs-table tbody tr:hover td.col-actions{background:rgba(15,23,42,.95)}
.jobs-table .status-details summary{
  cursor:pointer;
  color:#fbbf24;
  font-size:.75rem;
  margin-top:.25rem;
  list-style:none;
}
.jobs-table .status-details summary::-webkit-details-marker{display:none}
.whitespace-nowrap{white-space:nowrap}
.whitespace-pre-wrap{white-space:pre-wrap}
.text-left{text-align:left}
.text-right{text-align:right}
.text-center{text-align:center}
.list-decimal{list-style:decimal}
.list-disc{list-style:disc}
.ml-5{margin-left:1.25rem}
.divide-y>*+*{border-top:1px solid #1e293b}
table:not(.jobs-table){width:100%;font-size:.875rem;border-collapse:collapse}
table.jobs-table{width:auto;min-width:1180px;table-layout:fixed;font-size:.8125rem;border-collapse:collapse}
.data-table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.data-row.row-running td{background:rgba(30,58,138,.08)}
.data-row.row-error td{background:rgba(127,29,29,.06)}
.cell-domain{font-weight:600;color:var(--text)}
.cell-mono{font-family:var(--mono);font-size:.68rem;color:#a5b4c8}
.cell-sub{display:block;font-size:.68rem;color:var(--muted);margin-top:.15rem}
.cell-progress-track{width:100%;height:.3rem;border-radius:999px;background:#1e293b;overflow:hidden;margin-bottom:.25rem}
.cell-progress-text{font-size:.7rem;color:#93c5fd;font-weight:600}
.live-now{font-size:.7rem;font-weight:600;color:#93c5fd;text-transform:capitalize}
.link-accent{color:var(--color-brand);text-decoration:underline}
.link-accent:hover{color:var(--color-brand-hover)}
.tenant-list{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem 1.5rem}
.tenant-card{
  border:1px solid #334155;border-radius:1rem;
  background:linear-gradient(165deg,rgba(21,29,46,.98),rgba(8,12,22,.99));
  padding:1.35rem 1.5rem 0;display:flex;flex-direction:column;gap:1rem;
  box-shadow:0 4px 24px rgba(0,0,0,.2)
}
.tenant-card--running{border-color:#3b82f6;box-shadow:0 0 0 1px rgba(59,130,246,.35),0 8px 32px rgba(30,58,138,.25)}
.tenant-card--connecting{border-color:#8b5cf6;box-shadow:0 0 0 1px rgba(139,92,246,.35),0 8px 32px rgba(76,29,149,.2)}
.tenant-card--error{border-color:#b91c1c}
.tenant-card--done{border-color:#059669}
.tenant-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem}
.tenant-card-identity{flex:1;min-width:min(100%,16rem)}
.tenant-card-domain{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.tenant-card-meta{margin:.45rem 0 0;font-size:.875rem;color:#94a3b8;display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .35rem}
.tenant-card-meta code{font-family:var(--mono);font-size:.8rem;color:#cbd5e1;background:rgba(30,41,59,.6);padding:.1rem .4rem;border-radius:.25rem}
.tenant-card-meta .sep{opacity:.35}
.tenant-card-progress{display:flex;flex-direction:column;gap:.5rem}
.progress-track--lg{height:.5rem}
.tenant-card-detail{margin:0;font-size:.9rem;color:#94a3b8;line-height:1.45}
.tenant-card-detail.is-live{color:#93c5fd;font-weight:500}
.tenant-card-alert{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.15rem;border-radius:.65rem;
  background:rgba(120,53,15,.22);border:1px solid #b45309
}
.tenant-card-alert-text{display:flex;flex-direction:column;gap:.2rem;color:#fde68a;font-size:.875rem}
.tenant-card-alert-text strong{font-size:.95rem;color:#fef3c7}
.tenant-card-sequencer{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;
  padding:.85rem 1rem;border-radius:.65rem;background:rgba(6,78,59,.2);border:1px solid #047857
}
.tenant-card-sequencer-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6ee7b7;display:inline-flex;align-items:center;gap:.4rem}
.tenant-card-sequencer-msg{font-size:.875rem;color:#a7f3d0;line-height:1.4}
.tenant-card-sequencer--connecting{background:rgba(30,58,138,.25);border-color:#3b82f6}
.tenant-card-sequencer--connecting .tenant-card-sequencer-label{color:#93c5fd}
.tenant-card-sequencer--connecting .tenant-card-sequencer-msg{color:#bfdbfe}
.tenant-card-sequencer--failed,.tenant-card-sequencer--partial{background:rgba(127,29,29,.18);border-color:#b91c1c}
.tenant-card-sequencer--failed .tenant-card-sequencer-label,.tenant-card-sequencer--partial .tenant-card-sequencer-label{color:#fca5a5}
.tenant-card-sequencer--failed .tenant-card-sequencer-msg,.tenant-card-sequencer--partial .tenant-card-sequencer-msg{color:#fecaca}
.tenant-card-sequencer--connected{background:rgba(6,78,59,.2);border-color:#047857}
.sequencer-live-dot{width:.5rem;height:.5rem;border-radius:50%;background:#60a5fa;animation:live-pulse-anim 1.2s ease-in-out infinite}
.tenant-card-error{border:1px solid #991b1b;border-radius:.65rem;background:rgba(127,29,29,.12);padding:0 1rem}
.tenant-card-error summary{cursor:pointer;padding:.65rem 0;font-size:.875rem;color:#fca5a5;list-style:none;font-weight:500}
.tenant-card-error summary::-webkit-details-marker{display:none}
.tenant-card-error .error-pre{margin:.25rem 0 .75rem;font-size:.8rem}
.tenant-action-bar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.25rem;
  margin:0 -1.5rem;padding:1.15rem 1.5rem;
  border-top:1px solid #1e293b;
  background:rgba(2,6,23,.55);border-radius:0 0 1rem 1rem
}
.tenant-action-bar__primary{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;flex:1;min-width:min(100%,14rem)}
.tenant-action-bar__tools{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;
  flex:1;min-width:min(100%,20rem)
}
.tenant-running-badge,.tenant-complete-badge{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;padding:.5rem 0
}
.tenant-running-badge{color:#93c5fd}
.tenant-complete-badge{color:#6ee7b7}
.status-pill--lg{padding:.4rem .9rem;font-size:.8rem}
.btn-lg{padding:.65rem 1.35rem;font-size:.9375rem;font-weight:600;border-radius:.55rem}
.input-md{
  flex:1;min-width:12rem;padding:.55rem .75rem;font-size:.875rem;
  background:#0f172a;border:1px solid #475569;border-radius:.5rem;color:#f1f5f9
}
.row-error-details summary{cursor:pointer;font-size:.68rem;color:#fbbf24;margin-top:.25rem}
thead{background:#0f172a;color:#94a3b8}
th,td{padding:.75rem 1rem;text-align:left}
tbody tr:hover{background:rgba(15,23,42,.5)}
pre{font-family:ui-monospace,monospace;font-size:.75rem;color:#94a3b8}
code{font-family:ui-monospace,monospace;font-size:.85em}
details.instruction-panel summary{cursor:pointer;color:#6ee7b7;font-weight:500;font-size:.875rem;margin-bottom:.75rem;list-style:none}
details.instruction-panel summary::before{content:"▸ ";color:var(--color-brand)}
details.instruction-panel[open] summary::before{content:"▾ "}
details.instruction-panel summary::-webkit-details-marker{display:none}
.ring-1{box-shadow:0 0 0 1px #1e40af}
.select-all{user-select:all}
.break-all{word-break:break-all}
.scroll-mt-24{scroll-margin-top:6rem}
.block{display:block}
.inline-block{display:inline-block}
.inline-flex{display:inline-flex}
.hidden{display:none}
@media(min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1024px){
  .lg\:col-span-2{grid-column:span 2/span 2}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg\:grid-cols-3{grid-template-columns:repeat(2,minmax(0,1fr)) 1fr}
}
.toast-stack{position:sticky;top:4.5rem;z-index:60;margin-bottom:1rem;min-height:0}
.toast-stack:empty{display:none}
.alert-banner{display:flex;gap:.75rem;align-items:flex-start;padding:.875rem 1rem;border-radius:.75rem;font-size:.875rem;line-height:1.45;margin-bottom:.75rem;box-shadow:0 8px 24px rgba(0,0,0,.35);animation:toast-in .2s ease-out}
.alert-banner.level-success{background:rgba(6,78,59,.92);border:1px solid #059669;color:#d1fae5}
.alert-banner.level-error{background:rgba(127,29,29,.92);border:1px solid #b91c1c;color:#fecaca}
.alert-banner.level-warning{background:rgba(120,53,15,.92);border:1px solid #d97706;color:#fde68a}
.alert-banner.level-info{background:rgba(30,58,138,.92);border:1px solid #3b82f6;color:#dbeafe}
.alert-icon{font-weight:700;font-size:1rem;flex-shrink:0;margin-top:.1rem}
.alert-body{flex:1}
.alert-body strong{display:block;margin-bottom:.15rem}
button.is-busy,.htmx-request button{opacity:.7;cursor:wait}
.toast-fade-out{opacity:0;transition:opacity .3s ease}
@keyframes toast-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.htmx-indicator{display:none}
.htmx-request .htmx-indicator{display:inline}
@keyframes live-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}
.live-pulse{animation:live-pulse 1.2s ease-in-out infinite}
.progress-bar-fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,#3b82f6,#10b981);transition:width .4s ease}
#activity-lines,.activity-lines{scroll-behavior:smooth}

/* ===== SaaS dashboard ===== */
.saas-app{display:flex;flex-direction:column;gap:1.25rem}
.saas-topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:.25rem}
.saas-topbar-brand h1{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.03em}
.saas-topbar-brand p{margin:.25rem 0 0;font-size:.8125rem;color:var(--muted)}
.saas-topbar-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.saas-workspace{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:start}
@media(min-width:1280px){.saas-workspace{grid-template-columns:minmax(0,1fr) min(22rem,26vw);gap:1.5rem}}
.saas-col-main,.saas-col-side{display:flex;flex-direction:column;gap:1rem;min-width:0}
@media(min-width:1180px){.saas-col-side{position:sticky;top:5.25rem;max-height:calc(100vh - 6rem);overflow:auto}}

.saas-panel{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(21,29,46,.95),rgba(15,22,35,.98));box-shadow:var(--shadow);overflow:hidden}
.saas-panel--highlight{border-color:rgba(59,130,246,.35);background:linear-gradient(135deg,rgba(30,58,138,.15),rgba(15,22,35,.98))}
.saas-panel--activity{display:flex;flex-direction:column;min-height:280px}
.saas-panel--error{border-color:rgba(239,68,68,.25)}
.saas-panel--compact .bg-slate-900{border:none;background:transparent}
.saas-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1.15rem;border-bottom:1px solid var(--border-soft)}
.saas-panel-title{margin:0;font-size:.95rem;font-weight:600}
.saas-panel-desc{margin:.2rem 0 0;font-size:.72rem;color:var(--muted)}
.saas-panel-body{padding:1rem 1.15rem}
.saas-panel-body--flush{padding:0}
.saas-live-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:600;padding:.25rem .55rem;border-radius:999px;background:#1e293b;color:var(--muted)}
.saas-live-badge.is-on{background:rgba(30,58,138,.35);color:#93c5fd}
.saas-count-badge{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;background:#1e293b;color:var(--muted)}
.saas-count-badge.has-items{background:rgba(239,68,68,.2);color:#fca5a5}
.saas-empty{margin:0;font-size:.8rem;color:var(--muted)}

.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
@media(min-width:700px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.kpi-card{position:relative;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--border-soft);background:rgba(15,22,35,.8)}
.kpi-label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.kpi-value{display:block;font-size:1.5rem;font-weight:700;margin-top:.1rem}
.kpi-card--live.is-active{border-color:rgba(59,130,246,.45);box-shadow:0 0 0 1px rgba(59,130,246,.15)}
.kpi-card--alert{border-color:rgba(239,68,68,.35)}
.kpi-pulse{position:absolute;top:.7rem;right:.7rem;width:.45rem;height:.45rem;border-radius:50%;background:#60a5fa;animation:live-pulse 1.2s ease-in-out infinite}

.live-idle p{margin:0;font-size:.82rem;color:var(--muted)}
.live-job{display:flex;flex-direction:column;gap:.85rem}
.live-job-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}
.live-job-domain{font-size:1rem;font-weight:700}
.live-job-org{font-size:.75rem;color:var(--muted)}
.pipeline-rail{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:.35rem}
@media(max-width:900px){.pipeline-rail{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pipeline-step{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}
.pipeline-dot{width:.55rem;height:.55rem;border-radius:50%;background:#334155;border:2px solid #475569}
.pipeline-step.is-done .pipeline-dot{background:#10b981;border-color:#34d399}
.pipeline-step.is-current .pipeline-dot{background:#3b82f6;border-color:#93c5fd;box-shadow:0 0 0 4px rgba(59,130,246,.2)}
.pipeline-label{font-size:.58rem;color:var(--muted);line-height:1.2}
.pipeline-step.is-current .pipeline-label{color:#93c5fd;font-weight:600}
.live-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.live-metric{padding:.65rem .75rem;border-radius:var(--radius);background:rgba(7,11,20,.55);border:1px solid var(--border-soft)}
.live-metric--wide{grid-column:1/-1}
.live-metric-label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.live-metric-value{display:block;font-size:.85rem;font-weight:600;margin-top:.15rem}
.live-metric-action{text-transform:capitalize;color:#93c5fd}
.sub-progress{height:.3rem;border-radius:999px;background:#1e293b;margin-top:.45rem;overflow:hidden}
.sub-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);transition:width .35s ease}
.live-status-line{margin:0;font-size:.78rem;color:#cbd5e1;padding:.55rem .65rem;border-radius:var(--radius);background:rgba(15,23,42,.6);border:1px solid var(--border-soft)}

.consent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.consent-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .65rem;border-radius:var(--radius);background:rgba(7,11,20,.45);border:1px solid var(--border-soft)}
.consent-domain{font-weight:600;font-size:.82rem}
.consent-email{font-size:.68rem;color:var(--muted)}
.consent-row-actions{display:flex;align-items:center;gap:.35rem}

.error-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.error-item{padding:.65rem;border-radius:var(--radius);background:rgba(127,29,29,.12);border:1px solid rgba(239,68,68,.2)}
.error-item-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem}
.error-step{font-size:.68rem;color:#fca5a5}
.error-snippet{margin:.35rem 0 .5rem;font-size:.72rem;color:#fecaca;line-height:1.4}

.activity-card-inner{display:flex;flex-direction:column;flex:1;min-height:0}
.activity-header-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.activity-ctrl{font-size:.65rem;padding:.2rem .5rem;border-radius:.35rem;border:1px solid var(--border);background:rgba(15,22,35,.8);color:var(--muted);cursor:pointer}
.activity-ctrl:hover{border-color:#475569;color:var(--text)}
.activity-ctrl.is-active{border-color:#3b82f6;color:#93c5fd;background:rgba(30,58,138,.25)}
.activity-meta{display:flex;align-items:center;gap:.65rem;padding:0 1rem .5rem;font-size:.65rem;color:var(--muted)}
.activity-new-badge{font-size:.65rem;color:#fcd34d;background:rgba(120,53,15,.3);padding:.1rem .45rem;border-radius:999px}
.activity-new-badge.hidden{display:none}
.activity-lines{flex:1;margin:0;padding:.75rem 1rem;list-style:none;overflow-y:auto;max-height:min(24rem,44vh);font-family:var(--mono);font-size:.72rem;line-height:1.65;scroll-behavior:smooth}
.activity-line{padding:.35rem 0;border-bottom:1px solid rgba(30,41,59,.35)}
.activity-line--new{background:rgba(59,130,246,.08);animation:activity-fade-in .8s ease}
@keyframes activity-fade-in{from{background:rgba(59,130,246,.22)}to{background:rgba(59,130,246,.08)}}
.line-mailbox{color:#67e8f9}
.activity-card-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border-soft)}
.activity-card-header h3{margin:0;font-size:.85rem;font-weight:600}

.dashboard{display:flex;flex-direction:column;gap:1.5rem}
.dashboard-flash{min-height:0}
.dashboard-flash:not(:empty){margin-bottom:1rem}
.dashboard-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.25rem}
.dashboard-hero h1{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}
.dashboard-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.875rem}
.dashboard-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

.setup-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem 1rem;border-radius:.75rem;border:1px solid #92400e;background:linear-gradient(90deg,rgba(120,53,15,.25),rgba(15,23,42,.4));font-size:.8125rem;color:#fde68a}
.setup-banner-list{margin:0;padding-left:1.25rem;width:100%;font-size:.75rem;color:#fcd34d}

.dashboard-layout{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:start}
@media(min-width:1024px){
  .dashboard-layout{grid-template-columns:minmax(0,1fr) 22rem}
}
.dashboard-main{min-width:0}
.dashboard-side{min-width:0}
@media(min-width:1024px){
  .dashboard-side{position:sticky;top:5.5rem;max-height:calc(100vh - 6.5rem);display:flex;flex-direction:column}
  .activity-panel{display:flex;flex-direction:column;flex:1;min-height:0;gap:.75rem}
}

.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem;margin-bottom:1rem}
@media(min-width:640px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat-card{position:relative;padding:.75rem 1rem;border-radius:.75rem;border:1px solid #1e293b;background:rgba(15,23,42,.6);display:flex;flex-direction:column;gap:.15rem}
.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.stat-value{font-size:1.35rem;font-weight:700;color:#f1f5f9;line-height:1.1}
.stat-card--warn{border-color:#7f1d1d;background:rgba(127,29,29,.15)}
.stat-card--live.is-active{border-color:#1d4ed8;background:rgba(30,58,138,.2)}
.stat-live-dot{position:absolute;top:.65rem;right:.65rem;width:.5rem;height:.5rem;border-radius:50%;background:#60a5fa;animation:live-pulse 1.2s ease-in-out infinite}

.job-list{display:flex;flex-direction:column;gap:1rem}
.job-card{border:1px solid #1e293b;border-radius:1rem;background:linear-gradient(180deg,rgba(15,23,42,.85),rgba(2,6,23,.9));padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;transition:border-color .2s ease,box-shadow .2s ease}
.job-card:hover{border-color:#334155;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.job-card--running{border-color:#1d4ed8;box-shadow:0 0 0 1px rgba(59,130,246,.25)}
.job-card--error{border-color:#7f1d1d}
.job-card--done{border-color:#065f46}
.job-card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}
.job-domain{margin:0;font-size:1.1rem;font-weight:600;letter-spacing:-.01em}
.job-meta{margin:.2rem 0 0;font-size:.75rem;color:#64748b}
.job-meta-sep{opacity:.5;margin:0 .2rem}

.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:9999px;font-size:.7rem;font-weight:600;white-space:nowrap}
.status-pill--idle{background:#1e293b;color:#cbd5e1}
.status-pill--running{background:rgba(59,130,246,.2);color:#93c5fd;border:1px solid var(--color-brand-border)}
.status-pill--error{background:#7f1d1d;color:#fca5a5}
.status-pill--done{background:var(--color-success-muted);color:var(--color-success-fg);border:1px solid var(--color-success-border)}
.status-pill-dot{width:.4rem;height:.4rem;border-radius:50%;background:#60a5fa;animation:live-pulse 1.2s ease-in-out infinite}

.job-progress-block{display:flex;flex-direction:column;gap:.4rem}
.progress-track{width:100%;height:.35rem;border-radius:9999px;background:#1e293b;overflow:hidden}
.progress-labels{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.75rem}
.progress-step{color:#93c5fd;font-weight:600}
.progress-name{color:#64748b}
.progress-message{margin:0;font-size:.8rem;color:#94a3b8;line-height:1.4}
.progress-message.is-live{color:#bfdbfe}

.job-badges{display:flex;flex-wrap:wrap;gap:.35rem}
.chip{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:9999px;font-size:.68rem;font-weight:500;text-decoration:none;border:1px solid transparent}
.chip--ok{background:var(--color-success-muted);color:var(--color-success-fg);border-color:var(--color-success-border)}
.chip--warn{background:rgba(120,53,15,.35);color:#fcd34d;border-color:#b45309}
.chip--muted{background:rgba(30,41,59,.6);color:#94a3b8;border-color:#334155}

.job-error-drawer{border:1px solid #7f1d1d;border-radius:.65rem;background:rgba(127,29,29,.12);overflow:hidden}
.job-error-drawer summary{cursor:pointer;list-style:none;display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .75rem;font-size:.75rem;color:#fca5a5}
.job-error-drawer summary::-webkit-details-marker{display:none}
.error-summary-icon{flex-shrink:0;width:1.1rem;height:1.1rem;border-radius:50%;background:#7f1d1d;color:#fecaca;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700}
.error-summary-text{flex:1;line-height:1.35}
.job-error-body{padding:0 .75rem .75rem;border-top:1px solid rgba(127,29,29,.35)}
.error-pre{margin:0;padding:.5rem 0;font-size:.7rem;line-height:1.45;color:#fecaca;white-space:pre-wrap;word-break:break-word;max-height:10rem;overflow-y:auto}
.error-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-top:.5rem}
.error-fix-form{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;flex:1;min-width:12rem}

.job-card-actions{display:flex;flex-direction:column;gap:.5rem;padding-top:.25rem;border-top:1px solid #1e293b}
.action-group{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.action-group--primary .btn{font-weight:600}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.25rem;
  padding:.45rem .85rem;border-radius:.5rem;font-size:.8125rem;font-weight:500;
  border:1px solid transparent;cursor:pointer;text-decoration:none;
  background:var(--surface-2);color:var(--text);border-color:var(--border);
  transition:background .15s ease,border-color .15s ease,opacity .15s ease,color .15s ease;
}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-sm{padding:.3rem .6rem;font-size:.72rem}
.btn-primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand-hover)}
.btn-primary:hover{background:var(--color-brand-hover);color:#fff}
.btn-run{background:var(--color-brand);color:#fff;border-color:var(--color-brand-hover)}
.btn-run:hover{background:var(--color-brand-hover);color:#fff}
.btn-continue{background:rgba(37,99,235,.25);color:#dbeafe;border-color:var(--color-brand-border)}
.btn-continue:hover{background:var(--color-brand);color:#fff}
.btn-dry{background:rgba(120,53,15,.5);color:#fde68a;border-color:#92400e}
.btn-dry:hover{background:#b45309;color:#fff}
.btn-warn{background:rgba(180,83,9,.6);color:#fef3c7;border-color:#b45309}
.btn-warn:hover{background:#d97706}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}
.btn-ghost:hover{background:var(--surface-2);border-color:#475569;color:var(--text)}
.btn-danger{background:rgba(127,29,29,.4);color:#fca5a5;border-color:#991b1b}
.btn-danger:hover{background:#991b1b;color:#fff}
.input-sm{flex:1;min-width:8rem;padding:.35rem .55rem;font-size:.72rem;background:#0f172a;border:1px solid #334155;border-radius:.4rem;color:#f1f5f9}

.empty-state{text-align:center;padding:3rem 1.5rem;border:1px dashed #334155;border-radius:1rem;background:rgba(15,23,42,.3)}
.empty-state-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600}
.empty-state-desc{margin:0 0 1rem;font-size:.875rem;color:#64748b}

.activity-card{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid #1e293b;border-radius:1rem;background:rgba(15,23,42,.75);overflow:hidden}
.activity-card-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid #1e293b}
.activity-card-header h3{margin:0;font-size:.875rem;font-weight:600}
.activity-status{font-size:.7rem;color:#64748b}
.activity-lines{flex:1;margin:0;padding:.65rem .85rem;list-style:none;overflow-y:auto;max-height:min(28rem,calc(100vh - 12rem));font-family:ui-monospace,monospace;font-size:.68rem;line-height:1.5}
.activity-line{padding:.2rem 0;border-bottom:1px solid rgba(30,41,59,.5);color:#94a3b8;word-break:break-word}
.activity-line:last-child{border-bottom:none}
.line-error{color:#fca5a5}
.line-ok{color:#6ee7b7}
.line-dry{color:#fcd34d}
.line-step{color:#93c5fd}
.line-start{color:#c4b5fd}
.activity-empty{padding:1rem;font-size:.75rem;color:#64748b}
.activity-live-bar{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#64748b;padding:.25rem .15rem}
.activity-live-bar.is-live{color:#93c5fd}
.activity-live-bar .live-pulse{width:.5rem;height:.5rem;border-radius:50%;background:#60a5fa;flex-shrink:0}
.activity-idle-dot{width:.5rem;height:.5rem;border-radius:50%;background:#334155;flex-shrink:0}
.activity-side-footer{display:flex;justify-content:space-between;padding-top:.25rem}

.sequencer-hint{display:block;margin-top:.25rem;color:#64748b;font-size:.65rem}

@media(max-width:1023px){
  .activity-lines{max-height:16rem}
}

/* v4 — OAuth connect + onboarding */
.phase-pill{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:9999px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#1e293b;color:#94a3b8;border:1px solid #334155}
.phase-pill--current,.phase-pill--running{background:rgba(29,78,216,.25);color:#93c5fd;border-color:#1d4ed8}
.phase-pill--done,.phase-pill--connected{background:var(--color-success-muted);color:var(--color-success-fg);border-color:var(--color-success-border)}
.phase-pill--partial,.phase-pill--failed{background:rgba(127,29,29,.25);color:#fca5a5;border-color:#991b1b}
.phase-pill--idle{background:#1e293b;color:#64748b}
.phase-pill--awaiting_session,.phase-pill--awaiting_prep,.phase-pill--awaiting_password,.phase-pill--missing_oauth_password,.phase-pill--awaiting_mailbox_signin,.phase-pill--queue_pause,.phase-pill--proxy,.phase-pill--browser_backend{background:rgba(120,53,15,.28);color:#fdba74;border-color:#c2410c}
.phase-pill--warn,.phase-pill--awaiting_authorization{background:rgba(120,53,15,.18);color:#fbbf24;border-color:rgba(194,65,12,.35)}
.phase-pill--stale{background:rgba(120,53,15,.35);color:#fdba74;border-color:#c2410c}
.connect-readiness{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:0 0 1rem;padding:.75rem 1rem;border-radius:var(--radius-md);background:rgba(120,53,15,.12);border:1px solid rgba(194,65,12,.35)}
.connect-readiness--warn{background:rgba(120,53,15,.08);border-color:rgba(194,65,12,.25)}
.connect-readiness-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fdba74}
.connect-readiness-blockers{display:flex;flex-wrap:wrap;gap:.4rem}
.connect-readiness-detail{flex:1 1 100%;margin:.15rem 0 0;line-height:1.4}
.connect-meta{margin:-.5rem 0 1rem}

.card-surface{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:1.25rem 1.5rem}
.link-accent{color:var(--color-brand);text-decoration:underline}
.link-accent:hover{color:var(--color-brand-hover)}
.text-ok{color:var(--color-success)}
.text-muted{color:var(--muted)}
.btn-lg{padding:.65rem 1.25rem;font-size:.9rem}
.input-md{width:100%;padding:.55rem .75rem;font-size:.875rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text)}

.ms-connect-panel{margin-bottom:1.25rem;padding:1.15rem 1.35rem}
.ms-connect-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.ms-connect-title{margin:0;font-size:1.1rem;font-weight:600}
.ms-connect-desc{margin:.35rem 0 0;max-width:36rem}
.ms-connect-primary{margin-bottom:.75rem}
.ms-device-code-card{padding:1rem 1.15rem;border-radius:var(--radius-md);border:1px solid rgba(59,130,246,.35);background:linear-gradient(135deg,rgba(30,58,138,.12),rgba(15,22,35,.6))}
.ms-device-code-steps{margin:0 0 1rem;padding-left:1.15rem;font-size:.8rem;color:var(--muted);line-height:1.55}
.ms-device-code-steps strong{color:var(--text)}
.ms-device-code-panel{margin-top:1rem;padding:1rem;border-radius:var(--radius-md);background:rgba(7,11,20,.55);border:1px solid var(--border)}
.ms-device-code-display{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.65rem}
.ms-device-code-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.ms-device-code-value-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.ms-device-code-value{font-size:1.65rem;margin:0;letter-spacing:.12em;font-family:var(--mono);color:#93c5fd}
.ms-device-code-uri{margin:0;font-size:.8rem}
.ms-device-code-uri a{color:var(--color-brand);text-decoration:underline}
.ms-session-advanced{margin-top:.5rem;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:rgba(15,22,35,.45);overflow:hidden}
.ms-session-advanced summary{cursor:pointer;padding:.65rem 1rem;font-size:.8rem;color:var(--muted);list-style:none;font-weight:500}
.ms-session-advanced summary::-webkit-details-marker{display:none}
.ms-session-advanced summary::before{content:"▸ ";color:var(--color-brand)}
.ms-session-advanced[open] summary::before{content:"▾ "}
.ms-session-advanced[open] summary{border-bottom:1px solid var(--border-soft);background:rgba(15,22,35,.6)}
.ms-session-upload{padding:1rem;display:flex;flex-direction:column;gap:.65rem}
.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:5.5rem;padding:1rem 1.25rem;border:1.5px dashed var(--border);border-radius:var(--radius-md);background:rgba(7,11,20,.4);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}
.upload-dropzone:hover,.upload-dropzone.is-dragover{border-color:var(--color-brand);background:var(--color-brand-muted)}
.upload-dropzone.is-loaded{border-color:var(--color-success-border);border-style:solid;background:var(--color-success-muted)}
.upload-dropzone-icon{font-size:1.35rem;line-height:1;opacity:.7}
.upload-dropzone-title{margin:0;font-size:.85rem;font-weight:600}
.upload-dropzone-hint{margin:0;font-size:.72rem;color:var(--muted)}
.upload-or{margin:0;font-size:.7rem;color:var(--muted);text-align:center}
.upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.upload-hint{font-size:.72rem;color:var(--muted);flex:1;min-width:10rem}
.upload-hint--error{color:#fca5a5}
.upload-hint--ok{color:var(--color-success-fg)}
.ms-session-textarea{width:100%;min-height:4.5rem;max-height:12rem;resize:vertical;font-family:var(--mono,ui-monospace,monospace);font-size:.72rem;line-height:1.45}
.connect-page{max-width:72rem;margin:0 auto}
.connect-primary-card{margin:1rem 0 1.25rem;padding:1.15rem 1.35rem}
.connect-section-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600}
.connect-section-desc{margin:0 0 .85rem;max-width:40rem}
.connect-auto-status{opacity:.95}
.connect-auto-status .ms-connect-title{font-size:1rem;font-weight:600}
.connect-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.connect-back{font-size:.8rem;color:var(--muted);text-decoration:none;display:block;margin-bottom:.35rem}
.connect-back:hover{color:var(--color-brand)}
.connect-title{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}
.connect-subtitle{margin:.25rem 0 0;color:var(--muted);font-size:.875rem}
.connect-header-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.connect-stats{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}
.connect-message{color:var(--muted);font-size:.875rem;margin-bottom:1rem}
.connect-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}
.connect-toolbar-label{font-size:.75rem;color:var(--text-muted,#94a3b8);margin-right:.25rem}
.connect-hint{margin-bottom:1rem}
.connect-provider-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:9999px;border:1px solid var(--border);font-size:.75rem;cursor:pointer;background:var(--surface-2)}
.connect-provider-chip--disabled{opacity:.55;cursor:not-allowed}
.connect-provider-chip--disabled input{cursor:not-allowed}
.connect-provider-status{margin:.75rem 0 1rem;display:flex;flex-direction:column;gap:.5rem}
.connect-provider-status-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.connect-provider-status-card{display:flex;flex-direction:column;gap:.15rem;min-width:12rem;padding:.5rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);font-size:.75rem}
.connect-provider-status-name{font-weight:600;text-transform:capitalize}
.connect-provider-status-counts{color:var(--muted)}
.connect-provider-status-detail{color:var(--text)}
.connect-network-state{margin:0 0 1rem;padding:.65rem .85rem;border:1px solid rgba(194,65,12,.4);border-radius:var(--radius-md);background:rgba(120,53,15,.1);color:#c2410c;font-size:.82rem;font-weight:600}
.connect-identity-repair{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.8rem 1rem;border:1px solid rgba(245,158,11,.42);border-radius:var(--radius-lg);background:rgba(245,158,11,.09)}
.connect-identity-repair>div{display:grid;gap:.15rem}
.connect-identity-repair span{color:var(--muted);font-size:.78rem}
.connect-identity-repair.hidden{display:none}
@media (max-width:640px){.connect-identity-repair{align-items:stretch;flex-direction:column}.connect-identity-repair .btn{width:100%}}
.connect-mailboxes{margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}
.connect-mailboxes>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;font-weight:650;list-style-position:inside;background:var(--surface-2)}
.connect-grid-toolbar{display:grid;grid-template-columns:minmax(14rem,1fr) minmax(10rem,14rem);gap:.75rem;padding:.75rem 1rem;border-top:1px solid var(--border-soft)}
.connect-grid-wrap{border-top:1px solid var(--border);overflow:auto;max-height:min(65vh,42rem);background:var(--surface)}
.connect-grid{width:100%;border-collapse:collapse;font-size:.8rem}
.connect-grid th{position:sticky;top:0;z-index:1;text-align:left;padding:.65rem 1rem;background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}
.connect-grid td{padding:.55rem 1rem;border-top:1px solid var(--border-soft)}
@media (max-width:640px){.connect-grid-toolbar{grid-template-columns:1fr}.connect-grid{min-width:44rem}}
.connect-row--connected td:first-child{color:var(--color-success)}
.connect-row--failed td{color:#fca5a5}
.connect-error{font-size:.72rem;color:#f87171;max-width:16rem}
.connect-error>span{display:block}
.connect-error-action{margin-top:.4rem;white-space:nowrap}
.empty-grid{text-align:center;color:var(--muted);padding:2rem!important}

/* Cloud Authenticator */
.auth-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}
.auth-toolbar .input-md{max-width:18rem}
.auth-job-select{min-width:14rem;max-width:22rem}
.auth-refresh-hint{font-size:.75rem;color:var(--muted)}
.auth-code{font-family:var(--mono);font-size:1.05rem;font-weight:600;letter-spacing:.2em;color:var(--color-success)}
.auth-countdown{display:inline-flex;align-items:center;justify-content:center;position:relative;width:2.6rem;height:2.6rem;vertical-align:middle}
.auth-countdown svg{width:100%;height:100%;transform:rotate(-90deg)}
.auth-countdown-ring-bg{fill:none;stroke:var(--border);stroke-width:3}
.auth-countdown-ring-fg{fill:none;stroke:var(--color-success);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .35s ease,stroke .35s ease}
.auth-countdown-ring-fg--low{stroke:var(--warn)}
.auth-countdown-label{position:absolute;font-size:.62rem;font-weight:600;color:var(--muted);font-family:var(--mono)}
.auth-job-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));margin-top:1rem}
.auth-job-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);text-decoration:none;transition:border-color .15s ease,background .15s ease}
.auth-job-card:hover{border-color:var(--color-brand);background:var(--surface)}
.auth-job-card-domain{font-weight:600;font-size:.95rem}
.auth-job-card-meta{font-size:.75rem;color:var(--muted)}
.auth-row--hidden{display:none}
.status-dot{display:inline-flex;align-items:center;gap:.3rem;text-transform:capitalize;font-size:.75rem}
.status-dot--running::before,.status-dot--connected::before,.status-dot--failed::before,.status-dot--awaiting_authorization::before{content:'';width:.4rem;height:.4rem;border-radius:50%}
.status-dot--connected::before{background:var(--color-success)}
.status-dot--failed::before{background:var(--danger)}
.status-dot--awaiting_authorization::before{background:var(--status-warning)}
.status-dot--running::before{background:var(--status-running);animation:live-pulse 1s infinite}
.mono{font-family:var(--mono);font-size:.78rem}

.onboarding-page{max-width:56rem;margin:0 auto}
.onboarding-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(15,22,35,.4));border:1px solid var(--border)}
.onboarding-hero h1{margin:.5rem 0 .35rem;font-size:1.75rem}
.onboarding-hero p{margin:0;color:var(--muted);max-width:28rem}
.onboarding-percent{font-size:1.5rem;font-weight:700;color:var(--color-brand)}
.onboarding-grid{display:grid;gap:1.25rem}
@media(min-width:768px){.onboarding-grid{grid-template-columns:1fr 1fr}}
.onboarding-checklist h2,.onboarding-setup h2{margin:0 0 1rem;font-size:1rem}
.onboarding-cta{margin-top:2rem;text-align:center}
.setup-form-grid{display:flex;flex-direction:column;gap:.85rem}
.form-group label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.35rem}
.form-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}

/* Auth pages */
.auth-card{width:100%;max-width:26rem;padding:1.75rem 1.5rem}
.auth-title{margin:0 0 .35rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}
.auth-sub{margin:0 0 1.25rem;color:var(--muted);font-size:.875rem;line-height:1.45}
.auth-form{display:flex;flex-direction:column;gap:.85rem}
.auth-form .form-group label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.35rem;font-weight:500}
.auth-error{margin:0 0 1rem;padding:.65rem .85rem;border-radius:var(--radius-md);background:rgba(127,29,29,.2);border:1px solid #991b1b;color:#fca5a5;font-size:.85rem}
.auth-footer{margin:1.25rem 0 0;font-size:.85rem;color:var(--muted);text-align:center}
.w-full{width:100%}

.settings-page{max-width:40rem;margin:0 auto}
.settings-header{margin-bottom:1.5rem}
.settings-header h1{margin:0 0 .35rem;font-size:1.75rem}
.settings-header p{margin:0;color:var(--muted);font-size:.875rem}
.settings-stack{display:flex;flex-direction:column;gap:1.25rem}
.settings-card h2{margin:0 0 .35rem;font-size:1rem}
.card-desc{margin:0 0 1rem;font-size:.8rem;color:var(--muted)}
.settings-grid-2{display:grid;gap:.85rem}
@media(min-width:540px){.settings-grid-2{grid-template-columns:1fr 1fr}}
.settings-card--muted{opacity:.85}

.tenant-card-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.tenant-diagnostics summary{cursor:pointer;font-size:.75rem;color:var(--muted)}
.diagnostics-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}
