/* BoB V3 — neutral grey theme */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F3F4F6;
  --card:#FFFFFF;
  --text:#0f172a;
  --text2:#64748b;
  --text3:#94a3b8;
  --text-body:#334155;
  --lime:#4B5563;
  --lime-deep:#374151;
  --lime-soft:#F3F4F6;
  --black:#141414;
  --sidebar:#1A1C22;
  --sidebar-2:#22252D;
  --sidebar-text:#C8CBD3;
  --sidebar-muted:#8B909C;
  --border:rgba(17,24,39,.06);
  --shadow:0 8px 28px rgba(15,23,42,.06);
  --shadow-sm:0 2px 10px rgba(15,23,42,.04);
  --radius:22px;
  --radius-sm:14px;
  --radius-pill:999px;
  /* ponytail: no Google Fonts (CSP style-src 'self'); DM Sans only if installed locally */
  --font:"DM Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --err-soft:#FEE2E2;
  --err:#DC2626;
  --ok:#16A34A;
  --ok-soft:#DCFCE7;
  --idle:#E5E7EB;
  --warn:#B54708;
  --warn-soft:#FEF3C7;
  --info:#0369A1;
  --info-soft:#E0F2FE;
  --success:#16A34A;
  --success-soft:#DCFCE7;
  --error:var(--err);
  --error-soft:var(--err-soft);
  /* aliases used by V2-ported feature CSS */
  --panel:var(--card);
  --panel-soft:#FAFAFA;
  --muted:var(--text2);
  --text-muted:var(--text3);
  --text-soft:var(--text2);
  --accent:var(--lime-deep);
  --accent-soft:var(--lime-soft);
  --accent-strong:#374151;
  --hover:rgba(17,24,39,.04);
}
html,body{height:100%;font-family:var(--font);font-size:13.5px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
body.has-impersonate-banner{padding-top:40px}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font:inherit;color:var(--text);outline:none}
a{color:inherit;text-decoration:none}
code{font-family:var(--mono);font-size:11px;background:#F3F4F6;padding:1px 5px;border-radius:6px}
[hidden]{display:none!important}
.hidden{display:none!important}

/* Top loader */
#topLoader{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;background:linear-gradient(90deg,var(--lime-deep),var(--lime));box-shadow:0 0 12px rgba(75,85,99,.4);opacity:0;transition:width .35s ease,opacity .2s}
#topLoader.active{opacity:1}
#topLoader.done{width:100%!important;opacity:0;transition:width .2s ease,opacity .45s ease .1s}

.app{min-height:100vh;height:100vh;display:flex;overflow:hidden}
.app > div:not(.sidebar){flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.sidebar{
  width:248px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-text);
  display:flex;flex-direction:column;padding:18px 12px 14px;
  border-right:1px solid rgba(255,255,255,.04);
  position:sticky;top:0;height:100vh;overflow:auto;
}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;color:#fff}
.side-logo{
  width:34px;height:34px;border-radius:12px;background:#0E0F12;
  display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.35);
  overflow:hidden;flex-shrink:0;
}
.side-logo img,.side-logo svg{display:block;width:28px;height:28px}
.side-brand strong{font-size:16px;letter-spacing:-.02em;font-weight:600}
.side-brand span{display:block;font-size:11px;color:var(--sidebar-muted);font-weight:500;margin-top:1px}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-link{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:12px;color:var(--sidebar-text);
  transition:background .15s,color .15s;cursor:pointer;
}
.side-link .ico{width:18px;height:18px;display:grid;place-items:center;opacity:.7;flex-shrink:0}
.side-link .ico svg{width:18px;height:18px}
.side-link .lbl{flex:1;font-size:13px;font-weight:500}
.side-link .kbd{font-size:10px;color:var(--sidebar-muted);letter-spacing:.02em}
.side-link:hover{background:rgba(255,255,255,.05);color:#fff}
.side-link.active{background:rgba(255,255,255,.1);color:#fff}
.side-link.active .lbl{font-weight:600}
.side-link.active .kbd{color:rgba(255,255,255,.45)}
.side-link.active .ico{opacity:.9}
.side-section{
  margin:16px 10px 8px;font-size:10px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--sidebar-muted);
}
#sideAccounts{display:flex;flex-direction:column;gap:2px;max-height:160px;overflow:auto}
.side-mini-acc,.acct-mini{
  display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;
  cursor:pointer;transition:background .15s;
}
.side-mini-acc:hover,.side-mini-acc.active,.acct-mini:hover,.acct-mini.active{background:rgba(255,255,255,.06)}
.side-mini-acc .av,.acct-mini .av{
  width:22px;height:22px;border-radius:8px;background:#2A2D36;color:#E5E7EB;
  display:grid;place-items:center;font-size:9px;font-weight:700;flex-shrink:0;
}
.side-mini-acc .label,.acct-mini .name{font-size:12px;color:#E5E7EB;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.acct-dot,.stat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#6B7280}
.acct-dot.on,.stat-dot.active{background:#22C55E}
.stat-dot.working{background:#38BDF8;animation:pulse 1s infinite}
.stat-dot.inactive{background:var(--err)}
.stat-dot.idle{background:#9CA3AF}
@keyframes pulse{50%{opacity:.45}}
.side-disk{
  margin-top:auto;padding:12px 10px 4px;border-top:1px solid rgba(255,255,255,.06);
  font-size:11px;color:var(--sidebar-muted);
}
.side-disk-row{display:flex;justify-content:space-between;gap:8px;margin-top:6px}
.side-disk-val{color:#E5E7EB;font-variant-numeric:tabular-nums;font-weight:600}
.side-disk-bar{height:4px;background:rgba(255,255,255,.08);border-radius:999px;margin-top:4px;overflow:hidden}
.side-disk-bar>div{height:100%;background:#9CA3AF;border-radius:999px;width:0;transition:width .4s}
.side-disk-bar>div.warn{background:#F59E0B}
.side-disk-bar>div.crit{background:var(--err)}
.side-disk-gear{width:100%;margin-top:10px;background:rgba(255,255,255,.06)!important;color:#E5E7EB!important;border-color:rgba(255,255,255,.08)!important}
.side-foot{display:flex;align-items:center;gap:8px;padding:10px;font-size:11px;color:var(--sidebar-muted)}

.main{flex:1;min-width:0;padding:22px 28px 40px;overflow:auto}
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:18px;flex-wrap:wrap;
}
.crumb{
  font-size:13px;color:var(--text2);font-weight:500;
  display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 14px;border-radius:var(--radius-pill);
  background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);
}
.crumb b{color:var(--text);font-weight:600;font-size:13.5px;letter-spacing:-.01em}
.crumb #topActive,.crumb span{color:var(--text3);font-weight:500}
.top-actions{display:flex;align-items:center;gap:8px}
.conn-pill{
  display:inline-flex;align-items:center;gap:7px;padding:7px 12px;
  border-radius:var(--radius-pill);background:var(--card);border:1px solid var(--border);
  box-shadow:var(--shadow-sm);font-size:12px;color:var(--text2);
}
.conn-pill .d{width:7px;height:7px;border-radius:50%;background:#9CA3AF}
.conn-pill.bad .d{background:var(--err)}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}
.page-head h1{font-size:24px;font-weight:600;letter-spacing:-.03em;color:var(--text)}
.page-head p{color:var(--text2);font-size:13px;margin-top:4px}

.card{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  border:1px solid var(--border);padding:18px 20px;margin-bottom:14px;
}
.card .head,.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.card .head h3,.card-head h3{font-size:14px;font-weight:600;color:var(--text)}
.card .body{min-width:0}
.muted{color:var(--text2)}.tiny{font-size:11px;color:var(--text3)}.hint{font-size:11px;color:var(--text2);line-height:1.45;margin:4px 0 8px}

/* Dashboard: equal-height 2-col; Activity stretches with left stack / viewport */
#view-dashboard:not([hidden]){
  display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;
}
#view-dashboard > .page-head{flex-shrink:0}
.dash-grid{
  display:grid;grid-template-columns:1.15fr .95fr;gap:14px;
  align-items:stretch;
  /* grow into space under page-head; shrink:0 so tall left stack isn't clipped */
  flex:1 0 auto;min-height:0;
}
.col-cards{display:flex;flex-direction:column;gap:14px;min-width:0}
.col-cards > .card{margin-bottom:0}
.col-side{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}
@media (max-width:1180px){
  .dash-grid{grid-template-columns:1fr}
  .col-side{height:auto;min-height:360px}
  .sidebar{width:220px}
}
@media (max-width:900px){
  .app{flex-direction:column}
  .sidebar{width:100%;height:auto;position:relative}
  .side-disk,#sideAccounts,.side-section,.side-foot{display:none}
}

.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border-radius:var(--radius-pill);
  font-size:11px;font-weight:600;line-height:1.2;background:var(--idle);color:#4B5563;
}
.badge .d{width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ok,.badge-lime{background:var(--ok-soft);color:var(--ok)}
.badge.run{background:var(--info-soft);color:var(--info)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.error,.badge-red{background:var(--err-soft);color:var(--err)}
.badge.idle,.badge-grey{background:var(--idle);color:#4B5563}
.badge-soft{background:#F3F4F6;color:#374151}

.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:550;
  color:var(--text2);background:#F3F4F6;border:1px solid var(--border);cursor:pointer;
  transition:background .15s,color .15s,box-shadow .15s;
}
.pill:hover{color:var(--text)}
.pill.active{background:#E5E7EB;color:#1F2937;box-shadow:0 2px 10px rgba(75,85,99,.15)}
.pill .av{width:22px;height:22px;border-radius:50%;background:#E5E7EB;display:grid;place-items:center;font-size:9px;font-weight:700;color:#374151}
.pill.active .av{background:rgba(0,0,0,.12)}
.pill-status{width:8px;height:8px;border-radius:50%;background:#9CA3AF}
.pill-status.active{background:#22C55E}
.pill-status.working{background:#38BDF8;animation:pulse 1s infinite}
.pill-status.inactive{background:var(--err)}
.pill-x{opacity:.55;margin-left:2px;font-weight:700}
.pill-x:hover{opacity:1;color:var(--err)}
.pill-reauth{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.08)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 16px;border-radius:var(--radius-pill);font-weight:550;font-size:12.5px;
  transition:transform .12s,box-shadow .12s,background .12s,border-color .12s;border:1px solid transparent;
  background:#F3F4F6;color:var(--text-body); /* default secondary — not lime */
}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn.primary,.btn-lime{background:var(--lime);color:#fff;font-weight:600;box-shadow:0 6px 18px rgba(75,85,99,.2)}
.btn-black{background:var(--black);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.btn.ghost,.btn-ghost{background:transparent;color:var(--text-body);border-color:#E2E8F0}
.btn.ghost:hover,.btn-ghost:hover{background:#F8FAFC;border-color:#CBD5E1}
.btn.danger,.btn-danger{background:var(--err-soft);color:var(--err)}
.btn.ghost.danger{background:transparent;color:var(--err);border-color:#FECACA}
.btn.ghost.danger:hover{background:var(--err-soft)}
.btn.warn{background:var(--warn-soft);color:var(--warn)}
.btn.success{background:#E5E7EB;color:#374151}
.btn.sm,.btn-sm{padding:7px 11px;font-size:12px}
.btn.clicked{transform:scale(.97)}
.btn.is-busy{opacity:.7;pointer-events:none}

.toggle{
  width:44px;height:25px;border-radius:999px;background:#D1D5DB;
  position:relative;transition:background .2s;flex-shrink:0;border:0;padding:0;cursor:pointer;
  appearance:none;-webkit-appearance:none;display:inline-block;vertical-align:middle;
}
.toggle:checked,.toggle.on{background:#6B7280}
.toggle::after{
  content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;
  border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.15);
  transition:transform .2s;
}
.toggle:checked::after,.toggle.on::after{transform:translateX(19px)}
.toggle-row{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-size:12.5px;color:var(--text);user-select:none;margin:0;
}
.toggle-row .tog-state,.toggle-row .toggle-state{font-size:11px;font-weight:600;min-width:26px;color:#9CA3AF}
.toggle-row.on .tog-state,.toggle-row.on .toggle-state,
.toggle-row:has(.toggle:checked) .tog-state,
.toggle-row:has(.toggle:checked) .toggle-state,
.toggle-row:has(.toggle-input:checked) .toggle-state{color:#374151}
.toggle-row-block{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  width:100%;padding:12px 0;border-bottom:1px solid #F3F4F6;
}
.toggle-row-block:last-child{border-bottom:0}
.toggle-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.toggle-title{font-size:13px;font-weight:600;color:var(--text)}
.toggle-desc{font-size:11.5px;color:var(--text2);line-height:1.4}
.toggle-control{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;margin-top:2px}
.setting-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:14px 0;border-bottom:1px solid #F3F4F6;
}
.setting-row:last-child{border-bottom:0}
.setting-row h4{font-size:13.5px;font-weight:600;margin-bottom:3px}
.setting-row p{font-size:12px;color:var(--text2);line-height:1.45;max-width:420px}
.setting-row > .toggle-row{flex-shrink:0;margin-top:2px}

/* Stacked Profile / Change password (Settings Account tab) */
.settings-stack-card{
  padding:4px 0 16px;border-bottom:1px solid #F3F4F6;margin-bottom:4px;
}
.settings-stack-head{margin-bottom:12px}
.settings-stack-head h4{font-size:13.5px;font-weight:600;margin:0 0 3px}
.settings-stack-head p{font-size:12px;color:var(--text2);line-height:1.45;margin:0;max-width:420px}
.settings-profile-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:420px;
}
.settings-stack-card .field{margin-bottom:0;gap:4px}
.settings-stack-card .field label{font-size:11.5px;font-weight:600;color:var(--text2)}
.settings-stack-card input[type="text"],
.settings-stack-card input[type="password"]{
  font-size:13px;border-radius:8px;padding:9px 11px;
}
.settings-pw-form{max-width:420px;display:flex;flex-direction:column;gap:10px}
.settings-pw-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px}
.settings-stack-section{margin-top:14px}
@media (max-width:520px){
  .settings-profile-grid{grid-template-columns:1fr}
}
.toggle-row .tog-caption{font-weight:550;font-size:12px;color:var(--text)}
.toggle-row.compact .toggle{width:36px;height:20px}
.toggle-row.compact .toggle::after{width:14px;height:14px;top:3px;left:3px}
.toggle-row.compact .toggle:checked::after,.toggle-row.compact.on .toggle::after{transform:translateX(16px)}
.toggle-row.compact .tog-state{min-width:22px;font-size:10px}

.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field label,.field-label,label.field{font-size:11.5px;font-weight:600;color:var(--text2)}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.row>*{flex:1;min-width:120px}
.row.cols-2>*{min-width:180px}
.row.cols-3>*{min-width:140px}
.checkrow{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;cursor:pointer;color:var(--text)}
.input,.select,textarea.input,
input[type="text"],input[type="password"],input[type="email"],input[type="number"],
input[type="datetime-local"],select,textarea{
  width:100%;padding:10px 12px;border-radius:12px;
  border:1px solid #E5E7EB;background:#FAFAFA;transition:border .15s,box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  border-color:#9CA3AF;box-shadow:0 0 0 3px rgba(107,114,128,.15);background:#fff;
}
.file-input{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 12px;border-radius:12px;border:1px dashed #D1D5DB;background:#FAFAFA;font-size:12px;color:var(--text2);
}
.proxy-required-block{
  margin-top:10px;padding:12px 14px;border-radius:16px;
  border:1px solid #FDE68A;background:#FFFBEB;
}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:#FAFAFA;border:1px solid #F3F4F6;border-radius:16px;padding:12px}
.stat .label{font-size:10.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;font-weight:550}
.stat .value{font-size:22px;font-weight:600;margin-top:4px;letter-spacing:-.02em;color:var(--text)}

.job-list{display:flex;flex-direction:column;gap:10px}
.job-empty{color:var(--text2);font-size:12.5px;padding:8px 0}
.job{border:1px solid #EEF0F3;border-radius:16px;background:#FAFAFA;padding:12px 14px}
.job .row1{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.job .title{font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.job .sub{font-size:11.5px;color:var(--text2);margin-top:3px}
.job .acct{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:#E5E7EB;font-size:11px;cursor:pointer}
.job .progress-bar{height:6px;background:#EEF0F3;border-radius:999px;margin:10px 0;overflow:hidden}
.job .progress-bar>div{height:100%;background:linear-gradient(90deg,#6B7280,#9CA3AF)}
.job .controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.job .meta{font-size:11px;color:var(--text2)}

.pane{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  border:1px solid var(--border);display:flex;flex-direction:column;
  flex:1;min-height:0;max-height:calc(100vh - 160px);overflow:hidden;
}
.pane .head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-bottom:1px solid #F3F4F6;flex-shrink:0;flex-wrap:wrap;
}
.pane .head h4{font-size:14.5px;font-weight:600;color:var(--text);margin:0}
.pane .sub{font-size:11px;color:var(--text2);margin-top:2px}
.log-filters{
  display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid #F3F4F6;
  flex-wrap:wrap;align-items:center;flex-shrink:0;
}
.log-filters .chip{
  padding:5px 10px;border-radius:999px;font-size:11px;font-weight:600;cursor:pointer;
  background:#F3F4F6;color:var(--text2);border:1px solid transparent;
  line-height:1.2;display:inline-flex;align-items:center;justify-content:center;
}
.log-filters .chip.active{background:#E5E7EB;color:#1F2937;border-color:#D1D5DB}
.logs{
  flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 14px 16px;
  font-family:var(--font);font-size:12.5px;
  background:#FFFFFF;color:var(--text);
  border-radius:0 0 var(--radius) var(--radius);
}
.logs .empty{color:var(--text3);padding:28px 4px;text-align:center;font-family:var(--font);font-size:12.5px}
.logs .ln{
  display:grid;grid-template-columns:64px 52px minmax(0,1fr);gap:10px;
  padding:7px 4px;border-bottom:1px solid #F3F4F6;align-items:start;
  font-family:var(--font);
}
.logs .ln:hover{background:#FAFAFA}
.logs .ln > span:last-child{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.45;color:var(--text-body)}
.logs .ts{color:var(--text3);flex-shrink:0;font-variant-numeric:tabular-nums;font-size:11.5px;font-family:var(--font)}
.logs .lvl{
  font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;height:fit-content;
  text-transform:uppercase;letter-spacing:.03em;text-align:center;font-family:var(--font);
}
.logs .lvl.info{background:var(--info-soft);color:var(--info)}
.logs .lvl.warn,.logs .lvl.warning{background:var(--warn-soft);color:var(--warn)}
.logs .lvl.err,.logs .lvl.error{background:var(--err-soft);color:var(--err)}
.logs .lvl.ok,.logs .lvl.success{background:#E5E7EB;color:#374151}

/* Auth */
.auth-overlay{
  position:fixed;inset:0;z-index:2000;display:none;place-items:center;
  background:radial-gradient(1200px 600px at 50% -10%,rgba(107,114,128,.15),transparent 55%),
             linear-gradient(160deg,#0E0F12 0%,#1A1C22 55%,#141414 100%);
}
.auth-overlay.open{display:grid}
.auth-card{
  width:min(420px,92vw);background:var(--card);border-radius:28px;padding:32px 30px 28px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);
}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.auth-brand .mark{
  width:48px;height:48px;border-radius:14px;background:var(--black);
  display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.25);
  overflow:hidden;flex-shrink:0;
}
.auth-brand .mark img,.auth-brand .mark svg{display:block;width:40px;height:40px}
.auth-brand h1{font-size:22px;letter-spacing:-.03em}
.auth-brand p{font-size:12px;color:var(--text2);margin-top:2px}
.auth-card h2{font-size:18px;margin-bottom:4px}
.auth-card .sub{color:var(--text2);font-size:12.5px;margin-bottom:18px}
.auth-card label{display:block;font-size:11.5px;font-weight:600;color:var(--text2);margin:10px 0 5px}
.auth-card .btn-row{display:flex;gap:8px;margin-top:18px}
.auth-card .btn-row .btn{flex:1}
.auth-card .err,.err{display:none;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--err-soft);color:var(--err);font-size:12.5px}
.auth-card .err.show,.err.show{display:block}

.impersonate-banner{
  position:fixed;top:0;left:0;right:0;z-index:1900;display:none;
  align-items:center;justify-content:center;gap:14px;
  background:#78350F;color:#FEF3C7;padding:10px 16px;font-size:12.5px;font-weight:500;
}
.impersonate-banner.show{display:flex}
.impersonate-banner .stop{
  background:#FEF3C7;color:#78350F;border-radius:999px;padding:6px 12px;font-weight:700;font-size:12px;
}

/* User menu */
.user-menu{position:relative}
.user-chip{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,#222,#444);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:12px;
  border:2px solid #fff;box-shadow:var(--shadow-sm);cursor:pointer;
}
.user-chip.admin{outline:2px solid #9CA3AF;outline-offset:1px}
.user-menu-panel{
  position:absolute;right:0;top:48px;width:220px;background:var(--card);
  border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);
  padding:8px;display:none;z-index:50;
}
.user-menu.open .user-menu-panel{display:block}
.user-menu-panel .who{padding:10px 12px 8px;border-bottom:1px solid #F3F4F6;margin-bottom:4px}
.user-menu-panel .who b{display:block;font-size:13px}
.user-menu-panel .who .role{font-size:11px;color:var(--text2);margin-top:2px}
.user-menu-panel .role.admin{color:#374151;font-weight:700}
.user-menu-panel button{
  width:100%;text-align:left;padding:9px 12px;border-radius:10px;font-size:12.5px;
}
.user-menu-panel button:hover{background:#F3F4F6}

/* Modals */
.admin-modal,.settings-modal,.modal-backdrop,.app-settings-modal{
  position:fixed;inset:0;z-index:1800;display:none;place-items:center;
  background:rgba(15,23,42,.45);padding:20px;
}
.admin-modal.open,.settings-modal.open,.modal-backdrop.open,.app-settings-modal.open{display:grid}
.admin-modal .panel,.settings-modal .panel,.app-settings-modal .panel,.modal{
  width:min(960px,96vw);max-height:88vh;background:var(--card);border-radius:24px;
  box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;
}
.admin-modal .head,.settings-modal .head,.app-settings-modal .head,.modal .head{
  display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #F3F4F6;
}
.admin-modal .head h3,.settings-modal .head h3,.app-settings-modal .head h3,.modal .head h3{font-size:15px;font-weight:600}
.admin-modal .spacer,.settings-modal .spacer,.modal .spacer{flex:1}
.modal.add-account-modal{width:min(560px,96vw)}
.admin-modal .tabs,.settings-modal .tabs{display:flex;gap:4px;padding:10px 14px;border-bottom:1px solid #F3F4F6;background:#FAFAFA}
.admin-modal .tabs button,.settings-modal .tabs button{
  padding:8px 14px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--text2);
}
.admin-modal .tabs button.active,.settings-modal .tabs button.active{background:#E5E7EB;color:#1F2937}
.admin-modal .body,.settings-modal .body,.app-settings-modal .body,.modal .body{
  padding:16px 18px;overflow:auto;flex:1;min-height:0;max-height:none;
}
.settings-modal .panel{width:min(720px,96vw)}
.settings-modal .settings-tab{min-height:0}
.settings-modal .body{overflow:auto;-webkit-overflow-scrolling:touch}
.settings-modal .setting-row{padding:12px 0}
.settings-modal .settings-stack-card{padding:2px 0 14px}
.auto-rule-form .field{margin-bottom:10px}
.auto-rule-form .toggle-row-block{padding:10px 0}
.admin-modal table,.settings-modal table{width:100%;border-collapse:collapse}
.admin-modal th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:9px 10px}
.admin-modal td{padding:11px 10px;border-top:1px solid #F3F4F6;font-size:12.5px;vertical-align:middle}
.admin-modal tr.inactive{opacity:.55}
.role-badge{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#F3F4F6}
.role-badge.admin{background:#E5E7EB;color:#374151}
.row-actions{display:flex;flex-wrap:wrap;gap:5px}
.row-actions button{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:600;background:#F3F4F6;border:1px solid var(--border)}
.row-actions button.primary{background:#E5E7EB}
.row-actions button.danger{background:var(--err-soft);color:var(--err)}
.new-user-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:12px;background:#FAFAFA;border-radius:16px;border:1px solid #EEF0F3}
.new-user-form>*{flex:1;min-width:120px}
.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:700px){.stat-grid{grid-template-columns:1fr 1fr}}
.stat-card{background:#FAFAFA;border:1px solid #F3F4F6;border-radius:16px;padding:14px}
.stat-card .v{font-size:24px;font-weight:600;letter-spacing:-.03em;color:var(--text)}
.stat-card .l{font-size:11px;color:var(--text2);margin-top:4px}
.audit-row .ts{font-family:var(--mono);font-size:11px;white-space:nowrap}
.audit-row .action{font-weight:650}
.audit-row .meta{font-family:var(--mono);font-size:10.5px;color:var(--text3);margin-top:3px;word-break:break-all}

.toast{
  position:fixed;bottom:22px;right:22px;background:var(--black);color:#fff;
  padding:12px 16px;border-radius:14px;font-size:13px;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s;z-index:3000;max-width:420px;
}
.toast.show{opacity:1;transform:none}
.toast.error{background:#7F1D1D}
.toast.success{background:#374151}
.toast.warn{background:#92400E}

.view-placeholder{
  background:var(--card);border-radius:var(--radius);border:1px dashed #D1D5DB;
  padding:48px 24px;text-align:center;color:var(--text2);
}
.view-placeholder h2{color:var(--text);font-size:20px;margin-bottom:6px}
.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.bar{display:flex;gap:8px;align-items:center}
details summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--text2)}
.tp-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #F3F4F6}
.sa-recip-row{display:flex;gap:8px;padding:6px 4px;border-bottom:1px solid #F3F4F6}
.sa-empty{color:var(--text2);padding:12px;text-align:center}
.accountCount{font-size:12px;color:var(--text2)}

/* ── View shells (Compose / Templates / Contacts / …) ── */
main.view,.page-shell,.page-body{min-height:0}
main.view[hidden]{display:none!important}
main.view:not([hidden]){
  display:flex;flex-direction:column;flex:1;min-height:0;width:100%;
}
#view-send:not([hidden]),
#view-pro:not([hidden]),
#view-templates:not([hidden]),
#view-library:not([hidden]),
#view-signatures:not([hidden]),
#view-contacts:not([hidden]){
  padding:12px 20px 24px;overflow:hidden;
}
/* Scrollable full-page views — content must not clip at fold */
#view-proxies:not([hidden]),
#view-rules:not([hidden]),
#view-retrobob:not([hidden]),
#view-settings:not([hidden]){
  overflow-y:auto;overflow-x:hidden;min-height:0;
}
#view-proxies .page-shell,
#view-rules .page-shell,
#view-settings .page-shell{
  display:flex;flex-direction:column;min-height:min-content;
  overflow:visible;
}
#view-proxies .page-body,
#view-rules .page-body,
#view-settings .page-body{
  overflow:visible;flex:none;
}
#view-send .page-shell,
#view-pro .page-shell,
#view-contacts .page-shell,
#view-library .tpl-page,
#view-signatures .tpl-page{
  flex:1;min-height:0;width:100%;display:flex;flex-direction:column;
}
#view-templates:not([hidden]){
  background:var(--card);border-radius:var(--radius);border:1px solid var(--border);
  box-shadow:var(--shadow);overflow:hidden;margin:0 0 8px;
  display:flex;flex-direction:column;flex:1;min-height:0;
}
.pill-group{
  display:inline-flex;gap:4px;padding:4px;background:#F3F4F6;
  border-radius:var(--radius-pill);border:1px solid var(--border);flex-wrap:wrap;
}
.mode-pills.pill-group,.mode-pills{
  display:inline-flex;gap:4px;padding:4px;background:#F3F4F6;
  border-radius:var(--radius-pill);border:1px solid var(--border);flex-wrap:wrap;
  margin-left:auto;align-items:center;flex-shrink:0;
}
.mode-pills .pill{
  padding:7px 13px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:550;
  color:var(--text2);background:transparent;border:0;cursor:pointer;
  transition:background .15s,color .15s,box-shadow .15s;
}
.mode-pills .pill:hover{color:var(--text)}
.mode-pills .pill.active{
  background:#E5E7EB;color:#1F2937;
  box-shadow:0 2px 10px rgba(75,85,99,.15);font-weight:600;
}

/* Page shell (Send / PRO / Contacts) */
.page-shell{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;min-height:0;
}
.page-shell > .page-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:16px 20px;margin:0;border-bottom:1px solid #F3F4F6;background:#FAFAFA;
  flex-wrap:wrap;flex-shrink:0;
}
.page-shell > .page-head h2{
  margin:0;font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--text);
}
.page-shell > .page-head .muted,
.page-shell > .page-head > div > .muted{
  font-size:12.5px;color:var(--text2);margin-top:4px;line-height:1.45;max-width:560px;
}
.page-body{
  flex:1;min-height:0;overflow-y:auto;padding:16px 18px 20px;
  display:flex;flex-direction:column;gap:14px;
}
.page-body > .card{flex-shrink:0;margin-bottom:0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:960px){.two-col{grid-template-columns:1fr}}
.section-label{
  font-size:13px;font-weight:600;margin-bottom:10px;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.saved-status{font-size:11.5px;color:var(--text2);min-height:1.2em}
.saved-status.ok{color:var(--ok);font-weight:600}
.saved-status.err{color:var(--err);font-weight:600}
.status-badge{
  display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;
  font-size:11px;font-weight:550;background:#F3F4F6;color:var(--text2);
}
.status-badge.on,.status-badge.running{background:#E5E7EB;color:#374151}
.row.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.row.inline .grow{flex:1;min-width:80px}

/* Active-settings strip */
.send-strip{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:14px 16px;
}
.send-strip-row{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;
}
@media (max-width:1100px){.send-strip-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.send-strip-row{grid-template-columns:1fr}}
.send-strip-cell{min-width:0}
.strip-label,.send-strip-cell .strip-label{
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--text3);font-weight:550;margin-bottom:4px;
}
.strip-value,.send-strip-cell .strip-value{
  font-size:13px;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.strip-value.strip-mono,.send-strip-cell .strip-value.strip-mono{
  font-family:var(--mono);font-size:11.5px;font-weight:500;color:#374151;
}
.strip-link,.send-strip-cell .strip-link{
  display:inline-block;margin-top:4px;font-size:11.5px;
  color:var(--accent-strong);font-weight:600;cursor:pointer;text-decoration:none;
}
.strip-link:hover{text-decoration:underline}

/* Compose 2-col */
.send-cols{
  display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start;
}
.send-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.send-aside{display:flex;flex-direction:column;gap:12px;min-width:0;position:sticky;top:0}
@media (max-width:1100px){
  .send-cols{grid-template-columns:1fr}
  .send-aside{position:static}
}
.send-aside .sa-card,.sa-card{
  border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--card);overflow:hidden;box-shadow:var(--shadow-sm);
}
.send-aside .sa-card .sa-head,.sa-card .sa-head{
  padding:10px 14px;border-bottom:1px solid #F3F4F6;
  display:flex;align-items:center;justify-content:space-between;gap:8px;background:#FAFAFA;
}
.send-aside .sa-card .sa-head h4,.sa-card .sa-head h4{
  margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--text-body);
}
.send-aside .sa-card .sa-sub,.sa-card .sa-sub{
  font-size:10.5px;color:var(--text3);font-weight:500;
}
.send-aside .sa-card .sa-body,.sa-card .sa-body{
  padding:12px 14px;font-size:12.5px;min-height:64px;
}
.send-aside .sa-empty,.sa-empty{
  font-style:normal;color:var(--text3);padding:18px 8px;font-size:12px;text-align:center;
}
.sa-recip-list{display:flex;flex-direction:column;gap:3px}
.sa-recip-row{display:flex;gap:6px;align-items:baseline;min-width:0;padding:5px 0;border-bottom:1px solid #F3F4F6}
.sa-recip-row .em{
  font-family:var(--mono);font-size:11px;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;
}
.sa-recip-row .nm{
  color:var(--text3);font-size:10px;flex-shrink:0;max-width:110px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sa-recip-meta{
  margin-top:8px;padding-top:6px;border-top:1px dashed var(--border);
  font-size:11px;color:var(--text2);display:flex;gap:8px;flex-wrap:wrap;
}
.sa-job{padding:8px 0;border-bottom:1px dashed #EEF0F3}
.sa-job:last-child{border-bottom:0}
.sa-job .sj-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sa-job .sj-title{
  font-size:12px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;
}
.sa-job .sj-status{
  font-size:10px;text-transform:uppercase;letter-spacing:.04em;
  padding:1px 6px;border-radius:999px;flex-shrink:0;
}
.sa-job .sj-status.running{background:#E5E7EB;color:#374151}
.sa-job .sj-status.paused{background:var(--warn-soft);color:var(--warn)}
.sa-job .sj-status.done{background:var(--info-soft);color:var(--info)}
.sa-job .sj-status.error,.sa-job .sj-status.stopped{background:var(--err-soft);color:var(--err)}
.sa-job .sj-sub{font-size:11px;color:var(--text2);margin-top:2px}
.sa-job .sj-bar{height:3px;background:#EEF0F3;border-radius:2px;margin-top:4px;overflow:hidden}
.sa-job .sj-bar > i{display:block;height:100%;background:#9CA3AF}
.sa-chips{display:flex;flex-wrap:wrap;gap:6px}
.sa-chip{
  font-family:var(--mono);font-size:11px;background:#F8FAFC;border:1px solid #E5E7EB;
  border-radius:8px;padding:4px 8px;cursor:pointer;color:var(--text);transition:all .12s;
}
.sa-chip:hover{background:#E5E7EB;color:#1F2937;border-color:#D1D5DB}
.sa-chip.copied{background:#F3F4F6;color:#374151;border-color:#D1D5DB}
.sa-chip-section{
  font-size:10px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--text3);font-weight:700;margin:8px 0 4px;width:100%;
}
.sa-chip-section:first-child{margin-top:0}

/* PRO account pool — full-width list rows (toggle · email · readiness) */
.pro-pool{
  display:flex;flex-direction:column;gap:6px;
}
.pro-pool .pool-row{
  display:flex;align-items:center;gap:12px;width:100%;
  min-height:42px;padding:8px 12px;box-sizing:border-box;
  border:1px solid var(--border);border-radius:12px;background:#FAFAFA;
  cursor:pointer;user-select:none;transition:border-color .12s,background .12s;
}
.pro-pool .pool-row:hover{border-color:#D1D5DB;background:#F3F4F6}
.pro-pool .pool-row.on{border-color:#D1D5DB;background:#F3F4F6}
.pro-pool .pool-row.disabled{
  opacity:.45;cursor:not-allowed;
}
.pro-pool .pool-row.disabled .toggle{cursor:not-allowed}
.pro-pool .pool-row > input[type="checkbox"]{
  position:absolute;opacity:0;width:0;height:0;pointer-events:none;margin:0;
}
.pro-pool .pool-row .toggle{flex-shrink:0}
.pro-pool .pool-email{
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:12.5px;font-weight:550;color:var(--text);
}
.pro-pool .pool-row .badge{flex-shrink:0;text-transform:capitalize}

/* ESP badges + filter */
.esp{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 7px;border-radius:999px;
  font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.02em;
  white-space:nowrap;border:1px solid transparent;
}
.esp::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.9}
.esp[data-esp="office365"]{background:#e5f0fb;color:#0a64bf;border-color:#c2dcf5}
.esp[data-esp="microsoft"]{background:#e7f1fc;color:#1769b6;border-color:#c7dff4}
.esp[data-esp="google_workspace"]{background:#e9f5ec;color:#0e7036;border-color:#cae6d2}
.esp[data-esp="google"]{background:#fdecec;color:#b3261e;border-color:#f5cfcf}
.esp[data-esp="yahoo"]{background:#f1e8fa;color:#5f259f;border-color:#dcc5f0}
.esp[data-esp="apple"]{background:#f0f0f3;color:#1d1d1f;border-color:#d8d8de}
.esp[data-esp="aol"]{background:#fff1e0;color:#b35e00;border-color:#f7d4a3}
.esp[data-esp="proton"]{background:#efeaff;color:#4b2bb1;border-color:#d4caf2}
.esp[data-esp="zoho"]{background:#fff5e0;color:#a55a00;border-color:#f3dba0}
.esp[data-esp="yandex"]{background:#fff3df;color:#8a5a00;border-color:#f0d9a3}
.esp[data-esp="sendgrid"]{background:#e1f0ff;color:#0654a0;border-color:#bdd7ee}
.esp[data-esp="mailgun"]{background:#ffe6e0;color:#a83a13;border-color:#f0c4b6}
.esp[data-esp="other"]{background:#F3F4F6;color:#4B5563;border-color:#E5E7EB}
.esp[data-esp="unknown"]{background:#F3F4F6;color:#9CA3AF;border-color:#E5E7EB}

.esp-filter{
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:12px 14px;margin:8px 0;background:#FAFAFA;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  box-shadow:var(--shadow-sm);
}
.esp-filter .esp-filter-label{
  font-size:12px;font-weight:600;color:var(--text);
  display:inline-flex;align-items:center;gap:8px;flex:1 1 auto;min-width:160px;
}
.esp-filter .esp-filter-label .summary{
  display:inline-flex;align-items:center;
  padding:3px 9px;border-radius:999px;
  background:#E5E7EB;color:#374151;
  font-size:11px;font-weight:600;
}
.esp-filter .esp-filter-actions{margin-left:auto;display:flex;gap:6px;flex-shrink:0}
.esp-filter .esp-filter-actions button{
  background:transparent;border:1px solid #E5E7EB;cursor:pointer;
  font-size:10.5px;padding:4px 10px;border-radius:999px;color:var(--text2);font-weight:600;
}
.esp-filter .esp-filter-actions button:hover{
  border-color:#9CA3AF;color:#374151;background:#F3F4F6;
}
.esp-filter .empty{
  flex:1 1 100%;font-size:11.5px;color:var(--text3);font-style:italic;padding:2px 0;
}
.esp-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px 4px 8px;border-radius:999px;cursor:pointer;
  background:#fff;border:1px solid #E5E7EB;
  font-size:11px;color:var(--text2);user-select:none;transition:all .12s;
}
.esp-chip input{display:none}
.esp-chip .count{font-size:10px;opacity:.7;font-weight:600}
.esp-chip:hover{border-color:#9CA3AF;color:var(--text)}
.esp-chip.checked{
  background:#E5E7EB;color:#374151;border-color:#D1D5DB;
}
.esp-chip.checked .count{opacity:1}

.recip-override{
  border:1px dashed #D1D5DB;border-radius:12px;padding:10px 12px;margin:8px 0;background:#FAFAFA;
}
.recip-override > summary{
  list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:12px;
}
.recip-override > summary::-webkit-details-marker{display:none}
.recip-override > summary::before{content:"▸ ";color:var(--text3)}
.recip-override[open] > summary::before{content:"▾ "}
.recip-override .ro-title{font-weight:600;color:var(--text)}
.recip-override .ro-hint{font-size:11px;color:var(--text3)}
.recip-override.has-recipients{
  border-style:solid;border-color:#D1D5DB;background:#F3F4F6;
}
.recip-override.has-recipients .ro-hint{color:#374151}

/* Template Builder */
.tpl-page-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px;border-bottom:1px solid #F3F4F6;background:#FAFAFA;flex-shrink:0;
}
.tpl-page-head h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--text)}
.tpl-page{
  display:flex;flex-direction:column;height:100%;min-height:0;
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
}
.tpl-page-body{
  display:grid;grid-template-columns:280px 1fr;flex:1;min-height:0;overflow:hidden;
}
@media (max-width:900px){
  .tpl-page-body{grid-template-columns:1fr}
  .tpl-page-body .tpl-list{max-height:220px}
}
.tb-layout{
  display:grid;grid-template-columns:minmax(0,40%) minmax(0,60%);
  flex:1;min-height:0;overflow:hidden;align-content:stretch;
  position:relative;
}
@media (max-width:900px){
  .tb-layout{grid-template-columns:1fr;overflow:auto}
  .tb-preview-pane{display:none}
}
.tb-left{
  overflow-y:auto;overflow-x:hidden;padding:14px 16px 40px;
  display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;
  /* ponytail: keep preview iframe from stealing hits over the config column */
  position:relative;z-index:2;isolation:isolate;
}
.tb-preview-pane{
  border-left:1px solid #EEF0F3;background:#F8FAFC;
  display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0;
  position:relative;z-index:0;
}
.tb-preview-pane .tb-preview-frame{
  width:100%;flex:1;border:none;background:#fff;display:block;min-height:280px;
  pointer-events:auto; /* confined to pane; left column stacks above */
}
.tb-preview-tabs{
  display:flex;gap:0;border-bottom:1px solid #EEF0F3;background:var(--card);flex-shrink:0;
}
.tb-preview-tab{
  padding:10px 18px;font-size:12.5px;font-weight:550;color:var(--text2);
  cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;
}
.tb-preview-tab:hover{color:var(--text)}
.tb-preview-tab.active{color:#374151;border-bottom-color:#6B7280;font-weight:600}
.tb-tile{
  background:#FAFBFC;border:1px solid #E8ECF1;border-radius:14px;
  display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;
}
.tb-tile-head{display:flex;align-items:center;gap:8px;padding:12px 14px 0;flex-shrink:0}
.tb-tile-toggle{cursor:pointer;user-select:none}
.tb-tile-toggle:hover{opacity:.85}
.tb-tile-chevron{font-size:9px;color:var(--text3);margin-left:4px;transition:transform .15s}
.tb-tile-toggle.open .tb-tile-chevron{transform:rotate(180deg)}
.tb-tile-icon{font-size:12px;flex-shrink:0;opacity:.55;color:var(--text2);line-height:1}
.tb-tile-icon-muted{opacity:.45;font-size:11px;color:var(--text3)}
.tb-tile-label{font-size:12.5px;font-weight:600;color:var(--text);flex:1}
.tb-tile-status{
  margin-left:auto;font-size:11px;color:var(--text2);font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%;
}
.tb-tile-hint{font-size:11px;color:var(--text2);line-height:1.4;padding:3px 14px 0}
.tb-tile-hint code{font-size:10px;background:#fff;padding:1px 4px;border-radius:4px}
.tb-tile-hint a{color:#374151}
.tb-tile-body{padding:8px 14px 12px;flex:1}
.tb-tile-sm .tb-tile-head{padding:10px 12px 0}
.tb-tile-sm .tb-tile-body{padding:6px 12px 10px}

/* Calm field tiles (Link URL / Gate Secret Key) — same family as Signature */
.tb-field-tile{
  padding:12px 14px 12px;gap:0;
  position:relative;z-index:1;pointer-events:auto;
}
.tb-field-tile .tb-tile-body,.tb-field-body{padding:0;pointer-events:auto}
.tb-field-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0;min-height:20px;pointer-events:none; /* label/chip are non-interactive chrome */
}
.tb-field-label{
  font-size:11.5px;font-weight:550;color:var(--text2);letter-spacing:.01em;margin:0;
  text-transform:none;display:block;
}
.tb-status-chip,.tb-field-tile .tb-tile-status{
  margin:0;max-width:55%;
  font-size:10.5px;font-weight:500;color:var(--text3);
  padding:2px 8px;border-radius:999px;background:#F1F5F9;border:1px solid #E2E8F0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tb-field-hint{
  font-size:11px;font-weight:400;color:var(--text3);line-height:1.4;
  margin:5px 0 8px;padding:0;pointer-events:none;
}
.tb-field-hint code{
  font-size:10px;background:#F8FAFC;padding:1px 4px;border-radius:4px;
  color:var(--text2);border:1px solid #E8ECF1;
}
.tb-field-inline{display:flex;align-items:center;gap:8px;pointer-events:auto;position:relative;z-index:2}
.tb-field-input{
  flex:1;min-width:0;width:auto;padding:7px 10px;border-radius:10px;
  border:1px solid #E2E8F0;background:#fff;font-size:12px;color:var(--text);
  font-family:var(--font);pointer-events:auto;position:relative;z-index:2;
}
.tb-field-input:focus{border-color:#9CA3AF;box-shadow:0 0 0 3px rgba(107,114,128,.15);background:#fff}
.tb-field-input:disabled{opacity:1;cursor:text} /* never look/feel dead if mis-set */
.tb-field-input-mono,.tb-field-input.tb-field-input-mono{
  font-family:var(--mono);font-size:11px;letter-spacing:.01em;padding:7px 9px;
}
.tb-save-btn.btn.sm{padding:6px 12px;font-size:11.5px;flex-shrink:0;pointer-events:auto;position:relative;z-index:2}
.tb-expand-area{margin-top:6px;padding-top:6px;border-top:1px solid #EEF0F3}
.tb-expand-hint{font-size:10.5px;color:var(--text2);line-height:1.35;margin-bottom:6px}
.tb-card-list{display:flex;flex-direction:column;gap:4px;margin-top:4px;max-height:180px;overflow-y:auto}
.tb-card{
  display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;cursor:pointer;
  border:1px solid #E5E7EB;background:#fff;font-size:12px;transition:border-color .15s,background .15s;
}
.tb-card:hover{background:#FAFAFA}
.tb-card.selected,.tb-card.active{
  border-color:#9CA3AF;background:#F3F4F6;
}
.tb-card .tb-card-radio{
  width:14px;height:14px;border-radius:50%;border:2px solid #9CA3AF;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.tb-card.selected .tb-card-radio,.tb-card.active .tb-card-radio{border-color:#6B7280}
.tb-card.selected .tb-card-radio::after,.tb-card.active .tb-card-radio::after{
  content:"";width:7px;height:7px;border-radius:50%;background:#6B7280;
}
.tb-card .tb-card-name{
  flex:1;font-size:12.5px;font-weight:550;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tb-card .tb-card-meta{font-size:10.5px;color:var(--text3)}
.strip-status{font-size:11px;color:var(--text2)}

.tpl-list{border-right:1px solid #EEF0F3;background:#FAFAFA;overflow-y:auto;min-height:0}
.tpl-list .item{
  padding:12px 14px;border-bottom:1px solid #EEF0F3;cursor:pointer;
  display:flex;flex-direction:column;gap:2px;
}
.tpl-list .item:hover{background:#fff}
.tpl-list .item.active{background:#F3F4F6;border-left:3px solid #6B7280;padding-left:11px}
.tpl-list .item .name{
  font-size:13px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tpl-list .item .meta{font-size:10.5px;color:var(--text3);display:flex;gap:6px;flex-wrap:wrap}
.tpl-list .item .active-badge{
  display:inline-block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;
  color:#92600A;border:1px solid #F1C25A;background:#FFF8E8;
  padding:1px 6px;border-radius:999px;font-weight:700;margin-left:6px;
}
.tpl-detail{display:flex;flex-direction:column;padding:16px 18px;overflow:auto;min-height:0}
.tpl-empty{margin:auto;max-width:380px;text-align:center;font-size:12.5px;color:var(--text2);line-height:1.55}
.tpl-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.tpl-detail-name{font-size:16px;font-weight:600;color:var(--text)}
.tpl-detail-sub{font-size:11px;color:var(--text3);margin-top:2px;font-style:italic}
.tpl-detail-meta{font-size:11px;color:var(--text2);margin-bottom:8px;display:flex;gap:12px;flex-wrap:wrap}
.tpl-detail-meta b{color:var(--text)}
.tpl-detail-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}
.tpl-warn{
  padding:8px 10px;margin-bottom:8px;border-radius:10px;
  background:#FFF7ED;color:#9A3412;border:1px solid #FDBA74;font-size:11px;
}
.tpl-preview-frame{
  flex:1;width:100%;min-height:320px;border:1px solid #E5E7EB;
  border-radius:12px;background:#fff;
}
.tpl-form{display:flex;flex-direction:column;gap:10px}
.tpl-preview-controls{display:flex;align-items:center;gap:12px;padding:6px 0 8px;flex-wrap:wrap}

/* Contacts */
.contacts-page-body{padding:0!important;flex-direction:row!important;gap:0!important;overflow:hidden}
.contacts-tabs{
  width:240px;flex-shrink:0;border-right:1px solid #EEF0F3;overflow-y:auto;
  padding:10px 8px;display:flex;flex-direction:column;gap:4px;background:#FAFAFA;
}
.contacts-tab{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 11px;border-radius:10px;font-size:13px;cursor:pointer;
  border:1px solid transparent;background:transparent;color:var(--text);text-align:left;
}
.contacts-tab:hover{background:var(--hover)}
.contacts-tab.active{background:#fff;border-color:#E5E7EB;font-weight:600;box-shadow:var(--shadow-sm)}
.contacts-tab .ct-name{
  flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.contacts-tab .ct-count{
  font-size:11px;color:var(--text2);background:#fff;border:1px solid #E5E7EB;
  padding:1px 7px;border-radius:999px;font-weight:600;
}
.contacts-tab.active-list-tab::after{content:"★";color:#D99000;font-size:11px}
.contacts-tabs .ct-section{
  font-size:10px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--text3);font-weight:700;padding:10px 10px 4px;
}
.contacts-pane{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.contacts-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-bottom:1px solid #EEF0F3;background:var(--card);flex-wrap:wrap;
}
.contacts-toolbar-left,.contacts-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.contacts-tab-name{font-size:14.5px;font-weight:600;color:var(--text)}
.active-pill{
  display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;
  color:#92600A;border:1px solid #F1C25A;background:#FFF8E8;
  padding:2px 8px;border-radius:999px;font-weight:700;
}
.selection-pill{
  display:inline-flex;align-items:center;font-size:11px;font-weight:600;
  background:#E5E7EB;color:#374151;border:1px solid #D1D5DB;
  padding:2px 8px;border-radius:999px;
}
.table-wrap{flex:1;overflow:auto;min-height:0}
.contacts-table{width:100%;border-collapse:collapse;font-size:12.5px}
.contacts-table th,.contacts-table td{
  padding:9px 12px;border-bottom:1px solid #F3F4F6;text-align:left;vertical-align:middle;
}
.contacts-table th{
  position:sticky;top:0;background:#FAFAFA;font-weight:700;font-size:10.5px;
  color:var(--text3);text-transform:uppercase;letter-spacing:.05em;z-index:1;
}
.contacts-table tbody tr:hover td{background:#FAFAFA}
.contacts-table .empty-state{text-align:center;padding:36px;color:var(--text3);font-size:12.5px}
.contacts-table .origin-pill{
  font-size:10px;color:var(--text2);background:#F3F4F6;border:1px solid #E5E7EB;
  padding:1px 6px;border-radius:6px;margin-right:4px;display:inline-block;
}
.contacts-table th.ct-check-col,.contacts-table td.ct-check-col{
  width:28px;padding:9px 4px 9px 12px;text-align:center;
}
.contacts-table th.ct-actions-col,.contacts-table td.ct-actions-col{
  width:120px;text-align:right;white-space:nowrap;
}
.contacts-table tr.row-selected{background:rgba(107,114,128,.08)}
.contacts-table .row-action{
  background:transparent;border:1px solid #E5E7EB;color:var(--text);
  padding:3px 9px;border-radius:999px;font-size:11px;cursor:pointer;margin-left:4px;font-weight:600;
}
.contacts-table .row-action:hover{background:#FAFAFA;border-color:#9CA3AF}
.contacts-table .row-action.danger:hover{background:var(--err-soft);border-color:var(--err);color:var(--err)}

/* 3rd-party import modal */
.tp-overlay{
  position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;
  background:rgba(15,23,42,.45);padding:20px;
}
.tp-overlay.open{display:flex}
.tp-modal{
  background:var(--card);border-radius:22px;border:1px solid var(--border);
  width:min(800px,92vw);max-height:88vh;display:flex;flex-direction:column;
  box-shadow:0 24px 60px rgba(15,23,42,.18);
}
.tp-modal-head{
  padding:16px 20px;border-bottom:1px solid #F3F4F6;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.tp-modal-head h3{margin:0;font-size:16px;font-weight:600}
.tp-modal-body{padding:16px 20px;overflow-y:auto;flex:1}
.tp-modal-foot{
  padding:12px 20px;border-top:1px solid #F3F4F6;
  display:flex;gap:8px;justify-content:flex-end;
}
.tp-upload-zone{
  border:2px dashed #D1D5DB;border-radius:16px;padding:32px;text-align:center;
  cursor:pointer;transition:border-color .15s,background .15s;background:#FAFAFA;margin-bottom:12px;
}
.tp-upload-zone:hover,.tp-upload-zone.drag-over{
  border-color:#9CA3AF;background:#F3F4F6;
}
.tp-upload-zone input{display:none}
.tp-upload-zone p{color:var(--text2);font-size:13px;margin:0}
.tp-columns{margin-top:16px}
.tp-col-row{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;
  padding:8px 0;border-bottom:1px solid #F3F4F6;
}
.tp-col-original{font-weight:550;font-size:13px}
.tp-col-arrow{color:var(--text3);font-size:16px}
.tp-col-status{font-size:11px;padding:2px 8px;border-radius:999px;display:inline-block;font-weight:600}
.tp-col-status.matched{background:#E5E7EB;color:#374151}
.tp-col-status.unmatched{background:var(--warn-soft);color:var(--warn)}
.tp-preview-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:12px}
.tp-preview-table th,.tp-preview-table td{padding:6px 8px;border:1px solid #E5E7EB;text-align:left}
.tp-preview-table th{background:#FAFAFA;font-weight:650}
.tp-col-select{padding:3px 6px;font-size:12px;border-radius:8px;border:1px solid #E5E7EB}
.tp-section-label{
  font-size:11px;font-weight:700;color:var(--text3);margin:12px 0 6px;
  text-transform:uppercase;letter-spacing:.04em;
}

/* Contact edit modal extras */
.modal.contact-edit-modal{width:min(480px,96vw)}
.ce-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.ce-row.two-col{flex-direction:row;gap:10px}
.ce-row.two-col > div{flex:1;display:flex;flex-direction:column;gap:4px}
.ce-row label{
  font-size:11px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.04em;
}
.ce-hint{font-size:11px;color:var(--text2);padding:6px 8px;background:#FAFAFA;border-radius:8px}
.ce-foot{
  display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;
  border-top:1px solid #F3F4F6;
}
.modal .head .x,.modal .x{
  width:32px;height:32px;border-radius:999px;background:#F3F4F6;
  display:grid;place-items:center;font-size:16px;color:var(--text2);
}
.modal .head .x:hover{background:#E5E7EB;color:var(--text)}

/* Typography consistency helpers — calmer weights */
.card .head h3,.card-head h3{font-size:14.5px;font-weight:600}
.page-head h1{font-size:22px;font-weight:600}
label.field,.field label,.field-label{font-size:11.5px;font-weight:550;color:var(--text2)}
.hint,.tiny{font-size:11px}
/* Add account modal */
.modal.add-account-modal{width:min(520px,96vw);max-height:90vh}
.modal .spacer,.modal-backdrop .spacer{flex:1}
#addAccountModal .body{overflow:auto;-webkit-overflow-scrolling:touch}
#addAccountModal .toggle-row{margin:2px 0}
@media (max-width:600px){
  .modal.add-account-modal{width:96vw;max-height:92vh;border-radius:18px}
}

/* ── Rules page ── */
#view-rules .card#cardRules{
  display:flex;flex-direction:column;min-height:0;padding:0;overflow:visible;
}
#view-rules #cardRules > .head{
  margin:0;padding:14px 16px;border-bottom:1px solid #F3F4F6;background:#FAFAFA;
}
#view-rules #cardRules > .body{
  padding:14px 16px 20px;overflow:visible;max-height:none;
}
#view-rules .rule-form{display:flex;flex-direction:column;gap:10px;padding-top:8px}
#view-rules .rule-section{
  border:1px solid #EEF0F3;border-radius:14px;padding:10px 12px;background:#FAFAFA;
}
#view-rules .rule-section-title{font-size:12.5px;font-weight:600;color:var(--text);list-style:none}
#view-rules .rule-section-title::-webkit-details-marker{display:none}
#view-rules .checkrow.toggle-row-block{background:transparent;border-bottom-color:#EEF0F3}

/* ── Proxies page ── */
#view-proxies .page-body{gap:12px;padding-bottom:28px}
#view-proxies .card .head{margin:0;padding:12px 14px;border-bottom:1px solid #F3F4F6;background:#FAFAFA}
#view-proxies .card .body{padding:12px 14px}
#view-proxies .proxy-input{gap:8px!important}

/* ── RetroBoB page ── */
#view-retrobob:not([hidden]){padding-bottom:28px}
#view-retrobob .page-shell.retro-shell{
  display:flex;flex-direction:column;overflow:visible;border:1px solid var(--border);
}
#view-retrobob .retro-stats{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;
  padding:12px 16px;flex-shrink:0;border-bottom:1px solid #F3F4F6;background:#FAFAFA;
}
@media (max-width:1100px){#view-retrobob .retro-stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){#view-retrobob .retro-stats{grid-template-columns:repeat(2,1fr)}}
#view-retrobob .retro-stats .stat{
  background:#fff;border:1px solid #EEF0F3;border-radius:14px;padding:10px 12px;
}
#view-retrobob .retro-stats .stat .label{font-size:10px}
#view-retrobob .retro-stats .stat .value{font-size:20px;margin-top:2px}
#view-retrobob .retro-body{
  display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1.4fr) minmax(220px,0.7fr);
  gap:0;min-height:0;
}
@media (max-width:1100px){
  #view-retrobob .retro-body{grid-template-columns:1fr}
  #view-retrobob .retro-left,#view-retrobob .retro-queue,#view-retrobob .retro-log{
    border-right:0!important;border-bottom:1px solid #EEF0F3;
  }
}
#view-retrobob .retro-left{
  padding:14px 14px 20px;border-right:1px solid #EEF0F3;background:#fff;
}
#view-retrobob .retro-tile{
  padding:12px;border:1px solid #EEF0F3;border-radius:14px;background:#FAFAFA;margin-top:10px;
}
#view-retrobob .retro-tile:first-child{margin-top:0}
#view-retrobob .retro-tile > strong{font-size:12.5px;font-weight:600}
#view-retrobob .retro-chip-box{display:flex;flex-wrap:wrap;gap:6px}
#view-retrobob .retro-queue,#view-retrobob .retro-log{
  display:flex;flex-direction:column;min-height:280px;background:#fff;
}
#view-retrobob .retro-queue{border-right:1px solid #EEF0F3}
#view-retrobob .retro-queue-head,#view-retrobob .retro-log-head{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:10px 12px;border-bottom:1px solid #F3F4F6;background:#FAFAFA;flex-shrink:0;
}
#view-retrobob .retro-queue-table-wrap{overflow:auto;min-height:200px}
#view-retrobob .retro-queue table{width:100%;border-collapse:collapse;font-size:11.5px}
#view-retrobob .retro-queue th{
  text-align:left;padding:8px 10px;font-size:10.5px;text-transform:uppercase;
  letter-spacing:.04em;color:var(--text3);background:#FAFAFA;border-bottom:1px solid #EEF0F3;
  position:sticky;top:0;
}
#view-retrobob .retro-queue td{padding:8px 10px;border-bottom:1px solid #F3F4F6;vertical-align:middle}
#view-retrobob .retro-log #retroActivityLog{
  flex:1;min-height:240px;max-height:none;background:#fff;border:0;border-radius:0;
  font-family:var(--font); /* match dashboard Activity — not mono */
}

/* Template Builder — full builder fills view; left tiles scroll, preview stays put */
#view-templates .tb-layout{
  flex:1;min-height:0;
}

/* Compose — send wizard */
.send-wizard{
  margin-bottom:12px;padding:12px 14px;border-radius:18px;
  border:1px solid #E5E7EB;background:linear-gradient(180deg,#F9FAFB 0%,#fff 70%);
}
.send-wizard.dismissed{display:none}
.send-wizard-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.send-wizard-steps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.wiz-step{
  padding:6px 10px;border-radius:999px;font-size:11.5px;font-weight:550;
  background:#F3F4F6;color:var(--text2);border:1px solid transparent;
}
.wiz-step.active{background:#E5E7EB;color:#1F2937}
.wiz-step.done{background:#F3F4F6;color:#374151}
.wiz-step.err{background:var(--err-soft);color:var(--err)}
.send-wizard-panel{
  font-size:12.5px;line-height:1.45;color:var(--text);padding:10px 12px;
  border-radius:12px;background:#fff;border:1px solid #F3F4F6;min-height:52px;
}
.send-wizard-panel .wiz-warn{
  margin-bottom:8px;padding:8px 10px;border-radius:10px;
  background:var(--warn-soft);color:var(--warn);font-size:12px;
}
.send-wizard-panel .wiz-send-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.send-wizard-nav{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
[data-wiz-section].wiz-highlight{
  outline:2px solid rgba(107,114,128,.35);outline-offset:3px;border-radius:16px;
  transition:outline .15s;
}
.send-wizard[hidden]{display:none!important}

/* ── Walkthrough Tour ── */
.tour-overlay{position:fixed;inset:0;z-index:99998;background:rgba(10,15,20,.55);transition:opacity .2s}
.tour-highlight{position:absolute;z-index:99999;border-radius:8px;box-shadow:0 0 0 4000px rgba(10,15,20,.55),0 0 0 3px var(--accent,#6366f1),0 0 20px rgba(99,102,241,.3);pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s}
.tour-tooltip{position:absolute;z-index:100000;background:var(--surface,#1e1e2e);border:1px solid var(--border,#333);border-radius:10px;padding:18px 20px 14px;width:340px;max-width:90vw;box-shadow:0 12px 40px rgba(0,0,0,.25);animation:tourFadeIn .2s ease-out}
.tour-tooltip-title{font-size:14px;font-weight:700;color:var(--text,#e5e5e5);margin:0 0 6px}
.tour-tooltip-body{font-size:12.5px;line-height:1.55;color:var(--text-muted,#999);margin:0 0 14px}
.tour-tooltip-footer{display:flex;align-items:center;gap:8px}
.tour-tooltip-footer .tour-step-count{font-size:11px;color:var(--text-muted,#999);margin-right:auto}
.tour-tooltip-footer button{padding:5px 14px;font-size:11px;font-weight:600;border-radius:5px;border:1px solid var(--border,#333);background:var(--bg,#111);color:var(--text,#e5e5e5);cursor:pointer;transition:background .1s}
.tour-tooltip-footer button:hover{background:var(--border,#333)}
.tour-tooltip-footer .tour-btn-next{background:var(--accent,#6366f1);color:#fff;border-color:var(--accent,#6366f1)}
.tour-tooltip-footer .tour-btn-next:hover{opacity:.9}
.tour-tooltip-cancel{position:absolute;top:8px;right:10px;background:none;border:none;font-size:16px;color:var(--text-muted,#999);cursor:pointer;padding:2px 6px;line-height:1}
.tour-tooltip-cancel:hover{color:var(--text,#e5e5e5)}
@keyframes tourFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
