/* ============================================================
   AGENT CRM — DESIGN SYSTEM
   This is the single source of truth for visual style.
   Every screen uses these tokens and classes. Codex: extend
   this file, do not hardcode colors/spacing in components.
   Locked palette: trimmed navy + slate + white. Color is used
   ONLY where it carries meaning (status, overdue, positive delta).
   ============================================================ */

:root{
  /* Surfaces */
  --bg:#eef1f6;
  --bg-grad-1:#f1f4f9;
  --bg-grad-2:#e7ebf3;
  --panel:#ffffff;

  /* Ink / text */
  --ink:#0f1e34;
  --ink-2:#3a4a63;
  --ink-soft:#6b7a92;
  --ink-faint:#9aa6ba;

  /* Lines */
  --line:#e4e9f1;
  --line-soft:#eef1f6;

  /* Accent (brand blue) */
  --accent:#b3122b;
  --accent-2:#d6273f;
  --accent-deep:#8a0d21;
  --accent-wash:#fbe9ec;

  /* Sidebar */
  --sidebar-1:#1a0406;
  --sidebar-2:#2a0a10;

  /* Status — the only semantic colors used in the UI */
  --hot:#e0483d;     --hot-bg:#fdeceb;
  --warm:#d68a1e;    --warm-bg:#fcf2df;
  --cold:#5685b3;    --cold-bg:#eaf1f8;
  --green:#16a571;   --green-bg:#e4f6ef;
  --nurture:var(--green); --nurture-bg:var(--green-bg);

  /* Shadows */
  --sh-sm:0 1px 2px rgba(15,30,52,.06), 0 1px 3px rgba(15,30,52,.04);
  --sh-md:0 2px 4px rgba(15,30,52,.04), 0 6px 16px rgba(15,30,52,.07);
  --sh-lg:0 4px 8px rgba(15,30,52,.05), 0 16px 40px rgba(15,30,52,.10);

  /* Radii */
  --r-sm:8px; --r-md:12px; --r-lg:16px;

  /* Type */
  --font-ui:'Inter',system-ui,-apple-system,sans-serif;
  --font-display:'Fraunces',Georgia,serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html,body,#root,#app{height:100%}
body{
  font-family:var(--font-ui);
  background:linear-gradient(135deg,var(--bg-grad-1),var(--bg-grad-2));
  color:var(--ink);
  font-size:13.5px;line-height:1.5;letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased;
}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
input,select,textarea{font-family:inherit}

/* ---------- App shell ---------- */
.app{display:flex;min-height:100vh;min-width:1100px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.content{padding:26px 30px 40px}

/* ---------- Sidebar ---------- */
.sidebar{
  width:248px;flex-shrink:0;position:sticky;top:0;height:100vh;height:100dvh;
  background:linear-gradient(180deg,var(--sidebar-1),var(--sidebar-2));
  display:flex;flex-direction:column;color:#aeb9cc;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.04)
}
.brand{display:flex;align-items:center;gap:11px;padding:13px 22px 10px}
.brand-logo{display:block;width:290px;max-width:100%;height:auto}
.sidebar-logo{width:164px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16))}
.brand .mark{
  width:34px;height:34px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(145deg,var(--accent-2),var(--accent-deep));
  box-shadow:0 4px 12px rgba(179,18,43,.4),inset 0 1px 0 rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:600;color:#fff;font-size:1.05rem
}
.brand .bn{font-weight:600;color:#fff;font-size:1rem}
.brand .bn small{display:block;font-weight:500;color:#6f7e96;font-size:.68rem;letter-spacing:.04em;margin-top:1px}

.nav{padding:4px 14px;flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin}
.nav-label{font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:#5c6b86;padding:10px 12px 4px}
.nav a{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:6px 12px;border-radius:9px;color:#aeb9cc;
  font-size:.875rem;font-weight:500;margin-bottom:1px;transition:all .15s ease;cursor:pointer
}
.nav a svg{width:18px;height:18px;flex-shrink:0;opacity:.85;stroke-width:1.8}
.nav a:hover{background:rgba(255,255,255,.05);color:#e6ebf3}
.nav a.active{background:linear-gradient(90deg,rgba(179,18,43,.22),rgba(179,18,43,.08));color:#fff;font-weight:600}
.nav a.active svg{opacity:1;color:#7fb0ff}
.nav a.active::before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent-2);box-shadow:0 0 12px rgba(214,39,63,.7)}
.nav a .count{margin-left:auto;font-size:.72rem;font-weight:600;background:rgba(255,255,255,.08);color:#c2cdde;padding:1px 8px;border-radius:10px}
.nav a.active .count{background:rgba(127,176,255,.2);color:#cfe0ff}
.nav a.locked{color:#65738c}
.nav a.locked svg{opacity:.5}
.nav a.locked .lock{margin-left:auto;font-size:.66rem;font-weight:600;background:rgba(255,255,255,.06);color:#8696b0;padding:2px 8px;border-radius:10px;display:flex;align-items:center;gap:4px}
.sidebar-tools{padding:6px 14px 8px;flex-shrink:0}
.sidebar-tools a{position:relative;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:9px;color:#aeb9cc;font-size:.875rem;font-weight:500;text-decoration:none}
.sidebar-tools a svg{width:18px;height:18px;opacity:.85}
.sidebar-tools a:hover{background:rgba(255,255,255,.05);color:#e6ebf3}
.sidebar-tools a.active{background:linear-gradient(90deg,rgba(179,18,43,.22),rgba(179,18,43,.08));color:#fff;font-weight:600}

.side-foot{padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}
.agent{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.03);transition:background .15s;cursor:pointer}
.agent:hover{background:rgba(255,255,255,.06)}
.agent .av{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:linear-gradient(145deg,#d6273f,#8a0d21);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem;box-shadow:0 2px 8px rgba(179,18,43,.4),inset 0 1px 0 rgba(255,255,255,.25)}
.agent .nm{font-size:.82rem;color:#fff;font-weight:600}
.agent .ro{font-size:.7rem;color:#7585a0;margin-top:1px}
.agent .chev{margin-left:auto;color:#6b7a92}
.sign-out{margin-left:auto;border:none;background:rgba(255,255,255,.06);color:#aeb9cc;border-radius:8px;padding:6px 8px;font-size:.68rem;font-weight:600;cursor:pointer}
.sign-out:hover{background:rgba(255,255,255,.1);color:#fff}

/* ---------- Topbar ---------- */
.topbar{
  background:rgba(255,255,255,.8);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);padding:18px 30px;
  display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20
}
.crumb{font-size:.74rem;color:var(--ink-faint);font-weight:500;margin-bottom:3px}
.crumb b{color:var(--ink-soft);font-weight:600}
.topbar h1{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1}
.top-actions{display:flex;gap:10px;align-items:center}

.searchbox{position:relative;display:flex;align-items:center}
.searchbox svg{position:absolute;left:13px;width:16px;height:16px;color:var(--ink-faint);stroke-width:1.9}
.searchbox input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px 10px 38px;font-size:.83rem;font-family:inherit;color:var(--ink);min-width:250px;box-shadow:var(--sh-sm);transition:all .15s;outline:none}
.searchbox input::placeholder{color:var(--ink-faint)}
.searchbox input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}

/* ---------- Forms / modal ---------- */
.modal-backdrop{position:fixed;inset:0;z-index:120;background:rgba(15,30,52,.32);display:flex;align-items:center;justify-content:center;padding:32px}
.modal-backdrop[hidden]{display:none}
.modal-card{width:760px;max-height:calc(100vh - 64px);overflow:auto;box-shadow:var(--sh-lg)}
.small-modal{width:560px}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,var(--sidebar-1),var(--sidebar-2));color:#fff}
.modal-head .crumb{color:#8fa0bb}
.modal-head .crumb b{color:#c8d3e4}
.modal-head h2{font-family:var(--font-display);font-size:1.6rem;font-weight:600;letter-spacing:-.025em;line-height:1.1;color:#fff}
.modal-head .icon-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#c8d3e4;box-shadow:none}
.modal-head .icon-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.lead-form{display:grid;gap:0;padding:0 26px 24px}
.form-section{display:grid;gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}
.form-section:last-of-type{border-bottom:none}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.span-2{grid-column:span 2}
.form-grid > div:empty{min-height:1px}
.form-section-title{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.form-section-heading{font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--accent-deep);letter-spacing:-.015em;line-height:1.2;padding-bottom:2px}
.lead-form label span{display:block;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:7px}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:.86rem;color:var(--ink);box-shadow:var(--sh-sm);outline:none;transition:all .15s}
.lead-form textarea{resize:vertical;min-height:84px}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash),var(--sh-sm)}
.lead-form input::placeholder,.lead-form textarea::placeholder{color:var(--ink-faint)}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.form-error{font-size:.8rem;color:var(--hot);font-weight:600}
.form-success{font-size:.8rem;color:var(--green);font-weight:600}
.compact-select{height:34px;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font:inherit;font-size:.83rem;padding:0 10px;box-shadow:var(--sh-sm);outline:none}
.setup-alert{margin-bottom:18px;color:var(--ink-2)}
.family-section{display:grid;gap:10px}
.family-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.family-list{display:grid;gap:10px}
.family-member{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);padding:14px;display:grid;gap:12px}
.family-member > .pill-btn{justify-self:end}

/* ---------- Lead detail modal ---------- */
.detail-modal-backdrop{position:fixed;inset:0;z-index:110;background:rgba(15,30,52,.38);display:flex;align-items:center;justify-content:center;padding:18px}
.detail-modal-backdrop[hidden]{display:none}
.detail-modal{width:min(1480px,calc(100vw - 36px));height:calc(100vh - 36px);overflow:hidden;display:flex;flex-direction:column;background:var(--panel);box-shadow:var(--sh-lg)}
.detail-modal [data-lead-detail-content],.detail-modal [data-agent-detail-content],.detail-modal [data-partner-detail-content]{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.detail-modal-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 26px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#f8fafc);flex:0 0 auto}
.detail-modal-head h2{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin-top:4px}
.detail-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.detail-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.detail-head-actions .btn{padding:10px 13px}
.detail-subline{font-size:.84rem;color:var(--ink-soft);margin-top:6px}
.detail-modal-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;padding:20px;overflow-y:auto;min-height:0;background:var(--bg);flex:1 1 auto}
.detail-main,.detail-side{display:grid;gap:16px;align-content:start}
.detail-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px}
.detail-hero h3{font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;margin-top:14px}
.detail-hero p{color:var(--ink-soft);font-size:.9rem;margin-top:4px}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.detail-section{overflow:hidden}
.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.detail-metrics div{padding:20px;border-right:1px solid var(--line);display:grid;gap:5px}
.detail-metrics div:last-child{border-right:none}
.detail-metrics span{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);background:var(--line-soft)}
.detail-metrics svg{width:17px;height:17px}
.detail-metrics b{font-size:1.45rem;color:var(--ink)}
.detail-metrics small{font-size:.76rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.detail-metrics button{margin-top:6px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.76rem;font-weight:600;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.detail-metrics button:hover{border-color:#d2dae6;color:var(--ink)}
.detail-notes{color:var(--ink-2);font-size:.9rem;line-height:1.55}
.detail-notes-list{display:grid;gap:10px;max-height:180px;overflow:auto}
.note-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.note-item span{display:block;font-size:.72rem;color:var(--ink-faint);font-weight:600;margin-bottom:5px}
.note-item p{font-size:.86rem;color:var(--ink-2);line-height:1.45}
.detail-timeline{max-height:230px;overflow:auto;padding-right:4px}
.property-list{display:grid;gap:10px}
.property-item{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;box-shadow:var(--sh-sm)}
.property-item b{display:block;font-size:.84rem;color:var(--ink);line-height:1.35}
.property-item span{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:4px}
.followup-list{display:grid;gap:6px}
.followup-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 12px}
.followup-item b{display:inline;font-size:.85rem;font-weight:600;color:var(--ink)}
.followup-item span{display:inline;font-size:.8rem;color:var(--ink-soft);margin-left:8px}
.followup-item.overdue{border-color:rgba(220,38,38,.22);background:var(--hot-bg)}
.followup-item.upcoming{border-color:rgba(179,18,43,.18);background:var(--accent-wash)}
/* Follow-up / task rows: Today's-Focus row (.field/.cb/.next) wrapped in a box; red when overdue. */
.fu-navlabel:hover{color:var(--accent)}
.followup-list{display:grid;gap:8px}
.fu-row{border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 12px}
.fu-row.overdue{border-color:rgba(220,38,38,.4);background:var(--hot-bg)}
.fu-row.overdue .cb{border-color:rgba(220,38,38,.5)}
.feature-list{display:grid;gap:12px}
.feature-item{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:16px}
.feature-item.dragging{opacity:.45}
.feature-item.drop-before{border-color:var(--accent);box-shadow:0 -3px 0 var(--accent),var(--sh-sm)}
.feature-item.drop-after{border-color:var(--accent);box-shadow:0 3px 0 var(--accent),var(--sh-sm)}
.feature-item.drop-inside{border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 3px var(--accent-wash)}
.feature-item.nested{position:relative}
.feature-item.nested::before{content:"";position:absolute;left:-16px;top:-1px;bottom:-1px;width:2px;background:var(--line);border-radius:999px}
.feature-title{font-weight:700;color:var(--ink);font-size:.95rem}
.feature-item p{margin-top:6px;color:var(--ink-2);font-size:.88rem;line-height:1.5}
.feature-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.drag-handle{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;cursor:grab;box-shadow:var(--sh-sm)}
.drag-handle:active{cursor:grabbing}
.drag-handle svg{width:14px;height:14px}
.feature-actions .pill-btn{padding:7px 10px}
.feature-move{display:flex;gap:4px}
.feature-move button{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--sh-sm)}
.feature-move button:disabled{opacity:.35;cursor:not-allowed}
.feature-move svg{width:13px;height:13px}
.email-settings-stack{display:grid;gap:14px}
.settings-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.settings-subnav{position:sticky;top:88px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--sh-sm);padding:10px;display:grid;gap:4px}
.settings-subnav-title{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.09em;font-weight:800;padding:8px 10px 10px}
.settings-subnav a{display:flex;align-items:center;gap:9px;border-radius:10px;padding:10px 11px;color:var(--ink-2);font-size:.84rem;font-weight:700}
.settings-subnav a svg{width:16px;height:16px;color:var(--ink-soft);flex-shrink:0}
.settings-subnav a span{min-width:0;flex:1}
.settings-subnav a small{font-size:.66rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}
.settings-subnav a:hover{background:var(--accent-wash);color:var(--ink)}
.settings-subnav a.active{background:var(--ink);color:#fff}
.settings-subnav a.active svg,.settings-subnav a.active small{color:#fff}
.settings-content{min-width:0}
.settings-stack{display:grid;gap:18px}
.settings-toggle-list{display:grid;gap:10px}
.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line-soft);border-radius:12px;padding:13px 14px;background:#fff}
/* iOS-style toggle switch */
.tgl{position:relative;display:inline-block;width:40px;height:22px;vertical-align:middle}
.tgl input{opacity:0;width:0;height:0;position:absolute;margin:0}
.tgl .sl{position:absolute;inset:0;background:#cbd5e1;border-radius:999px;transition:.18s;cursor:pointer}
.tgl .sl::before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.tgl input:checked+.sl{background:var(--accent,#b3122b)}
.tgl input:checked+.sl::before{transform:translateX(18px)}
/* notifications table */
.notif-table td,.notif-table th{vertical-align:middle}
.notif-table .notif-ch{width:96px;text-align:center}
.notif-table .notif-sub{font-size:.78rem;color:var(--ink-soft);margin-top:2px;font-weight:400}
.notif-table tr.notif-group td{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);background:var(--line-soft)}
/* usage & overage panel */
.overage-list{display:flex;flex-direction:column;gap:16px}
.overage-row{border:1px solid var(--line-soft);border-radius:12px;padding:14px 15px;background:#fff}
.overage-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.overage-bar{height:8px;border-radius:999px;background:#eef2f8;overflow:hidden;margin:10px 0 6px}
.overage-bar>span{display:block;height:100%;border-radius:999px;transition:width .25s}
.overage-meta{font-size:.8rem}
.overage-warn{margin-top:8px;font-size:.84rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:8px 11px}
.overage-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.overage-toggle{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600}
.overage-cap{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600}
.overage-cap-input{display:inline-flex;align-items:center;gap:3px;font-weight:400;color:var(--ink-soft)}
.overage-cap-input input{width:90px;padding:6px 8px;border:1px solid var(--line-soft);border-radius:8px;font:inherit}
.overage-cap-input input:disabled{background:#f3f5f9;color:#9aa6b8}
.btn-sm{padding:4px 11px;font-size:.8rem}
.table-scroll{overflow-x:auto}
.settings-toggle b{display:block;color:var(--ink);font-size:.9rem}
.settings-toggle em{display:block;color:var(--ink-soft);font-style:normal;font-size:.78rem;margin-top:3px;line-height:1.4}
.settings-toggle input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}
.email-provider-card{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);padding:16px;box-shadow:var(--sh-sm)}
.email-provider-card h3{font-family:var(--font-display);font-size:1.12rem;font-weight:600;letter-spacing:-.015em}
.email-provider-card p{margin-top:6px;color:var(--ink-2);font-size:.88rem;line-height:1.5}
.email-connected-line{margin-top:12px;font-size:.82rem;color:var(--ink-2)}
.email-connected-line span{display:block;color:var(--ink-faint);font-size:.74rem;margin-top:2px}
.email-provider-actions{display:flex;justify-content:flex-end}
.email-thread-panel{display:grid;gap:16px}
.email-thread-list{display:grid;gap:10px;padding:16px 0 0;border-top:1px solid var(--line);max-height:340px;overflow-y:auto}
.email-message{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;box-shadow:var(--sh-sm)}
.email-message.outbound{background:var(--accent-wash);border-color:rgba(179,18,43,.18)}
.email-message-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;width:100%;background:none;border:0;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.email-message-head-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.email-message-head b{font-size:.88rem;color:var(--ink)}
.email-message-head span{font-size:.72rem;color:var(--ink-faint)}
.email-message-chevron{flex:none;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1rem;font-weight:700;line-height:1}
.email-message-chevron::before{content:"\2212"} /* minus = expanded */
.email-message.collapsed .email-message-chevron::before{content:"+"}
.email-message.collapsed .email-message-chevron{background:var(--accent);border-color:var(--accent);color:#fff}
.email-message.collapsed .email-message-collapsible{display:none}
.email-message-meta{font-size:.74rem;color:var(--ink-soft);font-weight:600;margin-top:4px}
.email-message-body{font-size:.86rem;color:var(--ink-2);line-height:1.5;margin-top:8px}
.email-message-actions{display:flex;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.email-reply-slot{margin-top:10px}
.email-reply-form{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px;box-shadow:var(--sh-sm)}
.email-reply-title{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.email-compose{display:grid;gap:12px}
.email-compose label span{display:block;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:7px}
.email-compose input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:.86rem;color:var(--ink);box-shadow:var(--sh-sm);outline:none;transition:all .15s}
.email-compose input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash),var(--sh-sm)}
.email-editor-shell{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--sh-sm);overflow:hidden}
.email-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fb)}
.email-toolbar button,.email-toolbar select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.78rem;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.email-image-upload{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.78rem;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.email-toolbar button:hover,.email-toolbar select:hover,.email-image-upload:hover{border-color:#d2dae6;color:var(--ink)}
.email-editor{min-height:160px;padding:13px 14px;font-size:.9rem;color:var(--ink);line-height:1.55;outline:none}
.signature-editor{min-height:190px}
.email-editor img{max-width:100%;height:auto}
.email-editor:empty::before{content:"Write your email...";color:var(--ink-faint)}
.email-toolbar button svg{width:15px;height:15px;display:block}
.email-toolbar button[data-email-command]{display:inline-flex;align-items:center;justify-content:center;min-width:30px}
.email-tb-div{width:1px;height:20px;background:var(--line);margin:0 2px;flex:0 0 auto}
.email-tb-spacer{flex:1 1 auto}
.email-editor h1{font-size:1.55rem;font-weight:700;line-height:1.2;margin:.45em 0}
.email-editor h2{font-size:1.3rem;font-weight:700;line-height:1.25;margin:.45em 0}
.email-editor h3{font-size:1.1rem;font-weight:600;line-height:1.3;margin:.45em 0}
.email-editor blockquote{border-left:3px solid var(--line);margin:.5em 0;padding:.2em 0 .2em 12px;color:var(--ink-soft)}
.email-editor ul,.email-editor ol{padding-left:22px;margin:.4em 0}
.email-editor a{color:var(--accent)}
.email-inbox-shell{display:grid;grid-template-columns:210px minmax(320px,.9fr) minmax(0,1.35fr);min-height:calc(100vh - 170px);overflow:hidden}
.email-folder-rail{border-right:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fb);padding:14px;display:grid;align-content:start;gap:6px}
.email-folder{display:flex;align-items:center;gap:9px;border:none;background:none;width:100%;text-align:left;border-radius:10px;padding:10px 11px;font:inherit;font-size:.84rem;font-weight:600;color:var(--ink-2);cursor:pointer}
.email-folder:hover{background:var(--line-soft)}
.email-folder svg{width:16px;height:16px;color:var(--ink-soft)}
.email-folder.active{background:var(--ink);color:#fff}
.email-folder.active:hover{background:var(--ink)}
.email-folder.active svg{color:#fff}
.email-list-panel{border-right:1px solid var(--line);min-width:0;background:var(--panel)}
.email-list-toolbar{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--line);background:#fbfcfe}
.inbox-list{display:grid;align-content:start;max-height:calc(100vh - 225px);overflow:auto}
/* Two children — the sender/subject block and the date — so two columns.
   It was declaring three (24px for an avatar that is not in the markup), which
   put the whole sender and subject into a 24px track and gave the date the
   1fr. Every row read "A… N…". */
.inbox-row{width:100%;border:0;border-bottom:1px solid var(--line-soft);background:var(--panel);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:baseline;text-align:left;padding:13px 14px;cursor:pointer;color:var(--ink-2)}
.inbox-row:hover,.inbox-row.active{background:var(--accent-wash)}
.inbox-row.unread .inbox-from,.inbox-row.unread .inbox-subject{font-weight:800;color:var(--ink)}
/* Flag = Gmail star. Bigger flag icon that turns red; the whole row highlights light red. */
.inbox-row-flag{display:flex;align-items:flex-start;justify-content:center;cursor:pointer;color:var(--ink-faint);padding-top:2px}
.inbox-row-flag svg{width:19px;height:19px;fill:none;stroke-width:1.9}
.inbox-row-flag:hover{color:var(--hot)}
.inbox-row-flag.on svg{fill:var(--hot);stroke:var(--hot)}
.inbox-row.flagged{background:#fdeeec}
.inbox-row.flagged:hover,.inbox-row.flagged.active{background:#fce0dc}
.inbox-row-main{min-width:0;display:grid;gap:2px}
.inbox-from,.inbox-subject,.inbox-snippet{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inbox-from{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-subject{font-size:.84rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-snippet{font-size:.77rem;color:var(--ink-soft)}
.inbox-date{font-size:.72rem;color:var(--ink-faint);white-space:nowrap}
.email-reading-panel{min-width:0;padding:20px;overflow:auto;background:var(--panel)}
.inbox-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:16px}
.inbox-detail-head h3{font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em}
.inbox-detail-head p{color:var(--ink-soft);font-size:.84rem;margin-top:5px}
.inbox-detail-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.inbox-detail-actions .pill-btn{padding:5px 9px;font-size:.74rem;white-space:nowrap;box-shadow:none}
.inbox-detail-actions .pill-btn svg{width:13px;height:13px}
.inbox-meta{display:grid;gap:5px;border-bottom:1px solid var(--line-soft);padding:14px 0;color:var(--ink-soft);font-size:.82rem}
.inbox-meta-to{display:flex;gap:6px;min-width:0}
.inbox-meta-to span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inbox-body{padding-top:18px;color:var(--ink-2);font-size:.92rem;line-height:1.6;white-space:normal}
/* Rich HTML email rendered in a sandboxed, auto-sized frame (no scripts run) */
/* Height is set by fitBody() once the message has rendered; the min is only
   what it looks like for the instant before that. The reading pane scrolls,
   never the frame. */
.inbox-body-frame{width:100%;border:0;background:#fff;min-height:160px;margin-top:14px;display:block;overflow:hidden}
.inbox-detail-flag{display:inline-flex;vertical-align:-3px}
.inbox-detail-flag svg{width:18px;height:18px;fill:var(--hot);stroke:var(--hot)}
.inbox-detail-from .inbox-detail-addr{color:var(--ink-faint);font-weight:400}
.inbox-detail-actions .pill-btn.flag-on{color:var(--hot);border-color:var(--hot);background:#fdeeec}
.inbox-detail-actions .pill-btn.flag-on svg{fill:var(--hot);stroke:var(--hot)}
.calendar-shell{display:grid;gap:16px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px}
.calendar-toolbar h2{font-family:var(--font-display);font-size:1.65rem;font-weight:600;letter-spacing:-.025em;color:var(--ink)}
.calendar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.calendar-month{overflow:hidden}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fb)}
.calendar-weekdays span{padding:12px 14px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:800}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.calendar-day{min-height:132px;border:0;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--panel);text-align:left;padding:11px;display:grid;align-content:start;gap:8px;cursor:pointer;color:var(--ink);transition:background .15s}
.calendar-day:nth-child(7n){border-right:none}
.calendar-day:hover{background:var(--accent-wash)}
.calendar-day.muted{background:#fbfcfe;color:var(--ink-faint)}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--accent)}
.calendar-day-number{font-size:.82rem;font-weight:800;color:inherit}
.calendar-day-events{display:grid;gap:5px;min-width:0}
.calendar-event{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;background:#fff;padding:7px 8px;box-shadow:var(--sh-sm);min-width:0}
.calendar-event.appointment{border-left-color:var(--accent)}
.calendar-event.event{border-left-color:var(--warm)}
.calendar-event.task{border-left-color:var(--ink-soft)}
.calendar-event.overdue{border-left-color:var(--hot);background:var(--hot-bg)}
.calendar-event-time{font-size:.68rem;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.calendar-event-title{font-size:.78rem;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event-meta{grid-column:1 / -1;font-size:.74rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event-source{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;margin-left:5px;border-radius:4px;font-size:.6rem;font-weight:800;background:var(--line-soft);color:var(--ink-soft);vertical-align:middle}
.calendar-event-source.error{background:var(--hot-bg);color:var(--hot)}
.calendar-sync-bar{margin-bottom:14px;display:flex;align-items:center;gap:8px;font-size:.82rem}
.calendar-sync-bar svg{width:16px;height:16px}
.calendar-sync-bar a{color:var(--accent);font-weight:700}
.btn.ghost.danger{color:var(--hot);border-color:var(--hot-bg)}
.btn.ghost.danger:hover{background:var(--hot-bg)}
.calendar-more{font-size:.72rem;color:var(--ink-soft);font-weight:700}
.calendar-agenda{display:grid}
.calendar-agenda-day{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px 18px;border-bottom:1px solid var(--line)}
.calendar-agenda-day:last-child{border-bottom:none}
.calendar-agenda-date b{display:block;font-family:var(--font-display);font-size:1.1rem;color:var(--ink)}
.calendar-agenda-date span{display:block;color:var(--ink-soft);font-size:.82rem;margin-top:3px}
.calendar-agenda-events{display:grid;gap:8px;align-content:start}
.empty-state.compact{padding:10px 0;text-align:left;background:transparent;border:0}
.detail-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--line);background:#fff;flex:0 0 auto}
.detail-modal-foot span{font-size:.8rem;color:var(--ink-soft);font-weight:600}
.detail-modal-foot .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ---------- Login ---------- */
.login-page{min-height:100vh;min-width:1100px;display:flex;align-items:center;justify-content:center;padding:40px;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--bg),var(--panel-soft))}
.login-watermark{position:absolute;left:50%;top:50%;z-index:0;width:170vw;height:150vh;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:10px 22px;transform:translate(-50%,-50%) rotate(-18deg);pointer-events:none;user-select:none;overflow:hidden}
.login-watermark span{position:relative;color:var(--accent-deep);opacity:.06;line-height:.86;font-weight:700;letter-spacing:-.055em;white-space:nowrap;transform-origin:center}
.login-watermark .w1{font-family:var(--font-display);font-size:4.05rem}
.login-watermark .w2{font-family:var(--font-body);font-size:2.2rem;text-transform:uppercase;letter-spacing:.06em}
.login-watermark .w3{font-family:var(--font-display);font-size:3.05rem;font-style:italic}
.login-watermark .w4{font-family:var(--font-body);font-size:1.72rem;font-weight:600;letter-spacing:.01em}
.login-watermark .w5{font-family:var(--font-display);font-size:4.45rem;font-weight:500}
.login-watermark .w6{font-family:var(--font-body);font-size:1.25rem;text-transform:uppercase;letter-spacing:.13em}
.login-card{width:430px;padding:28px 30px 30px;position:relative;z-index:1}
.password-modal-backdrop{position:relative;z-index:1;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px;background:rgba(245,247,251,.54);backdrop-filter:blur(2px)}
.password-modal{border-color:#d7e2f0;box-shadow:0 24px 70px rgba(15,30,52,.22)}
.login-brand{padding:0;margin-bottom:28px;color:var(--ink);justify-content:center}
.login-brand .brand-logo{width:320px}
.login-brand .bn{color:var(--ink)}
.login-brand .bn small{color:var(--ink-faint)}
.login-head{margin-bottom:24px}
.login-head h1{font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin-bottom:8px}
.login-form{display:grid;gap:15px}
.login-form label span{display:block;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:7px}
.login-input{position:relative;display:flex;align-items:center}
.login-input svg{position:absolute;left:13px;width:16px;height:16px;color:var(--ink-faint);stroke-width:1.9}
.login-input input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 14px 11px 40px;font-size:.86rem;font-family:inherit;color:var(--ink);box-shadow:var(--sh-sm);transition:all .15s;outline:none}
.login-plain-input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-size:.86rem;font-family:inherit;color:var(--ink);box-shadow:var(--sh-sm);transition:all .15s;outline:none}
.login-input input::placeholder{color:var(--ink-faint)}
.login-input input:focus,.login-plain-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.login-submit{justify-content:center;margin-top:6px;width:100%}
.login-link{display:block;width:100%;margin-top:10px;background:none;border:0;padding:4px;color:var(--brand,#2186c9);font-size:.85rem;font-weight:600;cursor:pointer;text-align:center}
.login-link:hover{text-decoration:underline}
.password-help{font-size:.78rem;line-height:1.45;color:var(--ink-soft);margin-top:-2px}
.password-help b{color:var(--ink)}

/* ---------- Buttons ---------- */
.btn{background:linear-gradient(145deg,var(--accent-2),var(--accent-deep));color:#fff;border:none;border-radius:10px;padding:11px 18px;font-size:.83rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;letter-spacing:-.01em;box-shadow:0 2px 6px rgba(179,18,43,.32),inset 0 1px 0 rgba(255,255,255,.2);transition:all .15s}
.btn svg{width:16px;height:16px;stroke-width:2.1}
.btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(179,18,43,.42),inset 0 1px 0 rgba(255,255,255,.2)}
.btn.ghost{background:var(--panel);color:var(--ink-2);border:1px solid var(--line);box-shadow:var(--sh-sm)}
.btn.ghost:hover{color:var(--ink);border-color:#d2dae6}
.btn.ghost.danger{color:var(--hot);border-color:rgba(224,72,61,.24);background:var(--hot-bg)}
.btn.ghost.danger:hover{color:var(--hot);border-color:rgba(224,72,61,.42)}
.icon-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--panel);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);box-shadow:var(--sh-sm);transition:all .15s}
.icon-btn svg{width:18px;height:18px;stroke-width:1.8}
.icon-btn:hover{color:var(--ink);border-color:#d2dae6;transform:translateY(-1px);box-shadow:var(--sh-md)}

/* ---------- Cards ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.card-pad{padding:22px 24px}
.card-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.card-head h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600}

/* ---------- Stat cards ---------- */
.stats{columns:4;column-gap:16px;margin-bottom:24px}.stats>*{break-inside:avoid;margin-bottom:16px}
/* 6-up row (4 lead stats + pipeline sales + potential earnings) — shrink to fit */
.stats-6{columns:6}
.stats-6 .stat{padding:14px 15px}
.stats-6 .stat .n{font-size:1.55rem}
.stats-6 .stat.money .n{font-size:1.25rem}
.stat.money .n{color:var(--green)}
@media (max-width:1100px){.stats-6{columns:3}}
@media (max-width:640px){.stats-6{columns:2}}
/* Pipeline (Deals) metric box above the board */
.pipeline-metrics{columns:2;column-gap:16px;margin-bottom:18px}.pipeline-metrics>*{break-inside:avoid;margin-bottom:16px}
.pl-metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 20px;box-shadow:var(--sh-sm)}
.pl-metric .l{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600;display:block}
.pl-metric b{display:block;font-family:var(--font-display);font-size:1.7rem;font-weight:600;color:var(--green);line-height:1.1;margin-top:6px}
.pl-metric .d{font-size:.75rem;color:var(--ink-soft);margin-top:4px;display:block}
@media (max-width:560px){.pipeline-metrics{columns:1}}
/* My Tasks (standalone + repeating) */
.my-tasks-card{margin-bottom:20px}
.my-tasks-list{display:grid;gap:8px}
.my-task-row{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff}
.my-task-row.overdue{border-color:rgba(224,72,61,.32);background:var(--hot-bg,#fff7f6)}
.my-task-check{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
.my-task-check:hover{border-color:var(--green);color:var(--green);background:#f0fdf4}
.my-task-check svg{width:14px;height:14px;stroke-width:3}
.my-task-main{flex:1;min-width:0}
.my-task-title{font-weight:600;font-size:.9rem;color:var(--ink)}
.my-task-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:3px;font-size:.76rem;color:var(--ink-soft);align-items:center}
.my-task-meta svg{width:13px;height:13px;vertical-align:-2px}
.my-task-meta .due{color:var(--hot);font-weight:600}
.my-task-repeat{display:inline-flex;align-items:center;gap:4px;background:var(--accent-wash);color:var(--accent-deep);font-weight:600;padding:1px 8px;border-radius:99px}
.my-task-del{flex:none;width:26px;height:26px;border-radius:7px;border:1px solid transparent;background:none;color:var(--ink-faint);cursor:pointer}
.my-task-del:hover{color:var(--hot);border-color:var(--line)}
.my-task-edit{flex:none;width:26px;height:26px;border-radius:7px;border:1px solid transparent;background:none;color:var(--ink-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px}
.my-task-edit:hover{color:var(--accent,#b3122b);border-color:var(--line)}
.my-task-edit svg{width:14px;height:14px}

/* AI Testing Ground (admin) */
.ailab-setup{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.ailab-setup label{display:flex;flex-direction:column;gap:5px;flex:1;min-width:200px}
.ailab-setup label span{font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.ailab-setup input,.ailab-setup textarea,.ailab-setup select{padding:9px 11px;border:1.5px solid var(--line);border-radius:9px;font:inherit;width:100%}
.ailab-setup textarea{resize:vertical}
.ailab-setup label:has(textarea){flex-basis:100%}
.ailab-actions{flex:none}
.ailab-handoff{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:.92rem}
.ailab-chat{display:flex;flex-direction:column;gap:12px;max-height:460px;overflow-y:auto;padding:6px 2px 12px}
.ailab-msg{display:flex;flex-direction:column;gap:3px;max-width:74%}
.ailab-msg.ai{align-self:flex-start;align-items:flex-start}
.ailab-msg.lead{align-self:flex-end;align-items:flex-end}
.ailab-bubble{padding:10px 14px;border-radius:16px;font-size:.94rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.ailab-msg.ai .ailab-bubble{background:#eef2f8;color:var(--ink);border-bottom-left-radius:5px}
.ailab-msg.lead .ailab-bubble{background:linear-gradient(180deg,#4f8bf9,#b3122b);color:#fff;border-bottom-right-radius:5px}
.ailab-who{font-size:.7rem;color:var(--ink-faint);font-weight:600;padding:0 6px}
.ailab-typing{letter-spacing:2px;color:var(--ink-faint);animation:ailabpulse 1.1s ease-in-out infinite}
@keyframes ailabpulse{0%,100%{opacity:.4}50%{opacity:1}}
.ailab-reply{display:flex;gap:10px;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.ailab-reply input{flex:1;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font:inherit}
.ailab-reply input:focus{border-color:var(--accent,#b3122b);outline:none}

/* Segmented toggle (AI identity mode) */
.seg-toggle{display:flex;gap:6px;background:#eef2f8;border:1px solid var(--line);border-radius:12px;padding:5px}
.seg-opt{flex:1;border:0;background:none;padding:10px 14px;border-radius:9px;font:inherit;font-weight:600;font-size:.88rem;color:var(--ink-soft);cursor:pointer;transition:all .12s}
.seg-opt.on{background:#fff;color:var(--accent,#b3122b);box-shadow:0 1px 3px rgba(15,30,52,.12)}
.ailab-id-row{display:flex;flex-direction:column;gap:6px}
.ailab-id-label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.ai-intro-hint{font-size:.76rem;color:var(--ink-soft,#6b7280);margin-top:6px}
.ai-intro-hint a{color:var(--accent,#b3122b);font-weight:600}
/* iOS-style toggle switch */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0 14px}
.switch-label{font-weight:600;font-size:.9rem;color:var(--ink)}
.switch{position:relative;display:inline-flex;width:44px;height:25px;flex:none;vertical-align:middle}
.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.switch .slider{position:absolute;inset:0;background:#cbd5e1;border-radius:999px;transition:.18s;cursor:pointer}
.switch .slider::before{content:"";position:absolute;height:19px;width:19px;left:3px;top:50%;transform:translateY(-50%);background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked + .slider{background:var(--accent,#b3122b)}
.switch input:checked + .slider::before{transform:translateY(-50%) translateX(19px)}
/* Condensed quiet-hours grid */
.quiet-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px;align-items:end}
.quiet-grid label{display:flex;flex-direction:column;gap:4px;margin:0}
.quiet-grid label span{font-size:.78rem;font-weight:600;color:var(--ink-soft)}
.quiet-grid select{padding:8px 10px;font-size:.88rem;width:100%}
@media(max-width:640px){.quiet-grid{grid-template-columns:1fr}}
/* Tag management descriptions */
.tag-manage-item{align-items:flex-start !important}
.tag-manage-main{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.tag-desc{font-size:.8rem;color:var(--ink-soft,#6b7280);line-height:1.4}
.tag-desc-empty{color:#aab3c2;font-style:italic}
/* Task priority icons */
.prio-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;font-size:.72rem;font-weight:800;color:#fff;flex:none;line-height:1;vertical-align:-3px}
.prio-icon.high{background:#dc2626;border-radius:50%}
.prio-icon.low{background:#b3122b;border-radius:4px;font-size:.64rem}
.prio-tri{display:inline-flex;vertical-align:-3px}
.prio-tri svg{display:block}
.calendar-event .prio-icon,.calendar-event .prio-tri svg{width:13px;height:13px}
.calendar-event .prio-icon{font-size:.6rem;vertical-align:-2px}
/* Dashboard customizer (show/hide sections) */
.dash-customizer{position:relative;display:flex;justify-content:flex-end;margin-bottom:10px}
.dash-panel{position:absolute;top:100%;right:0;z-index:40;margin-top:6px;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(15,30,52,.14);padding:12px 14px}
.dash-panel[hidden]{display:none}
.dash-panel-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;margin-bottom:8px}
.dash-panel .column-option{display:flex;align-items:center;padding:5px 0}
.dash-panel .column-option label{display:flex;align-items:center;gap:9px;font-size:.9rem;cursor:pointer}
.dash-panel .column-option input{width:16px;height:16px;accent-color:var(--accent,#b3122b)}
.goal-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* Lead score (temperature) — colors the number only, never the status tags */
.lead-score{font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums}
.lead-score-pill{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:600;color:var(--ink-soft);background:#f3f6fc;border:1px solid var(--line);border-radius:999px;padding:3px 11px}
.lead-score-pill svg{width:13px;height:13px}
/* Help & Guide page */
.help-content .card{margin-bottom:16px}
.help-guide-grid{columns:300px;column-gap:16px}.help-guide-grid>*{break-inside:avoid;margin-bottom:16px}
.help-feature{display:flex;gap:12px;align-items:flex-start}
.help-feature-ic{flex:none;width:34px;height:34px;border-radius:9px;background:var(--accent-wash,#eef2ff);color:var(--accent,#b3122b);display:flex;align-items:center;justify-content:center}
.help-feature-ic svg{width:18px;height:18px}
.help-feature-title{font-weight:700;color:var(--ink);margin-bottom:2px}
.help-feature-body{font-size:.88rem;color:var(--ink-soft);line-height:1.5}
.help-report-group{margin-bottom:18px}
.help-report-group:last-child{margin-bottom:0}
.help-report-head{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:10px}
.help-report-head h4{font-size:1rem;margin:0;color:var(--navy2,#12263f)}
.help-report{display:grid;grid-template-columns:210px 1fr;gap:14px;padding:7px 0}
.help-report-name{font-weight:600;font-size:.9rem}
.help-report-desc{font-size:.88rem;color:var(--ink-soft);line-height:1.45}
.help-version{padding:12px 0;border-bottom:1px solid var(--line-soft,#eef1f6)}
.help-version:last-child{border-bottom:0}
.help-version-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.help-version-num{font-weight:800;color:var(--accent,#b3122b)}
.help-version-date{font-size:.82rem;color:var(--ink-soft);font-weight:600}
.help-version-list{margin:0 0 0 18px;font-size:.88rem;color:var(--ink-soft);line-height:1.55}
@media(max-width:640px){.help-report{grid-template-columns:1fr;gap:2px}}
/* Lead Value card */
.lead-value-field{display:block;margin-bottom:12px}
.lead-value-field>span{display:block;font-size:.74rem;font-weight:600;color:var(--ink-soft);margin-bottom:5px}
.lead-value-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff}
.lead-value-input:focus-within{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.lead-value-input .lv-dollar{color:var(--ink-soft);font-weight:600;font-size:.9rem}
.lead-value-input input{flex:1;border:none;outline:none;padding:9px 6px;font:inherit;font-size:.95rem;font-weight:600;color:var(--ink);background:none}
.lead-value-total{margin-top:6px;font-size:.84rem;color:var(--ink-soft)}
.lead-value-total b{font-family:var(--font-display);font-size:1.1rem;color:var(--green)}
/* Feature-request admin: status views + search */
.fr-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.fr-tabs{display:flex;flex-wrap:wrap;gap:6px}
.seg-tab{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font:inherit;font-size:.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.seg-tab:hover{border-color:var(--accent-2);color:var(--ink)}
.seg-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.seg-count{font-size:.72rem;background:rgba(0,0,0,.08);border-radius:99px;padding:0 6px;font-weight:700}
.seg-tab.on .seg-count{background:rgba(255,255,255,.25)}
.fr-search{border:1px solid var(--line);border-radius:8px;padding:8px 12px;font:inherit;font-size:.86rem;min-width:200px;outline:none}
.fr-search:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.fr-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fr-cat{font-size:.7rem;color:var(--ink-soft);margin-left:8px}
.fr-status-select{flex:none;border:1px solid var(--line);border-radius:7px;padding:5px 8px;font:inherit;font-size:.8rem;font-weight:600;color:var(--ink);background:#fff;cursor:pointer}
.fr-item{border-bottom:1px solid var(--line-soft);padding-bottom:12px}
.fr-item:last-child{border-bottom:none;padding-bottom:0}
.stat{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px;box-shadow:var(--sh-sm);transition:all .18s}
.stat:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.stat .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.stat .l{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.stat .ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--line-soft);color:var(--ink-soft)}
.stat .ic svg{width:16px;height:16px;stroke-width:2}
.stat .n{font-family:var(--font-display);font-size:1.9rem;font-weight:600;line-height:1;letter-spacing:-.02em}
.stat .d{font-size:.75rem;margin-top:8px;color:var(--ink-soft);display:flex;align-items:center;gap:5px}
.stat .d.up{color:var(--green);font-weight:600}
.stat .d.value{color:var(--green);font-weight:700}
.stat .d svg{width:13px;height:13px;stroke-width:2.4}

/* ---------- Toolbar / filters ---------- */
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}
.segment{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:var(--sh-sm);gap:2px}
.segment button{border:none;background:transparent;font-family:inherit;font-size:.8rem;font-weight:500;color:var(--ink-soft);padding:7px 14px;border-radius:7px;cursor:pointer;transition:all .14s;display:flex;align-items:center;gap:6px}
.segment button .pip{width:7px;height:7px;border-radius:50%}
.segment button.on{background:var(--ink);color:#fff;font-weight:600;box-shadow:var(--sh-sm)}
.segment button:not(.on):hover{background:var(--line-soft);color:var(--ink)}
.toolbar .spacer{flex:1}
.pill-btn{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-size:.8rem;font-weight:500;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm);transition:all .15s}
.pill-btn svg{width:15px;height:15px;stroke-width:1.9;color:var(--ink-soft)}
.pill-btn:hover{border-color:#d2dae6;color:var(--ink);box-shadow:var(--sh-md)}
.column-manager{position:relative}
.column-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:260px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:8px}
.column-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 7px;border-radius:9px}
.column-option:hover{background:var(--line-soft)}
.column-option label{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--ink-2);font-weight:500}
.column-option input{accent-color:var(--accent)}
.column-move{display:flex;gap:4px}
.column-move button{width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;cursor:pointer}
.column-move button:disabled{opacity:.35;cursor:not-allowed}
.column-move svg{width:13px;height:13px}

/* ---------- Table ---------- */
.table-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);overflow:hidden}
table{width:100%;border-collapse:collapse}
thead th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);font-weight:600;padding:14px 16px;background:linear-gradient(180deg,#fbfcfe,#f5f7fb);border-bottom:1px solid var(--line)}
tbody td{padding:0 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle;height:54px}
tbody tr{transition:background .13s}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:linear-gradient(90deg,var(--accent-wash),transparent 60%)}

/* Leads list: center every column under its header — except the Lead name,
   which stays left-aligned. The inner cell wrappers are flex, so they need
   justify-content:center; the badge cells center via text-align. Scoped to the
   leads table only. Column 1 is the checkbox, column 2 is the Lead name. */
[data-leads-table] thead th,
[data-leads-table] tbody td{text-align:center}
[data-leads-table] thead th:nth-child(2),
[data-leads-table] tbody td:nth-child(2){text-align:left}
[data-leads-table] tbody td .comm-cell,
[data-leads-table] tbody td .tag-list,
[data-leads-table] tbody td .src,
[data-leads-table] tbody td .next,
[data-leads-table] tbody td .row-actions{justify-content:center}

.lead-name .nm{font-weight:600;color:var(--ink);font-size:.88rem}
.lead-name .em{font-size:.78rem;color:var(--ink-faint);margin-top:1px}
.comm-cell{display:flex;align-items:center;gap:20px;color:var(--ink-2);font-size:.86rem;font-weight:500}
.comm-cell span{display:inline-flex;align-items:center;gap:7px;min-width:38px}
.comm-cell svg{width:17px;height:17px;color:var(--ink-soft);stroke-width:1.75}

/* ---------- Status tags (semantic color) ---------- */
.tag{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;padding:4px 11px;border-radius:20px}
.tag .pip{width:6px;height:6px;border-radius:50%}
.tag.hot{background:var(--hot-bg);color:var(--hot)} .tag.hot .pip{background:var(--hot)}
.tag.warm{background:var(--warm-bg);color:#b97614} .tag.warm .pip{background:var(--warm)}
.tag.cold{background:var(--cold-bg);color:var(--cold)} .tag.cold .pip{background:var(--cold)}
.tag.nurture{background:var(--nurture-bg);color:var(--nurture)} .tag.nurture .pip{background:var(--nurture)}
.tag.upcoming{background:var(--accent-wash);color:var(--accent-deep)} .tag.upcoming .pip{background:var(--accent)}
.tag.completed{background:var(--green-bg);color:var(--green)} .tag.completed .pip{background:var(--green)}
.tag.custom-status{background:var(--line-soft);color:var(--ink-soft)} .tag.custom-status .pip{background:var(--ink-faint)}
.tag.closed-tag{background:var(--green-bg);color:var(--green)} .tag.closed-tag .pip{background:var(--green)}
.tag-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tag-list .tag{font-size:.7rem;padding:3px 8px}

/* ---------- Source cell ---------- */
.src{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--ink-2)}
.src .si{width:26px;height:26px;border-radius:7px;background:var(--line-soft);display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}
.src .si svg{width:14px;height:14px;stroke-width:1.9}

/* ---------- Next action cell ---------- */
.next{font-size:.85rem;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.next .nd{font-size:.72rem;color:var(--ink-faint);margin-top:1px}
.next.due .nm2{color:var(--hot);font-weight:600}
.next .clock{width:15px;height:15px;stroke-width:2;color:var(--ink-faint)}
.next.due .clock{color:var(--hot)}
.next.upcoming .nm2{color:var(--accent-deep);font-weight:600}
.next.upcoming .clock{color:var(--accent)}

/* ---------- Row actions ---------- */
.row-actions{display:flex;gap:6px;justify-content:flex-end;opacity:1}
.ra{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:all .13s;box-shadow:var(--sh-sm);padding:0}
.ra svg{width:15px;height:15px;stroke-width:1.9}
.ra:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}

/* ---------- Checkbox ---------- */
.cb{width:17px;height:17px;border:1.6px solid #cbd4e1;border-radius:5px;cursor:pointer;transition:all .13s;display:inline-block;flex:0 0 auto;padding:0;background:#fff;-webkit-appearance:none;appearance:none;position:relative}
.cb:hover{border-color:var(--accent);background:var(--accent-wash)}
.cb.done{background:var(--accent);border-color:var(--accent)}
.cb.done::after{content:'';position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---------- Table footer / pager ---------- */
.tfoot{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--line);background:#fbfcfe}
.tfoot .info{font-size:.78rem;color:var(--ink-soft)}
.pager{display:flex;gap:5px}
.pager button{width:32px;height:32px;border:1px solid var(--line);background:var(--panel);border-radius:8px;font-family:inherit;font-size:.8rem;color:var(--ink-2);cursor:pointer;transition:all .13s}
.pager button:hover{border-color:#cbd4e1;background:var(--line-soft)}
.pager button.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}

/* ---------- Goals: progress ---------- */
.goal-grid{columns:2;column-gap:16px}.goal-grid>*{break-inside:avoid;margin-bottom:16px}
.goal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px;box-shadow:var(--sh-sm)}
.goal .gh{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.goal .gt{font-weight:600;font-size:.95rem}
.goal .gtype{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:600}
.goal .gnums{font-family:var(--font-display);font-size:1.5rem;font-weight:600;margin:10px 0 4px}
.goal .gnums small{font-size:.85rem;color:var(--ink-soft);font-weight:400;font-family:var(--font-ui)}
.bar{height:8px;background:var(--line);border-radius:5px;overflow:hidden;margin-top:8px}
.bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent-2),var(--accent-deep))}
.bar.done i{background:linear-gradient(90deg,#2bbd86,var(--green))}
.goal .gmeta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--ink-soft);margin-top:8px}

/* ---------- Lead detail ---------- */
.detail-grid{columns:2;column-gap:20px}.detail-grid>*{break-inside:avoid;margin-bottom:20px}
.timeline{position:relative;padding-left:24px}
.timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--line)}
.tl-item{position:relative;padding-bottom:20px}
.tl-item::before{content:"";position:absolute;left:-21px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--accent)}
.tl-item.muted::before{border-color:var(--ink-faint)}
.tl-when{font-size:.74rem;color:var(--ink-faint);margin-bottom:2px}
.tl-what{font-size:.88rem;color:var(--ink-2)}
.tl-what b{color:var(--ink);font-weight:600}
.field{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:.86rem}
/* Long emails/values wrap cleanly at any character instead of breaking mid-string */
.field .v,.detail-side .field .v,.email-message-meta,.inbox-from,.inbox-meta{overflow-wrap:anywhere;word-break:normal;min-width:0}
.field:last-child{border-bottom:none}
.field .k{color:var(--ink-soft)}
.field .v{color:var(--ink);font-weight:500}

/* ---------- Empty states ---------- */
.empty-state{padding:28px 18px;text-align:center;color:var(--ink-soft);font-size:.86rem}

/* ---------- Utility ---------- */
.row{display:flex;align-items:center;gap:12px}
.muted{color:var(--ink-soft)}
.page-grid{display:grid;gap:20px}
.two-col{columns:2}

/* ---------- Lead detail modal — compact / professional styling ----------
   Tighter radius + denser spacing (kills the "bubble" look), smaller
   controls, compact contact actions in the header (not the follow-up
   card). After base components (wins ties); before @media (mobile wins). */
.detail-modal{border:1px solid var(--line);border-radius:12px}

/* Header: identity + compact contact actions left, manage controls right */
.detail-modal-head{padding:18px 24px;background:#fff;border-bottom:1px solid var(--line);align-items:flex-start}
.detail-head-id{min-width:0}
.detail-modal-head h2{font-size:1.5rem;letter-spacing:-.025em;margin-top:2px}
.detail-title-row{gap:9px}
.detail-subline{margin-top:4px;font-weight:500;color:var(--ink-soft)}
.detail-head-actions{gap:7px}
.detail-head-actions .btn{padding:8px 12px;font-size:.8rem}
.detail-head-actions .icon-btn{width:36px;height:36px}

/* Compact contact actions (Call / Text / Email) — small, solid, low radius */
.detail-quick{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.qbtn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:8px 13px;font-size:.8rem;font-weight:600;color:#fff;cursor:pointer;letter-spacing:-.01em;box-shadow:var(--sh-sm);transition:filter .15s,transform .15s}
.qbtn svg{width:15px;height:15px;stroke-width:2}
.qbtn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.qbtn-call{background:#16a571}
.qbtn-text{background:var(--accent)}
.qbtn-email{background:#5b62e6}

/* Canvas + refined, low-radius cards */
.detail-modal-body{background:#eef2f8;grid-template-columns:minmax(0,1fr) 312px;gap:14px;padding:16px 18px}
.detail-main,.detail-side{gap:14px}
.detail-modal .card,.detail-hero{background:#fff;border:1px solid #e7ecf4;border-radius:10px;box-shadow:0 1px 2px rgba(15,30,52,.05)}
.detail-modal .card-head{padding:13px 16px;border-bottom:1px solid var(--line-soft)}
.detail-modal .card-head h3{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink)}
.detail-modal .card-pad{padding:14px 16px}

/* Next follow-up — compact strip (no big buttons inside) */
.detail-modal .detail-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-left:3px solid var(--accent)}
.detail-hero-info{display:grid;gap:2px;min-width:0}
.detail-eyebrow{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--accent-deep)}
.detail-hero h3{font-family:var(--font-display);font-size:1.18rem;font-weight:600;letter-spacing:-.015em;margin:0;line-height:1.15}
.detail-hero p{color:var(--ink-soft);font-size:.84rem;margin:0}
.detail-hero-side{display:flex;align-items:center;gap:10px;flex-shrink:0}
.detail-state-chip{display:inline-flex;align-items:center;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:6px}
.detail-state-chip.overdue{background:var(--hot-bg);color:var(--hot)}
.detail-state-chip.upcoming{background:var(--accent-wash);color:var(--accent-deep)}
.detail-state-chip.none{background:var(--line-soft);color:var(--ink-soft)}

/* Activity — small compact figures, not big tiles */
.detail-metrics{grid-template-columns:repeat(3,1fr);gap:8px}
.detail-metrics div{background:#f5f7fb;border:1px solid #e7ecf4;border-radius:8px;padding:9px 11px;display:flex;flex-direction:column;gap:1px;align-items:flex-start}
.detail-metrics span{display:none}
.detail-metrics small{order:-1;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--ink-soft)}
.detail-metrics b{font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.05;color:var(--ink)}
.detail-metrics button{margin-top:3px;border:none;background:none;box-shadow:none;padding:0;font-size:.68rem;font-weight:600;color:var(--accent);cursor:pointer}
.detail-metrics button:hover{text-decoration:underline}

/* List rows — tidy, low radius */
.detail-modal .followup-item,.detail-modal .property-item,.detail-modal .note-item{border:1px solid #e7ecf4;border-radius:8px;background:#fff;box-shadow:none;padding:7px 12px}
.detail-modal .note-item{background:#f7f9fc}
.detail-modal .followup-item.overdue{border-color:rgba(224,72,61,.28);background:var(--hot-bg)}
.detail-modal .followup-item.upcoming{border-color:rgba(179,18,43,.22);background:var(--accent-wash)}
.detail-notes-list,.followup-list,.property-list{gap:10px}

/* Side meta rows */
.detail-side .field{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.84rem}
.detail-side .field:last-child{border-bottom:none}
.detail-side .field .k{color:var(--ink-soft);font-weight:500}
.detail-side .field .v{color:var(--ink);font-weight:600;text-align:right;word-break:break-word}

/* Quieter pill buttons inside the modal */
.detail-modal .pill-btn{padding:7px 12px;font-size:.78rem;box-shadow:var(--sh-sm)}

/* ---------- Tags ---------- */
.tag-list{display:flex;flex-wrap:wrap;gap:6px}
.lead-tag-chip{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:var(--ink-2);background:var(--panel);border:1px solid var(--line);padding:3px 9px;border-radius:6px;line-height:1.5}
.lead-tag-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tag,var(--accent));flex-shrink:0}
.lead-tag-chip.add,.lead-tag-chip.removable{cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.lead-tag-chip.add{border-style:dashed;color:var(--ink-soft)}
.lead-tag-chip.add:hover{border-color:var(--accent-2);color:var(--accent-deep)}
.lead-tag-chip.removable:hover{border-color:var(--hot);color:var(--hot)}
.lead-tag-chip .x{font-size:.95rem;line-height:1;color:var(--ink-faint)}
.lead-tag-chip.removable:hover .x{color:var(--hot)}
.lead-tag-chips{display:flex;flex-wrap:wrap;gap:7px}
.lead-tag-add{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.type-pill{background:var(--accent-wash);color:var(--accent-deep)}
.type-pill .pip{background:currentColor}
.tag-create-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.tag-create-form input[name="name"]{flex:1;min-width:200px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.86rem;color:var(--ink);box-shadow:var(--sh-sm);outline:none}
.tag-create-form input[name="name"]:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.tag-create-form .compact-select{width:auto;min-width:120px;height:40px}
.tag-manage-list{display:grid;gap:10px}
.tag-manage-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}

/* ---------- Forms ---------- */
.forms-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.forms-grid{columns:300px;column-gap:16px}.forms-grid>*{break-inside:avoid;margin-bottom:16px}
.form-card .card-head h3{font-size:1.05rem}
.form-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.form-card-actions{display:flex;flex-wrap:wrap;gap:8px}
.pill-btn.danger{color:var(--hot);border-color:rgba(224,72,61,.24)}
.pill-btn.danger:hover{background:var(--hot-bg);border-color:rgba(224,72,61,.42)}
.form-embed{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.form-embed label{display:block;font-size:.74rem;font-weight:600;color:var(--ink-soft);margin-bottom:6px}
.form-embed textarea{width:100%;min-height:70px;border:1px solid var(--line);border-radius:8px;padding:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.76rem;color:var(--ink-2);background:var(--line-soft);resize:vertical;margin-bottom:8px}
.form-embed-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.embed-viewer-label{font-size:.72rem;font-weight:600;color:var(--ink-soft);margin:6px 0 8px}
.embed-viewer{width:100%;max-width:480px;height:520px;border:1px solid var(--line);border-radius:12px;background:#eef2f8;display:block}

.form-builder{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}
.form-builder-controls{display:grid;gap:14px;align-content:start;min-width:0}
.form-builder-preview{position:sticky;top:80px;align-self:start}
.fb-preview-bar{display:flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;color:var(--ink-soft);margin-bottom:10px}
.fb-preview-bar svg{width:14px;height:14px}
.fb-preview{background:#eef2f8;border:1px solid var(--line);border-radius:14px;padding:24px 18px;min-height:300px}
.fb-style-grid{columns:2;column-gap:8px}.fb-style-grid>*{break-inside:avoid;margin-bottom:8px}
.fb-color{display:grid;gap:5px;font-size:.66rem;font-weight:600;color:var(--ink-soft);text-align:center}
/* Color pickers: strip the browser's default rounded button chrome so it's just
   the color square (no outer border / oval container). Applies CRM-wide. */
input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:none;background:none;border-radius:4px;cursor:pointer}
input[type=color]::-webkit-color-swatch-wrapper{padding:0}
input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}
input[type=color]::-moz-color-swatch{border:none;border-radius:4px}
.fb-color input[type=color]{width:100%;height:32px;border-radius:4px;cursor:pointer;padding:0}
.fb-appearance-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.fb-sublabel{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:6px}
.fb-size{margin-top:2px}
.fb-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:18px 0 8px}
.fb-label:first-child{margin-top:0}
.fb-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;font-size:.9rem;color:var(--ink);outline:none;box-shadow:var(--sh-sm)}
.fb-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.fb-palette{display:flex;flex-wrap:wrap;gap:8px}
.fb-palette-item{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--line);background:var(--panel);border-radius:8px;padding:8px 12px;font:inherit;font-size:.8rem;font-weight:600;color:var(--ink-2);cursor:grab;box-shadow:var(--sh-sm)}
.fb-palette-item svg{width:14px;height:14px}
.fb-palette-item:hover{border-color:var(--accent-2);color:var(--accent-deep)}
.fb-canvas{min-height:90px;border:1px dashed var(--line);border-radius:10px;padding:10px;display:grid;grid-template-columns:1fr;gap:8px;align-content:start;background:#f7f9fc}
.fb-empty{text-align:center;color:var(--ink-faint);font-size:.84rem;padding:24px 12px;line-height:1.5}
.fb-field{display:grid;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:11px 12px}
.fb-field.dragging{opacity:.45}
.fb-field.drag-over{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.fb-field-top{display:flex;align-items:center;gap:8px}
.fb-grip{color:var(--ink-faint);cursor:grab;display:flex}
.fb-grip svg{width:15px;height:15px}
.fb-field-type{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-field-tools{display:flex;align-items:center;gap:7px;flex-shrink:0}
.fb-toggle{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:3px 8px;font:inherit;font-size:.66rem;font-weight:600;color:var(--ink-soft);cursor:pointer;white-space:nowrap}
.fb-toggle.on{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}
.fb-req{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--ink-soft);white-space:nowrap}
.fb-remove{width:26px;height:26px;border:1px solid var(--line);background:var(--panel);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:pointer;flex-shrink:0}
.fb-remove svg{width:13px;height:13px}
.fb-remove:hover{color:var(--hot);border-color:rgba(224,72,61,.4)}
.fb-field-label{width:100%;border:1px solid var(--line);border-radius:7px;padding:7px 9px;font:inherit;font-size:.84rem;color:var(--ink);outline:none}
.fb-field-label:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.fb-options{font-size:.8rem;color:var(--ink-2)}
.fb-actions{display:flex;flex-direction:column;gap:10px}
.fb-actions .btn{width:100%;justify-content:center}

/* Live preview — mirrors the published form (form.html) */
.fb-preview .ct-wrap{max-width:520px;margin:0 auto;border-radius:var(--wrapradius,14px);box-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 28px rgba(16,24,40,.10);padding:26px 24px;--fieldbg:#fff;--accent:#ff0000;--labelcolor:#1a2433;--labelfont:'Muli','Segoe UI',Helvetica,Arial,sans-serif;--radius:10px;--wrapradius:14px}
/* Same two-column grid form.html uses. This was `columns:2` (CSS multi-column),
   which silently ignores every grid-column rule below it -- full-width fields
   stopped spanning and the preview disagreed with the published form. */
.fb-preview .ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 13px}
.fb-preview .ct-field.full,.fb-preview .ct-heading,.fb-preview .ct-text,.fb-preview .ct-submit,.fb-preview .ct-group.full{grid-column:1 / -1}
.fb-preview .ct-field.half{grid-column:span 1}
.fb-preview .ct-field label.lbl,.fb-preview .ct-group legend{display:block;font-family:var(--labelfont);font-size:.82rem;font-weight:600;color:var(--labelcolor);margin-bottom:6px;padding:0}
.fb-preview .ct-field .req{color:var(--accent)}
.fb-preview .ct-field input,.fb-preview .ct-field textarea,.fb-preview .ct-field select{width:100%;border:1px solid #e3e7ee;border-radius:var(--radius);padding:12px;font:inherit;font-size:.95rem;color:#1a2433;background:var(--fieldbg);pointer-events:none}
.fb-preview .ct-field textarea{min-height:110px;resize:none}
.fb-preview .ct-group{border:none}
.fb-preview .ct-check,.fb-preview .ct-radio{display:flex;align-items:center;justify-content:flex-start;gap:9px;text-align:left;font-size:.92rem;color:#1a2433;padding:4px 0}
.fb-preview .ct-check input,.fb-preview .ct-radio input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:var(--accent)}
.fb-preview .ct-check span,.fb-preview .ct-radio span{flex:1;min-width:0}
.fb-preview .ct-heading{font-family:var(--labelfont);font-size:1.05rem;font-weight:700;color:var(--labelcolor);border-bottom:1px solid #e3e7ee;padding-bottom:6px}
.fb-preview .ct-text{font-family:var(--labelfont);color:#6b7480}
.fb-preview .ct-text.sm{font-size:.82rem}
.fb-preview .ct-text.md{font-size:.98rem}
.fb-preview .ct-text.lg{font-size:1.25rem;font-weight:600;color:var(--labelcolor)}
.fb-preview .ct-submit{width:100%;border:none;border-radius:var(--radius);padding:14px;font:inherit;font-size:1rem;font-weight:700;color:#fff;background:var(--accent);margin-top:8px}

/* ---------- Pipeline / Deals (flat) ---------- */
.pipeline-toolbar{display:flex;gap:10px;margin-bottom:18px}
.pill-btn.on{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}

/* Board: columns are not boxes — just a headed list separated by whitespace */
.pipeline-board{display:flex;gap:0;overflow-x:auto;padding-bottom:10px;align-items:stretch;min-height:240px}
.pipeline-col{flex:0 0 262px;min-width:262px;max-width:262px;padding:0 18px}
.pipeline-col:not(:first-child){border-left:1px solid var(--line)}
.pipeline-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 9px;border-bottom:2px solid var(--line);margin-bottom:12px;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink)}
.pipeline-col.lost .pipeline-col-head{border-bottom-color:rgba(224,72,61,.35)}
.pipeline-col-head .count{font-family:var(--font-ui);font-size:.72rem;font-weight:700;color:var(--ink-faint)}
.pipeline-col-body{display:grid;gap:8px;align-content:start;min-width:0}
.deal-card{border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 13px;cursor:pointer;transition:border-color .15s,background .15s;min-width:0;overflow:hidden}
.deal-card:hover{border-color:var(--accent-2);background:#fcfdff}
.deal-card-name{font-weight:600;color:var(--ink);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.deal-card-addr{font-size:.78rem;color:var(--ink-soft);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.deal-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
.deal-card-price{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--ink)}
.deal-card-side{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
/* Pipeline drag-and-drop */
.pipeline-col-body{min-height:70px} /* let empty stages receive a dropped card */
.deal-card[draggable="true"]{cursor:grab}
.deal-card[draggable="true"]:active{cursor:grabbing}
.deal-card.dragging{opacity:.45}
.pipeline-col-body.drag-over{outline:2px dashed var(--accent,#b3122b);outline-offset:-3px;background:var(--wash,#eef3fc);border-radius:8px}
/* Google Tasks sync */
.gtasks-warn{font-size:.82rem;color:#a13b32;background:#fff5f4;border:1px solid rgba(224,72,61,.3);border-radius:8px;padding:7px 12px;margin:0 0 14px}
.gtasks-warn a{font-weight:600;color:var(--accent-deep,#1f57d6)}
.gtasks-toggle-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.92rem;line-height:1.5}
.gtasks-toggle-row input{margin-top:3px;flex:none}
/* User appearance customization — text boxes always keep the standard UI font
   even when the label/body font is personalized. */
:root{--font-input:'Inter',system-ui,-apple-system,sans-serif}
input,textarea,select{font-family:var(--font-input)!important}
.appearance-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 14px}
.appearance-row>label{font-weight:600;color:var(--ink);min-width:120px}
.appearance-row input[type=color]{width:46px;height:32px;padding:0;border-radius:4px;cursor:pointer}
.appearance-row select{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:.86rem}
.appearance-swatches{display:flex;gap:8px;flex-wrap:wrap}
.appearance-swatch{width:26px;height:26px;border-radius:7px;border:2px solid rgba(0,0,0,.08);cursor:pointer;padding:0}
.appearance-swatch.active{outline:2px solid var(--accent);outline-offset:2px}
.stage-editor-color{width:34px;height:28px;padding:0;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:none;flex:none}
/* Tasks page: Follow-ups (left) + My Tasks (right) columns */
.tasks-two-col{align-items:start;grid-template-columns:1fr 1fr}
.followup-list{display:flex;flex-direction:column;gap:8px}
.followup-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.followup-row:hover{border-color:var(--accent-2);background:#fcfdff}
.followup-row.overdue{border-left:3px solid var(--hot)}
.fu-main{flex:1;min-width:0}
.fu-name{font-weight:600;color:var(--ink);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fu-meta{font-size:.78rem;color:var(--ink-soft);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.followup-row .tag{flex:none}
.followup-row svg{width:13px;height:13px;vertical-align:-2px;flex-shrink:0}
/* Deal — saved property snapshot: clean, borderless read-only view */
.deal-prop-view{margin:2px 0 4px}
.deal-prop-grid{columns:3;column-gap:22px}.deal-prop-grid>*{break-inside:avoid;margin-bottom:14px}
.dp-item{display:flex;flex-direction:column;gap:2px;min-width:0}
.dp-k{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}
.dp-v{font-size:.95rem;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.dp-edit-btn{margin-top:16px}
/* Save confirmation banner (financials + reusable) */
.save-confirm{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:9px;background:#e6f6ee;color:#0f7a4f;border:1px solid rgba(15,122,79,.28);font-weight:600;font-size:.85rem}
.save-confirm svg{width:15px;height:15px}
/* Leads toolbar filter dropdowns (replaced the click-through cycling buttons) */
.filter-select{appearance:auto;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-size:.83rem;font-weight:600;cursor:pointer;max-width:210px}
.filter-select:hover{border-color:var(--accent-2)}
.filter-select:focus{outline:none;border-color:var(--accent)}

/* On-page stage editor (light panel, not nested cards) */
.stage-editor{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:20px;max-width:520px}
.stage-editor-head{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:12px}
.stage-editor-list{display:grid;gap:8px}
.stage-editor-row{display:flex;align-items:center;gap:10px}
.stage-editor-tag{flex-shrink:0;width:40px;font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--ink-faint)}
.stage-editor-input{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:.86rem;color:var(--ink);background:#fff;outline:none}
.stage-editor-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.stage-editor-fixed{font-size:.7rem;color:var(--ink-faint);font-weight:600}
.stage-editor-btn{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:pointer;flex-shrink:0}
.stage-editor-btn svg{width:14px;height:14px}
.stage-editor-btn:hover{border-color:#c4cee0;color:var(--ink)}
.stage-editor-btn.danger:hover{color:var(--hot);border-color:rgba(224,72,61,.4)}
.stage-editor-btn:disabled{opacity:.4;cursor:default}

/* Stage stepper inside the deal */
.deal-stages{display:flex;flex-wrap:wrap;gap:8px}
.deal-stages.is-lost{opacity:.55}
.deal-stage{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:transparent;border-radius:8px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s}
.deal-stage .deal-stage-dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex-shrink:0}
.deal-stage.done{color:var(--green);border-color:rgba(22,165,113,.28)}
.deal-stage.done .deal-stage-dot{background:var(--green)}
.deal-stage.current{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}
.deal-stage.current .deal-stage-dot{background:var(--accent)}
.deal-stage:hover{border-color:#c4cee0}

/* Deal detail — flat, no nested cards */
[data-deal-detail-modal] .detail-modal-body{background:#fff;grid-template-columns:minmax(0,1fr) 300px;gap:0;padding:0}
[data-deal-detail-modal] .detail-main{padding:6px 30px 28px;gap:0;align-content:start}
[data-deal-detail-modal] .detail-side{padding:24px 28px 28px;gap:0;align-content:start;border-left:1px solid var(--line);background:#fafbfd}
[data-deal-detail-modal] .card,[data-deal-detail-modal] .detail-section.card{background:transparent;border:none;border-radius:0;box-shadow:none}
[data-deal-detail-modal] .card-head{padding:0;margin-bottom:14px;border-bottom:none}
[data-deal-detail-modal] .card-head h3{font-family:var(--font-ui);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint)}
[data-deal-detail-modal] .card-pad{padding:0}
[data-deal-detail-modal] .detail-main > .detail-section{padding:22px 0;border-bottom:1px solid var(--line)}
[data-deal-detail-modal] .detail-main > .detail-section:last-child{border-bottom:none}
[data-deal-detail-modal] .detail-side > .card{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
[data-deal-detail-modal] .detail-side > .card:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
[data-deal-detail-modal] .detail-side .field{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:none}
[data-deal-detail-modal] .note-item{border:none;border-left:2px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:5px 0 5px 12px}

/* Financials — flat */
.fin-grid{columns:2;column-gap:14px}.fin-grid>*{break-inside:avoid;margin-bottom:14px}
.fin-grid label{display:grid;gap:6px}
.fin-grid label span{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.fin-grid input{width:100%;background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:.86rem;color:var(--ink);outline:none}
.fin-grid input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.fin-expenses{margin-top:18px}
.fin-expenses-head{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:10px}
.fin-expense-row{display:grid;grid-template-columns:1fr 140px auto;gap:8px;margin-bottom:8px}
.fin-expense-row input{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:.84rem;color:var(--ink);outline:none}
.fin-expense-row input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.pill-select{appearance:auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--ink-2);cursor:pointer}
/* coached-agent dashboard + coach analytics */
.agent-goal{padding:10px 0;border-bottom:1px solid var(--line-soft)}
.agent-goal:last-child{border-bottom:0}
.agent-goal-click{cursor:pointer;border-radius:8px;padding:10px;margin:0 -10px;transition:background .12s}
.agent-goal-click:hover{background:var(--line-soft)}
.agent-goal-caret{display:inline-flex;color:var(--ink-faint);transition:transform .15s;vertical-align:-3px}
.agent-goal-caret svg{width:14px;height:14px}
.agent-goal-click.open .agent-goal-caret{transform:rotate(180deg)}
.agent-goal-hist-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:4px}
.agent-goal-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.agent-goal-nums{font-size:.84rem;color:var(--ink-soft);white-space:nowrap}
.agent-goal-pct{font-weight:700;color:var(--ink-2)}
.agent-goal-pct.met{color:#0f7a4f}
.agent-goal-hist{margin-top:8px;padding:8px 10px;background:var(--line-soft);border-radius:8px}
.agent-monthly-goal{margin-bottom:20px}
.agent-monthly-goal:last-child{margin-bottom:0}
.agent-monthly-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.chart-legend{font-size:.75rem;color:var(--ink-soft);display:flex;align-items:center;gap:4px}
.chart-legend .lg{display:inline-block;width:11px;height:11px;border-radius:3px;vertical-align:-1px}
.chart-legend .lg.target{background:#cdd8ea}
.chart-legend .lg.actual{background:#d6273f}
/* agent dashboard: balanced two columns so the email composer (now in the right
   column, under Notes) has room. */
.agent-dash-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
@media(max-width:860px){.agent-dash-body{grid-template-columns:1fr!important}}
.coach-metric-grid{columns:4;column-gap:14px}.coach-metric-grid>*{break-inside:avoid;margin-bottom:14px}
.coach-metric{background:var(--panel,#fff);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--sh-sm)}
.coach-metric.flag{border-color:#e0483d;background:rgba(224,72,61,.05)}
.cm-label{font-size:.76rem;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.cm-value{font-size:1.5rem;font-weight:700;margin-top:4px;font-family:'Fraunces',Georgia,serif}
.cm-sub{font-size:.74rem;color:var(--ink-faint);margin-top:2px}
@media(max-width:900px){.coach-metric-grid{columns:2}}
.email-open-row{margin:4px 0 2px}
.email-open-badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;color:var(--ink-soft);background:var(--line-soft);border-radius:999px;padding:3px 9px}
.email-open-badge svg{width:13px;height:13px}
.email-open-badge.opened{color:#0f7a4f;background:rgba(22,165,113,.12)}
.lead-deals-list{display:flex;flex-direction:column;gap:8px}
.lead-deal-row{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;background:var(--line-soft);border:none;border-radius:12px;padding:12px 14px;cursor:pointer;transition:background .15s}
.lead-deal-row:hover{background:var(--accent-wash)}
.lead-deal-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.lead-deal-top b{font-size:.9rem;color:var(--ink)}
.lead-deal-addr{font-size:.78rem;color:var(--ink-soft)}
.lead-deal-row .tag{align-self:flex-start}
.lead-deal-price{font-size:.9rem;font-weight:700;color:var(--ink);white-space:nowrap}
.coaching-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}
.coaching-toolbar p{flex:1;font-size:.86rem}
.coaching-card.ready{box-shadow:inset 3px 0 0 var(--green)}
.coaching-onboard-note{display:flex;align-items:flex-start;gap:9px;background:var(--accent-wash);border-radius:10px;padding:12px 15px;font-size:.84rem;color:var(--ink-2);line-height:1.55;margin-bottom:18px}
.coaching-onboard-note svg{width:16px;height:16px;color:var(--accent);flex-shrink:0;margin-top:2px}
.onboard-planned{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--ink)}
.roster-goal{display:flex;align-items:center;gap:10px}
.roster-goal-bar{flex:1;height:6px;max-width:96px;background:var(--line-soft);border-radius:99px;overflow:hidden}
.roster-goal-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent-deep));border-radius:99px}
.roster-goal span{font-size:.82rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.agent-detail-wide{width:920px;max-width:calc(100vw - 48px)}
.agent-detail-grid a{color:var(--brand,#2186c9);text-decoration:none}
.agent-detail-grid a:hover{text-decoration:underline}
.roster-row{cursor:pointer}
.roster-row:hover{background:var(--line-soft)}
.agent-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.agent-detail-grid{columns:2;column-gap:16px;margin-bottom:18px}.agent-detail-grid>*{break-inside:avoid;margin-bottom:10px}
.agent-detail-grid .k{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:2px}
.agent-detail-h{font-size:.95rem;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line-soft)}
.agent-goal{margin-bottom:12px}
.agent-goal-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px}
.agent-goal-name{font-weight:600;color:var(--ink)}
.agent-goal-val{font-size:.82rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.agent-goal .roster-goal-bar{max-width:none;width:100%}
.agent-goal-note{font-size:.74rem;margin-top:4px}
.agent-note-area{width:100%;min-height:110px;resize:vertical;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.9rem}
.inline-email{display:flex;flex-direction:column;gap:10px}
.inline-email-field{display:flex;flex-direction:column;gap:4px}
.inline-email-field .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.inline-email-field input{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.9rem}
.inline-email-err{color:var(--hot)}
.sms-section{display:flex;flex-direction:column;gap:10px}
.sms-thread{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px}
.sms-msg{display:flex;flex-direction:column;max-width:78%}
.sms-msg.out{align-self:flex-end;align-items:flex-end}
.sms-msg.in{align-self:flex-start;align-items:flex-start}
.sms-bubble{padding:8px 12px;border-radius:14px;font-size:.88rem;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.sms-msg.out .sms-bubble{background:var(--accent,#2186c9);color:#fff;border-bottom-right-radius:4px}
.sms-msg.in .sms-bubble{background:var(--line-soft,#eef2f8);color:var(--ink);border-bottom-left-radius:4px}
.sms-time{font-size:.68rem;color:var(--ink-soft);margin-top:2px}
.sms-optout{background:#fff4f4;border:1px solid #f3c9c5;color:#b3372c;border-radius:8px;padding:8px 10px;font-size:.8rem;margin-bottom:6px}
.inline-sms{display:flex;flex-direction:column;gap:10px}
.ai-start{display:flex;flex-direction:column;gap:10px}
.ai-state-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ai-thread{margin-bottom:12px}
.ai-actions{display:flex;gap:8px;flex-wrap:wrap}
.ai-tag-list{display:flex;flex-direction:column;gap:14px}
.ai-tag-row{margin:0}
.ai-tag-row .agent-note-area{margin-top:8px}
.notif-group-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:8px}
.notif-list{display:flex;flex-direction:column;gap:2px}
.notif-list.opportunity{background:#fff8e6;border:1px solid #f0dca0;border-radius:10px;padding:6px 12px}
.notif-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.notif-row:last-child{border-bottom:0}
.notif-row b{display:block;font-size:.92rem}
.notif-row em{display:block;font-style:normal;font-size:.78rem;color:var(--ink-soft);margin-top:1px}
.notif-row select{flex:0 0 auto;min-width:120px}
.sms-testmode{background:#fff8e6;border:1px solid #f0dca0;color:#8a6d1a;border-radius:8px;padding:9px 12px;font-size:.82rem;margin:10px 0 14px}
.sms-webhook-note{margin-top:14px;background:var(--line-soft,#eef2f8);border-radius:8px;padding:10px 12px}
.sms-webhook-note .k{font-size:.74rem;color:var(--ink-soft);margin-bottom:6px;display:block}
.sms-webhook-note input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font:inherit;font-size:.8rem;background:#fff}
.sms-upgrade-card p{line-height:1.55}
.sms-search-row{display:flex;gap:10px;align-items:flex-end}
.sms-number-results{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.sms-number-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.sms-number-row b{font-variant-numeric:tabular-nums;letter-spacing:.02em}

/* ---------- Billing ---------- */
.billing-tier-grid{columns:190px;column-gap:14px;margin-top:6px}.billing-tier-grid>*{break-inside:avoid;margin-bottom:14px}
.billing-tier{position:relative;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}
.billing-tier.is-current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.billing-tier h4{margin:0;font-size:1rem}
.billing-tier-badge{position:absolute;top:12px;right:12px}
.billing-price{font-size:1.35rem;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.billing-tagline{margin:0;color:var(--muted);font-size:.84rem}
.billing-features{list-style:none;margin:4px 0 10px;padding:0;display:flex;flex-direction:column;gap:5px}
.billing-features li{font-size:.83rem;color:var(--ink);padding-left:18px;position:relative}
.billing-features li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:800}
.billing-tier .btn{margin-top:auto}
.billing-addon-list{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.billing-addon-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px}
.lead-cb{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);margin:0;vertical-align:middle}
tr.row-selected{background:var(--accent-wash)}
.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--accent-wash);border:1px solid rgba(179,18,43,.25);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.bulk-count{font-size:.86rem;font-weight:700;color:var(--accent-deep)}
.bulk-actions{display:flex;gap:8px;flex-wrap:wrap}
.bulk-bar .bulk-danger{color:var(--hot)}
.bulk-bar .bulk-danger:hover{background:var(--hot-bg);border-color:var(--hot)}

/* ---------- Campaigns ---------- */
.campaign-list{display:flex;flex-direction:column;gap:12px}
.campaign-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;transition:box-shadow .15s}
.campaign-row:hover{box-shadow:0 6px 20px rgba(15,30,52,.08)}
.campaign-row-name{display:flex;align-items:center;gap:9px;font-size:1rem;color:var(--ink)}
.campaign-row-name b{font-weight:600}
.campaign-row-meta{display:flex;align-items:center;gap:12px;margin-top:7px}
.campaign-dot{width:9px;height:9px;border-radius:99px;background:var(--ink-faint);flex-shrink:0}
.campaign-dot.armed{background:var(--green);box-shadow:0 0 0 3px rgba(22,165,113,.18)}
.campaign-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.campaign-row-actions .bulk-danger{color:var(--hot)}
.campaign-row-actions .bulk-danger:hover{background:var(--hot-bg);border-color:var(--hot)}
.campaign-editor-head{display:flex;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.campaign-editor-title{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}
.campaign-name-input{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--ink);border:none;border-bottom:2px solid transparent;border-radius:0;padding:2px 0;background:none;outline:none;flex:1;min-width:160px}
.campaign-name-input:focus{border-bottom-color:var(--accent)}
.campaign-trigger{margin-bottom:18px}
.campaign-trigger-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.88rem;color:var(--ink-2)}
.campaign-trigger-row .compact-select{min-width:160px}
.campaign-arm-toggle{display:flex;align-items:center;gap:7px;font-size:.84rem;font-weight:500;color:var(--ink-2)}
.campaign-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.campaign-step{padding:14px 16px}
.campaign-step-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.campaign-step-num{width:24px;height:24px;border-radius:99px;background:var(--accent-wash);color:var(--accent-deep);font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.campaign-step-head .compact-select{min-width:120px}
.campaign-step-timing{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}
.campaign-step-window{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-soft);margin:8px 0 4px}
.fr-item{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--bg)}

/* ---------- Lead page preview (full-page layout) ---------- */
.pv-badge-row{margin-bottom:14px}
.lead-pv-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:22px 24px;align-items:center}
.lead-pv-id{display:flex;gap:16px;align-items:center}
.avatar-lg{width:60px;height:60px;font-size:1.2rem;flex-shrink:0}
.lead-pv-name{display:flex;align-items:center;gap:10px}
.lead-pv-name h2{margin:0;font-size:1.4rem}
.lead-pv-contact{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-top:6px}
.lead-pv-contact span{display:inline-flex;align-items:center;gap:6px}
.lead-pv-contact svg{width:15px;height:15px}
.lead-pv-meta{display:flex;gap:36px;flex-wrap:wrap}
.lead-pv-meta>div{display:flex;flex-direction:column;gap:3px}
.lead-pv-meta .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700}
.lead-pv-meta>div>span:last-child{font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:6px}
.lead-pv-meta svg{width:16px;height:16px}
.pv-accent{color:var(--accent)!important}
.lead-pv-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;margin-top:16px;align-items:start}
.lead-pv-side{display:flex;flex-direction:column;gap:18px}
.pv-thread{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}
.pv-msg{display:flex;gap:10px}
.pv-msg .pv-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}
.pv-msg .pv-avatar svg{width:17px;height:17px}
.pv-msg.ai .pv-avatar{background:var(--accent);color:#fff}
.pv-msg.lead .pv-avatar{background:var(--accent-wash);color:var(--accent-deep)}
.pv-msg.lead{flex-direction:row-reverse}
.pv-bubble{max-width:78%;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:9px 13px}
.pv-msg.ai .pv-bubble{background:var(--accent-wash);border-color:transparent}
.pv-msg-head{display:flex;justify-content:space-between;gap:12px;font-size:.78rem;margin-bottom:2px}
.pv-msg-head span{color:var(--ink-faint)}
.pv-bubble p{margin:0;font-size:.92rem}
.pv-complete{display:flex;gap:12px;align-items:center;background:rgba(22,165,113,.1);border:1px solid rgba(22,165,113,.3);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.pv-complete svg{width:22px;height:22px;color:#16a571;flex-shrink:0}
.pv-complete b{display:block}
.pv-complete span{font-size:.85rem;color:var(--muted)}
.pv-full{width:100%}
.pv-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700;margin:14px 0 7px}
.pv-label:first-child{margin-top:0}
.pv-time{display:flex;gap:12px;background:var(--accent-wash);border:1px solid rgba(179,18,43,.25);border-radius:12px;padding:14px}
.pv-star{color:var(--accent);font-size:1.1rem}
.pv-time b{display:block}.pv-time>div>span{display:block;color:var(--muted);font-size:.88rem}
.pv-time em{display:block;color:var(--ink-faint);font-size:.78rem;font-style:normal;margin-top:4px}
.pv-select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}
.pv-loc b{display:block}.pv-loc span{color:var(--muted);font-size:.88rem}
.pv-attendee{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.pv-att-id{display:flex;gap:10px;align-items:center}
.pv-att-id .avatar{width:36px;height:36px;font-size:.72rem}
.pv-att-id b{display:block;font-size:.9rem}.pv-att-id span{color:var(--muted);font-size:.8rem}
.pv-summary{display:flex;flex-direction:column;gap:14px}
.pv-summary>div{display:flex;gap:12px;align-items:flex-start}
.pv-summary>div>span:first-child{color:var(--accent);display:inline-flex}
.pv-summary svg{width:18px;height:18px}
.pv-summary .k{display:block;font-size:.75rem;color:var(--ink-faint);font-weight:700}
.pv-summary>div>div>span:last-child{font-weight:600}
/* keep any icon placed in a heading small (was rendering huge) */
.lead-pv-page h3 svg{width:18px;height:18px;vertical-align:-3px;flex:none}
.lead-pv-section-label{font-weight:800;font-size:1.05rem;margin:26px 0 12px;color:var(--ink)}
/* full lead detail embedded on the page: drop the modal's own head + inner scroll */
.lead-pv-full .detail-modal-head{display:none}
.lead-pv-full .detail-modal-body{max-height:none;overflow:visible}
.lead-pv-back{margin-bottom:14px}
.lead-pv-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.lead-pv-quick .btn{padding:7px 12px}
/* desktop only: pin the Previous / Next lead bar to the bottom, squared off and
   full-bleed from the sidebar edge to the right edge of the screen (cancels the
   .content 30px side padding). */
@media (min-width: 861px){
  .lead-pv-full .detail-modal-foot{position:sticky;bottom:0;z-index:30;margin-left:-30px;margin-right:-30px;border-radius:0;box-shadow:0 -8px 20px rgba(15,30,52,.07)}
}
/* AI / SMS conversation: cap height then scroll (applies in the modal too) */
.ai-thread{max-height:420px;overflow-y:auto}
/* AI conversation as a vertical avatar timeline (robot + lead initials) */
.ai-tl{display:flex;flex-direction:column;padding:2px}
.ai-tl-msg{display:flex;gap:12px;position:relative;padding-bottom:18px}
.ai-tl-msg:not(:last-child)::before{content:"";position:absolute;left:15px;top:34px;bottom:2px;width:2px;background:var(--line)}
.ai-tl-av{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;z-index:1}
.ai-tl-av.ai{background:var(--accent);color:#fff}
.ai-tl-av.agent{background:#16a571;color:#fff}
.ai-tl-av.lead{background:var(--accent-wash);color:var(--accent-deep)}
.ai-tl-av svg{width:18px;height:18px}
.ai-tl-body{flex:1;min-width:0}
.ai-tl-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ai-tl-head b{font-size:.9rem}
.ai-tl-head span{color:var(--ink-faint);font-size:.78rem;white-space:nowrap}
.ai-tl-body p{margin:2px 0 0;font-size:.92rem;color:var(--ink-2)}
/* compact appointment rows on the lead page (time + type, click to open) */
.appt-list{display:flex;flex-direction:column;gap:6px}
.appt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 12px;cursor:pointer;color:var(--ink-2)}
.appt-row:hover{border-color:var(--accent);background:var(--accent-wash)}
.appt-when{font-weight:700;font-size:.85rem;white-space:nowrap}
.appt-type{font-size:.82rem;color:var(--ink-soft);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* working hours modal */
.wh-enable{display:flex;align-items:center;gap:8px;margin:8px 0 14px;font-weight:600}
.wh-enable input[type=checkbox]{width:auto;box-shadow:none;padding:0;margin:0;flex:none}
.wh-grid{display:flex;flex-direction:column;gap:8px}
/* One clean row per day: [☑ Day]  [start] to [end] — times side by side */
.wh-row{display:grid;grid-template-columns:150px 1fr auto 1fr;align-items:center;gap:10px}
.wh-day{display:flex;align-items:center;gap:8px;margin:0;min-width:0}
.wh-day input[type=checkbox]{width:auto;box-shadow:none;padding:0;margin:0;flex:none}
.wh-day span{display:inline;font-size:.9rem;text-transform:none;letter-spacing:normal;color:var(--ink);font-weight:600;margin:0}
.wh-row input[type=time]{width:100%;padding:8px 10px;box-shadow:none;font-size:.85rem}
.wh-row input[type=time]:disabled{opacity:.45}
.wh-to{color:var(--ink-soft);font-size:.85rem;text-align:center}
@media (max-width:520px){.wh-row{grid-template-columns:120px 1fr auto 1fr;gap:6px}.wh-row input[type=time]{padding:7px 6px}}
@media(max-width:1000px){.lead-pv-grid{grid-template-columns:1fr}}
.campaign-step-window .compact-select{min-width:96px}
.campaign-delay-input{width:60px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font:inherit;font-size:.84rem;text-align:center;outline:none}
.campaign-delay-input:focus{border-color:var(--accent)}
.campaign-step-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.campaign-step-actions .icon-btn{width:30px;height:30px}
.campaign-step-subject,.campaign-step-body{width:100%;margin-top:10px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:.86rem;color:var(--ink);outline:none;resize:vertical}
.campaign-step-subject:focus,.campaign-step-body:focus{border-color:var(--accent)}
.campaign-step-note{font-size:.76rem;color:var(--ink-soft);margin:8px 0 0}
.campaign-email-shell{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.campaign-email-shell .email-editor{min-height:120px}
.compose-card{width:min(660px,95vw)}
.compose-shell{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.compose-shell .email-editor{min-height:200px}
.compose-to-row{position:relative}
.compose-to-row .linklike{position:absolute;right:0;top:0;font-size:.74rem}
.compose-cc-field span{font-size:.8rem}
.compose-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.attach-chip{display:inline-flex;align-items:center;gap:7px;background:var(--line-soft);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.8rem;color:var(--ink-2);cursor:pointer}
.inbox-attachments .attach-chip:hover{background:var(--accent-wash);border-color:var(--accent-2)}
.attach-chip svg{width:14px;height:14px}
.attach-size{color:var(--ink-faint);font-size:.72rem}
.attach-chip button{border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:0;display:flex}
.attach-chip button:hover{color:var(--hot)}
.attach-chip button svg{width:13px;height:13px}
.compose-foot{display:flex;align-items:center;gap:12px;margin-top:14px}
.compose-foot .btn[type="submit"]{margin-left:auto}
.compose-attach-btn{cursor:pointer}
.compose-err-inline{margin:0;flex:1}
.inbox-attachments{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.partner-type-filter{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-soft);font-weight:500}
.partner-type-filter .compact-select{min-width:170px}
.admin-tabs{display:flex;gap:4px;background:var(--line-soft);padding:3px;border-radius:10px;width:fit-content;margin-bottom:18px}
.admin-tab{border:none;background:none;padding:8px 16px;border-radius:8px;font:inherit;font-size:.84rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.admin-tab.on{background:var(--panel);color:var(--accent-deep);box-shadow:var(--sh-sm)}
.admin-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.admin-filter{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--ink-soft)}
.admin-filter .compact-select{min-width:140px}
.admin-detail-grid{columns:3;column-gap:14px;margin-bottom:18px}.admin-detail-grid>*{break-inside:avoid;margin-bottom:14px}
.admin-detail-grid .k{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:5px}
.admin-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line-soft)}
.admin-field span{font-size:.85rem;font-weight:500;color:var(--ink-2)}
.admin-field .compact-select{min-width:180px}
.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.admin-assign{margin-top:6px}
.admin-assign-label{display:block;font-size:.78rem;font-weight:600;color:var(--ink-soft);margin-bottom:8px}
.admin-assign-list{display:grid;gap:7px;max-height:180px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.admin-assign-item{display:flex;align-items:center;gap:9px;font-size:.85rem;color:var(--ink-2);cursor:pointer}
.admin-chart-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 12px}
.admin-defaults{max-width:560px}
.admin-defaults textarea{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}
.admin-hint{display:block;font-size:.76rem;color:var(--ink-faint);margin-top:6px}
.imp-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--warm-bg);border:1px solid var(--warm);border-radius:12px;padding:13px 16px;font-size:.86rem;color:var(--ink-2);margin-bottom:20px}
.imp-banner svg{width:17px;height:17px;color:var(--warm);vertical-align:-3px}
.imp-section-title{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:22px 0 12px}
.imp-deal-card{cursor:default}
.imp-deal-stages{display:flex;gap:5px;margin:10px 0 8px}
.imp-stage{width:22px;height:8px;border-radius:99px;border:none;background:var(--line);cursor:pointer;padding:0}
.imp-stage:hover{background:var(--accent-2)}
.imp-stage.on{background:var(--accent-deep)}
.imp-undo{font-size:.74rem}
.imp-bar{position:sticky;top:0;z-index:300;display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(90deg,var(--warm),#c47d16);color:#fff;padding:9px 18px;font-size:.85rem;font-weight:500}
.imp-bar svg{width:16px;height:16px;vertical-align:-3px}
.imp-bar b{font-weight:700}
.imp-bar .btn{background:#fff;color:var(--ink);padding:6px 14px;font-size:.8rem;flex-shrink:0}
.imp-bar .btn:hover{background:#f0f3f8}
.admin-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:99px;background:var(--hot);color:#fff;font-size:.62rem;font-weight:700;margin-left:5px}
.admin-error-detail td{background:var(--line-soft)}
.admin-error-box{padding:6px 4px;font-size:.8rem;color:var(--ink-2);display:grid;gap:6px}
.admin-error-box pre{background:var(--ink);color:#e7ecf5;border-radius:8px;padding:11px 13px;font-size:.74rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:0;max-height:280px}
.admin-account-errors{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.admin-account-errors .k{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--hot);margin-bottom:8px}
.admin-acct-err{font-size:.8rem;color:var(--ink-2);padding:4px 0}
.admin-acct-err span{color:var(--ink-faint);font-size:.72rem;margin-right:6px}
.campaign-add-step{margin-top:2px}
.campaign-state{display:flex;align-items:center;justify-content:space-between;gap:14px}
.campaign-state.opted-out{align-items:flex-start;gap:9px;background:var(--hot-bg);border-radius:10px;padding:11px 14px;font-size:.84rem;color:var(--ink-2);line-height:1.5}
.campaign-state.opted-out svg{width:16px;height:16px;color:var(--hot);flex-shrink:0;margin-top:2px}
.campaign-state-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.campaign-state-name{font-weight:600;color:var(--ink);font-size:.92rem}
.campaign-state-sub{font-size:.8rem;color:var(--ink-soft)}
.campaign-state.paused .campaign-state-sub{color:var(--warm);font-weight:500}
.campaign-state-actions{display:flex;gap:8px;flex-shrink:0}
.enroll-field{display:flex;flex-direction:column;gap:6px}
.enroll-field span{font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.enroll-field select{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:.9rem;color:var(--ink);background:#fff;outline:none}
.enroll-field select:focus{border-color:var(--accent)}
.campaign-optout-row{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}
.linklike{background:none;border:none;color:var(--ink-soft);font:inherit;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}
.linklike:hover{color:var(--hot)}
.email-toolbar [data-email-source]{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700}
.email-toolbar [data-email-source].on{background:var(--ink);color:#fff}
.email-source-area{display:block;width:100%;min-height:160px;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;padding:11px 13px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5;color:var(--ink);background:#fbfcfe;outline:none;resize:vertical}
.email-source-area:focus{border-color:var(--accent)}
.fin-estimate-note{display:flex;align-items:flex-start;gap:8px;margin-top:18px;background:var(--accent-wash);border-radius:9px;padding:10px 13px;font-size:.8rem;color:var(--ink-2)}
.fin-estimate-note svg{width:15px;height:15px;color:var(--accent);flex-shrink:0;margin-top:1px}
.fin-summary{margin-top:20px;border-top:2px solid var(--line);padding-top:6px}
.fin-summary-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:.86rem;color:var(--ink-soft);border-bottom:1px solid var(--line-soft)}
.fin-summary-row:last-child{border-bottom:none}
.fin-summary-row b{font-weight:600;color:var(--ink)}
.fin-summary-row.sub b{color:var(--accent-deep)}
.fin-summary-row.cap{font-size:.78rem;color:var(--ink-faint);font-style:italic}
.fin-summary-row.cap b{color:var(--green);font-style:normal}
.fin-summary-row.cap.hit{color:var(--green);font-weight:600}
.fin-summary-row.total{padding-top:12px;font-size:.95rem}
.fin-summary-row.total span{font-weight:700;color:var(--ink)}
.fin-summary-row.total b{font-family:var(--font-display);font-size:1.4rem;color:var(--green)}

/* Deal detail — tabbed, flat */
.detail-modal [data-deal-detail-content]{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.deal-stage-band{display:flex;flex-wrap:wrap;gap:8px;padding:14px 28px;border-bottom:1px solid var(--line);background:#fff;flex:0 0 auto}
.deal-stage-band.is-lost{opacity:.55}
.deal-tabs{display:flex;gap:2px;padding:0 22px;border-bottom:1px solid var(--line);background:#fff;flex:0 0 auto;overflow-x:auto}
.deal-tab{border:none;background:none;padding:13px 14px;font:inherit;font-size:.86rem;font-weight:600;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.deal-tab.on{color:var(--accent-deep);border-bottom-color:var(--accent)}
.deal-tab:hover{color:var(--ink)}
.deal-body{flex:1 1 auto;overflow-y:auto;min-height:0;padding:24px 28px;background:#fff}
.deal-pane{max-width:760px}
.deal-pane-2col{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:34px;max-width:760px}
.deal-pane-title{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:14px}
.deal-facts .field{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.86rem}
.deal-facts .field:last-child{border-bottom:none}
.deal-facts .field .k{color:var(--ink-soft)}
.deal-facts .field .v{color:var(--ink);font-weight:600;text-align:right;overflow-wrap:anywhere}

/* Property snapshot grid */
.prop-grid{columns:150px;column-gap:16px}.prop-grid>*{break-inside:avoid;margin-bottom:14px}
.prop-grid label{display:grid;gap:6px}
.prop-grid label span{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.prop-grid input{width:100%;background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:.86rem;color:var(--ink);outline:none}
.prop-grid input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}

/* Key dates — simple list + add */
.key-date-list{display:grid;gap:8px;margin-bottom:16px}
.key-date-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.key-date-item.past{border-color:rgba(224,72,61,.28);background:var(--hot-bg)}
.kd-item-label{font-weight:600;font-size:.88rem;color:var(--ink)}
.kd-item-date{font-size:.78rem;color:var(--ink-soft);margin-top:2px}
.kd-add-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f7f9fc}
.kd-add-form input[type=text]{flex:1;min-width:200px}
.kd-add-form input{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:.86rem;color:var(--ink);background:#fff;outline:none}
.kd-add-form input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
/* Key-date editor (multi-add rows + reusable templates) */
.kd-template-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f7f9fc;margin-bottom:14px}
.kd-template-select{flex:1;min-width:180px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:.86rem;color:var(--ink);background:#fff;outline:none}
.kd-template-select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.kd-template-bar .kd-save-tpl{margin-left:auto}
.kd-rows{display:grid;gap:8px;margin-bottom:12px}
.kd-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff}
.kd-row .kd-row-label{flex:1;min-width:0}
.kd-row input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:.86rem;color:var(--ink);background:#fff;outline:none}
.kd-row input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.kd-row .kd-row-date{flex:0 0 auto;width:165px}
.kd-row-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink-soft);cursor:pointer}
.kd-row-btn:hover{border-color:var(--accent-2);color:var(--ink)}
.kd-row-btn.danger:hover{border-color:var(--hot);color:var(--hot)}
.kd-editor-actions{display:flex;align-items:center;gap:12px;margin-top:4px}
.kd-save-note{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:700;color:var(--good,#15803d)}
@media (max-width:560px){.kd-row{flex-wrap:wrap}.kd-row .kd-row-label{flex:1 1 100%}.kd-row .kd-row-date{flex:1 1 auto;width:auto}}

/* Contacts roster */
.contact-roster{display:grid;gap:8px}
.contact-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.contact-card-name{font-weight:600;font-size:.9rem;color:var(--ink)}
.contact-role{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-deep);background:var(--accent-wash);padding:2px 7px;border-radius:5px;margin-left:6px}
.contact-card-meta{font-size:.78rem;color:var(--ink-soft);margin-top:3px;overflow-wrap:anywhere}
.contact-add-panel{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}
.contact-add-existing{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.contact-add-existing .compact-select{width:auto;min-width:170px}
.contact-or{font-size:.72rem;color:var(--ink-faint);margin:16px 0 12px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}

/* Documents */
.doc-list{display:grid;gap:8px;margin-bottom:18px}
.doc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.doc-label{font-weight:600;font-size:.88rem;color:var(--ink)}
.doc-meta{font-size:.76rem;color:var(--ink-soft);margin-top:2px;overflow-wrap:anywhere}
.doc-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}
.doc-upload{display:flex;gap:10px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:16px}
.doc-upload input[type=text]{flex:1;min-width:180px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:.85rem;color:var(--ink);outline:none}
.doc-upload input[type=text]:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.doc-upload input[type=file]{font-size:.84rem;color:var(--ink-soft)}

/* Deal notes */
.deal-note-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;font-size:.88rem;color:var(--ink);resize:vertical;outline:none}
.deal-note-form textarea:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.deal-notes-list{display:grid;gap:10px;margin-top:16px}
.deal-notes-list .note-item.from-lead{background:var(--line-soft)}

/* ---------- Goals ---------- */
.goal-target-input{width:84px;border:1px solid var(--line);border-radius:7px;padding:4px 8px;font:inherit;font-size:1rem;font-weight:600;color:var(--ink);outline:none;vertical-align:baseline}
.goal-target-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.goal-period-select{border:1px solid var(--line);border-radius:7px;padding:4px 8px;font:inherit;font-size:.78rem;font-weight:600;color:var(--ink-2);background:var(--panel);outline:none;cursor:pointer}
.goal-period-select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.dash-goal-top em{font-style:normal;font-weight:500;color:var(--ink-faint);font-size:.72rem;text-transform:capitalize}
.card-head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Goals page — white sheet, refined flat tiles, 3 per row, drag to reorder */
.goals-content{background:#fff;min-height:calc(100vh - 64px);padding:30px 38px 48px}
.goal-disclaimer{display:flex;align-items:flex-start;gap:9px;background:var(--warm-bg);border:1px solid rgba(214,138,30,.18);border-radius:11px;padding:12px 15px;font-size:.83rem;color:var(--ink-2);margin-bottom:26px}
.goal-disclaimer svg{width:17px;height:17px;color:var(--warm);flex-shrink:0;margin-top:1px}
.goals-sheet{max-width:1200px}
.goals-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.goals-sheet-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;letter-spacing:-.02em;margin-bottom:3px}
/* Sectioned goals (Monthly / Quarterly / Yearly) */
.goals-section{margin-bottom:16px}
.goal-instance-select{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:inherit;font-size:.86rem;font-weight:600;color:var(--ink);background:#fff;outline:none;cursor:pointer}
.goal-instance-select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.goal-rows{display:grid;gap:10px}
.goal-row{display:grid;grid-template-columns:180px 1fr 70px;align-items:center;gap:14px}
.goal-row-name{font-weight:600;font-size:.9rem;color:var(--ink)}
.goal-row-nums{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:1.02rem;font-weight:600;color:var(--ink);margin-bottom:6px;flex-wrap:wrap}
.goal-row-nums .goal-of{font-family:var(--font-ui);font-size:.8rem;font-weight:500;color:var(--ink-soft)}
.goal-row-nums .goal-unit{color:var(--ink-soft)}
.goal-row-nums .goal-target-input{width:96px;border:none;border-bottom:2px solid var(--line);border-radius:0;padding:0 2px 2px;font:inherit;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink-soft);background:none;outline:none}
.goal-row-nums .goal-target-input:focus{border-bottom-color:var(--accent-2)}
.goal-row-pct{font-size:.8rem;font-weight:700;color:var(--ink-soft);text-align:right}
@media (max-width:600px){.goal-row{grid-template-columns:1fr;gap:4px}.goal-row-pct{text-align:left}}
.goals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px}
.goal-tile{position:relative;padding:16px 18px;border-radius:14px;cursor:grab;transition:background .15s,box-shadow .15s}
.goal-tile:hover{background:#f7f9fc}
.goal-tile.dragging{opacity:.4}
.goal-tile.drag-over{box-shadow:inset 3px 0 0 var(--accent)}
.goal-tile-remove{position:absolute;top:10px;right:10px;width:24px;height:24px;border:none;background:none;color:var(--ink-faint);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.goal-tile-remove svg{width:14px;height:14px}
.goal-tile:hover .goal-tile-remove{opacity:1}
.goal-tile-remove:hover{color:var(--hot);background:var(--hot-bg)}
.goal-tile-name{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding-right:22px}
.goal-tile-nums{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:10px 0 12px;font-family:var(--font-display);font-size:1.08rem;font-weight:600;color:var(--ink);line-height:1}
.goal-unit{font-size:.74rem;color:var(--ink-soft)}
.goal-of{font-family:var(--font-ui);font-size:.78rem;font-weight:500;color:var(--ink-faint)}
.goal-cur-input,.goal-tile-nums .goal-target-input{width:92px;border:none;border-bottom:2px solid var(--line);border-radius:0;padding:0 2px 2px;font:inherit;font-family:var(--font-display);font-size:1.08rem;font-weight:600;background:none;outline:none;box-shadow:none}
.goal-cur-input{color:var(--ink)}
.goal-tile-nums .goal-target-input{color:var(--ink-soft)}
.goal-cur-input:focus,.goal-tile-nums .goal-target-input:focus{border-bottom-color:var(--accent);box-shadow:none}
.goals-sheet .bar{height:7px;background:var(--line-soft);border-radius:99px;overflow:hidden}
.goals-sheet .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-2),var(--accent-deep));transition:width .3s ease}
.goals-sheet .bar.done i{background:linear-gradient(90deg,#1bbd86,#12996b)}
.goal-tile-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.goal-pct{font-size:.78rem;font-weight:700;color:var(--accent-deep)}
.goal-tile .bar.done ~ .goal-tile-foot .goal-pct{color:var(--green)}
.goal-period-fixed{font-size:.76rem;color:var(--ink-soft);font-weight:600}
.goal-period-select{font-size:.76rem}
.goal-end{font-size:.72rem;color:var(--ink-faint);margin-top:9px}
.goal-reminder{display:flex;align-items:center;gap:11px;background:var(--accent-wash);border:1px solid rgba(179,18,43,.2);border-radius:12px;padding:13px 16px;font-size:.88rem;color:var(--ink);margin-bottom:14px}
.goal-reminder svg{width:18px;height:18px;color:var(--accent);flex-shrink:0}
.goal-reminder-link{margin-left:auto;font-weight:600;color:var(--accent-deep);font-size:.82rem;white-space:nowrap}
.dash-goals{margin-bottom:20px}
.dash-goals-link{font-size:.78rem;font-weight:600}
.dash-goals-empty{margin-bottom:20px}
.dash-goal-grid{columns:180px;column-gap:22px}.dash-goal-grid>*{break-inside:avoid;margin-bottom:18px}
.dash-goal-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:7px}
.dash-goal-top b{font-family:var(--font-display);color:var(--accent-deep)}
.dash-goal-meta{font-size:.74rem;color:var(--ink-soft);margin-top:6px}
.dash-yoy{margin-bottom:20px}
.yoy-grid{columns:190px;column-gap:22px}.yoy-grid>*{break-inside:avoid;margin-bottom:18px}
.yoy-metric{border-left:2px solid var(--line);padding-left:14px}
.yoy-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}
.yoy-values{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:6px}
.yoy-this{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--ink);line-height:1}
.yoy-vs{font-size:.72rem;color:var(--ink-faint)}
.yoy-last{font-size:.82rem;color:var(--ink-soft)}
.yoy-delta{font-size:.74rem;font-weight:600;margin-top:7px}
.yoy-delta.up{color:var(--green)}
.yoy-delta.down{color:var(--hot)}

/* ---------- Reports ---------- */
.report-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:24px;align-items:start}
.report-nav{display:grid;gap:2px;position:sticky;top:80px}
.report-nav-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);padding:6px 10px 8px}
.report-nav a{display:block;padding:9px 11px;border-radius:9px;font-size:.86rem;font-weight:500;color:var(--ink-2);cursor:pointer}
.report-nav a:hover{background:var(--line-soft)}
.report-nav a.active{background:var(--accent-wash);color:var(--accent-deep);font-weight:600}
.report-nav-note{font-size:.74rem;color:var(--ink-faint);padding:14px 10px;line-height:1.5;border-top:1px solid var(--line);margin-top:8px}
.report-main{min-width:0}
.report-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.report-presets{display:flex;gap:3px;flex-wrap:wrap;background:var(--line-soft);padding:3px;border-radius:10px}
.report-preset{border:none;background:none;padding:6px 11px;border-radius:8px;font:inherit;font-size:.8rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.report-preset.on{background:var(--panel);color:var(--accent-deep);box-shadow:var(--sh-sm)}
.report-custom{display:flex;align-items:center;gap:6px}
.report-custom input{border:1px solid var(--line);border-radius:8px;padding:6px 9px;font:inherit;font-size:.82rem;color:var(--ink);outline:none}
.report-compare{display:flex;align-items:center;gap:7px;font-size:.82rem;color:var(--ink-2);font-weight:500;white-space:nowrap}
.report-filter{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--ink-soft)}
.report-filter .compact-select{width:auto;min-width:120px}
.report-exports{display:flex;gap:8px;margin-left:auto}
.report-range{font-size:.78rem;color:var(--ink-faint);margin-bottom:18px}
.report-summary{columns:160px;column-gap:14px;margin-bottom:18px}.report-summary>*{break-inside:avoid;margin-bottom:14px}
.report-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 17px;box-shadow:var(--sh-sm)}
.report-card-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
.report-card-value{font-family:var(--font-display);font-size:1.7rem;font-weight:600;color:var(--ink);margin-top:5px;line-height:1.05}
.report-delta{font-size:.74rem;font-weight:600;margin-top:6px;display:inline-block}
.report-delta.up{color:var(--green)}
.report-delta.down{color:var(--hot)}
.report-chart{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--sh-sm);margin-bottom:18px}
.report-svg{width:100%;height:auto;display:block}
.report-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-sm);overflow:hidden}
.report-table{width:100%;border-collapse:collapse;font-size:.85rem}
.report-table th{text-align:left;padding:11px 14px;background:var(--line-soft);font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line);white-space:nowrap}
.report-table th.sortable{cursor:pointer;user-select:none}
.report-table th.sortable:hover{color:var(--ink)}
.report-table th.sort-asc::after{content:' ▲';font-size:.7em}
.report-table th.sort-desc::after{content:' ▼';font-size:.7em}
.report-table td{padding:10px 14px;border-bottom:1px solid var(--line-soft);color:var(--ink-2)}
.report-table tr:last-child td{border-bottom:none}
.report-table .td-currency,.report-table .td-number,.report-table .td-percent{text-align:right;font-variant-numeric:tabular-nums}
.report-nav a.planned{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink-soft)}
.report-nav-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--warm);background:var(--warm-bg);padding:2px 6px;border-radius:99px;white-space:nowrap}
.report-placeholder{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-sm);padding:26px 28px;max-width:640px}
.report-placeholder-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.report-placeholder-head h2{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--ink);margin:0}
.report-placeholder-desc{font-size:.92rem;color:var(--ink-2);line-height:1.55;margin-bottom:20px}
.report-placeholder-section h4{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 8px}
.report-placeholder-section ul{margin:0 0 20px;padding-left:18px;display:grid;gap:6px}
.report-placeholder-section li{font-size:.88rem;color:var(--ink-2);line-height:1.45}
.report-placeholder-needs{display:flex;align-items:flex-start;gap:10px;background:var(--warm-bg);border:1px solid rgba(214,138,30,.18);border-radius:11px;padding:13px 15px;font-size:.85rem;color:var(--ink-2);line-height:1.5}
.report-placeholder-needs svg{width:17px;height:17px;color:var(--warm);flex-shrink:0;margin-top:1px}

/* ---------- Notifications ---------- */
.notif{position:relative}
.notif-bell{position:relative}
.notif-badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--hot);color:#fff;font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--panel);box-sizing:content-box}
.notif-panel{position:absolute;top:calc(100% + 9px);right:0;width:332px;max-width:88vw;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(15,30,52,.16);z-index:60;overflow:hidden}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.notif-clear{border:none;background:none;color:var(--accent-deep);font:inherit;font-size:.72rem;font-weight:600;text-transform:none;letter-spacing:0;cursor:pointer}
.notif-list{max-height:380px;overflow-y:auto}
.notif-item{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line-soft);cursor:pointer}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--line-soft)}
.notif-ic{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--accent-wash);color:var(--accent)}
.notif-item.tone-hot .notif-ic{background:var(--hot-bg);color:var(--hot)}
.notif-ic svg{width:16px;height:16px}
.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.notif-label{font-size:.85rem;font-weight:500;color:var(--ink);line-height:1.35}
.notif-detail{font-size:.74rem;color:var(--ink-soft)}
.notif-x{flex-shrink:0;border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:2px;border-radius:6px;opacity:0;transition:opacity .15s}
.notif-item:hover .notif-x{opacity:1}
.notif-x:hover{color:var(--hot);background:var(--hot-bg)}
.notif-x svg{width:14px;height:14px}
.notif-empty{padding:26px 16px;text-align:center;font-size:.84rem;color:var(--ink-soft)}

/* ---------- Mobile app shell ---------- */
.mobile-appbar,.mobile-bottom-nav,.mobile-scrim{display:none}

@media (max-width: 860px){
  html,body,#app{min-height:100%;height:auto}
  body{font-size:14px;background:var(--bg);padding-top:64px}
  body.mobile-nav-open{overflow:hidden}

  .mobile-appbar{
    position:fixed;top:0;left:0;right:0;z-index:95;height:64px;
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:10px 14px calc(10px + env(safe-area-inset-top));
    background:rgba(255,255,255,.92);backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);box-shadow:var(--sh-sm)
  }
  .mobile-app-title{min-width:0;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink)}
  .mobile-app-title img{width:118px;height:auto;display:block}
  .mobile-app-title span{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-menu-btn{
    width:42px;height:42px;border:1px solid var(--line);border-radius:14px;
    background:var(--panel);color:var(--ink-2);display:flex;align-items:center;justify-content:center;
    box-shadow:var(--sh-sm);cursor:pointer;flex-shrink:0
  }
  .mobile-menu-btn svg{width:20px;height:20px}
  .mobile-scrim{position:fixed;inset:0;z-index:88;background:rgba(15,30,52,.38)}
  body.mobile-nav-open .mobile-scrim{display:block}

  .app{display:block;min-width:0;min-height:auto}
  .main{display:block;min-height:calc(100vh - 64px);padding-bottom:82px}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;z-index:96;width:min(86vw,320px);height:auto;
    transform:translateX(-104%);transition:transform .22s ease;box-shadow:var(--sh-lg)
  }
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  .sidebar .brand{padding-top:24px}
  .sidebar-logo{width:178px}

  .mobile-bottom-nav{
    position:fixed;left:10px;right:10px;bottom:10px;z-index:86;
    display:grid;grid-template-columns:repeat(5,1fr);gap:4px;
    padding:7px;border:1px solid var(--line);border-radius:22px;
    background:rgba(255,255,255,.94);backdrop-filter:blur(16px);box-shadow:var(--sh-lg)
  }
  .mobile-bottom-nav a{
    min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--ink-soft);font-size:.66rem;font-weight:700;border-radius:16px;padding:8px 4px
  }
  .mobile-bottom-nav a svg{width:19px;height:19px;stroke-width:1.9}
  .mobile-bottom-nav a.active{background:var(--accent-wash);color:var(--accent-deep)}

  .topbar{
    position:relative;top:auto;z-index:1;margin:12px 12px 0;padding:14px;border:1px solid var(--line);
    border-radius:18px;background:rgba(255,255,255,.92);box-shadow:var(--sh-sm);
    align-items:flex-start;gap:14px;flex-direction:column
  }
  .topbar h1{font-size:1.42rem}
  .top-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px}
  .top-actions .searchbox{grid-column:1 / -1}
  .top-actions .searchbox input{width:100%;min-width:0}
  .top-actions .icon-btn{display:none}
  .top-actions .btn{width:100%;justify-content:center}

  .content{padding:14px 12px 96px}
  .page-grid,.two-col,.goal-grid,.detail-grid,.form-builder,.deal-pane-2col,.report-layout{display:grid;grid-template-columns:1fr;gap:14px}
  .report-nav{position:static;display:flex;flex-wrap:wrap;gap:6px}
  .report-nav-title,.report-nav-note{display:none}
  .report-exports{margin-left:0}
  .goals-grid{grid-template-columns:1fr 1fr;gap:18px 20px}
  .forms-head{flex-direction:column;align-items:stretch}
  .deal-stage-band,.deal-body{padding-left:16px;padding-right:16px}
  .deal-tabs{padding-left:10px;padding-right:10px}
  .form-builder-preview{position:static}
  .stats{columns:2;column-gap:10px;margin-bottom:14px}
  .stat{padding:14px;border-radius:16px}
  .stat .n{font-size:1.55rem}
  .card{border-radius:18px}
  .card-head{padding:15px 16px}
  .card-pad{padding:16px}
  .toolbar{overflow-x:auto;padding-bottom:2px;gap:8px;align-items:stretch}
  .toolbar::-webkit-scrollbar{display:none}
  .segment,.pill-btn{flex-shrink:0}
  .segment button{padding:8px 12px;white-space:nowrap}
  .column-panel{position:fixed;left:12px;right:12px;top:118px;width:auto;max-height:65vh;overflow:auto}

  .table-card{background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible}
  table,thead,tbody,tr,td{display:block;width:100%}
  thead{display:none}
  tbody{display:grid;gap:10px}
  tbody tr{
    background:var(--panel);border:1px solid var(--line);border-radius:18px;
    box-shadow:var(--sh-sm);overflow:hidden
  }
  tbody tr:hover{background:var(--panel)}
  tbody td{
    height:auto;min-height:0;padding:11px 14px;border-bottom:1px solid var(--line-soft);
    display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:right
  }
  tbody td:last-child{border-bottom:none}
  tbody td::before{
    content:attr(data-label);font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;
    color:var(--ink-soft);font-weight:700;text-align:left;flex:0 0 36%
  }
  tbody td:first-child::before{display:none}
  tbody td:first-child{justify-content:flex-start;text-align:left}
  tbody td:empty{display:none}
  .comm-cell{gap:13px;justify-content:flex-end}
  .row-actions{justify-content:flex-end}
  .tfoot{display:none}

  .modal-backdrop{align-items:flex-end;padding:0;background:rgba(15,30,52,.42)}
  .modal-card,.small-modal{
    width:100%;max-height:calc(100vh - 72px);border-radius:22px 22px 0 0;border-bottom:none
  }
  .modal-head{position:sticky;top:0;z-index:2;padding:18px 18px}
  .lead-form{padding:0 18px 22px}
  .form-grid{grid-template-columns:1fr;gap:12px}
  .span-2{grid-column:auto}
  .family-head,.modal-actions{align-items:stretch;flex-direction:column}
  .family-head .pill-btn,.modal-actions .btn{width:100%;justify-content:center}

  .detail-modal-backdrop{padding:0;align-items:stretch}
  .detail-modal{width:100%;height:100vh;max-height:none;border-radius:0;border:none}
  .detail-modal-head{padding:16px;gap:12px;align-items:flex-start;flex-wrap:wrap}
  .detail-modal-head h2{font-size:1.55rem}
  .detail-head-actions{width:100%;justify-content:flex-end}
  .detail-head-actions .btn{padding:9px 11px}
  .detail-modal-body{grid-template-columns:1fr;padding:12px;gap:12px}
  .detail-main,.detail-side{gap:12px}
  .detail-modal .detail-hero{flex-direction:column;align-items:flex-start;gap:12px}
  .detail-hero-side{width:100%;justify-content:space-between}
  .detail-quick .qbtn{flex:1;justify-content:center}
  .detail-metrics{grid-template-columns:repeat(3,1fr);gap:8px}
  .detail-metrics div{padding:10px 11px}
  .detail-modal-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  .detail-modal-foot .btn{padding:10px 12px}

  .feature-list{gap:10px}
  .feature-item{display:grid;gap:12px;padding:14px;border-radius:16px}
  .feature-item[style]{margin-left:0!important}
  .feature-item.nested{margin-left:18px!important}
  .feature-actions{justify-content:space-between;flex-wrap:wrap}
  .feature-item.nested::before{left:-12px}
  .settings-layout{grid-template-columns:1fr;gap:12px}
  .settings-subnav{position:static;display:flex;overflow-x:auto;padding:10px}
  .settings-subnav-title{display:none}
  .settings-subnav a{white-space:nowrap;flex-shrink:0}
  .settings-toggle{align-items:flex-start}
  .calendar-toolbar{display:grid;gap:14px}
  .calendar-controls{justify-content:flex-start}
  .calendar-grid,.calendar-weekdays{grid-template-columns:1fr}
  .calendar-weekdays{display:none}
  .calendar-day{min-height:96px;border-right:none}
  .calendar-agenda-day{grid-template-columns:1fr;gap:8px}
  .email-provider-card{grid-template-columns:1fr;gap:14px}
  .email-provider-actions .btn{width:100%;justify-content:center}
  .email-inbox-shell{grid-template-columns:1fr;min-height:auto}
  .email-folder-rail{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line);padding:10px}
  .email-folder{white-space:nowrap;flex-shrink:0}
  .email-list-panel{border-right:none;border-bottom:1px solid var(--line)}
  .email-list-toolbar{overflow-x:auto}
  .inbox-list{max-height:420px}
  .email-reading-panel{padding:14px}
  .inbox-detail-head{display:grid}
  .inbox-detail-actions{justify-content:flex-start}

  .login-page{min-width:0;padding:20px}
  .login-card{width:min(100%,430px);padding:24px}
  .login-brand .brand-logo{width:280px}
  .password-modal-backdrop{padding:20px}
}

@media (max-width: 430px){
  .stats{columns:1}
  .mobile-bottom-nav{left:8px;right:8px;bottom:8px}
  .mobile-bottom-nav a{font-size:.61rem;padding:7px 2px}
  .mobile-app-title img{width:104px}
  .top-actions{grid-template-columns:1fr}
  tbody td{display:block;text-align:left}
  tbody td::before{display:block;margin-bottom:4px}
}

/* ── AI conversation rating (agent side) ───────────────────────────── */
.ai-rate{margin-top:10px;padding-top:10px;border-top:1px solid var(--border,#e5e7eb)}
.ai-rate-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ai-rate-label{font-size:.82rem;font-weight:600;color:var(--muted,#6b7280)}
.ai-rate-stars{display:inline-flex;gap:2px}
.ai-star{background:none;border:none;cursor:pointer;font-size:1.3rem;line-height:1;color:#d1d5db;padding:1px 2px;transition:color .12s}
.ai-star:hover,.ai-star.on{color:#f5b301}
.ai-rate-more{margin-top:8px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ai-rate-more textarea{width:100%;border:1px solid var(--border,#e5e7eb);border-radius:8px;padding:8px;font:inherit;resize:vertical}
.ai-rate-done{margin-top:10px;padding-top:10px;border-top:1px solid var(--border,#e5e7eb);font-size:.85rem;color:#16a571;font-weight:600}

/* ── AI Feedback (admin review) ────────────────────────────────────── */
.ai-fb-card{margin-top:12px}
.ai-fb-card.reviewed{opacity:.68}
.ai-fb-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ai-fb-stars{color:#f5b301;letter-spacing:2px;font-size:1.05rem}
.ai-fb-note{font-style:italic;color:var(--muted,#6b7280);margin-bottom:10px}
.ai-fb-thread{display:flex;flex-direction:column;gap:6px;background:var(--surface-2,#f9fafb);border:1px solid var(--border,#eef0f3);border-radius:10px;padding:10px}
.ai-fb-msg{display:flex;gap:8px;font-size:.86rem;line-height:1.4}
.ai-fb-msg .ai-fb-who{flex:0 0 46px;font-weight:700;font-size:.7rem;text-transform:uppercase;color:#9ca3af;padding-top:2px}
.ai-fb-msg.ai .ai-fb-who{color:#b3122b}
.ai-fb-msg.lead .ai-fb-who{color:#1f2937}
.ai-fb-msg.agent .ai-fb-who{color:#16a571}
.ai-fb-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}

/* ── AI Teaching (admin knowledge base) ────────────────────────────── */
.ai-teach-add{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-top:10px}
.ai-teach-add textarea{width:100%;border:1px solid var(--border,#e5e7eb);border-radius:8px;padding:8px;font:inherit;resize:vertical}
.ai-teach-card{margin-top:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.ai-teach-card.off{opacity:.55}
.ai-teach-body{flex:1;font-size:.9rem;line-height:1.45}
.ai-teach-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}

/* Task color dot (My Tasks rows) */
.my-task-color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;align-self:center;margin-right:2px}

/* Cold-load skeleton spinner (paints instantly before data loads) */
.loading-screen{display:flex;align-items:center;justify-content:center;min-height:65vh}
.cs-spinner{width:40px;height:40px;border:3px solid var(--line,#e3e9f2);border-top-color:var(--accent,#b3122b);border-radius:50%;animation:cs-spin .7s linear infinite}
@keyframes cs-spin{to{transform:rotate(360deg)}}

/* ── Help & Support (sidebar manual) ───────────────────────────────── */
.help-layout{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}
.help-nav{position:sticky;top:16px;max-height:calc(100vh - 40px);overflow-y:auto;padding-right:4px}
.help-nav-group{margin-bottom:14px}
.help-nav-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#8190a8);padding:0 8px 6px}
.help-nav-item{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font:inherit;font-size:.9rem;color:var(--ink,#28324a);padding:8px 10px;border-radius:8px;line-height:1.35}
.help-nav-item:hover{background:var(--surface-2,#f4f6fa)}
.help-nav-item.on{background:var(--accent,#b3122b);color:#fff;font-weight:600}
.help-article{line-height:1.6}
.help-article h3{margin:0 0 12px;font-size:1.25rem}
.help-article h4{margin:20px 0 8px;font-size:1rem}
.help-article p{margin:0 0 12px;color:var(--ink,#28324a)}
.help-article ul,.help-article ol{margin:0 0 12px;padding-left:22px}
.help-article li{margin-bottom:7px;line-height:1.55}
@media (max-width:820px){
  .help-layout{grid-template-columns:1fr}
  .help-nav{position:static;max-height:none;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
  .help-nav-group{margin-bottom:6px;width:100%}
  .help-nav-item{display:inline-block;width:auto;border:1px solid var(--border,#e5e7eb)}
}

/* ============================ Integrations marketplace ====================== */
.intg-intro{color:var(--ink-soft);font-size:.9rem;max-width:640px;margin-bottom:22px;line-height:1.5}
.intg-grid{columns:240px;column-gap:18px}.intg-grid>*{break-inside:avoid;margin-bottom:18px}
.intg-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:20px;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s,border-color .15s}
.intg-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px);border-color:#d6deea}
.intg-logo{width:64px;height:64px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.3rem;letter-spacing:-.02em;margin-bottom:14px;flex:0 0 auto}
.intg-logo.has-img{flex:1 1 auto;width:auto;height:72px;background:none;border:0;padding:0;border-radius:0}
.intg-logo.has-img img{width:100%;height:100%;object-fit:contain;object-position:left center;display:block}
.intg-name{font-weight:600;font-size:.98rem;color:var(--ink);letter-spacing:-.01em}
.intg-cat{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-top:3px}
.intg-blurb{color:var(--ink-soft);font-size:.83rem;line-height:1.45;margin:10px 0 16px}
.intg-card-foot{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.intg-connect-btn{align-self:flex-start}
.intg-signup-btn{white-space:nowrap}
.intg-signup{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:.86rem;color:var(--ink-soft);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* detail / instructions */
.intg-detail{padding:26px;margin-top:16px;max-width:720px}
.intg-detail-head{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.intg-detail-head h2{font-size:1.3rem;letter-spacing:-.02em;color:var(--ink);margin:0}
.intg-h3{font-size:.95rem;color:var(--ink);margin:22px 0 12px;letter-spacing:-.01em}
.intg-copy{margin-bottom:16px}
.intg-copy-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:6px}
.intg-copy-row{display:flex;align-items:stretch;gap:8px}
.intg-copy-row code{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;background:var(--accent-wash);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;color:var(--accent-deep);display:flex;align-items:center}
.intg-copy-row .btn{flex:0 0 auto}
.intg-steps{margin:0;padding-left:20px;display:grid;gap:9px}
.intg-steps li{color:var(--ink-2);font-size:.87rem;line-height:1.5}
.intg-note{margin-top:16px;background:var(--line-soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--ink-soft);font-size:.82rem;line-height:1.45}
/* marketplace: category sub-nav tabs + status badges */
.intg-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:2px}
.intg-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px 10px;font:inherit;font-size:.84rem;font-weight:600;color:var(--ink-soft);cursor:pointer;letter-spacing:-.01em;transition:color .15s,border-color .15s;margin-bottom:-2px}
.intg-tab:hover{color:var(--ink-2)}
.intg-tab.active{color:var(--accent-deep);border-bottom-color:var(--accent-deep)}
/* Mobile: keep tab bars (Admin, Marketing, Tools) on one swipeable row instead
   of overflowing off-screen (Admin) or wrapping into a messy stack (Marketing/Tools). */
@media (max-width:640px){
  .admin-tabs,.intg-tabs{flex-wrap:nowrap;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .admin-tabs::-webkit-scrollbar,.intg-tabs::-webkit-scrollbar{display:none}
  .admin-tabs{width:auto}
  .admin-tab,.intg-tab{flex:0 0 auto;white-space:nowrap}
}
.intg-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:10px}
.intg-card-top .intg-logo{margin-bottom:0}
.intg-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;white-space:nowrap}
.intg-badge.soon{background:#fff4e5;color:#b26a00}
.intg-badge.live{background:#e7f6ec;color:#1b7f43}
.intg-detail-head h2 .intg-badge{vertical-align:middle;margin-left:8px}
.intg-connected{display:inline-flex;align-items:center;gap:8px;background:#e7f6ec;color:#1b7f43;border:1px solid #bfe6cc;border-radius:10px;padding:11px 14px;font-size:.86rem;font-weight:600;margin-bottom:14px}
.intg-via{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font-size:.72rem;font-weight:600;color:#b26a00;background:#fff4e5;border-radius:6px;padding:3px 8px;margin:-4px 0 12px}
.intg-via::before{content:"\26A1"}
.intg-keyform{display:flex;flex-direction:column;gap:10px;max-width:460px;margin-top:6px}
.intg-input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 13px;font-size:.86rem;font-family:inherit;color:var(--ink);box-shadow:var(--sh-sm);outline:none}
.intg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.intg-keyform .btn{align-self:flex-start}

/* Official "Sign in with Microsoft" button (marketplace connect CTA) */
.intg-ms-btn{background:none;border:0;padding:0;margin:0;cursor:pointer;line-height:0;display:inline-block}
.intg-ms-btn img{height:41px;display:block}
.intg-ms-btn:hover{opacity:.9}

.intg-card-foot .intg-ms-btn{width:100%;flex:1 1 100%}
.intg-card-foot .intg-ms-btn img{width:100%;height:auto;max-height:44px}

.intg-card-foot .btn{box-sizing:border-box;height:38px;line-height:1;border:1px solid transparent}
.intg-card-foot .btn.ghost{border-color:var(--line)}
.intg-connected-pill{display:inline-flex;align-items:center;gap:6px;color:#1b7f43;font-weight:700;font-size:.85rem}
.intg-connected-pill svg{width:16px;height:16px;stroke-width:2.4}
.intg-manage-link{background:none;border:0;color:var(--ink-faint);font:inherit;font-size:.8rem;cursor:pointer;text-decoration:underline;padding:0}
.intg-manage-link:hover{color:var(--ink)}
.intg-logo.glyph{flex:0 0 auto;width:auto;height:72px;background:none;border:0;display:flex;align-items:center;justify-content:flex-start}
.intg-logo.glyph svg{width:54px;height:54px;stroke-width:1.5}

.intg-help-link{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.intg-help-link a{color:var(--accent-deep);font-size:.85rem;text-decoration:none;font-weight:600}
.intg-help-link a:hover{text-decoration:underline}

.intg-desc{font-size:.95rem;color:var(--ink-2);line-height:1.5;margin:4px 0 8px}

/* ---- Dashboard: widget board (Checkfront-style) ---- */
.dw-add-wrap{position:relative}
.dw-addbtn{display:inline-flex;align-items:center;gap:8px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 15px;font-size:.83rem;font-weight:600;cursor:pointer;transition:all .15s}
.dw-addbtn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}
.dw-addbtn svg{width:16px;height:16px}
.dw-add-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(15,30,52,.16);padding:6px;display:grid;gap:2px}
.dw-add-menu[hidden]{display:none}
.dw-add-menu button{text-align:left;background:none;border:0;border-radius:8px;padding:9px 11px;font-size:.85rem;color:var(--ink);cursor:pointer;font-weight:500}
.dw-add-menu button:hover{background:var(--accent-wash);color:var(--accent)}

/* stretch, not start: a 247px card beside a 442px one left a 200px hole
   under it. dense backfills any gap left when a widget is hidden, so removing
   one closes the space instead of leaving a notch. */
.dw-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;align-items:stretch;grid-auto-flow:row dense}
.dw{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);display:flex;flex-direction:column;overflow:hidden;min-width:0}
.dw-lg{grid-column:span 3}
.dw-md{grid-column:span 2}
.dw-ghost{opacity:.45}
/* Wraps rather than truncates. "Customer Calendar" did not fit beside its
   month arrows once that widget became a third of a row, and came out as
   "Customer ...". The month nav drops to its own line instead. */
.dw-head{display:flex;align-items:center;justify-content:space-between;gap:10px 12px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:grab;flex-wrap:wrap}
.dw-head:active{cursor:grabbing}
.dw-head h3{font-size:.98rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}
.dw-head-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.dw-tools{display:flex;align-items:center;gap:2px}
.dw-ico{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;border-radius:7px;color:var(--ink-faint);cursor:pointer;font-size:1.35rem;line-height:1;text-decoration:none}
.dw-ico:hover{background:var(--accent-wash);color:var(--accent)}
.dw-ico svg{width:15px;height:15px}
.dw-nav{display:flex;align-items:center;gap:4px}
.dw-nav button{width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink-soft);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.dw-nav button:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}
.dw-nav-label{font-size:.8rem;font-weight:700;color:var(--ink);min-width:104px;text-align:center}
.dw-body{padding:14px 16px;flex:1;min-width:0}
/* Says what it needs to and stops. It still centres in whatever height the
   row turns out to be, so a short card beside the calendar looks deliberate
   rather than half-filled. */
.dw-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:18px 16px;min-height:104px;height:100%;color:var(--ink-soft)}
.dw-empty svg{width:26px;height:26px;opacity:.45}
.dw-empty p{font-weight:700;color:var(--ink);margin:0;font-size:.9rem}
.dw-empty span{font-size:.8rem;max-width:260px}

/* segmented toggle (Product / Category) + tabs (New / Starting / Upcoming) */
.dw-seg{display:inline-flex;padding:3px;background:var(--line-soft);border-radius:9px;margin-bottom:6px}
.dw-seg-btn{border:0;background:none;padding:6px 14px;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.dw-seg-btn.on{background:var(--panel);color:var(--accent);box-shadow:var(--sh-sm)}
.dw-tabs{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.dw-tab{border:1px solid var(--line);background:var(--panel);padding:6px 12px;border-radius:8px;font-size:.8rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.dw-tab.on{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}

/* booking calendar widget */
.dwc-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line-soft);margin-bottom:4px}
.dwc-dow span{text-align:center;font-size:.68rem;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;padding:6px 0}
.dwc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dwc-day{position:relative;min-height:44px;border-radius:8px;padding:5px 6px;display:flex;align-items:flex-start;justify-content:flex-end;font-size:.82rem;font-weight:600;color:var(--ink)}
.dwc-day:hover{background:var(--accent-wash)}
.dwc-day.muted{color:var(--ink-faint)}
.dwc-day.today{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent);font-weight:800}
/* The count sits centred along the bottom of the day square; the date keeps its
   own corner. translateX(-50%) holds the centre whatever width the number grows to. */
.dwc-badge{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:800;line-height:18px;text-align:center}

@media(max-width:1250px){.dw-grid{grid-template-columns:repeat(2,1fr)}.dw-lg,.dw-md{grid-column:span 1}}
@media(max-width:820px){.dw-grid{grid-template-columns:1fr}.dw-lg,.dw-md{grid-column:span 1}}

/* ---- Events: pipeline board ---- */
.ev-loading{padding:24px}
.ev-board{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:10px}
.ev-col{flex:0 0 262px;width:262px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);display:flex;flex-direction:column;max-height:calc(100vh - 190px)}
.ev-col-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:.86rem;color:var(--ink)}
.ev-count{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--accent-wash);color:var(--accent);font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.ev-col-body{padding:10px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;min-height:60px;flex:1}
.ev-empty{padding:16px 8px;text-align:center;font-size:.8rem;border:1px dashed var(--line);border-radius:10px}
.ev-card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;box-shadow:var(--sh-sm);padding:11px 12px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:box-shadow .15s,transform .05s}
.ev-card:hover{box-shadow:var(--sh-md)}
.ev-card:active{transform:scale(.99)}
.ev-ghost{opacity:.4}
.ev-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ev-client{font-weight:700;color:var(--ink);font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-line{display:flex;align-items:center;gap:7px;font-size:.79rem;color:var(--ink-soft);min-width:0}
.ev-line svg{width:13px;height:13px;flex-shrink:0;opacity:.7}
.ev-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-host{font-size:.78rem;color:var(--ink);font-weight:500}
.ev-flag{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--hot);padding:3px 7px;border-radius:20px}
.ev-flag svg{width:11px;height:11px}
.ev-flag.lg{font-size:.74rem;padding:5px 10px}

/* New Event / edit form */
.ev-form{display:flex;flex-direction:column;gap:13px}
.ev-form label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.ev-form input,.ev-form select{border:1px solid var(--line);border-radius:9px;padding:10px 11px;font-size:.92rem;font-family:inherit;color:var(--ink);background:var(--panel)}
.ev-form input:focus,.ev-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.ev-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ev-form-err{color:var(--hot);font-size:.82rem;font-weight:600}
.ev-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}
.btn-ghost{background:none;border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:.83rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.btn-ghost:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}

/* modal */
.ev-modal{position:fixed;inset:0;z-index:200;background:rgba(20,6,10,.5);display:flex;align-items:flex-start;justify-content:center;padding:60px 18px;overflow-y:auto}
.ev-modal[hidden]{display:none}
.ev-modal-card{background:var(--panel);border-radius:16px;box-shadow:0 24px 60px rgba(15,30,52,.28);width:100%;max-width:440px}
.ev-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.ev-modal-head h3{font-size:1.15rem;font-weight:700;color:var(--ink)}
.ev-modal .ev-form{padding:20px}
.ev-x{background:none;border:0;font-size:1.6rem;line-height:1;color:var(--ink-faint);cursor:pointer;padding:0 4px}
.ev-x:hover{color:var(--accent)}

/* Event detail page */
.ev-detail-grid{columns:2;column-gap:18px}.ev-detail-grid>*{break-inside:avoid;margin-bottom:18px}
.ev-detail-main{padding:22px}
.ev-detail-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.ev-detail-head h2{margin:0;font-size:1.5rem}
.ev-detail-side{display:flex;flex-direction:column;gap:16px}
.ev-side-card{padding:18px}
.ev-side-card h3{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:8px}
.ev-saved{font-size:.82rem;color:var(--accent);font-weight:700}
.ev-gate{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:9px}
.ev-gate li{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ink-soft)}
.ev-gate li svg{width:14px;height:14px;flex-shrink:0}
.ev-gate li.blocked{color:var(--hot);font-weight:600}
.ev-gate li.done{color:var(--good,#15803d)}
@media(max-width:900px){.ev-detail-grid{columns:1}}

/* ---- Lead detail (polished) ---- */
.ld-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:18px 22px;margin-bottom:16px}
.ld-id{display:flex;align-items:center;gap:14px;min-width:0}
.ld-avatar{width:52px;height:52px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:#fff;background:linear-gradient(145deg,var(--accent-2),var(--accent-deep));box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.ld-id h2{margin:0;font-size:1.5rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis}
.ld-sub{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:.82rem}
.ld-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.ld-quicks{display:flex;gap:6px}
.ld-quick{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;color:var(--ink-soft);text-decoration:none;transition:all .15s}
.ld-quick:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}
.ld-quick svg{width:17px;height:17px}
.ld-banner{display:flex;align-items:center;gap:9px;background:var(--accent-wash);color:var(--accent-deep);border:1px solid var(--accent);border-radius:12px;padding:11px 16px;font-size:.86rem;font-weight:600;margin-bottom:16px}
.ld-banner svg{width:16px;height:16px}

/* Two real columns, each stacking its own cards tight against the one above.
   This was CSS multi-column, which BALANCES content across the columns — so a
   short card left a hole underneath it and there was no way to say "put this
   card here". Kevin: "Nothing should span the entire width." A real grid with
   an explicit column wrapper each side does both. */
.ld-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
.ld-grid>*{min-width:0}
.ld-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.ld-sec{padding:18px 20px}
/* Nothing on the lead page uses this any more. The licensee page still does. */
.ld-sec-wide{grid-column:1 / -1}
.ld-sec h3{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.ld-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.ld-field:last-child{margin-bottom:0}
.ld-field>span{font-size:.74rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.ld-field input,.ld-field select,.ld-field textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;font-size:.92rem;font-family:inherit;color:var(--ink);background:var(--panel);width:100%}
.ld-field textarea{resize:vertical;line-height:1.5}
.ld-field input:focus,.ld-field select:focus,.ld-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.ld-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ld-row2 .ld-field{margin-bottom:12px}
/* Step through leads without going back to the list. */
/* Campaign email in the thread: same shape as a hand-written one, marked so
   nobody mistakes it for something a person typed. */
/* The conversation: one line per message until you open it, in a box that
   scrolls on its own so the composer above it never gets pushed away. */
.cm-thread-head{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
.cm-count{background:var(--line-soft);color:var(--ink-soft);border-radius:20px;padding:1px 8px;font-size:.72rem}
.cm-thread-scroll{max-height:460px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.cm-msg-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;padding:11px 13px;cursor:pointer;font:inherit;color:inherit}
.cm-msg-head:hover{background:var(--line-soft)}
.cm-msg-headline{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-msg-headline b{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-msg-sub{font-size:.76rem;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-chev{flex:none;width:8px;height:8px;border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);transform:rotate(45deg);transition:transform .15s}
.cm-collapsed .cm-chev{transform:rotate(-45deg)}
.cm-collapsed .cm-msg-open{display:none}
.cm-msg-open{padding:0 13px 13px}
.cm-reply-slot:empty{display:none}
.cm-thread-scroll .cm-msg-row{border-top:1px solid var(--line-soft);border-radius:0}
.cm-thread-scroll .cm-msg-row:first-child{border-top:0}
.cm-campaign{border-left:3px solid var(--accent)}
.cm-tag{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--accent-wash);color:var(--accent);padding:2px 7px;border-radius:20px;white-space:nowrap}
.cm-msg-marks{font-size:.76rem;font-weight:600;margin:2px 0 6px}
.cm-ok{color:#1f9254}.cm-hot{color:var(--accent)}.cm-dim{color:var(--ink-faint)}.cm-bad{color:var(--hot)}
.ld-nav{display:inline-flex;gap:6px;margin-right:10px}
.ld-nav .pill-btn{padding:8px 12px;font-size:.95rem;line-height:1}
.ld-nav .is-off{opacity:.35;cursor:default;pointer-events:none}
.ld-savebar{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px}
.btn-save{background:none;border:1px solid var(--line);color:var(--ink);box-shadow:none}
.btn-save:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}
.ld-saved{font-size:.82rem;color:var(--accent);font-weight:700}
.ld-err{font-size:.82rem;color:var(--hot);font-weight:600}

/* contact log */
.ld-log{padding:18px 20px}
.ld-log h3{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:14px}
.ld-log-add{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.ld-log-add select{flex:0 0 110px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-size:.88rem;font-family:inherit;background:var(--panel);color:var(--ink)}
.ld-log-add input{flex:1;min-width:180px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:.92rem;font-family:inherit;color:var(--ink)}
.ld-log-add input:focus,.ld-log-add select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.ld-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ld-log-empty{padding:10px 0;font-size:.86rem}
.ld-log-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line-soft)}
.ld-log-item:first-child{border-top:0}
.ld-log-type{flex-shrink:0;height:22px;padding:0 9px;border-radius:20px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;display:inline-flex;align-items:center;background:var(--line-soft);color:var(--ink-soft)}
.ld-log-call{background:#e6f0ff;color:#2563c9}
.ld-log-text{background:#e5f6ec;color:#1f9254}
.ld-log-email{background:var(--accent-wash);color:var(--accent)}
.ld-log-main{min-width:0}
.ld-log-meta{font-size:.76rem;color:var(--ink-faint);font-weight:600}
.ld-log-body{font-size:.9rem;color:var(--ink);margin-top:2px;white-space:pre-wrap}
@media(max-width:900px){.ld-grid{grid-template-columns:1fr}}

/* ---- Calendar (full month, color-coded) ---- */
.btn-danger{background:none;border:1px solid var(--hot);border-radius:10px;padding:9px 15px;font-size:.83rem;font-weight:600;color:var(--hot);cursor:pointer}
.btn-danger:hover{background:var(--hot-bg)}
.cal-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.cal-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--ink);cursor:pointer;transition:all .15s}
.cal-chip:hover{border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,#fff)}
.cal-chip-static{cursor:default}
.cal-chip-static:hover{border-color:var(--line);background:var(--panel)}
.cal-dot{width:10px;height:10px;border-radius:50%;background:var(--c);flex-shrink:0}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav button{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-soft);font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cal-nav button:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}
.cal-nav-label{font-weight:700;color:var(--ink);min-width:150px;text-align:center;font-size:1rem}
.cal-month{overflow:hidden}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fb)}
.cal-dow span{padding:10px 12px;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:800;text-align:left}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-loading{grid-column:1 / -1;padding:40px;text-align:center}
.cal-day{min-height:116px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:7px 8px;display:flex;flex-direction:column;gap:5px;min-width:0}
.cal-day:nth-child(7n){border-right:none}
.cal-day.muted{background:#fbfcfe}
.cal-day.muted .cal-daynum{color:var(--ink-faint)}
.cal-day.today .cal-daynum{background:var(--accent);color:#fff}
.cal-daynum{font-size:.78rem;font-weight:800;color:var(--ink);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.cal-day-items{display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-item{display:flex;align-items:center;gap:5px;width:100%;text-align:left;border:0;border-radius:6px;padding:3px 6px;cursor:pointer;background:color-mix(in srgb,var(--c) 12%,#fff);border-left:3px solid var(--c);min-width:0;transition:filter .12s}
.cal-item:hover{filter:brightness(.96)}
.cal-item-time{font-size:.66rem;font-weight:800;color:var(--c);white-space:nowrap;flex-shrink:0}
.cal-item-title{font-size:.72rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-more{font-size:.68rem;color:var(--ink-soft);font-weight:700;padding-left:4px}
@media(max-width:760px){.cal-day{min-height:84px}.cal-item-time{display:none}}

/* ---- Email connect ---- */
.em-connect{padding:38px 26px;text-align:center;max-width:560px;margin:0 auto}
.em-connect-ic{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:var(--accent-wash);color:var(--accent)}
.em-connect-ic svg{width:26px;height:26px}
.em-connect h2{margin:0 0 8px;font-size:1.5rem}
.em-connect .muted{max-width:430px;margin:0 auto 22px;line-height:1.5}
.em-flow{margin-top:22px}
.em-code-card{max-width:420px;margin:0 auto;text-align:left;border:1px solid var(--line);border-radius:14px;padding:20px 22px;background:#fbfcfe}
.em-step{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--ink);margin:8px 0}
.em-n{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--accent);color:#fff;font-size:.78rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.em-code{font-family:var(--font-display,monospace);font-size:2rem;font-weight:700;letter-spacing:.14em;color:var(--accent-deep);text-align:center;background:#fff;border:1px dashed var(--accent);border-radius:10px;padding:12px;margin:6px 0 12px;user-select:all}
.em-poll{font-size:.85rem;margin-top:8px}
.em-connected{display:flex;align-items:center;gap:10px}
.em-ok{background:#e5f6ec;color:#1f9254}
.email-rail-foot{margin-top:auto;padding:12px 10px 4px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;border-top:1px solid var(--line)}

/* ---- Recruiting: job-posting detail ---- */
.rc-grid{columns:2;column-gap:16px}.rc-grid>*{break-inside:avoid;margin-bottom:16px}
.rc-appl-card{grid-column:1 / -1}
.rc-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.rc-tab{border:1px solid var(--line);background:var(--panel);padding:6px 14px;border-radius:8px;font-size:.83rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.rc-tab.on{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}
.rc-boiler{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.88rem;font-family:inherit;line-height:1.5;color:var(--ink);background:#fbfcfe;resize:vertical}
.rc-boiler:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.rc-appl{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 0;border-top:1px solid var(--line-soft)}
.rc-appl:first-of-type{border-top:none}
.rc-appl-name{font-weight:700;color:var(--ink);font-size:.92rem}
.rc-appl-sub{font-size:.8rem;color:var(--ink-soft)}
.rc-appl-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-chip{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;color:var(--ink);background:var(--line-soft);border-radius:20px;padding:4px 9px}
.rc-chip.muted{opacity:.4}
.rc-chip svg{width:12px;height:12px}
@media(max-width:900px){.rc-grid{columns:1}}

/* ---- Admin ---- */
.adm-card{max-width:640px;padding:20px}
.adm-doc{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fbfcfe}
.adm-doc-name{font-weight:700;color:var(--ink);font-size:.92rem;display:flex;align-items:center;gap:7px}
.adm-doc-name svg{width:15px;height:15px}
.adm-doc-sub{font-size:.8rem;color:var(--ink-soft);margin-top:3px}
.adm-doc-sub a{color:var(--accent);font-weight:600}
.adm-upload{cursor:pointer}
.adm-upload input{display:none}
.em-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.em-head-left{display:flex;align-items:center;gap:10px}
.em-list-head{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:700;font-size:.85rem;color:var(--ink-soft)}
.em-row{display:grid;grid-template-columns:200px 1fr auto;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line-soft);cursor:pointer}
.em-row:last-child{border-bottom:none}
.em-row:hover{background:var(--accent-wash)}
.em-row-from{font-weight:700;color:var(--ink);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-row-subj{color:var(--ink-soft);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-row-date{font-size:.78rem;color:var(--ink-faint);white-space:nowrap}
@media(max-width:700px){.em-row{grid-template-columns:1fr auto}.em-row-subj{grid-column:1 / -1;order:3}}

/* ---------- Licensee pipeline ---------- */
/* Applicants sit in the ordinary leads list, so they get a blue marker there
   and on the detail header rather than a separate screen. */
.tag.tag-licensee{background:#e6efff;color:#1d4ed8} .tag.tag-licensee .pip{background:#2563eb}
.tag.tag-due{background:var(--hot-bg);color:var(--hot)} .tag.tag-due .pip{background:var(--hot)}
.lead-flag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:20px;background:#e6efff;color:#1d4ed8;font-size:.66rem;font-weight:700;vertical-align:middle}

.lic-board .ev-col-head{gap:8px}
.lic-tier{font-size:.68rem;font-weight:800;color:var(--accent);background:var(--accent-wash);padding:2px 8px;border-radius:20px;white-space:nowrap}
.lic-due{color:var(--hot);font-weight:700;font-size:.76rem}
.lic-duecount{font-size:.68rem;font-weight:800;color:var(--hot);background:var(--hot-bg);padding:2px 8px;border-radius:20px}
.lic-card-due{border-left-color:var(--hot)}
.lic-colmenu{border:none;background:none;color:var(--ink-faint);cursor:pointer;font-size:1rem;line-height:1;padding:2px 4px;border-radius:6px}
.lic-colmenu:hover{background:var(--line-soft);color:var(--ink)}
.lic-addcol{background:none;border:1px dashed var(--line);box-shadow:none;display:flex;align-items:flex-start;justify-content:center;padding:12px;min-width:170px}
.lic-addbucket{border:none;background:none;color:var(--ink-soft);font-weight:700;font-size:.84rem;cursor:pointer;padding:8px 12px;border-radius:8px;width:100%}
.lic-addbucket:hover{background:var(--line-soft);color:var(--ink)}

/* Application read-back, on both the lead and the pipeline card. */
.ld-app-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ld-app-head h3{margin:0}
.ld-app-headright{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ld-app-stage{display:inline-block;padding:3px 11px;border-radius:20px;color:#fff;font-size:.7rem;font-weight:700}
.ld-app-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:14px}
@media(min-width:900px){.ld-app-grid{grid-template-columns:1fr 1fr}}
.ld-app-group h4{margin:0 0 7px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}
.ld-app-row{display:grid;grid-template-columns:minmax(0,150px) 1fr;gap:12px;padding:5px 0;border-bottom:1px solid var(--line-soft);font-size:.87rem}
.ld-app-row:last-child{border-bottom:none}
.ld-app-k{color:var(--ink-soft)}
.ld-app-v{color:var(--ink);word-break:break-word}
.ld-app-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}

/* ---------- Outreach ---------- */
.or-switch{display:flex;gap:8px;margin-bottom:16px}
.or-swbtn{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-weight:700;font-size:.86rem;padding:9px 16px;border-radius:10px;cursor:pointer}
.or-swbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.or-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.or-tab{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-weight:600;font-size:.82rem;padding:7px 13px;border-radius:20px;cursor:pointer}
.or-tab.on{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-deep)}
.or-tabn{font-size:.72rem;font-weight:800;background:var(--line-soft);padding:1px 7px;border-radius:10px}
.or-tab.on .or-tabn{background:#fff}
.or-table{width:100%;border-collapse:collapse}
.or-table th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);padding:12px 14px;border-bottom:1px solid var(--line)}
.or-table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:.88rem}
.or-table tr:last-child td{border-bottom:none}
.or-name{font-weight:650}
.or-sub{font-size:.78rem}
.or-empty{text-align:center;padding:28px 14px}
.or-actions{white-space:nowrap;text-align:right}
.or-actions .btn-ghost{padding:5px 11px;font-size:.8rem;margin-left:5px}
.or-state{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700}
.or-follow_up_due{background:var(--warm-bg);color:#b97614}
.or-awaiting{background:var(--line-soft);color:var(--ink-soft)}
.or-replied{background:var(--green-bg);color:var(--green)}
.or-opted_out{background:var(--hot-bg);color:var(--hot)}
.or-note{font-size:.82rem;margin-top:12px}

.or-gen{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:12px}
.or-angle{flex:1;min-width:240px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.88rem}
.or-genmsg{margin-bottom:12px;font-size:.86rem}
.or-posts{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:900px){.or-posts{grid-template-columns:1fr 1fr}}
.or-post{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:9px}
.or-post header{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.or-post-title{font-weight:650;font-size:.9rem}
.or-chan{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:20px;color:#fff}
.or-chan-facebook{background:#1877f2}
.or-chan-instagram{background:#c13584}
.or-chan-indeed{background:#2164f3}
/* The post is copied verbatim, so its line breaks are content — preserve them
   but let long lines wrap rather than scroll the card sideways. */
.or-post-body{white-space:pre-wrap;word-break:break-word;font:inherit;font-size:.88rem;line-height:1.55;color:var(--ink);margin:0}
.or-tags{font-size:.82rem;color:var(--accent-deep);word-break:break-word}
.or-post footer{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:9px;border-top:1px solid var(--line-soft)}

/* ---------- Outreach master switch ---------- */
.or-switchbox{border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px;background:var(--panel)}
.or-switchbox.off{border-color:#e6c7c7;background:#fdf7f7}
.or-switchbox.on{border-color:#bfe3c9;background:#f6fbf7}
.or-switchtop{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.or-lamp{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:9px;vertical-align:middle}
.or-switchbox.off .or-lamp{background:var(--hot);box-shadow:0 0 0 4px rgba(200,40,40,.14)}
.or-switchbox.on .or-lamp{background:var(--green);box-shadow:0 0 0 4px rgba(22,163,74,.16)}
.or-switchstate{font-size:1.02rem}
.or-switchbox.off .or-switchstate{color:var(--hot)}
.or-switchbox.on .or-switchstate{color:var(--green)}
.or-switchsub{display:block;margin-top:4px;font-size:.86rem}
.or-limits{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.or-limits label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
/* Sized to their content — a cap is at most five digits, not a full-width box. */
.or-limits input{width:96px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:inherit;font-size:.95rem}
.or-used{font-size:.74rem;font-weight:400}
.or-usage{display:flex;align-items:center;gap:7px}
.or-usebar{display:inline-block;width:62px;height:5px;border-radius:3px;background:var(--line-soft);overflow:hidden}
.or-usebar>span{display:block;height:100%}
.or-usehot{color:var(--hot);font-weight:700}
.or-savemsg{font-size:.82rem}

/* ---------- Reservation System (its own screen, not the CRM shell) ---------- */
.rs{min-height:100vh;background:var(--bg,#f7f8fa);display:flex;flex-direction:column}
.rs-top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#1a0406;color:#fff;padding:0 22px;min-height:58px}
.rs-brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1rem;letter-spacing:.01em}
.rs-mark{display:inline-flex;opacity:.85}
.rs-brand svg{width:18px;height:18px}
.rs-nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.rs-navbtn{border:none;background:none;color:rgba(255,255,255,.72);font:inherit;font-size:.9rem;font-weight:600;padding:9px 14px;border-radius:8px;cursor:pointer}
.rs-navbtn:hover{background:rgba(255,255,255,.09);color:#fff}
.rs-navbtn.on{background:#b3122b;color:#fff}
.rs-back{display:inline-flex;align-items:center;gap:5px;color:rgba(255,255,255,.78);text-decoration:none;font-size:.86rem;font-weight:600;padding:7px 11px;border-radius:8px}
.rs-back:hover{background:rgba(255,255,255,.09);color:#fff}
.rs-back svg{width:14px;height:14px}
.rs-body{flex:1;padding:24px 22px 60px;max-width:1220px;width:100%;margin:0 auto}
.rs-loading{padding:40px 0}

.rs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.rs-head h2{font-size:1.35rem;margin:6px 0 0}
.rs-head-inline{margin-bottom:12px}
.rs-head-inline h3{margin:0}
.rs-headright{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rs-empty{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:44px 24px;text-align:center}
.rs-empty h3{margin:0 0 7px;font-size:1.1rem}
.rs-empty p{margin:0 auto 16px;max-width:520px}

.rs-table{width:100%;border-collapse:collapse}
.rs-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);padding:11px 14px;border-bottom:1px solid var(--line)}
.rs-table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:.9rem}
.rs-table tr:last-child td{border-bottom:none}
.rs-table .rs-num{text-align:right;font-variant-numeric:tabular-nums}
.rs-evtitle{font-weight:650}
.rs-sub{font-size:.78rem}
.rs-actions{text-align:right;white-space:nowrap}
.rs-actions .btn-ghost{padding:5px 11px;font-size:.8rem;margin-left:5px}

.rs-pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:capitalize}
.rs-open,.rs-confirmed{background:var(--green-bg);color:var(--green)}
.rs-draft{background:var(--line-soft);color:var(--ink-soft)}
.rs-closed,.rs-cancelled{background:var(--hot-bg);color:var(--hot)}
.rs-full,.rs-waitlist{background:var(--warm-bg);color:#b97614}

.rs-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px}
@media(min-width:760px){.rs-stats{grid-template-columns:repeat(4,1fr)}}
.rs-stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.rs-statn{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}

.rs-sec{padding:20px;margin-bottom:16px}
.rs-sec h3{margin:0 0 14px;font-size:1.02rem}
.rs-field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px;font-size:.84rem;font-weight:600;color:var(--ink-soft)}
.rs-field input,.rs-field select,.rs-field textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:.94rem;font-weight:400;color:var(--ink);background:#fff;width:100%}
.rs-field textarea{resize:vertical}
.rs-row{display:flex;gap:14px;flex-wrap:wrap}
.rs-row .rs-field{flex:1;min-width:150px}
/* Each field sized to what it holds rather than stretched across the row. */
.rs-w-num{flex:0 0 auto !important;min-width:0 !important}
.rs-w-num input{width:130px}
.rs-w-state{flex:0 0 auto !important;min-width:0 !important}
.rs-w-state input{width:70px;text-transform:uppercase}
.rs-w-city{flex:0 0 auto !important;min-width:0 !important}
.rs-w-city input{width:200px}
.rs-w-dt{flex:0 0 auto !important;min-width:0 !important}
.rs-w-dt input{width:220px}
.rs-w-sel{flex:0 0 auto !important;min-width:0 !important}
.rs-w-sel select{width:200px}
.rs-tickets input{border:1px solid var(--line);border-radius:8px;padding:8px 9px;font:inherit;font-size:.88rem;width:100%}
.rs-tickets .rs-num input{width:96px;text-align:right}
.rs-savebar{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0 0 22px}
.rs-saved{color:var(--green);font-weight:600;font-size:.86rem}
.rs-err{color:var(--hot);font-weight:600;font-size:.86rem}
.rs-note{font-size:.82rem;margin-top:10px}
/* Public-event leads (abandoned checkouts) — amber, distinct from licensee blue. */
.tag.tag-event{background:#fdf3e3;color:#b45309} .tag.tag-event .pip{background:#d97706}
.lead-flag-event{background:#fdf3e3;color:#b45309}
/* Category sits between a short field and a full-width one — size it to a city name. */
.rs-w-cat{flex:0 0 auto !important;min-width:0 !important}
.rs-w-cat input{width:260px}

/* ---------- Reservation System: dashboard, calendar, manifest, tabs ---------- */
.rs-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}
@media(min-width:820px){.rs-metrics{grid-template-columns:repeat(4,1fr)}}
.rs-metric{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:3px}
.rs-metricn{font-size:1.75rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink)}
.rs-metricl{font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.rs-rangebtns,.rs-viewtoggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.rs-rangebtn,.rs-vbtn{border:none;background:none;font:inherit;font-size:.84rem;font-weight:600;color:var(--ink-soft);padding:8px 14px;cursor:pointer}
.rs-rangebtn.on,.rs-vbtn.on{background:var(--accent);color:#fff}
.rs-clickrows tbody tr{cursor:pointer}
.rs-clickrows tbody tr:hover{background:var(--line-soft)}
.rs-fillcell{min-width:150px}
.rs-fillbar{display:inline-block;width:92px;height:6px;border-radius:3px;background:var(--line-soft);overflow:hidden;vertical-align:middle;margin-right:8px}
.rs-fillbar>span{display:block;height:100%;background:var(--accent)}
.rs-fillnum{font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--ink-soft)}

/* Calendar */
.rs-calnav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.rs-cal{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.rs-cal-head{display:grid;grid-template-columns:repeat(7,1fr);background:var(--line-soft)}
.rs-cal-head span{padding:9px 10px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}
.rs-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.rs-cal-cell{min-height:104px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:6px;display:flex;flex-direction:column;gap:4px}
.rs-cal-cell:nth-child(7n){border-right:none}
.rs-cal-out{background:var(--line-soft)}
.rs-cal-today{background:var(--accent-wash)}
.rs-cal-day{font-size:.76rem;font-weight:700;color:var(--ink-faint)}
.rs-cal-today .rs-cal-day{color:var(--accent-deep)}
.rs-cal-ev{border:none;text-align:left;border-radius:7px;padding:5px 7px;cursor:pointer;font:inherit;font-size:.74rem;display:flex;flex-direction:column;gap:1px;line-height:1.25}
.rs-cal-open{background:var(--green-bg);color:var(--green)}
.rs-cal-full{background:var(--warm-bg);color:#b97614}
.rs-cal-draft{background:var(--line-soft);color:var(--ink-soft)}
.rs-cal-time{font-weight:800}
.rs-cal-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs-cal-cap{font-variant-numeric:tabular-nums;opacity:.8}
.rs-key{display:inline-block;width:11px;height:11px;border-radius:3px;margin:0 5px 0 14px;vertical-align:middle}

/* Event sub-tabs + setup checklist */
.rs-tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin:4px 0 20px;flex-wrap:wrap}
.rs-tab{border:none;background:none;font:inherit;font-size:.9rem;font-weight:600;color:var(--ink-soft);padding:11px 15px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.rs-tab:hover{color:var(--ink)}
.rs-tab.on{color:var(--accent);border-bottom-color:var(--accent)}
.rs-progress{height:7px;border-radius:4px;background:var(--line-soft);overflow:hidden;margin-bottom:14px}
.rs-progress>span{display:block;height:100%;background:var(--green)}
.rs-checklist{list-style:none;padding:0;margin:0}
.rs-checklist li{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:.92rem}
.rs-checklist li:last-child{border-bottom:none}
.rs-checkmark{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;flex:0 0 auto}
.rs-checklist li.done .rs-checkmark{background:var(--green);border-color:var(--green);color:#fff}
.rs-checklist li.done span:nth-child(2){color:var(--ink-soft)}
.rs-fix{margin-left:auto;border:1px solid var(--line);background:var(--panel);border-radius:8px;font:inherit;font-size:.78rem;font-weight:600;color:var(--accent);padding:4px 11px;cursor:pointer}

/* Grid view */
.rs-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:640px){.rs-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.rs-grid{grid-template-columns:repeat(3,1fr)}}
.rs-tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:border-color .15s}
.rs-tile:hover{border-color:var(--accent)}
.rs-tile h3{margin:2px 0 0;font-size:1.02rem}
.rs-tile-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rs-cat{font-size:.7rem;font-weight:700;background:var(--accent-wash);color:var(--accent-deep);padding:2px 9px;border-radius:20px}
.rs-tile-foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:11px}

/* Manifest */
.rs-manifest-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rs-manifest-controls select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;font:inherit;font-size:.88rem;background:var(--panel);max-width:340px}
.rs-manifest-sub{margin:-8px 0 16px;font-size:.9rem}
.rs-metrics-4 .rs-metricn{font-size:1.5rem}
.rs-manifest tbody tr.rs-in{background:var(--green-bg)}
.rs-checkcell{width:44px}
.rs-check input{width:20px;height:20px;accent-color:var(--green);cursor:pointer}
.rs-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.rs-tag{font-size:.68rem;font-weight:700;background:var(--line-soft);color:var(--ink-soft);padding:2px 8px;border-radius:20px}
.rs-tag-wait{background:var(--warm-bg);color:#b97614}
.rs-tag-ref{background:var(--hot-bg);color:var(--hot)}
.rs-empty-row{text-align:center;padding:26px}
@media print{
  .rs-top,.rs-manifest-controls,.rs-actions,.rs-metrics,.rs-back{display:none !important}
  .rs-body{padding:0}
  .rs-manifest tbody tr.rs-in{background:none}
}

/* ---------- Booking panel (drawer) ---------- */
.rs-drawer{position:fixed;inset:0;background:rgba(15,10,10,.45);display:flex;justify-content:flex-end;z-index:60}
.rs-drawer-card{background:var(--panel);width:min(560px,100%);height:100%;overflow-y:auto;box-shadow:-8px 0 30px rgba(0,0,0,.16);display:flex;flex-direction:column}
.rs-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}
.rs-drawer-head h3{margin:0;font-size:1.1rem}
.rs-x{border:none;background:none;font-size:1.6rem;line-height:1;color:var(--ink-faint);cursor:pointer;padding:0 4px}
.rs-x:hover{color:var(--ink)}
.rs-drawer-body{padding:20px 22px 40px}
.rs-pillrow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.rs-drawer-items{margin-bottom:14px}
.rs-totals{border-top:1px solid var(--line);padding-top:12px;margin-bottom:18px}
.rs-totals div{display:flex;justify-content:space-between;padding:4px 0;font-size:.92rem}
.rs-totals b{font-variant-numeric:tabular-nums}
.rs-refunded{color:var(--hot)}
.rs-net{border-top:1px solid var(--line);margin-top:6px;padding-top:9px !important;font-weight:700}
.rs-actions-block{background:var(--line-soft);border-radius:12px;padding:15px;margin-bottom:18px}
.rs-refund-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.rs-refund-row .rs-field{margin-bottom:10px}
.rs-btnrow{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.rs-cancelled-note{background:var(--hot-bg);color:var(--hot);border-radius:10px;padding:11px 13px;margin-bottom:16px;font-weight:600}
.rs-notebox{display:flex;gap:8px;margin-bottom:18px}
.rs-notebox input{flex:1;border:1px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:.9rem}
.rs-histh{margin:0 0 8px;font-size:.86rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}
.rs-bookrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.rs-bookrow input{width:76px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;text-align:right}
.rs-booktotal{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 18px;padding-top:11px;border-top:2px solid var(--ink);font-size:.95rem}
.rs-booktotal b{font-size:1.3rem;font-variant-numeric:tabular-nums}
.rs-checkline{display:flex;align-items:flex-start;gap:9px;margin:10px 0;font-size:.88rem;color:var(--ink-2)}
.rs-checkline input{width:17px;height:17px;margin-top:2px;accent-color:var(--accent)}

/* ---------- Reports ---------- */
.rs-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.rs-preset{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font:inherit;font-size:.84rem;font-weight:600;padding:8px 15px;border-radius:20px;cursor:pointer}
.rs-preset:hover{border-color:var(--accent);color:var(--ink)}
.rs-preset.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rs-builder .rs-row{align-items:flex-end}
.rs-builder .rs-field{margin-bottom:0}
.rs-builder .btn{margin-bottom:0}
.rs-totalrow td{border-top:2px solid var(--ink);font-weight:700;background:var(--line-soft)}
.rs-occ{display:inline-flex;align-items:center;gap:7px;justify-content:flex-end}

/* ============================ Venue Outreach ============================== */
.ev-form textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;font-size:.92rem;font-family:inherit;color:var(--ink);background:var(--panel);resize:vertical;min-height:64px}
.ev-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.venue-setup{padding:22px 24px;margin-bottom:22px}
.venue-setup-head{margin-bottom:16px}
.venue-setup-head h2{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--accent-deep);margin:0 0 4px}
.venue-setup-head p{margin:0;font-size:.86rem;max-width:60ch}
.venue-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.venue-affix{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:var(--panel)}
.venue-affix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.venue-affix input{border:none!important;box-shadow:none!important;padding:10px 4px;flex:1;min-width:0;background:transparent}
.venue-affix span{color:var(--ink-soft);font-size:.82rem;font-weight:600;white-space:nowrap}
.venue-ceiling{display:flex;align-items:center;gap:11px;background:var(--accent-wash);border:1px solid var(--line);border-radius:12px;padding:12px 15px;color:var(--ink);font-size:.9rem}
.venue-ceiling svg{width:22px;height:22px;color:var(--accent);flex-shrink:0}
.venue-ceiling b{font-size:1.05rem;color:var(--accent-deep)}
.venue-ceiling .muted{display:block;font-size:.74rem;margin-top:1px}
.venue-saved{color:var(--green);font-weight:700;font-size:.84rem}
.venue-board-head{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 14px}
.venue-board-head h2{font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--ink);margin:0}
.venue-fit{min-width:24px;height:22px;padding:0 7px;border-radius:11px;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.venue-fit.good{background:var(--green-bg);color:var(--green)}
.venue-fit.mid{background:#fff4e0;color:#b7791f}
.venue-fit.low{background:var(--hot-bg);color:var(--hot)}
.ev-card .ev-line.venue-over span{color:var(--hot);font-weight:600}
.ev-card .ev-line.venue-under span{color:var(--green);font-weight:600}
.venue-del{color:var(--hot);border-color:var(--hot-bg)}
.venue-del:hover{background:var(--hot-bg)}

/* -------- Venue Outreach: campaign banner + conversation -------- */
.venue-campaign{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--green-bg),#eafaf3);border:1px solid #bfe9d6;border-radius:14px;padding:14px 18px;margin:0 2px 18px}
.vc-pulse{width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(22,165,113,.55);animation:vcpulse 1.6s infinite;flex-shrink:0}
@keyframes vcpulse{0%{box-shadow:0 0 0 0 rgba(22,165,113,.5)}70%{box-shadow:0 0 0 11px rgba(22,165,113,0)}100%{box-shadow:0 0 0 0 rgba(22,165,113,0)}}
.vc-main{flex:1;min-width:0}
.vc-title{font-size:.98rem;font-weight:600;color:var(--ink)}
.vc-note{font-size:.8rem;margin-top:2px}
.venue-lead-card{max-width:620px}
.venue-convo{border-top:1px solid var(--line);padding:18px 20px;background:var(--line-soft)}
.venue-convo-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.venue-convo-head svg{width:18px;height:18px;color:var(--accent)}
.venue-convo-head h4{font-size:.98rem;font-weight:700;color:var(--ink);margin:0}
.vm-thread{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow-y:auto;margin-bottom:14px}
.vm{border-radius:10px;padding:9px 12px;font-size:.86rem;border:1px solid var(--line)}
.vm.out{background:var(--accent-wash);border-color:#f4d4da;align-self:stretch}
.vm.in{background:var(--panel)}
.vm-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);margin-bottom:4px}
.vm-tag .muted{text-transform:none;letter-spacing:0;font-weight:500}
.vm-body{color:var(--ink);line-height:1.5}
.vm-compose{display:flex;flex-direction:column;gap:9px}
.vm-compose input,.vm-compose textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:.88rem;color:var(--ink);background:var(--panel);resize:vertical}
.vm-compose input:focus,.vm-compose textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.vm-actions{display:flex;align-items:center;gap:8px}
.vm-actions .btn,.vm-actions .btn-ghost{padding:8px 13px;font-size:.82rem}
.vm-reply{border-top:1px dashed var(--line);padding-top:11px;display:flex;flex-direction:column;gap:8px}
.vm-reply-label{font-size:.76rem}
.ev-card-flags{display:flex;gap:6px;margin-top:2px}

/* -------- Venue Outreach: test mode toggle -------- */
.venue-testbar{margin:2px 0 14px}
.vtb-toggle{display:inline-flex;align-items:center;gap:9px;font-size:.85rem;font-weight:600;color:var(--ink-soft);cursor:pointer;user-select:none}
.vswitch{position:relative;display:inline-block;width:38px;height:22px}
.vswitch input{opacity:0;width:0;height:0;position:absolute}
.vslider{position:absolute;inset:0;background:var(--line);border-radius:22px;transition:.18s}
.vslider::before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.vswitch input:checked + .vslider{background:var(--accent)}
.vswitch input:checked + .vslider::before{transform:translateX(16px)}
.vtb-body{margin-top:12px;max-width:560px}
.vtb-row{display:flex;gap:8px}
.vtb-row input,.vtb-reply input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font:inherit;font-size:.92rem;color:var(--ink);background:var(--panel)}
.vtb-row input:focus,.vtb-reply input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.vtb-convo{margin-top:12px}
.vtb-convo .vm-thread{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto;margin-bottom:12px}
.vtb-reply{display:flex;gap:8px}

/* -------- Venue Outreach: collapsible setup + knowledge base -------- */
.venue-setup-head.vcollapse{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;margin:0 0 2px;cursor:pointer;text-align:left;font:inherit}
.venue-setup-head.vcollapse h2{margin:0}
.vchev{font-size:1.5rem;color:var(--ink-soft);transition:transform .18s;line-height:1}
.vchev.open{transform:rotate(90deg)}
.venue-setup-collapse{padding-top:16px}
.venue-testbar{margin:16px 0 0;border-top:1px solid var(--line);padding-top:14px}
.venue-kbbar{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.venue-kbbar textarea,.vtb-body textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font:inherit;font-size:.9rem;color:var(--ink);background:var(--panel);resize:vertical}
.venue-kbbar textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}

/* -------- Venue Outreach: range fields (min–max) -------- */
.venue-range{display:flex;align-items:center;gap:7px}
.venue-range input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 10px;font:inherit;font-size:.92rem;color:var(--ink);background:var(--panel);text-align:center}
.venue-range input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.venue-range span{color:var(--ink-soft);font-weight:600;flex-shrink:0}

/* -------- Venue Outreach: search results -------- */
.venue-results-card{max-width:640px}
.venue-results{padding:8px 20px 20px;max-height:70vh;overflow-y:auto}
.vr-count{font-size:.8rem;padding:8px 0 4px}
.vr-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.vr-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.vr-name{font-weight:700;color:var(--ink);font-size:.98rem}
.vr-line{font-size:.85rem;color:var(--ink);margin-top:2px}
.vr-line a{color:var(--accent);text-decoration:none}
.vr-line a:hover{text-decoration:underline}
.vr-why{font-size:.85rem;color:var(--ink);margin-top:7px;background:var(--accent-wash);border-radius:8px;padding:7px 10px}
.vr-sum{font-size:.82rem;margin-top:6px}

/* -------- Venue Outreach: pipeline fits on screen (6 columns, no scroll) -------- */
.venue-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;overflow-x:visible}
.venue-board .ev-col{flex:none;width:auto;min-width:0;max-height:calc(100vh - 240px)}
.venue-board .ev-col-head{padding:9px 10px;font-size:.74rem;gap:6px}
.venue-board .ev-col-head span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.venue-board .ev-count{min-width:18px;height:18px;font-size:.66rem}
.venue-board .ev-col-body{padding:7px}
.venue-board .ev-card{padding:8px 9px;gap:4px;border-left-width:3px}
.venue-board .ev-client{font-size:.82rem}
.venue-board .ev-line{font-size:.73rem}
.venue-board .ev-line svg{width:12px;height:12px}
.vr-approve{margin-top:8px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--green);color:#fff;border:none;border-radius:8px;padding:7px 6px;font:inherit;font-size:.74rem;font-weight:800;cursor:pointer}
.vr-approve:hover{filter:brightness(1.06)}
.vr-approve svg{width:12px;height:12px}
.ev-flag.contract{background:#8a6d00}
.ev-form label.venue-check{flex-direction:row;align-items:center;gap:9px;font-size:.85rem;font-weight:500;color:var(--ink)}
.ev-form label.venue-check input{width:auto;padding:0}

/* -------- Venue Outreach: daily-digest recipient -------- */
.vtb-digest{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.8rem;font-weight:600;color:var(--ink-soft);max-width:360px}
.vtb-digest input{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:.9rem;color:var(--ink);background:var(--panel)}
.vtb-digest input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}

/* ---- Pipelines fit the screen -------------------------------------------
   Both boards (events and licensees) shared 262px fixed columns inside an
   overflow-x:auto strip, so a sixth stage pushed the board sideways. They are
   now equal fractions of whatever width there is, and the type scales with the
   column rather than staying put and overflowing. Adding a stage narrows every
   column instead of adding scroll.

   The column is a container, so sizes are in cqi (percent of the column's own
   width). Each rule keeps a plain rem fallback first, so a browser without
   container queries still gets a sensible fixed size rather than nothing. */
.ev-board{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
  gap:clamp(5px,0.7vw,14px);
  overflow-x:hidden;
  align-items:flex-start;
}
.ev-col{
  flex:none;
  width:auto;
  min-width:0;
  max-width:none;
  container-type:inline-size;
}
/* One knob per column; everything inside is sized from it. */
.ev-col{ --pipe-fs:.8rem; }
@supports (width:1cqi){ .ev-col{ --pipe-fs:clamp(.58rem,5.4cqi,.82rem); } }

.ev-col-head{
  font-size:.8rem;
  font-size:calc(var(--pipe-fs) * 1.06);
  padding:clamp(7px,3cqi,12px) clamp(7px,4cqi,14px);
  gap:6px;
}
.ev-col-head span:first-child{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-count{ font-size:.7rem; font-size:calc(var(--pipe-fs) * .84); flex:none; }
.ev-col-body{ padding:clamp(5px,3cqi,10px); gap:clamp(5px,2.5cqi,9px); }
.ev-card{
  font-size:var(--pipe-fs);
  padding:clamp(6px,3.4cqi,11px) clamp(6px,3.8cqi,12px);
  gap:clamp(3px,1.6cqi,6px);
  border-radius:clamp(6px,2.4cqi,10px);
}
.ev-card .ev-line,
.ev-empty{ font-size:.78rem; font-size:var(--pipe-fs); }
.ev-card-top{ gap:clamp(4px,2cqi,8px); }
/* Long client and venue names must not force a column wider than its share. */
.ev-card b,
.ev-card .ev-line span,
.ev-card-top > *{ min-width:0; overflow-wrap:anywhere; }
.lic-tier,
.lic-duecount{ font-size:.66rem; font-size:calc(var(--pipe-fs) * .82); }
.lic-due{ font-size:.74rem; font-size:calc(var(--pipe-fs) * .92); }
.lic-colmenu{ font-size:.95rem; font-size:calc(var(--pipe-fs) * 1.15); padding:1px 3px; }

/* Below tablet width, columns genuinely cannot all fit; stack them instead of
   squeezing the type to nothing. */
@media(max-width:700px){
  .ev-board{ grid-auto-flow:row; grid-auto-columns:auto; }
  .ev-col{ --pipe-fs:.82rem; max-height:none; }
}

/* ---- Left menu editor (Admin) ---- */
.nv-card{ padding:20px 22px; margin-bottom:18px; }
.nv-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
.nv-head h2{ margin:0 0 4px; font-size:1.05rem; }
.nv-head p{ margin:0; max-width:60ch; }
.nv-rows{ display:grid; gap:6px; max-width:640px; }
.nv-row{ display:flex; align-items:center; gap:10px; padding:7px 9px; border:1px solid var(--line); border-radius:9px; background:var(--panel); }
.nv-row.nv-section{ background:#f4f6fa; }
/* Drag handle. Only the grip starts a drag, so a finger swiping the row
   still scrolls the page instead of picking the row up. */
.nv-grip{ flex:none; cursor:grab; color:var(--ink-faint); font-size:.9rem; letter-spacing:-2px; padding:0 4px; user-select:none; touch-action:none; }
.nv-grip:active{ cursor:grabbing; }
.nv-row:hover .nv-grip{ color:var(--ink-soft); }
.nv-ghost{ opacity:.45; background:var(--accent-wash); border-style:dashed; }
.nv-kind{ font-size:.68rem; color:var(--ink-faint); width:98px; flex:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nv-kind.nv-page{ font-family:ui-monospace,Menlo,Consolas,monospace; }
.nv-name{ flex:1; min-width:0; padding:8px 10px; border:1px solid var(--line); border-radius:7px; font:inherit; font-size:.88rem; }
.nv-eye{ flex:none; border:1px solid var(--line); background:#fff; border-radius:7px; padding:6px 10px; font-size:.72rem; cursor:pointer; color:var(--ink-soft); }
.nv-eye.off{ background:#fdecea; border-color:#f3c4bf; color:#b3261e; }
.nv-del{ flex:none; border:1px solid var(--line); background:#fff; border-radius:7px; width:28px; height:28px; cursor:pointer; color:var(--ink-soft); font-size:1rem; line-height:1; }
.nv-foot{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:14px; }
.nv-msg{ font-size:.82rem; color:var(--ink-soft); }

/* A section heading in the sidebar: label with a rule under it. An empty
   heading is just the rule. */
.sidebar .nav-divider{ height:1px; background:var(--line,rgba(255,255,255,.15)); margin:12px 14px 10px; }
/* Section headings in the sidebar carry a rule beneath them, so a group reads
   as a group rather than as one more link in the list. */
.sidebar .nav-label{
  border-bottom:1px solid var(--line,rgba(255,255,255,.14));
  padding-bottom:7px;
  margin:12px 12px 8px;
  padding-left:0;
  padding-right:0;
}
.sidebar .nav-label:first-child{ margin-top:2px; }

/* -------- Venue Outreach: compact header + manual add -------- */
body[data-page="venue-outreach"] .topbar{padding-top:12px;padding-bottom:12px}
body[data-page="venue-outreach"] .topbar h1{font-size:1.2rem}
.venue-manual{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.venue-manual-head{font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:9px}
.venue-manual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.venue-manual-grid input{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:.9rem;color:var(--ink);background:var(--panel)}
.venue-manual-grid input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.venue-manual .vm-actions{margin-top:9px}
.vm-mnote{font-size:.82rem}

/* Ghost buttons never sized their icons — an inline SVG with no width balloons the button. */
.btn-ghost svg{width:16px;height:16px;stroke-width:2.1;flex-shrink:0}
.btn-ghost{display:inline-flex;align-items:center;gap:8px}

/* -------- Venue Outreach: availability dates + days of week -------- */
.venue-form-row2{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}
.venue-days{display:flex;flex-wrap:wrap;gap:6px}
.venue-days .vday{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:500;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 9px;cursor:pointer;background:var(--panel)}
.venue-days .vday input{width:auto;margin:0}
@media(max-width:700px){.venue-form-row2{grid-template-columns:1fr}}


/* -------- Venue Outreach: files the venue emailed -------- */
.venue-files{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;background:var(--line-soft)}
.vf-head{font-size:.8rem;font-weight:700;color:var(--ink-soft);display:flex;align-items:center;gap:6px}
.vf-head svg{width:15px;height:15px;color:var(--accent)}
.vf-item{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;color:var(--accent);text-decoration:none;font-weight:600}
.vf-item:hover{text-decoration:underline}

/* ---- Admin sub-nav ----
   Same shape as the real estate CRM's Settings: a sticky rail of sections down
   the left, one section on the right. Panes stay in the DOM and are hidden by
   class, so each loader keeps painting into its own target. */
.settings-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:18px;align-items:start}
.settings-subnav{position:sticky;top:18px;border:1px solid var(--line);border-radius:var(--r-md,12px);
  background:var(--panel);box-shadow:var(--sh-sm);padding:10px;display:grid;gap:3px}
.settings-subnav-title{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;
  letter-spacing:.09em;font-weight:800;padding:8px 10px 10px}
.settings-subnav a{display:flex;align-items:center;gap:9px;border-radius:10px;padding:10px 11px;
  color:var(--ink-2,var(--ink));font-size:.84rem;font-weight:700;text-decoration:none}
.settings-subnav a svg{width:16px;height:16px;color:var(--ink-soft);flex-shrink:0}
.settings-subnav a span{min-width:0;flex:1}
.settings-subnav a:hover{background:var(--line-soft,#f2f5f9);color:var(--ink)}
.settings-subnav a.active{background:var(--ink);color:#fff}
.settings-subnav a.active svg{color:#fff}
.settings-content{min-width:0}
.adm-pane{display:none}
.adm-pane.on{display:block}

@media(max-width:820px){
  .settings-layout{grid-template-columns:1fr}
  .settings-subnav{position:static;grid-auto-flow:column;grid-auto-columns:max-content;
    overflow-x:auto;gap:4px}
  .settings-subnav-title{display:none}
  .settings-subnav a{white-space:nowrap}
}
/* Dragging a pipeline column: grab the header, not a card. */
.ev-col-head{cursor:grab}
.ev-col-head:active{cursor:grabbing}
.lic-col-ghost{opacity:.4}
.lic-col-ghost .ev-col-body{visibility:hidden}

/* -------- Venue Outreach: searches list (each with View results) -------- */
.venue-searches{margin:0 2px 18px}
.venue-searches-head{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--ink);margin-bottom:8px}
.vs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:8px}
.vs-main{min-width:0}
.vs-name{font-weight:600;color:var(--ink);font-size:.92rem}
.vs-meta{display:block;font-size:.78rem;margin-top:1px}
/* The step body holds raw email HTML, so it reads as code. */
.campaign-html{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.55;min-height:150px}
.campaign-step-num{background:var(--accent-wash,#f7e8ea);color:var(--accent,#b3122b)}
/* Sidebar wordmark replaced with the white-lettered logo. 290px was wider than
   the 248px rail, so it only fitted by being clamped; sized to the rail now. */
.brand{padding:16px 18px 12px}
.brand-link{display:block;line-height:0}
.brand-logo{display:block;width:100%;max-width:196px;height:auto}

/* -------- Venue Outreach: results page (spreadsheet table + print) -------- */
.vres-bar{display:flex;align-items:center;gap:12px;margin:0 0 16px;flex-wrap:wrap}
.vres-title{font-weight:600;color:var(--ink);font-size:.95rem}
.vres-card{padding:0;overflow:hidden}
.vres-scroll{overflow-x:auto}
.vres-table{width:100%;border-collapse:collapse;font-size:.85rem}
.vres-table th{text-align:left;background:var(--line-soft);color:var(--ink-soft);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:2px solid var(--line);position:sticky;top:0}
.vres-table td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}
.vres-table tbody tr:nth-child(even){background:var(--line-soft)}
.vres-table a{color:var(--accent);text-decoration:none}
.vres-table a:hover{text-decoration:underline}
.vres-name{font-weight:600}
.vres-num{text-align:right;white-space:nowrap}
.vres-over{color:var(--hot);font-weight:600}
.vres-why{max-width:320px;color:var(--ink-soft);font-size:.82rem}
@media print{
  .sidebar,.topbar,.vres-bar{display:none!important}
  .app,.main,.content{display:block!important;padding:0!important;margin:0!important}
  .vres-card{border:none;box-shadow:none}
  .vres-table{font-size:10px}
  .vres-table th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Licensee outreach panel, collapsed at the top of the pipeline. Reuses the
   venue-setup shell so the two screens read the same. */
.lic-outreach{margin-bottom:18px}
.or-target{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.or-target h3{font-size:.95rem;margin:0 0 10px}
.or-targetrow{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.or-targetrow label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--ink-soft);font-weight:600}
.or-targetrow input{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:.9rem}
.or-targetrow label:nth-child(1) input{width:190px}
.or-targetrow label:nth-child(2) input{width:70px;text-transform:uppercase}
.or-targetrow label:nth-child(3) input{width:120px}
.or-target textarea{width:100%;max-width:640px;border:1px solid var(--line);border-radius:9px;
  padding:11px 12px;font:inherit;font-size:.9rem;line-height:1.5;resize:vertical}
.or-targetfoot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}

/* -------- Venue Outreach: results deepen + call/Vapi flag -------- */
.vres-call{display:inline-block;font-size:.72rem;font-weight:700;color:#8a6d00;background:#fff4e0;border-radius:6px;padding:2px 7px;white-space:nowrap}
.vres-deepen{padding:5px 10px;font-size:.76rem;white-space:nowrap}
@media print{.vres-deepen{display:none!important}}

/* -------- Venue results: "Search until done" progress bar -------- */
.vres-auto{display:flex;align-items:center;gap:11px;margin:0 0 14px;padding:11px 15px;border:1px solid var(--accent);background:var(--accent-wash);border-radius:10px;font-size:.9rem;color:var(--ink)}
.vres-auto-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex-shrink:0}
.vres-auto-text{font-weight:600}
.vres-auto-stop{white-space:nowrap}
@media print{.vres-auto{display:none!important}}

/* -------- Venue results: Edit / Excluded / Log panels -------- */
.vres-edit{display:flex;flex-direction:column;gap:14px}
.vres-edit label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.vres-edit input[type=text],.vres-edit textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:.92rem;color:var(--ink);background:var(--panel)}
.vres-edit textarea{resize:vertical;line-height:1.5}
.vres-edit input:focus,.vres-edit textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.vres-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.vres-edit-err{color:var(--hot);font-size:.85rem;font-weight:600}
.vres-exc{width:100%;border-collapse:collapse;font-size:.85rem}
.vres-exc th{text-align:left;color:var(--ink-soft);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:2px solid var(--line)}
.vres-exc td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}
.vres-exc .btn-ghost{padding:5px 12px;font-size:.78rem}
.vres-log{display:flex;flex-direction:column;gap:10px}
.vres-log-meta{font-size:.85rem;color:var(--ink-soft)}
.vres-log-note{font-size:.9rem;font-weight:600;color:var(--ink);background:var(--line-soft);border-radius:9px;padding:11px 13px}
.vres-log-raw{white-space:pre-wrap;word-break:break-word;font-size:.78rem;line-height:1.5;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:12px;max-height:46vh;overflow:auto;margin:0}

/* Licensee pipeline: Add bucket as a red button, top-left above the outreach panel */
.lic-toolbar{display:flex;justify-content:flex-start;margin:0 0 14px}

/* ---- Left nav, 25% smaller ----
   Every metric that decides how much room a menu item takes, scaled by 0.75:
   text, icon, padding and the gap between them. Scaling only the font would
   have left the rows the same height, which is where the space actually goes. */
.nav{padding:3px 10px}
.nav a{
  gap:9px;
  padding:4.5px 9px;
  font-size:.656rem;      /* was .875rem */
  border-radius:7px;
}
.nav a svg{width:13.5px;height:13.5px}
.nav-label{font-size:.5rem;letter-spacing:.11em;padding:7px 9px 3px}
.sidebar .nav-label{margin:9px 9px 6px;padding-bottom:5px}
.sidebar .nav-divider{margin:9px 10px 7px}
/* Campaigns: list first, one campaign at a time. */
.campaign-back{border:0;background:none;color:var(--accent);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;padding:2px 0;margin-bottom:10px}
.campaign-row{cursor:pointer}
.campaign-row:hover{box-shadow:var(--sh-md)}
.campaign-name-input{width:100%}
/* The logo shrinks with the menu it sits above. */
.brand{padding:12px 14px 9px}
.brand-logo{max-width:147px}

/* -------- Venue results: denser table, vertical separators, wider 'Why' -------- */
.vres-table{font-size:.8rem}
.vres-table th,.vres-table td{padding:5px 8px;border-right:1px solid var(--line)}
.vres-table th:last-child,.vres-table td:last-child{border-right:none}
.vres-table th{font-size:.66rem;padding:6px 8px}
.vres-num{width:1%;white-space:nowrap;text-align:right}
.vres-chk{width:1%;text-align:center;padding:0 6px}
.vres-chk input{margin:0;cursor:pointer;width:auto}
.vres-why{white-space:normal;min-width:260px;max-width:none;color:var(--ink-soft);line-height:1.35}
.vres-whyh{min-width:260px}
.vres-x{border:none;background:none;color:var(--ink-faint);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 3px}
.vres-x:hover{color:var(--hot)}
/* The rail is as wide as its widest label, not a number picked by hand: rename
   an item or add a longer one and the container grows to hold it instead of
   wrapping it onto a second line. Clamped so it can't get skinnier than the
   logo and user row need, or wide enough to eat the page. */
/* Desktop only. This sits after the 860px block at the top level, so
   unscoped it also won the phone drawer width -- same specificity, later
   in the file -- shrinking the drawer to its content instead of 320px. */
@media (min-width:861px){.sidebar{width:max-content;min-width:172px;max-width:270px}}
/* max-content only reads as "the longest label" if the labels refuse to wrap.
   At the 270px cap they clip with an ellipsis rather than wrapping. */
.nav a > span,.sidebar-tools a > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Neither the logo nor a long user name should be what decides the width. */
.brand-logo{max-width:147px}
.side-foot .agent{min-width:0}
.side-foot .agent > div{min-width:0}
.side-foot .nm,.side-foot .ro{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand{padding:11px 12px 8px}
.sidebar-tools{padding:5px 10px 6px}
.sidebar-tools a{gap:9px;padding:6px 9px;font-size:.66rem}
.sidebar-tools a svg{width:13.5px;height:13.5px}
.side-foot{padding:8px 10px}
.side-foot .av{width:26px;height:26px;font-size:.66rem}
.side-foot .nm{font-size:.72rem}
.side-foot .ro{font-size:.62rem}
.side-foot .sign-out{font-size:.62rem}

/* ---------- Recruiting: remove a job posting ---------- */
/* Always visible rather than hover-revealed - this is used on an iPad, where
   there is no hover to reveal anything with. */
.jp-actions{width:1%;white-space:nowrap;text-align:right}
.jp-actions .icon-btn{width:32px;height:32px;border-radius:8px}
.jp-actions .icon-btn svg{width:15px;height:15px}
.jp-actions .icon-btn:hover{color:var(--hot);border-color:var(--hot)}
.jp-actions .icon-btn:disabled{opacity:.5;cursor:default}

/* -------- Venue results: live searching banner -------- */
.vres-status{display:flex;align-items:center;gap:10px;background:var(--accent-wash);border:1px solid #f4d4da;border-radius:10px;padding:11px 15px;margin:0 0 14px;font-size:.9rem;color:var(--ink);font-weight:600}
.vres-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:vspin .8s linear infinite;flex-shrink:0}
@keyframes vspin{to{transform:rotate(360deg)}}

/* ---------- Supply store (Kevin's side) ---------- */
.sup-tabs{display:flex;gap:8px;margin-bottom:16px}
.sup-sub{font-size:.78rem;margin-top:2px}
.sup-actions{width:1%;color:var(--ink-faint);text-align:right}
.sup-catbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:.85rem}
/* Cards size themselves to the shelf; auto-fill keeps the grid honest on an
   iPad in desktop view without a pile of breakpoints. */
.sup-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.sup-group{margin-bottom:26px}
.sup-grouphead{font-size:.95rem;font-weight:700;color:var(--ink);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.sup-grouphead .muted{font-weight:500;font-size:.82rem}
.sup-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);overflow:hidden;box-shadow:var(--sh-sm);display:flex;flex-direction:column}
.sup-card:hover{box-shadow:var(--sh-md)}
.sup-img{aspect-ratio:1/1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.sup-img img{width:100%;height:100%;object-fit:cover;display:block}
.sup-noimg{color:var(--ink-faint)}
.sup-noimg svg{width:34px;height:34px}
.sup-body{padding:11px 12px 13px}
.sup-cat{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px}
.sup-body h3{font-size:.88rem;font-weight:600;color:var(--ink);margin:0 0 5px;line-height:1.3}
.sup-price{font-size:.9rem;font-weight:700;color:var(--accent)}
/* Order modal */
.sup-om{display:flex;flex-direction:column;gap:18px}
.sup-lines{width:100%;border-collapse:collapse;font-size:.86rem}
.sup-lines th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:6px 8px;border-bottom:1px solid var(--line)}
.sup-lines td{padding:8px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.sup-lines tfoot td{border-bottom:none;padding-top:10px}
.sup-block h4{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 6px}
.sup-block p{margin:0;font-size:.9rem;color:var(--ink-2)}
.sup-block textarea{width:100%;min-height:70px}
.sup-shiprow{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:8px}
.sup-shiprow label{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:var(--ink-soft)}
/* Sized to what they hold: a carrier is a word, a tracking number is not. */
.sup-shiprow label:nth-of-type(1) input{width:110px}
.sup-shiprow label:nth-of-type(2) input{width:230px}
.sup-status{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.sup-status .pill-btn.on{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}

/* ---------- Supply store (the licensee's side) ---------- */
/* Basket sits alongside the shelves on a wide screen and drops under them on a
   narrow one, so it is never a floating thing you have to go hunting for. */
.st-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
@media (max-width:1000px){.st-layout{grid-template-columns:minmax(0,1fr)}}
.st-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.st-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);overflow:hidden;box-shadow:var(--sh-sm);display:flex;flex-direction:column}
.st-img{aspect-ratio:1/1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.st-img img{width:100%;height:100%;object-fit:cover;display:block}
.st-body{padding:11px 12px 13px;display:flex;flex-direction:column;gap:7px;flex:1}
.st-body h3{font-size:.88rem;font-weight:600;color:var(--ink);margin:0;line-height:1.3}
.st-desc{font-size:.76rem;color:var(--ink-soft);margin:0;line-height:1.4}
.st-price{font-size:.95rem;font-weight:700;color:var(--accent)}
.st-pick select{width:100%;font-size:.82rem}
.st-pick .st-needs,select.st-needs{border-color:var(--hot);box-shadow:0 0 0 3px rgba(179,18,43,.12)}
.st-add{display:flex;gap:8px;margin-top:auto}
/* A quantity box holds two digits, not half the card. */
.st-add input{width:62px;text-align:center}
.st-add .btn{flex:1;justify-content:center}
.st-cart{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--sh-sm);padding:16px;position:sticky;top:18px}
.st-cart h2{font-size:.95rem;font-weight:700;margin:0 0 12px}
.st-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.82rem}
.st-line-name{font-weight:600;color:var(--ink)}
.st-line-sub{font-size:.74rem}
.st-line-qty{color:var(--ink-soft);white-space:nowrap}
.st-line-tot{white-space:nowrap}
.st-line .icon-btn{width:26px;height:26px;border-radius:7px}
.st-line .icon-btn svg{width:13px;height:13px}
.st-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:.95rem}
.st-note{display:block;font-size:.76rem;color:var(--ink-soft);margin:12px 0 10px}
.st-note textarea{width:100%;margin-top:5px}
.st-cart .btn{width:100%;justify-content:center}
.st-fine{font-size:.72rem;margin:9px 0 0;line-height:1.4}
.st-pay{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.st-pay .btn,.st-pay .btn-ghost{width:100%;justify-content:center}

/* ---------- Supply catalogue editor ---------- */
.sup-card.sup-off{opacity:.55}
.sup-edit{width:100%;justify-content:center;margin-top:8px;font-size:.78rem}
.sup-edit-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:700px){.sup-edit-grid{grid-template-columns:minmax(0,1fr)}}
.sup-edit-img{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.sup-edit-img img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line)}
.sup-edit-img .sup-noimg{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:var(--r-md)}
.sup-upload{text-align:center;cursor:pointer;font-size:.78rem}
.sup-edit-fields{display:flex;flex-direction:column;gap:10px}
.sup-edit-fields label{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:var(--ink-soft)}
.sup-edit-fields input,.sup-edit-fields textarea,.sup-edit-fields select{width:100%}
.sup-edit-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
/* A category picker is a short word, not the width of the dialog. */
.sup-edit-row label:first-child{flex:0 0 220px}
.sup-live{flex-direction:row !important;align-items:center;gap:7px;white-space:nowrap;padding-bottom:8px}
.sup-live input{width:auto}
.sup-vars{width:100%;border-collapse:collapse;font-size:.84rem}
.sup-vars th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:5px 6px}
.sup-vars td{padding:4px 6px}
/* Each option column sized to what it holds. */
.sup-vars td:nth-child(1) input{width:100%;min-width:150px}
.sup-vars td:nth-child(2) input{width:110px}
.sup-vars td:nth-child(3) input{width:88px;text-align:right}
.sup-vars .icon-btn{width:30px;height:30px;border-radius:8px}
.sup-vars .icon-btn svg{width:14px;height:14px}
/* Test-mode banner on the supply store — deliberately loud. */
.st-testbar{background:#fff4d6;border:1px solid #e8c96a;color:#6b4e00;border-radius:10px;padding:11px 14px;margin-bottom:16px;font-size:.88rem;line-height:1.5}
.st-testbar code{background:#fff;border:1px solid #e3d6a8;border-radius:5px;padding:1px 6px;font-size:.86rem}

/* ---------- Onboarding panel (licensee card) ---------- */
.ob-card .ld-app-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ob-demo{font-size:.76rem}
.ob-demo a{color:var(--accent);text-decoration:none;font-weight:600}
.ob-demo a:hover{text-decoration:underline}
.ob-docpick{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 14px}
.ob-doc{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px 13px;cursor:pointer;font-size:.86rem;background:var(--panel)}
.ob-doc:has(input:checked){border-color:var(--accent-2);background:var(--accent-wash);font-weight:600}
.ob-doc input{width:auto;margin:0}
.ob-field{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:var(--ink-soft)}
.ob-field input{width:100%}
/* An email address is long; the negotiated figures are mostly short. */
.ob-email{max-width:340px;margin-bottom:14px}
.ob-terms summary{cursor:pointer;font-size:.82rem;font-weight:600;color:var(--ink)}
.ob-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 14px;margin-top:6px}
.ob-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.ob-link{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.76rem;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.ob-signed,.ob-live{font-size:.9rem;line-height:1.5;margin-bottom:12px}
/* Step 3: a day count is three characters, so the box is three characters. */
.ob-lead{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.ob-num{max-width:150px}
.ob-evs{margin-top:16px;font-size:.86rem}
.ob-evs .ld-log-list{margin-top:6px}
/* Step 4: the split, then whatever they have asked us for. */
.ob-money{width:100%;max-width:420px;border-collapse:collapse;font-size:.86rem;font-variant-numeric:tabular-nums;margin:10px 0 16px}
.ob-money td{padding:3px 0}
.ob-money td.n{text-align:right}
.ob-money tr.tot td{border-top:1px solid var(--line);padding-top:7px;font-weight:700}
.ob-reqs{margin-top:8px;font-size:.86rem}
.ob-req{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin-top:8px;background:var(--panel)}
.ob-req-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ob-req-act input{width:230px}
/* Sent -> Opened -> Signed, so the state is readable at a glance. */
.ob-timeline{display:flex;gap:26px;flex-wrap:wrap;margin:14px 0 4px}
.ob-step{display:flex;align-items:flex-start;gap:8px;font-size:.82rem;color:var(--ink-faint)}
.ob-step.on{color:var(--ink)}
.ob-dot{width:10px;height:10px;border-radius:50%;background:var(--line);margin-top:4px;flex:none}
.ob-step.on .ob-dot{background:var(--accent)}

/* ---------- Training builder ---------- */
.tr-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.tr-list{display:flex;flex-direction:column;gap:10px}
.tr-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);padding:14px 16px;box-shadow:var(--sh-sm)}
.tr-card.tr-off{opacity:.55}
.tr-card-main{display:flex;align-items:flex-start;gap:14px;min-width:0}
.tr-num{width:28px;height:28px;border-radius:50%;background:var(--accent-wash);color:var(--accent-deep);font-weight:700;font-size:.82rem;display:flex;align-items:center;justify-content:center;flex:none}
.tr-card h3{margin:0 0 3px;font-size:.95rem;font-weight:600}
.tr-sum{margin:0 0 4px;font-size:.83rem}
.tr-meta{font-size:.78rem}
/* Editor */
.tr-video{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.tr-video video{width:100%;max-height:320px;border-radius:8px;background:#000;display:block}
.tr-novideo{padding:34px;text-align:center;border:1px dashed var(--line);border-radius:8px}
.tr-video-actions{display:flex;align-items:center;gap:12px;margin:12px 0}
.tr-upload{cursor:pointer}
.tr-passrow{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;margin-bottom:6px}
/* A percentage is two digits, not a paragraph. */
.tr-passrow .ob-field{max-width:130px}
.tr-q{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:var(--panel)}
.tr-q-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.85rem}
.tr-q-head .icon-btn{width:28px;height:28px;border-radius:7px}
.tr-q-head .icon-btn svg{width:13px;height:13px}
.tr-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:8px}
.tr-opt{display:flex;align-items:center;gap:9px}
.tr-opt input[type=radio]{width:auto;flex:none;margin:0}
.tr-opt input[type=text],.tr-opt input:not([type]){flex:1;min-width:0}
.tr-hint{font-size:.74rem;margin:8px 0 0}

/* ============================ Marketing ================================== */
/* An operations screen: the summary reads first, the detail sits under it,
   and anything that needs attention is a shape as well as a number. */
.mk-bar-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.mk-range{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.mk-rbtn{border:0;background:none;padding:8px 16px;font-size:.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer}
.mk-rbtn+.mk-rbtn{border-left:1px solid var(--line)}
.mk-rbtn.on{background:var(--accent-wash);color:var(--accent-deep)}
.mk-thin{background:var(--accent-wash);border-left:3px solid var(--accent-2);border-radius:0 10px 10px 0;
  padding:11px 15px;font-size:.85rem;color:var(--ink-2);margin-bottom:16px}

.mk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px;margin-bottom:16px}
.mk-tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 15px;
  display:flex;flex-direction:column;gap:2px}
.mk-tile b{font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.15}
.mk-k{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700}
.mk-sub{font-size:.74rem;color:var(--ink-soft)}
.mk-delta{font-size:.74rem;font-weight:700}
.mk-delta.up{color:#1c7a43}.mk-delta.down{color:var(--accent)}

.mk-card{padding:16px 18px;margin-bottom:14px}
.mk-card h3{font-size:.95rem;margin:0 0 12px}
.mk-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}
.mk-fine{font-size:.78rem;margin:10px 0 0}

/* Sessions per day. */
.mk-spark{width:100%;height:120px;display:block;overflow:visible}
.mk-spark-a{fill:var(--accent-wash)}
.mk-spark-l{fill:none;stroke:var(--accent-2);stroke-width:2;vector-effect:non-scaling-stroke}
.mk-spark-d{fill:var(--accent)}
.mk-spark-x{display:flex;justify-content:space-between;font-size:.7rem;color:var(--ink-faint);margin-top:5px}

.mk-bars{display:flex;flex-direction:column;gap:8px}
.mk-bar{display:grid;grid-template-columns:minmax(88px,34%) 1fr auto;align-items:center;gap:10px;font-size:.82rem}
.mk-bar-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.mk-bar-t{background:var(--line-soft);border-radius:5px;height:9px;overflow:hidden}
.mk-bar-t i{display:block;height:100%;background:var(--accent-2);border-radius:5px}
.mk-bar-v{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.mk-bar-n{grid-column:2/4;font-size:.72rem;color:var(--ink-faint);margin-top:-4px}

/* Visit -> booking -> paid. Width is the volume, the label says what was lost. */
.mk-funnel{display:flex;flex-direction:column;gap:10px}
.mk-step{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;
  padding:11px 13px;border-radius:9px;overflow:hidden;font-size:.85rem;background:var(--line-soft)}
.mk-step-b{position:absolute;inset:0 auto 0 0;background:var(--accent-wash)}
.mk-step-l,.mk-step-n,.mk-step-d{position:relative}
.mk-step-n{font-variant-numeric:tabular-nums;font-weight:700}
.mk-step-d{grid-column:1/3;font-size:.72rem;color:var(--accent)}

.mk-tbl{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}
.mk-tbl th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--ink-faint);padding:0 0 6px}
.mk-tbl th.n,.mk-tbl td.n{text-align:right}
.mk-tbl td{padding:5px 0;border-top:1px solid var(--line-soft)}
.mk-tbl td.bad{color:var(--accent);font-weight:700}
.mk-list{margin:6px 0 0;padding-left:18px;font-size:.82rem;color:var(--ink-2)}
.mk-list li{margin-bottom:4px}

.mk-headline{font-size:1rem;color:var(--ink);margin:0 0 14px}
.mk-recs{display:flex;flex-direction:column;gap:10px}
.mk-rec{border:1px solid var(--line);border-left:3px solid var(--ink-faint);border-radius:10px;padding:12px 14px}
.mk-rec.mk-imp-high{border-left-color:var(--accent)}
.mk-rec.mk-imp-medium{border-left-color:#d9a441}
.mk-rec header{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.mk-rec h4{margin:0;font-size:.92rem}
.mk-eff{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700}
.mk-why{font-size:.8rem;color:var(--ink-soft);margin:0 0 6px}
.mk-do{font-size:.86rem;color:var(--ink-2);margin:0}
.mk-watch-h{margin:16px 0 2px;font-size:.85rem}
/* Connecting Google — a paste box and the exact taps, because this is done
   from a phone with the CRM open in another tab. */
.mk-conn-ok{font-size:.86rem;margin:0 0 10px}
.mk-conn-ok code,.mk-list code{font-size:.78rem;background:var(--line-soft);padding:2px 6px;border-radius:5px;word-break:break-all}
.mk-help{margin:0 0 14px}
.mk-help summary{cursor:pointer;font-size:.84rem;font-weight:600;color:var(--accent-deep)}
.mk-steps{margin:10px 0 0;padding-left:20px;font-size:.83rem;color:var(--ink-2)}
.mk-steps li{margin-bottom:7px}
.mk-gfields{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}
/* Sized to what each one holds: 9 digits, a G- code, a URL. */
.mk-w-prop{max-width:170px}.mk-w-meas{max-width:190px}.mk-w-site{flex:1;min-width:230px}
.mk-bad{color:var(--accent);font-weight:600}
/* Two lines on the same chart: visits, and the people behind them. */
.mk-spark-l2{fill:none;stroke:var(--ink-soft);stroke-width:1.6;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.mk-legend{display:flex;gap:16px;align-items:center;font-size:.74rem;color:var(--ink-soft);margin-top:7px;flex-wrap:wrap}
.mk-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:5px}
.mk-key-1{background:var(--accent-2)}
.mk-key-2{background:var(--ink-soft)}

/* ============================== Blog ===================================== */
.bl-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.bl-row{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px}
.bl-main{flex:1;min-width:260px}
.bl-row h3{margin:0 0 3px;font-size:1rem}
.bl-ex{margin:0 0 6px;font-size:.84rem}
.bl-meta{font-size:.76rem;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bl-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bl-ideas{padding:16px 18px}
.bl-idea-list{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.bl-idea{display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:.86rem}
.bl-fields{display:flex;gap:14px;flex-wrap:wrap}
/* Sized to what each holds: a slug is long, a read time is two digits. */
.bl-w-slug{flex:1;min-width:220px}.bl-w-cat{max-width:190px}.bl-w-kw{flex:1;min-width:180px}.bl-w-len{max-width:110px}
.bl-body{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.78rem;line-height:1.55}

/* ============================= Producer ================================== */
/* The gate is the point of this panel: how close a Producer is to the $735
   that decides whether this arrangement is a franchise. */
.pr-card{padding:16px 18px}
.pr-steps{display:flex;gap:26px;flex-wrap:wrap;margin:4px 0 18px}
.pr-step{display:flex;align-items:flex-start;gap:9px;font-size:.84rem;color:var(--ink-faint)}
.pr-step.on{color:var(--ink)}
.pr-dot{width:10px;height:10px;border-radius:50%;background:var(--line);margin-top:4px;flex:none}
.pr-step.on .pr-dot{background:var(--accent)}
.pr-gate{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-bottom:16px}
.pr-gate-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.88rem;margin-bottom:8px}
.pr-bar{height:9px;background:var(--line-soft);border-radius:5px;overflow:hidden}
.pr-bar i{display:block;height:100%;background:var(--accent-2);border-radius:5px}
.pr-bar i.hot{background:var(--accent)}
.pr-gate-foot{font-size:.78rem;margin-top:7px}
.pr-demo-note{background:var(--accent-wash);border-left:3px solid var(--accent-2);border-radius:0 9px 9px 0;
  padding:10px 14px;font-size:.85rem;margin-bottom:12px}
.pr-demo-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.pr-demo-step{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 11px;
  font-size:.78rem;cursor:pointer;color:var(--ink-soft)}
.pr-demo-step.on{background:var(--accent-wash);border-color:var(--accent-2);color:var(--accent-deep);font-weight:600}

/* ---- demo mode ------------------------------------------------------------ */
/* A switch rather than a button: it is a state you are in, not an action you
   took, and it survives a reload because you are usually mid-walkthrough. */
.demo-switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none;margin-left:auto}
.demo-switch input{position:absolute;opacity:0;width:0;height:0}
.demo-track{width:38px;height:22px;border-radius:999px;background:var(--line);
  position:relative;transition:.16s;flex:none}
.demo-track::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;
  border-radius:50%;background:#fff;transition:.16s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.demo-switch input:checked + .demo-track{background:#d9a441}
.demo-switch input:checked + .demo-track::after{transform:translateX(16px)}
.demo-switch input:focus-visible + .demo-track{outline:2px solid #ff0000;outline-offset:2px}
.demo-label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}

.demo-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;
  background:#fff4e5;border:1px solid #f0c98a;border-left:3px solid #d9a441;
  border-radius:10px;padding:13px 17px;margin:0 0 14px;font-size:.88rem;line-height:1.6;color:#5b4a2a}
.demo-bar b{color:#3d3117}
.demo-bar > div{flex:1;min-width:260px}
.demo-bar .btn-ghost{white-space:nowrap}

/* Badged on the card itself, so a practice Producer can never be mistaken for
   a real one even with the toggle off. */
.lic-demo-tag{font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;
  background:#fff4e5;color:#8a6a22;border:1px solid #f0c98a;border-radius:999px;padding:2px 8px}
.lic-card-demo{border-style:dashed}

/* The reminder under the availability switch. Sits tight to the checkbox so it
   reads as an explanation of it rather than a separate paragraph. */
.av-why{margin:0 0 14px;padding:10px 13px;background:var(--surface-2,#f6f4f3);
  border-left:2px solid var(--line);border-radius:0 7px 7px 0;
  font-size:.85rem;line-height:1.65;max-width:62ch}
.av-why b{color:var(--ink)}

/* ---- territory standing, on the pipeline card ----------------------------- */
/* Only a Producer holding a rider gets one, so the badge always means
   something. "On notice" is the only loud one: it is the only state where this
   quarter decides whether they keep the territory. */
.lic-flag{margin-top:7px;font-size:.68rem;font-weight:700;letter-spacing:.04em;
  color:var(--ink-soft);background:var(--surface-2,#f6f4f3);border:1px solid var(--line);
  border-radius:999px;padding:3px 9px;display:inline-block}
.lic-flag-ok{background:#e9f7ee;border-color:#bfe4cd;color:#1c7a43}
.lic-flag-warn{background:#fff4e5;border-color:#f0c98a;color:#8a6a22}
.lic-flag-hot{background:#ffeaea;border-color:#ffc4c4;color:#c00}

/* ---- what a lead is worth -------------------------------------------------- */
/* An estimate carries the guest count it came from, so nobody reads arithmetic
   as a number somebody actually agreed to. A quote just stands there. */
.lead-worth{font-variant-numeric:tabular-nums;font-weight:700}
.lead-worth.is-quoted{color:#1c7a43}
.lead-worth-n{display:block;font-size:.68rem;color:var(--ink-faint);font-weight:400;margin-top:1px}

/* ---- New Event modal: stop the fields escaping the card -------------------- */
/* An <input> carries an intrinsic minimum width from its size attribute, and a
   grid or flex child defaults to min-width:auto — so a 1fr column refuses to
   shrink below about twenty characters and the field hangs off the edge of the
   modal. min-width:0 lets the track actually be 1fr. */
.ev-form label{min-width:0}
.ev-form input,.ev-form select,.ev-form textarea{min-width:0;width:100%;box-sizing:border-box}

/* And size the pair to what goes in them rather than splitting the row in half:
   a two-letter state does not need the same room as a city name. */
.ev-form-row.ev-row-citystate{grid-template-columns:1fr 5.5rem}
@media (max-width:420px){
  .ev-form-row{grid-template-columns:1fr}
  .ev-form-row.ev-row-citystate{grid-template-columns:1fr 5.5rem}
}

/* ---- what a lead is worth, on its own record ------------------------------ */
.ld-worth{display:flex;flex-direction:column;gap:1px;align-items:flex-end;
  padding:8px 14px;border-right:1px solid var(--line);margin-right:4px}
.ld-worth-l{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700}
.ld-worth b{font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:1.1}
.ld-worth.is-quoted b{color:#1c7a43}
.ld-worth-n{font-size:.68rem;color:var(--ink-faint)}
@media (max-width:640px){
  .ld-worth{align-items:flex-start;border-right:0;border-bottom:1px solid var(--line);
    padding:6px 0 10px;margin:0 0 8px;width:100%}
}

/* ---- money on a manually created event ------------------------------------ */
.ev-money{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;
  display:flex;flex-direction:column;gap:10px}
.ev-money-h{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:700}
.ev-radio{flex-direction:row !important;align-items:flex-start;gap:10px;cursor:pointer;
  font-weight:400 !important}
.ev-radio input{width:auto !important;margin-top:3px;flex:none}
.ev-radio b{display:block;font-size:.88rem;color:var(--ink);font-weight:650}
.ev-radio i{display:block;font-style:normal;font-size:.76rem;line-height:1.5;color:var(--ink-faint);margin-top:2px}
/* A total and an amount paid are both short numbers; they do not need half the
   modal each, and the currency mark belongs inside the box. */
.ev-form-row.ev-row-money{grid-template-columns:1fr 1fr;gap:12px}
.ev-cur{position:relative;display:block}
.ev-cur i{position:absolute;left:11px;top:50%;transform:translateY(-50%);
  font-style:normal;color:var(--ink-faint);font-size:.9rem;pointer-events:none}
.ev-cur input{padding-left:24px !important}
.ev-due{margin:0;font-size:.82rem;color:var(--ink-soft);min-height:1.1em}

/* ---- the money card on an event ------------------------------------------- */
.ev-money-tbl{width:100%;border-collapse:collapse;font-size:.88rem;font-variant-numeric:tabular-nums}
.ev-money-tbl td{padding:4px 0}
.ev-money-tbl td.n{text-align:right}
.ev-money-tbl tr.tot td{border-top:1px solid var(--line);padding-top:7px;font-weight:700}
/* The "who is collecting" line is the point of the card, not a footnote: an
   event paid elsewhere must never be chased from here, and this is what tells
   somebody looking at a balance six weeks from now. */
.ev-money-note{margin:10px 0 0;font-size:.8rem;line-height:1.55;color:#8a6a22;
  background:#fff4e5;border-left:2px solid #d9a441;border-radius:0 6px 6px 0;padding:8px 11px}
.ev-money-note.muted{color:var(--ink-faint);background:var(--surface-2,#f6f4f3);border-left-color:var(--line)}

/* ---- the money card, editable --------------------------------------------- */
.ev-money-card .ev-money-tbl{margin-bottom:12px}
.ev-pay-list{list-style:none;margin:0 0 14px;padding:0;border-top:1px solid var(--line)}
.ev-pay-list li{display:flex;align-items:baseline;gap:8px;padding:7px 0;
  border-bottom:1px solid var(--line-soft,var(--line));font-size:.85rem}
.ev-pay-list li span{font-variant-numeric:tabular-nums;font-weight:650;min-width:4.5rem}
.ev-pay-list li i{font-style:normal;color:var(--ink-faint);font-size:.78rem;flex:1}
.ev-pay-x{border:0;background:none;cursor:pointer;color:var(--ink-faint);font-size:1.1rem;
  line-height:1;padding:0 2px}
.ev-pay-x:hover{color:#c00}

.ev-money-form{display:flex;flex-direction:column;gap:10px}
.ev-money-form label{display:flex;flex-direction:column;gap:5px;font-size:.76rem;
  font-weight:650;color:var(--ink-soft);min-width:0}
.ev-money-form input,.ev-money-form select{min-width:0;width:100%;box-sizing:border-box;
  border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:.88rem;
  color:var(--ink);background:var(--panel)}
.ev-money-form input:focus,.ev-money-form select:focus{outline:none;border-color:#ff0000;
  box-shadow:0 0 0 3px rgba(255,0,0,.12)}
/* Adding a payment is a pair of small fields, not two full-width boxes. */
.ev-add-pay{display:grid;grid-template-columns:7.5rem 1fr;gap:10px;
  border-top:1px solid var(--line);padding-top:11px}
.ev-money-actions{display:flex;align-items:center;gap:10px}
@media (max-width:420px){ .ev-add-pay{grid-template-columns:1fr} }

/* ---- email composer ------------------------------------------------------- */
.em-editor{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.em-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:7px 8px;
  border-bottom:1px solid var(--line);background:var(--surface-2,#f6f4f3)}
.em-tools button{border:1px solid transparent;background:none;border-radius:7px;cursor:pointer;
  min-width:30px;height:30px;padding:0 8px;font:inherit;font-size:.86rem;color:var(--ink-2);line-height:1}
.em-tools button:hover{background:var(--panel);border-color:var(--line)}
.em-tools select{border:1px solid var(--line);border-radius:7px;background:var(--panel);
  font:inherit;font-size:.8rem;padding:5px 7px;color:var(--ink-2);max-width:9rem}
.em-tsep{width:1px;height:20px;background:var(--line);margin:0 3px}
/* The typing area looks like the message will, so what you write is what
   arrives — same family, same size, same line height as the sent HTML. */
.em-body{min-height:210px;max-height:44vh;overflow:auto;padding:14px 15px;
  font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6;color:var(--ink);outline:none}
.em-body:focus{outline:none}

.em-sig-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}
.em-sig-name{width:12rem}.em-sig-title{width:11rem}
.em-sig-row label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;font-weight:650;color:var(--ink-soft)}
.em-sig-row .opt{font-weight:400;color:var(--ink-faint)}
.em-sig-row input[type=text],.em-sig-row input:not([type=checkbox]){border:1px solid var(--line);
  border-radius:8px;padding:8px 10px;font:inherit;font-size:.9rem;background:var(--panel);color:var(--ink);width:100%}
.em-sig-toggle{flex-direction:row !important;align-items:center;gap:7px;font-weight:500 !important;
  font-size:.85rem !important;color:var(--ink-2) !important;padding-bottom:9px}
.em-sig-toggle input{width:auto !important}
/* Shown exactly as it will send, so there is no guessing. */
.em-sig-preview{margin-top:10px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px;
  background:var(--surface-2,#faf9f8)}

/* ---- website sessions panel ------------------------------------------------ */
.ws-modal{position:fixed;inset:0;z-index:60;background:rgba(20,14,16,.5);
  display:flex;align-items:center;justify-content:center;padding:26px}
.ws-modal[hidden]{display:none}
.ws-card{background:var(--panel);border-radius:16px;width:100%;max-width:1180px;height:86vh;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(15,30,52,.3)}
.ws-head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.ws-head h3{margin:0;font-size:1.05rem}
.ws-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ws-f{border:1px solid var(--line);background:var(--panel);border-radius:999px;
  padding:6px 13px;font:inherit;font-size:.8rem;color:var(--ink-2);cursor:pointer}
.ws-f.on{background:#ff0000;border-color:#ff0000;color:#fff;font-weight:650}
/* The list scrolls; the detail scrolls separately. Neither moves the other. */
.ws-body{flex:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-height:0}
.ws-list{overflow:auto;border-right:1px solid var(--line);min-width:0}
.ws-detail{overflow:auto;padding:18px 20px;min-width:0;background:var(--surface-2,#faf9f8)}
@media (max-width:900px){ .ws-body{grid-template-columns:1fr} .ws-detail{display:none} }

.ws-tbl{width:100%;border-collapse:collapse;font-size:.86rem}
.ws-tbl th{text-align:left;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-faint);padding:9px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;
  background:var(--panel);z-index:1}
.ws-tbl th.n,.ws-tbl td.n{text-align:right}
.ws-tbl td{padding:11px 14px;border-bottom:1px solid var(--line-soft,var(--line));vertical-align:top}
.ws-tbl tbody tr{cursor:pointer}
.ws-tbl tbody tr:hover{background:var(--surface-2,#faf9f8)}
.ws-row-live{background:#fff8f8}
.ws-who{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-weight:650;color:var(--ink)}
.ws-sub{font-size:.74rem;color:var(--ink-faint);margin-top:2px}
.ws-page{max-width:16rem;overflow:hidden;text-overflow:ellipsis}
.ws-when{white-space:nowrap;font-size:.78rem;color:var(--ink-faint)}

.ws-tag{font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;font-weight:700;
  border-radius:999px;padding:2px 8px;display:inline-flex;align-items:center;gap:5px}
.ws-live{background:#ffeaea;color:#c00}
.ws-live .pip{width:6px;height:6px;border-radius:50%;background:#ff0000;
  animation:wspulse 1.6s ease-in-out infinite}
@keyframes wspulse{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){ .ws-live .pip{animation:none} }
.ws-bad{background:#fff4e5;color:#8a6a22}
.ws-warm{background:#eef4ff;color:#1d4ed8}
.ws-good{background:#e9f7ee;color:#1c7a43}

.ws-d-head{margin-bottom:14px}
.ws-facts{width:100%;border-collapse:collapse;font-size:.84rem;margin-bottom:18px}
.ws-facts td{padding:5px 0;vertical-align:top}
.ws-facts td:first-child{color:var(--ink-faint);width:8.5rem}
.ws-h4{margin:0 0 10px;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint)}
/* The visit as a timeline, with the pauses visible — a long gap is usually the
   most interesting thing in a session. */
.ws-steps{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);padding-left:16px}
.ws-step{position:relative;padding:0 0 14px}
.ws-step::before{content:"";position:absolute;left:-21px;top:5px;width:8px;height:8px;
  border-radius:50%;background:var(--line-2,#ccc)}
.ws-step-pageview::before{background:#1d4ed8}
.ws-step-rage::before{background:#ff0000}
.ws-step-form_submit::before,.ws-step-purchase::before{background:#1c7a43}
.ws-step-exit::before{background:var(--ink-faint)}
.ws-step div{font-size:.85rem;line-height:1.45}
.ws-gap{display:block;font-size:.68rem;color:var(--ink-faint);font-style:italic;margin-bottom:3px}

/* ---- session replay -------------------------------------------------------- */
.ws-rec{background:#f3ecff;color:#6b21a8}
.ws-play-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 12px}
.ws-pin{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--ink-faint);cursor:pointer}
.ws-pin input{width:auto}
/* The replayer draws its own chrome; this just gives it somewhere to sit and
   stops a wide recording pushing the panel sideways. */
.ws-player{margin:0 0 16px;overflow:hidden;border-radius:10px;background:#111}
.ws-player .rr-player{max-width:100%}

/* --- Website tests -------------------------------------------------------- */
/* The brand red, used for the two buttons that open a live view of the site. */
.btn-red{background:#FF0000;border-color:#FF0000;color:#fff}
.btn-red:hover{background:#e00000;border-color:#e00000;color:#fff}

.xp-card-wrap{max-width:1100px}
.xp-body{padding:16px 20px 20px;overflow:auto;display:flex;flex-direction:column;gap:16px}

.xp-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--card)}
.xp-card.xp-running{border-color:rgba(255,0,0,.45);box-shadow:0 0 0 1px rgba(255,0,0,.12)}
.xp-card.xp-done,.xp-card.xp-stopped{opacity:.85}

.xp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.xp-acts{display:flex;gap:8px;flex-shrink:0}
.xp-sub{font-size:.85rem;color:var(--muted);margin-top:3px}

.xp-pill{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;
  padding:2px 7px;border-radius:99px;margin-right:8px;vertical-align:1px}
.xp-p-running{background:#FF0000;color:#fff}
.xp-p-queued{background:var(--chip);color:var(--muted)}
.xp-p-done{background:#1c7c3f;color:#fff}
.xp-p-stopped{background:var(--chip);color:var(--muted)}

.xp-meta{font-size:.85rem;color:var(--muted);margin:10px 0}

.xp-verdict{border-radius:8px;padding:10px 12px;font-size:.92rem;margin-bottom:12px}
.xp-verdict.xp-tie{background:var(--chip);color:var(--muted)}
.xp-verdict.xp-win{background:rgba(28,124,63,.12);border:1px solid rgba(28,124,63,.4)}
.xp-verdict.xp-lose{background:rgba(255,0,0,.08);border:1px solid rgba(255,0,0,.35)}

.xp-arms{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){.xp-arms{grid-template-columns:1fr}}
.xp-arm{border:1px solid var(--line);border-radius:8px;padding:12px}
.xp-arm-h{display:flex;justify-content:space-between;align-items:baseline}
.xp-rate{font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums}
.xp-bar{height:6px;border-radius:3px;background:var(--chip);margin:8px 0 6px;overflow:hidden}
.xp-bar i{display:block;height:100%;background:#FF0000}

.xp-steps{width:100%;font-size:.85rem;margin-top:10px;border-collapse:collapse}
.xp-steps td{padding:3px 0;color:var(--muted)}
.xp-steps td.n{text-align:right;font-variant-numeric:tabular-nums}
.xp-steps tr.on td{color:var(--text);font-weight:600}
.xp-rev{margin-top:8px;font-size:.85rem;font-weight:600}

.xp-outcome{margin-top:12px;font-size:.85rem;color:var(--muted);
  border-left:3px solid var(--line);padding-left:10px}

/* Multi-arm: five doors need a tighter grid and a way to read "cut" at a glance. */
.xp-arms{display:grid;gap:12px}
.xp-arms.xp-n2{grid-template-columns:repeat(2,1fr)}
.xp-arms.xp-n3{grid-template-columns:repeat(3,1fr)}
.xp-arms.xp-n4{grid-template-columns:repeat(2,1fr)}
.xp-arms.xp-n5{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.xp-arms[class*="xp-n"]{grid-template-columns:1fr}}

.xp-arm-ctl{border-color:var(--line-2);background:var(--chip)}
.xp-arm-out{opacity:.5}
.xp-arm-out .xp-bar i{background:var(--muted)}

.xp-tag{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;
  padding:2px 6px;border-radius:99px;margin-left:6px;vertical-align:1px;white-space:nowrap}
.xp-t-ctl{background:var(--chip);color:var(--muted);border:1px solid var(--line)}
.xp-t-up{background:rgba(28,124,63,.15);color:#1c7c3f}
.xp-t-down{background:rgba(255,0,0,.1);color:#c00}
.xp-t-out{background:var(--chip);color:var(--muted)}

.xp-arm-h{flex-wrap:wrap;gap:4px}
.xp-arm-h b{flex:1 1 auto;min-width:0}
.xp-cut{margin-top:8px;font-size:.8rem;color:var(--muted);
  border-left:3px solid var(--line);padding-left:8px}
.xp-link{background:none;border:0;padding:0;color:#FF0000;cursor:pointer;
  font:inherit;font-size:.8rem;text-decoration:underline}
.xp-adopt{margin-top:10px;width:100%}
.xp-p-confirm{background:#8a5a00;color:#fff}

/* --- Leads: row actions and the junk tab -------------------------------- */
.ld-act{text-align:right;white-space:nowrap;width:1%}
.ld-mini{background:var(--chip);border:1px solid var(--line);color:var(--muted);
  font:inherit;font-size:.78rem;padding:4px 10px;border-radius:6px;cursor:pointer;margin-left:6px}
.ld-mini:hover{color:var(--text);border-color:var(--line-2)}
.ld-mini:disabled{opacity:.5;cursor:default}
.ld-arch:hover{background:#FF0000;border-color:#FF0000;color:#fff}
tr:hover .ld-mini{border-color:var(--line-2)}

/* --- Backstage listing panel -------------------------------------------- */
.bs-card{max-width:820px;display:flex;flex-direction:column;max-height:92vh}
.bs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:18px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.bs-head h3{margin:0 0 3px}
.bs-body{padding:18px 22px 28px;overflow:auto}

.bs-note{background:var(--chip);border-radius:8px;padding:11px 14px;font-size:.88rem;
  color:var(--muted);line-height:1.55;margin-bottom:18px}
.bs-note b{color:var(--text)}
.bs-done{background:rgba(28,124,63,.12);color:var(--text)}

.bs-sec{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);
  margin:26px 0 10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-weight:700}
.bs-sec:first-of-type{margin-top:6px}

.bs-field{margin-bottom:14px}
.bs-lab{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.bs-lab > span:first-child{font-size:.83rem;font-weight:650}
.bs-count{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}
.bs-count.bad{color:#FF0000;font-weight:700}
.bs-copy{background:var(--chip);border:1px solid var(--line);color:var(--muted);
  font:inherit;font-size:.74rem;padding:3px 11px;border-radius:6px;cursor:pointer}
.bs-copy:hover{color:var(--text);border-color:var(--line-2)}
.bs-copy.ok{background:#1c7c3f;border-color:#1c7c3f;color:#fff}

.bs-in{width:100%;font:inherit;font-size:.9rem;line-height:1.55;padding:9px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);
  resize:vertical}
.bs-in:focus{outline:none;border-color:var(--line-2)}
.bs-val{font-size:.9rem;padding:8px 11px;background:var(--chip);border-radius:8px}
.bs-over .bs-in{border-color:#FF0000}
.bs-hint{font-size:.78rem;color:var(--muted);margin-top:4px}
.bs-hidden{display:none}

.bs-chips{display:flex;flex-wrap:wrap;gap:6px}
.bs-chip{background:var(--chip);border:1px solid var(--line);border-radius:99px;
  padding:3px 10px;font-size:.8rem}
.bs-save{margin-top:10px}

/* --- Lead: campaigns, email history, texts -------------------------------- */
.lc-blocked{background:rgba(255,0,0,.08);border-left:3px solid #FF0000;padding:10px 13px;
  border-radius:6px;font-size:.9rem;margin-bottom:14px}
.lc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
  padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.lc-sub{font-size:.85rem;color:var(--muted);margin-top:3px}
.lc-acts{flex-shrink:0}

.lc-send{border:1px solid var(--line);border-radius:8px;padding:11px 13px;margin-bottom:9px}
.lc-send-bad{border-color:rgba(255,0,0,.35);background:rgba(255,0,0,.04)}
.lc-send-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.lc-send-top b{font-size:.93rem}
.lc-when{font-size:.78rem;color:var(--muted);white-space:nowrap}
.lc-send-sub{font-size:.83rem;color:var(--muted);margin-top:4px}
.lc-body{color:var(--text);white-space:pre-wrap}
.lc-ok{color:#1c7c3f;font-weight:600}
.lc-hot{color:#FF0000;font-weight:600}
.lc-bad{color:#FF0000;font-weight:600}
.lc-dim{color:var(--muted)}
.lc-note{font-size:.8rem;color:var(--muted);margin-top:6px}

.lc-clicks{margin-top:7px;display:flex;flex-wrap:wrap;gap:6px}
.lc-click{background:var(--chip);border-radius:5px;padding:3px 8px;font-size:.78rem}
.lc-click i{color:var(--muted);font-style:normal}

.lc-disc{border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:8px;
  padding:11px 13px;margin-top:12px}
.lc-disc-live{border-left-color:#1c7c3f}
.lc-disc-expired,.lc-disc-cancelled{border-left-color:var(--muted);opacity:.75}
.lc-disc-used{border-left-color:#FF0000}
.lc-hits{margin-top:8px;font-size:.79rem;color:var(--muted);line-height:1.8}
.lc-hits i{font-style:normal;color:var(--text)}

/* --- Lead: email + texting -------------------------------------------------
   Two columns on a wide screen so neither card is a full-width strip with
   dead space beside it, which is how these looked appended after the form. */
/* Matches the form above exactly. That grid is `columns:2` with a 16px gap,
   i.e. two EQUAL columns — this row was 1.35fr/1fr, so the divide sat in a
   different place and nothing on the page lined up with anything else. */
/* .ld-comms is gone — email, texts and campaigns are now placed directly
   into the two .ld-col columns. */
.cm-card{display:flex;flex-direction:column;min-width:0}
.cm-to{font-size:.82rem;color:var(--muted)}
.cm-empty{padding:6px 0 14px}
.cm-blocked{background:rgba(255,0,0,.07);border-left:3px solid #FF0000;padding:9px 12px;
  border-radius:6px;font-size:.86rem;margin-bottom:14px}

.cm-thread{max-height:420px;overflow:auto;margin-bottom:16px}
.cm-msg-row{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.cm-out{background:var(--panel)}
.cm-in{background:var(--accent-wash,#f4f6fb);border-color:var(--line-2,#dfe4ec)}
.cm-failed{border-color:rgba(255,0,0,.4);background:rgba(255,0,0,.04)}
.cm-msg-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.cm-when{font-size:.76rem;color:var(--muted);white-space:nowrap}
.cm-msg-meta{font-size:.78rem;color:var(--muted);margin:3px 0 8px}
.cm-msg-body{font-size:.92rem;line-height:1.6;overflow-wrap:anywhere}
.cm-msg-body img{max-width:100%}
.cm-msg-foot{margin-top:9px}
.cm-reply{background:none;border:0;color:var(--accent,#2563eb);cursor:pointer;font:inherit;
  font-size:.82rem;padding:0;text-decoration:underline}
.cm-bad{color:#FF0000}

.cm-compose{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel)}
.cm-compose-head{font-size:.8rem;font-weight:650;color:var(--muted);margin-bottom:8px}
.cm-subject{width:100%;font:inherit;font-size:.92rem;padding:8px 10px;margin-bottom:8px;
  border:1px solid var(--line);border-radius:7px;background:var(--surface,#fff)}
.cm-tools{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;
  border:1px solid var(--line);border-bottom:0;border-radius:7px 7px 0 0;background:var(--chip)}
.cm-tools button{background:transparent;border:1px solid transparent;border-radius:5px;
  min-width:28px;height:26px;padding:0 7px;cursor:pointer;font:inherit;font-size:.82rem;color:var(--ink-soft,#555)}
.cm-tools button:hover{background:var(--panel);border-color:var(--line)}
.cm-tools button.on{background:#FF0000;color:#fff}
.cm-tools select{font:inherit;font-size:.78rem;padding:3px 4px;border:1px solid var(--line);
  border-radius:5px;background:var(--panel);max-width:96px}
.cm-sep{width:1px;height:18px;background:var(--line);margin:0 3px}
.cm-editor,.cm-html{width:100%;min-height:140px;border:1px solid var(--line);border-radius:0 0 7px 7px;
  padding:11px 12px;font:inherit;font-size:.93rem;line-height:1.6;background:var(--surface,#fff);
  overflow:auto;resize:vertical}
.cm-editor:focus,.cm-html:focus{outline:none;border-color:var(--line-2)}
.cm-html{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;white-space:pre}
.cm-actions{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.cm-msg{font-size:.82rem}

.cm-texts{max-height:340px;overflow:auto;padding:2px 2px 10px}
.cm-bubble-row{margin-bottom:9px;display:flex;flex-direction:column}
.cm-b-out{align-items:flex-end}
.cm-b-in{align-items:flex-start}
.cm-bubble{max-width:82%;padding:9px 12px;border-radius:14px;font-size:.9rem;line-height:1.5;
  white-space:pre-wrap;overflow-wrap:anywhere}
.cm-b-out .cm-bubble{background:#FF0000;color:#fff;border-bottom-right-radius:4px}
.cm-b-in .cm-bubble{background:var(--chip);color:var(--text);border-bottom-left-radius:4px}
.cm-bubble-bad{background:var(--chip)!important;color:#FF0000!important;border:1px solid rgba(255,0,0,.4)}
.cm-bubble-when{font-size:.72rem;color:var(--muted);margin-top:3px}
.cm-sms-form textarea{width:100%;font:inherit;font-size:.92rem;padding:9px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);resize:vertical}




















/* ---- Lead Test: the real estate CRM's lead detail ------------------------
   Every rule below is copied from that CRM's stylesheet, not written here.
   Selectors are prefixed with .lead-pv-page so their .card / .field / .btn
   rules cannot repaint the rest of our CRM; the prefix is uniform, so their
   rules still beat each other in the same order they do at home. */
.lead-pv-page{
  
  --bg:#f1f1f1;
  --bg-grad-1:#f4f4f4;
  --bg-grad-2:#ebebeb;
  --panel:#ffffff;

  
  --ink:#1c1c1c;
  --ink-2:#484848;
  --ink-soft:#797979;
  --ink-faint:#a5a5a5;

  
  --line:#e9e9e9;
  --line-soft:#f1f1f1;

  
  --accent:#606060;
  --accent-2:#7b7b7b;
  --accent-deep:#4e4e4e;
  --accent-wash:#f0f0f0;

  
  --sidebar-1:#191919;
  --sidebar-2:#212121;

  
  --hot:#ff0000;     --hot-bg:#f0f0f0;
  --warm:#ff0000;    --warm-bg:#f3f3f3;
  --cold:#7e7e7e;    --cold-bg:#f0f0f0;
  --green:#838383;   --green-bg:#f2f2f2;
  --nurture:var(--green); --nurture-bg:var(--green-bg);

  
  --sh-sm:0 1px 2px rgba(28,28,28,.06), 0 1px 3px rgba(28,28,28,.04);
  --sh-md:0 2px 4px rgba(28,28,28,.04), 0 6px 16px rgba(28,28,28,.07);
  --sh-lg:0 4px 8px rgba(28,28,28,.05), 0 16px 40px rgba(28,28,28,.10);

  
  --r-sm:8px; --r-md:12px; --r-lg:16px;

  
  --font-ui:'Inter',system-ui,-apple-system,sans-serif;
  --font-display:'Fraunces',Georgia,serif;
}
/* Ours over the top. This is the one thing Kevin said may differ. */
.lead-pv-page{
  /* text */
  --ink:#111111; --ink-2:#333333; --ink-soft:#666666; --ink-faint:#8A8A8A;
  /* surfaces and rules — grey, so no hue enters the palette */
  --bg:#f3f3f3; --bg-grad-1:#f5f5f5; --bg-grad-2:#ebebeb;
  --panel:#FFFFFF; --line:#E0E0E0; --line-soft:#F0F0F0;
  /* the one colour */
  --accent:#ff0000; --accent-2:#ff0000; --accent-deep:#ff0000; --accent-wash:#f3f3f3;
  --hot:#ff0000; --hot-bg:#f3f3f3;
  /* the temperature scale, as shades rather than a rainbow */
  --warm:#666666; --warm-bg:#F0F0F0;
  --cold:#8A8A8A; --cold-bg:#F5F5F5;
  --green:#111111; --green-bg:#F0F0F0;
  /* their sidebar gradient is a dark maroon; the shell does not draw one, but
     anything reading these should get black */
  --sidebar-1:#000000; --sidebar-2:#111111;
  /* Redefining the token is not enough on its own. Our own :root still carries
     --ink:#1c1c1c -- their navy -- and text with no colour rule of its own
     INHERITS that from body, straight past this block. Setting colour here gives
     the page a root of its own to inherit from. Without this line 505 elements
     render navy, which is exactly the leak Kevin keeps catching. */
  color:var(--ink);
}

/* A rule of theirs that never takes effect at home, and shows.

   The follow-up row is class="field fu-row". Their .fu-row says padding:9px 12px,
   but .field says padding:11px 0 several hundred lines further down, and with the
   same specificity the later one wins -- so the row ends up with NO horizontal
   padding at all. The checkbox sits against the left border and the date against
   the right one. On an ordinary row the border is pale grey and nobody notices;
   on the overdue row it is red, and it reads as clipped.

   Raising the specificity lets their own .fu-row padding apply, which is plainly
   what it was written to do. Kevin: "Why is the container not expanding to fit?" */
.lead-pv-page .field.fu-row{padding:9px 12px}

/* Same collision, second casualty: the bottom border.

   .field also says border-bottom:1px solid var(--line-soft), and
   .field:last-child says border-bottom:none. Both land on .fu-row. So every
   follow-up row gets a paler bottom edge than its other three sides, and the
   LAST row gets no bottom edge at all -- the box is drawn open along the bottom.
   On the red overdue row, which is usually the last one, it looks exactly like
   the card is cutting the row off. Kevin: "the red border is cut off of it".

   Width and colour are restated per state so the overdue row keeps red on all
   four sides rather than picking up the grey. */
.lead-pv-page .followup-list .field.fu-row{border-bottom:1px solid var(--line)}
.lead-pv-page .followup-list .field.fu-row.overdue{border-bottom-color:rgba(255,0,0,.4)}

/* One background on the page, not two. Kevin: "you have two background colors on
   this page. The entire page should just be one background color."

   Two things were painting. Our own body draws a blue-grey GRADIENT
   (linear-gradient(135deg,#f4f4f4,#ebebeb)) across the whole CRM, and the copied
   .detail-modal-body draws a flat grey panel on top of it — it is a modal body in
   their CRM, where having its own surface is the point. As a page it just makes a
   second rectangle.

   So: the detail body stops painting, and this one page gets a single flat
   neutral. Scoped to body[data-page="lead-test"] so the rest of the CRM keeps the
   gradient it has always had — that is not this page's call to change. Flat grey
   also keeps the page inside red / black / white / grey, with no blue in it. */
body[data-page="lead-test"],body[data-page="lead-detail"],body[data-page="reply-lab"]{background:#F2F2F2}
.lead-pv-page .lead-pv-full .detail-modal-body{background:transparent}

/* ---- Event interest -------------------------------------------------------
   Fields are sized to their content. A date, a guest count and a two-letter
   state stretched across the card is the thing Kevin calls out every time, so
   each field declares its own width and they wrap into rows on their own. */
.lead-pv-page .ei-grid{display:flex;flex-wrap:wrap;gap:12px 14px}
.lead-pv-page .ei-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.lead-pv-page .ei-field>span{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}
.lead-pv-page .ei-field input,.lead-pv-page .ei-field select{
  font-family:inherit;font-size:.86rem;color:var(--ink);background:#FFFFFF;
  border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%}
.lead-pv-page .ei-field input:focus,.lead-pv-page .ei-field select:focus{
  outline:none;border-color:#ff0000;box-shadow:0 0 0 3px rgba(255,0,0,.12)}
.lead-pv-page .ei-tiny{width:88px;flex:0 0 88px}
.lead-pv-page .ei-date{width:150px;flex:0 0 150px}
.lead-pv-page .ei-small{width:120px;flex:0 0 120px}
.lead-pv-page .ei-mid{width:190px;flex:0 0 190px}
.lead-pv-page .ei-wide{flex:1 1 260px;min-width:260px}
/* In the 312px side column there is no room for two fields abreast, so a
   stacked grid gives every field the full width -- except the city/state
   pair, which still reads better together. */
.lead-pv-page .ei-stack .ei-field{flex:1 1 100%;width:auto;min-width:0}
.lead-pv-page .ei-stack .ei-mid{flex:1 1 auto;min-width:0}
.lead-pv-page .ei-stack .ei-tiny{flex:0 0 88px;width:88px}

/* Notes. A bare textarea takes its default 20x2 character size, which is why
   it rendered as a small box floating in a wide card. Their stylesheet has no
   rule for one because their Notes card is a list, not a field. */
.lead-pv-page .card-pad>textarea{width:100%;min-height:96px;resize:vertical;
  font-family:inherit;font-size:.86rem;line-height:1.5;color:var(--ink);
  background:#FFFFFF;border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.lead-pv-page .card-pad>textarea:focus{outline:none;border-color:#ff0000;
  box-shadow:0 0 0 3px rgba(255,0,0,.12)}

/* Contact log: the add row sits on one line, input taking the slack. */
.lead-pv-page .ld-log-add{display:flex;gap:9px;align-items:center;margin-bottom:12px}
.lead-pv-page .ld-log-add input{flex:1 1 auto;min-width:0;font-family:inherit;font-size:.86rem;
  color:var(--ink);background:#FFFFFF;border:1px solid var(--line);border-radius:9px;padding:8px 10px}
.lead-pv-page .ld-log-add select{flex:0 0 auto}
.lead-pv-page .ld-log-list{list-style:none;margin:0;padding:0}

/* Add-follow-up form, and the campaign box on the real page.

   The campaign card is the live lead-campaigns markup (lc-*), not the sandbox
   one, so it needs its own rules to sit in the 312px column: the picker stacks,
   the buttons go full width, and the description Kevin did not want is one short
   line rather than a paragraph. */
.lead-pv-page .fu-add{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.lead-pv-page .fu-add-actions{display:flex;gap:9px;margin-top:12px}
.lead-pv-page .lc-pick-row{display:flex;flex-direction:column;gap:8px}
.lead-pv-page .lc-pick-row select,.lead-pv-page .lc-pick-row .btn{width:100%}
.lead-pv-page .lc-pick-lab{display:block;font-size:.72rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:5px}
.lead-pv-page .lc-sub{margin-top:9px;font-size:.78rem;line-height:1.4;color:var(--ink-soft)}
.lead-pv-page .lv-note{margin-top:7px;font-size:.75rem;line-height:1.4;color:var(--ink-soft)}

/* ---- Reply Lab ------------------------------------------------------------
   The rehearsal room for the auto-responder. Her turns are set apart from the
   customer's, and a turn where she hands over is marked in red so it is obvious
   at a glance where the conversation would have left her hands. */
.lead-pv-page .lab-note{margin-bottom:14px;padding:11px 14px;border:1px solid var(--line);
  border-radius:11px;background:#FFFFFF;font-size:.82rem;line-height:1.5;color:var(--ink-2)}
.lead-pv-page .lab-msg{display:flex;flex-direction:column;gap:5px;margin-top:12px}
.lead-pv-page .lab-msg>span{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}
.lead-pv-page .lab-msg textarea{width:100%;resize:vertical;font-family:inherit;font-size:.86rem;
  line-height:1.5;color:var(--ink);background:#FFFFFF;border:1px solid var(--line);
  border-radius:9px;padding:10px 12px}
.lead-pv-page .lab-msg textarea:focus{outline:none;border-color:#ff0000;box-shadow:0 0 0 3px rgba(255,0,0,.12)}
.lead-pv-page .lab-actions{display:flex;align-items:center;gap:11px;margin-top:14px}
.lead-pv-page .lab-state{font-size:.8rem;color:var(--ink-soft)}
.lead-pv-page .lab-state.is-bad{color:#ff0000}

.lead-pv-page .lab-turn{padding:12px 14px;border:1px solid var(--line);border-radius:11px;margin-bottom:9px}
.lead-pv-page .lab-them{background:#FFFFFF}
.lead-pv-page .lab-her{background:#FAFAFA}
.lead-pv-page .lab-her.is-handoff{border-color:rgba(255,0,0,.4)}
.lead-pv-page .lab-who{display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  font-size:.78rem;font-weight:600;color:var(--ink);margin-bottom:6px}
.lead-pv-page .lab-delay{font-weight:400;color:var(--ink-soft)}
.lead-pv-page .lab-flag{font-weight:600;color:#ff0000}
.lead-pv-page .lab-body{font-size:.86rem;line-height:1.6;color:var(--ink-2)}
.lead-pv-page .lab-fix{display:flex;gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line-soft)}
.lead-pv-page .lab-fix input{flex:1 1 auto;min-width:0;font-family:inherit;font-size:.8rem;
  color:var(--ink);background:#FFFFFF;border:1px solid var(--line);border-radius:9px;padding:7px 10px}
.lead-pv-page .lab-reply{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.lead-pv-page .lab-reply button{margin-top:11px}

.lead-pv-page .lab-lesson{display:flex;align-items:flex-start;gap:9px;padding:9px 0;
  border-bottom:1px solid var(--line-soft);font-size:.8rem;line-height:1.45;color:var(--ink-2)}
.lead-pv-page .lab-lesson:last-child{border-bottom:none}
.lead-pv-page .lab-lesson-off{flex:0 0 auto;width:20px;height:20px;border:1px solid var(--line);
  border-radius:6px;background:#FFFFFF;color:var(--ink-soft);cursor:pointer;line-height:1;font-size:.9rem}
.lead-pv-page .lab-lesson-off:hover{border-color:#ff0000;color:#ff0000}
.lead-pv-page .lab-teach{margin-top:12px}
.lead-pv-page .lab-teach button{margin-top:11px;width:100%}
.lead-pv-page .lab-timing div{display:flex;flex-direction:column;gap:2px;padding:8px 0;
  border-bottom:1px solid var(--line-soft)}
.lead-pv-page .lab-timing div:last-child{border-bottom:none}
.lead-pv-page .lab-timing b{font-size:.9rem;color:var(--ink)}
.lead-pv-page .lab-timing span{font-size:.78rem;color:var(--ink-soft)}

/* Email bodies are somebody else's HTML.
   A signature built from nested tables with width:100% stretches its cells
   across whatever room it is given — Kelly's address came out with an inch
   between "Columbus" and "United States". Tables size to their content instead,
   images are capped, and anything genuinely too wide scrolls inside its own box
   rather than pushing the page sideways. */
.lead-pv-page .cm-msg-body,.cm-msg-body{overflow-x:auto}
.lead-pv-page .cm-msg-body table,.cm-msg-body table{width:auto!important;max-width:100%}
.lead-pv-page .cm-msg-body img,.cm-msg-body img{max-width:100%;height:auto}
.lead-pv-page .cm-msg-body td,.cm-msg-body td{padding-right:6px}

/* ---- Campaigns ------------------------------------------------------------
   Kevin, second pass: a small box in the right column. A dropdown, a Start
   button, and a line saying which campaign is running. Nothing else — the tile
   version he asked for first was more than he wanted here. */
.lead-pv-page .lead-pv-full .camp-select{width:100%;margin-bottom:9px}
.lead-pv-page .lead-pv-full .camp-start{width:100%;justify-content:center}
.lead-pv-page .lead-pv-full .camp-state{margin-top:9px;font-size:.78rem;line-height:1.4;color:var(--ink-soft)}

/* ---- Email thread rows ----------------------------------------------------
   Kevin: "needs to be a lot smaller... thin top to bottom."

   A collapsed message was 120px, and 44px of that was Reply sitting on its own
   line below the header. Reply moved up onto the header row, so a collapsed
   message is now a single line of about half the height.

   Every selector below carries .lead-pv-full as well. Their copied rules are
   emitted AFTER this block at the same specificity, so a two-class selector
   simply loses on source order — which is why the first attempt left Reply at
   its old size and the row gap unchanged. */
.lead-pv-page .lead-pv-full .email-message{padding:7px 12px}
.lead-pv-page .lead-pv-full .email-message-topline{display:flex;align-items:center;gap:10px}
.lead-pv-page .lead-pv-full .email-message-topline .email-message-head{flex:1 1 auto;min-width:0;padding:0}
.lead-pv-page .lead-pv-full .email-message-head-text{gap:1px}
.lead-pv-page .lead-pv-full .email-message-head-text b{font-size:.83rem;line-height:1.35}
.lead-pv-page .lead-pv-full .email-message-head-text span{font-size:.72rem;line-height:1.3}
.lead-pv-page .lead-pv-full .email-reply-btn{flex:0 0 auto;padding:4px 11px;font-size:.74rem}
.lead-pv-page .lead-pv-full .email-message-chevron{width:19px;height:19px;font-size:.85rem}
.lead-pv-page .lead-pv-full .email-thread-list{gap:7px}

/* ---- Buttons: a gradient, on Kevin's ask ----------------------------------
   Both stops are his own colours. The red buttons run #ff0000 to #000000 with
   the black stop placed past the end of the button, so what shows is the top of
   that ramp — a red that deepens downward, with no third colour named. The pale
   buttons do the same between #FFFFFF and the page grey. */
.lead-pv-page .btn,.lead-pv-page .pill-btn,.lead-pv-page .qbtn,.lead-pv-page .camp-tile,
.lead-pv-page button[type="submit"]{background-image:linear-gradient(180deg,#FFFFFF 0%,#F2F2F2 100%)}
.lead-pv-page .btn:not(.ghost):not(.danger),.lead-pv-page .qbtn-email,
.lead-pv-page button[type="submit"]{
  background-image:linear-gradient(180deg,#ff0000 0%,#000000 260%);
  background-color:#ff0000;border-color:#ff0000;color:#FFFFFF}
.lead-pv-page .qbtn-call,.lead-pv-page .qbtn-text{
  background-image:linear-gradient(180deg,#111111 0%,#000000 100%);color:#FFFFFF}

/* Rules of theirs that name a hue outright, so no token can reach them. */
.lead-pv-page .qbtn-call{background:#111111}
.lead-pv-page .qbtn-text{background:#111111}
.lead-pv-page .qbtn-email{background:#ff0000}
.lead-pv-page .email-open-badge.opened{color:#ff0000;background:#f3f3f3}
.lead-pv-page .fu-row.overdue .cb{border-color:#ff0000}
.lead-pv-page .email-message.outbound{background:#FFFFFF;border-color:#E0E0E0}
.lead-pv-page .email-message.inbound{background:#FFFFFF;border-color:#E0E0E0}
.lead-pv-page .followup-item.upcoming{background:#FFFFFF;border-color:#E0E0E0}
.lead-pv-page .email-toolbar{background:#F7F7F7}
.lead-pv-page .email-folder-rail{background:#F7F7F7}
.lead-pv-page .detail-modal-head{background:#FFFFFF}
.lead-pv-page .detail-metrics div{background:#FFFFFF;border-color:#E0E0E0}
.lead-pv-page .card,.lead-pv-page .detail-hero{border-color:#E0E0E0}
.lead-pv-page a{color:#ff0000}
.lead-pv-page .inbox-body-frame{border-color:#E0E0E0}
.lead-pv-page .nav a.active{background:linear-gradient(90deg,rgba(96,96,96,.22),rgba(96,96,96,.08));color:#fff;font-weight:600}
.lead-pv-page .nav a.active svg{opacity:1;color:#ababab}
.lead-pv-page .nav a.active::before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent-2);box-shadow:0 0 12px rgba(123,123,123,.7)}
.lead-pv-page .nav a.active .count{background:rgba(171,171,171,.2);color:#dfdfdf}
.lead-pv-page .sidebar-tools a.active{background:linear-gradient(90deg,rgba(96,96,96,.22),rgba(96,96,96,.08));color:#fff;font-weight:600}
.lead-pv-page .crumb{font-size:.74rem;color:var(--ink-faint);font-weight:500;margin-bottom:3px}
.lead-pv-page .crumb b{color:var(--ink-soft);font-weight:600}
.lead-pv-page .modal-head .crumb{color:#9e9e9e}
.lead-pv-page .modal-head .crumb b{color:#d2d2d2}
.lead-pv-page .modal-head .icon-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#d2d2d2;box-shadow:none}
.lead-pv-page .modal-head .icon-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.lead-pv-page .modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.lead-pv-page .form-error{font-size:.8rem;color:var(--hot);font-weight:600}
.lead-pv-page .form-success{font-size:.8rem;color:var(--green);font-weight:600}
.lead-pv-page .compact-select{height:34px;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font:inherit;font-size:.83rem;padding:0 10px;box-shadow:var(--sh-sm);outline:none}
.lead-pv-page .family-member > .pill-btn{justify-self:end}
.lead-pv-page .detail-modal{width:min(1480px,calc(100vw - 36px));height:calc(100vh - 36px);overflow:hidden;display:flex;flex-direction:column;background:var(--panel);box-shadow:var(--sh-lg)}
.lead-pv-page .detail-modal [data-lead-detail-content],.lead-pv-page .detail-modal [data-agent-detail-content],.lead-pv-page .detail-modal [data-partner-detail-content]{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.lead-pv-page .detail-modal-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 26px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fafafa);flex:0 0 auto}
.lead-pv-page .detail-modal-head h2{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin-top:4px}
.lead-pv-page .detail-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lead-pv-page .detail-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.lead-pv-page .detail-head-actions .btn{padding:10px 13px}
.lead-pv-page .detail-subline{font-size:.84rem;color:var(--ink-soft);margin-top:6px}
.lead-pv-page .detail-modal-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;padding:20px;overflow-y:auto;min-height:0;background:var(--bg);flex:1 1 auto}
.lead-pv-page .detail-main,.lead-pv-page .detail-side{display:grid;gap:16px;align-content:start}
.lead-pv-page .detail-section{overflow:hidden}
.lead-pv-page .detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.lead-pv-page .detail-metrics div{padding:20px;border-right:1px solid var(--line);display:grid;gap:5px}
.lead-pv-page .detail-metrics div:last-child{border-right:none}
.lead-pv-page .detail-metrics span{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);background:var(--line-soft)}
.lead-pv-page .detail-metrics svg{width:17px;height:17px}
.lead-pv-page .detail-metrics b{font-size:1.45rem;color:var(--ink)}
.lead-pv-page .detail-metrics small{font-size:.76rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.lead-pv-page .detail-metrics button{margin-top:6px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.76rem;font-weight:600;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.lead-pv-page .detail-metrics button:hover{border-color:#d9d9d9;color:var(--ink)}
.lead-pv-page .detail-notes{color:var(--ink-2);font-size:.9rem;line-height:1.55}
.lead-pv-page .detail-notes-list{display:grid;gap:10px;max-height:180px;overflow:auto}
.lead-pv-page .note-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.lead-pv-page .note-item span{display:block;font-size:.72rem;color:var(--ink-faint);font-weight:600;margin-bottom:5px}
.lead-pv-page .note-item p{font-size:.86rem;color:var(--ink-2);line-height:1.45}
.lead-pv-page .detail-timeline{max-height:230px;overflow:auto;padding-right:4px}
.lead-pv-page .property-list{display:grid;gap:10px}
.lead-pv-page .property-item{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;box-shadow:var(--sh-sm)}
.lead-pv-page .property-item b{display:block;font-size:.84rem;color:var(--ink);line-height:1.35}
.lead-pv-page .property-item span{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:4px}
.lead-pv-page .followup-list{display:grid;gap:6px}
.lead-pv-page .followup-item.overdue{border-color:rgba(255,0,0,.22);background:var(--hot-bg)}
.lead-pv-page .followup-item.upcoming{border-color:rgba(96,96,96,.18);background:var(--accent-wash)}
.lead-pv-page .followup-list{display:grid;gap:8px}
.lead-pv-page .fu-row.overdue{border-color:rgba(255,0,0,.4);background:var(--hot-bg)}
.lead-pv-page .fu-row.overdue .cb{border-color:rgba(255,0,0,.5)}
.lead-pv-page .feature-actions .pill-btn{padding:7px 10px}
.lead-pv-page .settings-subnav a.active{background:var(--ink);color:#fff}
.lead-pv-page .settings-subnav a.active svg,.lead-pv-page .settings-subnav a.active small{color:#fff}
.lead-pv-page .email-thread-panel{display:grid;gap:16px}
.lead-pv-page .email-thread-list{display:grid;gap:10px;padding:16px 0 0;border-top:1px solid var(--line);max-height:340px;overflow-y:auto}
.lead-pv-page .email-message.outbound{background:var(--accent-wash);border-color:rgba(96,96,96,.18)}
.lead-pv-page .email-message-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;width:100%;background:none;border:0;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.lead-pv-page .email-message-head-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.lead-pv-page .email-message-head b{font-size:.88rem;color:var(--ink)}
.lead-pv-page .email-message-head span{font-size:.72rem;color:var(--ink-faint)}
.lead-pv-page .email-message-chevron{flex:none;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1rem;font-weight:700;line-height:1}
.lead-pv-page .email-message-chevron::before{content:"\2212"}
.lead-pv-page .email-message.collapsed .email-message-chevron::before{content:"+"}
.lead-pv-page .email-message.collapsed .email-message-chevron{background:var(--accent);border-color:var(--accent);color:#fff}
.lead-pv-page .email-message.collapsed .email-message-collapsible{display:none}
.lead-pv-page .email-message-body{font-size:.86rem;color:var(--ink-2);line-height:1.5;margin-top:8px}
.lead-pv-page .email-reply-form{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px;box-shadow:var(--sh-sm)}
.lead-pv-page .email-reply-title{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.lead-pv-page .email-compose{display:grid;gap:12px}
.lead-pv-page .email-compose label span{display:block;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:7px}
.lead-pv-page .email-compose input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:.86rem;color:var(--ink);box-shadow:var(--sh-sm);outline:none;transition:all .15s}
.lead-pv-page .email-compose input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash),var(--sh-sm)}
.lead-pv-page .email-editor-shell{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--sh-sm);overflow:hidden}
.lead-pv-page .email-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fcfcfc,#f7f7f7)}
.lead-pv-page .email-toolbar button,.lead-pv-page .email-toolbar select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.78rem;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.lead-pv-page .email-image-upload{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:.78rem;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm)}
.lead-pv-page .email-toolbar button:hover,.lead-pv-page .email-toolbar select:hover,.lead-pv-page .email-image-upload:hover{border-color:#d9d9d9;color:var(--ink)}
.lead-pv-page .email-editor{min-height:160px;padding:13px 14px;font-size:.9rem;color:var(--ink);line-height:1.55;outline:none}
.lead-pv-page .email-editor img{max-width:100%;height:auto}
.lead-pv-page .email-editor:empty::before{content:"Write your email...";color:var(--ink-faint)}
.lead-pv-page .email-toolbar button svg{width:15px;height:15px;display:block}
.lead-pv-page .email-toolbar button[data-email-command]{display:inline-flex;align-items:center;justify-content:center;min-width:30px}
.lead-pv-page .email-tb-div{width:1px;height:20px;background:var(--line);margin:0 2px;flex:0 0 auto}
.lead-pv-page .email-tb-spacer{flex:1 1 auto}
.lead-pv-page .email-editor h1{font-size:1.55rem;font-weight:700;line-height:1.2;margin:.45em 0}
.lead-pv-page .email-editor h2{font-size:1.3rem;font-weight:700;line-height:1.25;margin:.45em 0}
.lead-pv-page .email-editor h3{font-size:1.1rem;font-weight:600;line-height:1.3;margin:.45em 0}
.lead-pv-page .email-editor blockquote{border-left:3px solid var(--line);margin:.5em 0;padding:.2em 0 .2em 12px;color:var(--ink-soft)}
.lead-pv-page .email-editor ul,.lead-pv-page .email-editor ol{padding-left:22px;margin:.4em 0}
.lead-pv-page .email-editor a{color:var(--accent)}
.lead-pv-page .email-folder.active{background:var(--ink);color:#fff}
.lead-pv-page .email-folder.active:hover{background:var(--ink)}
.lead-pv-page .email-folder.active svg{color:#fff}
.lead-pv-page .inbox-row:hover,.lead-pv-page .inbox-row.active{background:var(--accent-wash)}
.lead-pv-page .inbox-row.unread .inbox-from,.lead-pv-page .inbox-row.unread .inbox-subject{font-weight:800;color:var(--ink)}
.lead-pv-page .inbox-row-flag.on svg{fill:var(--hot);stroke:var(--hot)}
.lead-pv-page .inbox-row.flagged{background:#f1f1f1}
.lead-pv-page .inbox-row.flagged:hover,.lead-pv-page .inbox-row.flagged.active{background:#e6e6e6}
.lead-pv-page .inbox-detail-actions .pill-btn{padding:5px 9px;font-size:.74rem;white-space:nowrap;box-shadow:none}
.lead-pv-page .inbox-detail-actions .pill-btn svg{width:13px;height:13px}
.lead-pv-page .inbox-body{padding-top:18px;color:var(--ink-2);font-size:.92rem;line-height:1.6;white-space:normal}
.lead-pv-page .inbox-body-frame{width:100%;border:0;background:#fff;min-height:140px;margin-top:14px;display:block}
.lead-pv-page .inbox-detail-actions .pill-btn.flag-on{color:var(--hot);border-color:var(--hot);background:#f1f1f1}
.lead-pv-page .inbox-detail-actions .pill-btn.flag-on svg{fill:var(--hot);stroke:var(--hot)}
.lead-pv-page .calendar-day.muted{background:#fcfcfc;color:var(--ink-faint)}
.lead-pv-page .calendar-event.overdue{border-left-color:var(--hot);background:var(--hot-bg)}
.lead-pv-page .btn.ghost.danger{color:var(--hot);border-color:var(--hot-bg)}
.lead-pv-page .btn.ghost.danger:hover{background:var(--hot-bg)}
.lead-pv-page .empty-state.compact{padding:10px 0;text-align:left;background:transparent;border:0}
.lead-pv-page .detail-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--line);background:#fff;flex:0 0 auto}
.lead-pv-page .detail-modal-foot span{font-size:.8rem;color:var(--ink-soft);font-weight:600}
.lead-pv-page .detail-modal-foot .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.lead-pv-page .btn{background:linear-gradient(145deg,var(--accent-2),var(--accent-deep));color:#fff;border:none;border-radius:10px;padding:11px 18px;font-size:.83rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;letter-spacing:-.01em;box-shadow:0 2px 6px rgba(96,96,96,.32),inset 0 1px 0 rgba(255,255,255,.2);transition:all .15s}
.lead-pv-page .btn svg{width:16px;height:16px;stroke-width:2.1}
.lead-pv-page .btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(96,96,96,.42),inset 0 1px 0 rgba(255,255,255,.2)}
.lead-pv-page .btn.ghost{background:var(--panel);color:var(--ink-2);border:1px solid var(--line);box-shadow:var(--sh-sm)}
.lead-pv-page .btn.ghost:hover{color:var(--ink);border-color:#d9d9d9}
.lead-pv-page .btn.ghost.danger{color:var(--hot);border-color:rgba(255,0,0,.24);background:var(--hot-bg)}
.lead-pv-page .btn.ghost.danger:hover{color:var(--hot);border-color:rgba(255,0,0,.42)}
.lead-pv-page .icon-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--panel);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);box-shadow:var(--sh-sm);transition:all .15s}
.lead-pv-page .icon-btn svg{width:18px;height:18px;stroke-width:1.8}
.lead-pv-page .icon-btn:hover{color:var(--ink);border-color:#d9d9d9;transform:translateY(-1px);box-shadow:var(--sh-md)}
.lead-pv-page .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.lead-pv-page .card-pad{padding:22px 24px}
.lead-pv-page .card-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.lead-pv-page .card-head h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600}
.lead-pv-page .my-task-row.overdue{border-color:rgba(255,0,0,.32);background:var(--hot-bg,#f9f9f9)}
.lead-pv-page .seg-opt.on{background:#fff;color:var(--accent,#606060);box-shadow:0 1px 3px rgba(28,28,28,.12)}
.lead-pv-page .help-content .card{margin-bottom:16px}
.lead-pv-page .lead-value-field{display:block;margin-bottom:12px}
.lead-pv-page .lead-value-field>span{display:block;font-size:.74rem;font-weight:600;color:var(--ink-soft);margin-bottom:5px}
.lead-pv-page .lead-value-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff}
.lead-pv-page .lead-value-input:focus-within{border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-wash)}
.lead-pv-page .lead-value-input .lv-dollar{color:var(--ink-soft);font-weight:600;font-size:.9rem}
.lead-pv-page .lead-value-input input{flex:1;border:none;outline:none;padding:9px 6px;font:inherit;font-size:.95rem;font-weight:600;color:var(--ink);background:none}
.lead-pv-page .lead-value-total{margin-top:6px;font-size:.84rem;color:var(--ink-soft)}
.lead-pv-page .lead-value-total b{font-family:var(--font-display);font-size:1.1rem;color:var(--green)}
.lead-pv-page .seg-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.lead-pv-page .seg-tab.on .seg-count{background:rgba(255,255,255,.25)}
.lead-pv-page .segment button .pip{width:7px;height:7px;border-radius:50%}
.lead-pv-page .segment button.on{background:var(--ink);color:#fff;font-weight:600;box-shadow:var(--sh-sm)}
.lead-pv-page .segment button:not(.on):hover{background:var(--line-soft);color:var(--ink)}
.lead-pv-page .pill-btn{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-size:.8rem;font-weight:500;color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-sm);transition:all .15s}
.lead-pv-page .pill-btn svg{width:15px;height:15px;stroke-width:1.9;color:var(--ink-soft)}
.lead-pv-page .pill-btn:hover{border-color:#d9d9d9;color:var(--ink);box-shadow:var(--sh-md)}
.lead-pv-page [data-leads-table] tbody td .comm-cell,.lead-pv-page [data-leads-table] tbody td .tag-list,.lead-pv-page [data-leads-table] tbody td .src,.lead-pv-page [data-leads-table] tbody td .next,.lead-pv-page [data-leads-table] tbody td .row-actions{justify-content:center}
.lead-pv-page .tag .pip{width:6px;height:6px;border-radius:50%}
.lead-pv-page .tag.hot{background:var(--hot-bg);color:var(--hot)}
.lead-pv-page .tag.hot .pip{background:var(--hot)}
.lead-pv-page .tag.warm{background:var(--warm-bg);color:#ff0000}
.lead-pv-page .tag.warm .pip{background:var(--warm)}
.lead-pv-page .tag.cold{background:var(--cold-bg);color:var(--cold)}
.lead-pv-page .tag.cold .pip{background:var(--cold)}
.lead-pv-page .tag.nurture .pip{background:var(--nurture)}
.lead-pv-page .tag.upcoming{background:var(--accent-wash);color:var(--accent-deep)}
.lead-pv-page .tag.upcoming .pip{background:var(--accent)}
.lead-pv-page .tag.completed .pip{background:var(--green)}
.lead-pv-page .tag.custom-status .pip{background:var(--ink-faint)}
.lead-pv-page .tag.closed-tag .pip{background:var(--green)}
.lead-pv-page .next{font-size:.85rem;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.lead-pv-page .next .nd{font-size:.72rem;color:var(--ink-faint);margin-top:1px}
.lead-pv-page .next.due .nm2{color:var(--hot);font-weight:600}
.lead-pv-page .next .clock{width:15px;height:15px;stroke-width:2;color:var(--ink-faint)}
.lead-pv-page .next.due .clock{color:var(--hot)}
.lead-pv-page .next.upcoming .nm2{color:var(--accent-deep);font-weight:600}
.lead-pv-page .next.upcoming .clock{color:var(--accent)}
.lead-pv-page .cb{width:17px;height:17px;border:1.6px solid #d3d3d3;border-radius:5px;cursor:pointer;transition:all .13s;display:inline-block;flex:0 0 auto;padding:0;background:#fff;-webkit-appearance:none;appearance:none;position:relative}
.lead-pv-page .cb:hover{border-color:var(--accent);background:var(--accent-wash)}
.lead-pv-page .cb.done{background:var(--accent);border-color:var(--accent)}
.lead-pv-page .cb.done::after{content:'';position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.lead-pv-page .pager button.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.lead-pv-page .timeline{position:relative;padding-left:24px}
.lead-pv-page .timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--line)}
.lead-pv-page .tl-item{position:relative;padding-bottom:20px}
.lead-pv-page .tl-item::before{content:"";position:absolute;left:-21px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--accent)}
.lead-pv-page .tl-item.muted::before{border-color:var(--ink-faint)}
.lead-pv-page .tl-when{font-size:.74rem;color:var(--ink-faint);margin-bottom:2px}
.lead-pv-page .tl-what{font-size:.88rem;color:var(--ink-2)}
.lead-pv-page .tl-what b{color:var(--ink);font-weight:600}
.lead-pv-page .field{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:.86rem}
.lead-pv-page .field .v,.lead-pv-page .detail-side .field .v,.lead-pv-page .email-message-meta,.lead-pv-page .inbox-from,.lead-pv-page .inbox-meta{overflow-wrap:anywhere;word-break:normal;min-width:0}
.lead-pv-page .field:last-child{border-bottom:none}
.lead-pv-page .field .k{color:var(--ink-soft)}
.lead-pv-page .field .v{color:var(--ink);font-weight:500}
.lead-pv-page .empty-state{padding:28px 18px;text-align:center;color:var(--ink-soft);font-size:.86rem}
.lead-pv-page .row{display:flex;align-items:center;gap:12px}
.lead-pv-page .muted{color:var(--ink-soft)}
.lead-pv-page .detail-modal{border:1px solid var(--line);border-radius:12px}
.lead-pv-page .detail-modal-head{padding:18px 24px;background:#fff;border-bottom:1px solid var(--line);align-items:flex-start}
.lead-pv-page .detail-head-id{min-width:0}
.lead-pv-page .detail-modal-head h2{font-size:1.5rem;letter-spacing:-.025em;margin-top:2px}
.lead-pv-page .detail-title-row{gap:9px}
.lead-pv-page .detail-subline{margin-top:4px;font-weight:500;color:var(--ink-soft)}
.lead-pv-page .detail-head-actions{gap:7px}
.lead-pv-page .detail-head-actions .btn{padding:8px 12px;font-size:.8rem}
.lead-pv-page .detail-head-actions .icon-btn{width:36px;height:36px}
.lead-pv-page .detail-quick{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.lead-pv-page .qbtn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:8px 13px;font-size:.8rem;font-weight:600;color:#fff;cursor:pointer;letter-spacing:-.01em;box-shadow:var(--sh-sm);transition:filter .15s,transform .15s}
.lead-pv-page .qbtn svg{width:15px;height:15px;stroke-width:2}
.lead-pv-page .qbtn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.lead-pv-page .qbtn-call{background:#838383}
.lead-pv-page .qbtn-text{background:var(--accent)}
.lead-pv-page .qbtn-email{background:#6a6a6a}
.lead-pv-page .detail-modal-body{background:#f2f2f2;grid-template-columns:minmax(0,1fr) 312px;gap:14px;padding:16px 18px}
.lead-pv-page .detail-main,.lead-pv-page .detail-side{gap:14px}
.lead-pv-page .detail-modal .card,.lead-pv-page .detail-hero{background:#fff;border:1px solid #ececec;border-radius:10px;box-shadow:0 1px 2px rgba(28,28,28,.05)}
.lead-pv-page .detail-modal .card-head{padding:13px 16px;border-bottom:1px solid var(--line-soft)}
.lead-pv-page .detail-modal .card-head h3{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink)}
.lead-pv-page .detail-modal .card-pad{padding:14px 16px}
.lead-pv-page .detail-modal .detail-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-left:3px solid var(--accent)}
.lead-pv-page .detail-state-chip.overdue{background:var(--hot-bg);color:var(--hot)}
.lead-pv-page .detail-state-chip.upcoming{background:var(--accent-wash);color:var(--accent-deep)}
.lead-pv-page .detail-metrics{grid-template-columns:repeat(3,1fr);gap:8px}
.lead-pv-page .detail-metrics div{background:#f7f7f7;border:1px solid #ececec;border-radius:8px;padding:9px 11px;display:flex;flex-direction:column;gap:1px;align-items:flex-start}
.lead-pv-page .detail-metrics span{display:none}
.lead-pv-page .detail-metrics small{order:-1;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--ink-soft)}
.lead-pv-page .detail-metrics b{font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.05;color:var(--ink)}
.lead-pv-page .detail-metrics button{margin-top:3px;border:none;background:none;box-shadow:none;padding:0;font-size:.68rem;font-weight:600;color:var(--accent);cursor:pointer}
.lead-pv-page .detail-metrics button:hover{text-decoration:underline}
.lead-pv-page .detail-modal .followup-item,.lead-pv-page .detail-modal .property-item,.lead-pv-page .detail-modal .note-item{border:1px solid #ececec;border-radius:8px;background:#fff;box-shadow:none;padding:7px 12px}
.lead-pv-page .detail-modal .note-item{background:#f9f9f9}
.lead-pv-page .detail-modal .followup-item.overdue{border-color:rgba(255,0,0,.28);background:var(--hot-bg)}
.lead-pv-page .detail-modal .followup-item.upcoming{border-color:rgba(96,96,96,.22);background:var(--accent-wash)}
.lead-pv-page .detail-notes-list,.lead-pv-page .followup-list,.lead-pv-page .property-list{gap:10px}
.lead-pv-page .detail-side .field{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.84rem}
.lead-pv-page .detail-side .field:last-child{border-bottom:none}
.lead-pv-page .detail-side .field .k{color:var(--ink-soft);font-weight:500}
.lead-pv-page .detail-side .field .v{color:var(--ink);font-weight:600;text-align:right;word-break:break-word}
.lead-pv-page .detail-modal .pill-btn{padding:7px 12px;font-size:.78rem;box-shadow:var(--sh-sm)}
.lead-pv-page .type-pill .pip{background:currentColor}
.lead-pv-page .tag-create-form .compact-select{width:auto;min-width:120px;height:40px}
.lead-pv-page .form-card .card-head h3{font-size:1.05rem}
.lead-pv-page .pill-btn.danger{color:var(--hot);border-color:rgba(255,0,0,.24)}
.lead-pv-page .pill-btn.danger:hover{background:var(--hot-bg);border-color:rgba(255,0,0,.42)}
.lead-pv-page .fb-toggle.on{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}
.lead-pv-page .fb-actions .btn{width:100%;justify-content:center}
.lead-pv-page .pill-btn.on{border-color:var(--accent-2);color:var(--accent-deep);background:var(--accent-wash)}
.lead-pv-page .appearance-swatch.active{outline:2px solid var(--accent);outline-offset:2px}
.lead-pv-page .followup-list{display:flex;flex-direction:column;gap:8px}
.lead-pv-page .followup-row.overdue{border-left:3px solid var(--hot)}
.lead-pv-page .filter-select{appearance:auto;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-size:.83rem;font-weight:600;cursor:pointer;max-width:210px}
.lead-pv-page .filter-select:hover{border-color:var(--accent-2)}
.lead-pv-page .filter-select:focus{outline:none;border-color:var(--accent)}
.lead-pv-page .stage-editor-btn.danger:hover{color:var(--hot);border-color:rgba(255,0,0,.4)}
.lead-pv-page [data-deal-detail-modal] .detail-modal-body{background:#fff;grid-template-columns:minmax(0,1fr) 300px;gap:0;padding:0}
.lead-pv-page [data-deal-detail-modal] .detail-main{padding:6px 30px 28px;gap:0;align-content:start}
.lead-pv-page [data-deal-detail-modal] .detail-side{padding:24px 28px 28px;gap:0;align-content:start;border-left:1px solid var(--line);background:#fbfbfb}
.lead-pv-page [data-deal-detail-modal] .card,.lead-pv-page [data-deal-detail-modal] .detail-section.card{background:transparent;border:none;border-radius:0;box-shadow:none}
.lead-pv-page [data-deal-detail-modal] .card-head{padding:0;margin-bottom:14px;border-bottom:none}
.lead-pv-page [data-deal-detail-modal] .card-head h3{font-family:var(--font-ui);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint)}
.lead-pv-page [data-deal-detail-modal] .card-pad{padding:0}
.lead-pv-page [data-deal-detail-modal] .detail-main > .detail-section{padding:22px 0;border-bottom:1px solid var(--line)}
.lead-pv-page [data-deal-detail-modal] .detail-main > .detail-section:last-child{border-bottom:none}
.lead-pv-page [data-deal-detail-modal] .detail-side > .card{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.lead-pv-page [data-deal-detail-modal] .detail-side > .card:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.lead-pv-page [data-deal-detail-modal] .detail-side .field{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:none}
.lead-pv-page [data-deal-detail-modal] .note-item{border:none;border-left:2px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:5px 0 5px 12px}
.lead-pv-page .email-open-row{margin:4px 0 2px}
.lead-pv-page .email-open-badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;color:var(--ink-soft);background:var(--line-soft);border-radius:999px;padding:3px 9px}
.lead-pv-page .email-open-badge svg{width:13px;height:13px}
.lead-pv-page .email-open-badge.opened{color:#606060;background:rgba(131,131,131,.12)}
.lead-pv-page .agent-detail-grid .k{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:2px}
.lead-pv-page .inline-email-field .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.lead-pv-page .sms-webhook-note .k{font-size:.74rem;color:var(--ink-soft);margin-bottom:6px;display:block}
.lead-pv-page .billing-tier .btn{margin-top:auto}
.lead-pv-page .campaign-trigger-row .compact-select{min-width:160px}
.lead-pv-page .campaign-step-head .compact-select{min-width:120px}
.lead-pv-page .lead-pv-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:22px 24px;align-items:center}
.lead-pv-page .lead-pv-id{display:flex;gap:16px;align-items:center}
.lead-pv-page .lead-pv-name{display:flex;align-items:center;gap:10px}
.lead-pv-page .lead-pv-name h2{margin:0;font-size:1.4rem}
.lead-pv-page .lead-pv-contact{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-top:6px}
.lead-pv-page .lead-pv-contact span{display:inline-flex;align-items:center;gap:6px}
.lead-pv-page .lead-pv-contact svg{width:15px;height:15px}
.lead-pv-page .lead-pv-meta{display:flex;gap:36px;flex-wrap:wrap}
.lead-pv-page .lead-pv-meta>div{display:flex;flex-direction:column;gap:3px}
.lead-pv-page .lead-pv-meta .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700}
.lead-pv-page .lead-pv-meta>div>span:last-child{font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:6px}
.lead-pv-page .lead-pv-meta svg{width:16px;height:16px}
.lead-pv-page .pv-summary .k{display:block;font-size:.75rem;color:var(--ink-faint);font-weight:700}
.lead-pv-page .lead-pv-page h3 svg{width:18px;height:18px;vertical-align:-3px;flex:none}
.lead-pv-page .lead-pv-full .detail-modal-head{display:none}
.lead-pv-page .lead-pv-full .detail-modal-body{max-height:none;overflow:visible}
.lead-pv-page .lead-pv-back{margin-bottom:14px}
.lead-pv-page .lead-pv-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.lead-pv-page .lead-pv-quick .btn{padding:7px 12px}
@media (min-width: 861px){.lead-pv-page .lead-pv-full .detail-modal-foot{position:sticky;bottom:0;z-index:30;margin-left:-30px;margin-right:-30px;border-radius:0;box-shadow:0 -8px 20px rgba(28,28,28,.07)}}
.lead-pv-page .appt-list{display:flex;flex-direction:column;gap:6px}
.lead-pv-page .appt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 12px;cursor:pointer;color:var(--ink-2)}
.lead-pv-page .appt-row:hover{border-color:var(--accent);background:var(--accent-wash)}
.lead-pv-page .appt-when{font-weight:700;font-size:.85rem;white-space:nowrap}
.lead-pv-page .appt-type{font-size:.82rem;color:var(--ink-soft);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lead-pv-page .campaign-step-window .compact-select{min-width:96px}
.lead-pv-page .campaign-step-actions .icon-btn{width:30px;height:30px}
.lead-pv-page .campaign-email-shell .email-editor{min-height:120px}
.lead-pv-page .compose-shell .email-editor{min-height:200px}
.lead-pv-page .compose-foot .btn[type="submit"]{margin-left:auto}
.lead-pv-page .partner-type-filter .compact-select{min-width:170px}
.lead-pv-page .admin-tab.on{background:var(--panel);color:var(--accent-deep);box-shadow:var(--sh-sm)}
.lead-pv-page .admin-filter .compact-select{min-width:140px}
.lead-pv-page .admin-detail-grid .k{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:5px}
.lead-pv-page .admin-field .compact-select{min-width:180px}
.lead-pv-page .imp-stage.on{background:var(--accent-deep)}
.lead-pv-page .imp-bar .btn{background:#fff;color:var(--ink);padding:6px 14px;font-size:.8rem;flex-shrink:0}
.lead-pv-page .imp-bar .btn:hover{background:#f3f3f3}
.lead-pv-page .admin-account-errors .k{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--hot);margin-bottom:8px}
.lead-pv-page .email-toolbar [data-email-source]{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700}
.lead-pv-page .email-toolbar [data-email-source].on{background:var(--ink);color:#fff}
.lead-pv-page .email-source-area{display:block;width:100%;min-height:160px;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;padding:11px 13px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5;color:var(--ink);background:#fcfcfc;outline:none;resize:vertical}
.lead-pv-page .email-source-area:focus{border-color:var(--accent)}
.lead-pv-page .detail-modal [data-deal-detail-content]{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.lead-pv-page .deal-tab.on{color:var(--accent-deep);border-bottom-color:var(--accent)}
.lead-pv-page .deal-facts .field{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.86rem}
.lead-pv-page .deal-facts .field:last-child{border-bottom:none}
.lead-pv-page .deal-facts .field .k{color:var(--ink-soft)}
.lead-pv-page .deal-facts .field .v{color:var(--ink);font-weight:600;text-align:right;overflow-wrap:anywhere}
.lead-pv-page .kd-row-btn.danger:hover{border-color:var(--hot);color:var(--hot)}
.lead-pv-page .contact-add-existing .compact-select{width:auto;min-width:170px}
.lead-pv-page .deal-notes-list .note-item.from-lead{background:var(--line-soft)}
.lead-pv-page .card-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.lead-pv-page .report-nav a.active{background:var(--accent-wash);color:var(--accent-deep);font-weight:600}
.lead-pv-page .report-preset.on{background:var(--panel);color:var(--accent-deep);box-shadow:var(--sh-sm)}
.lead-pv-page .report-filter .compact-select{width:auto;min-width:120px}
@media (max-width: 860px){.lead-pv-page .mobile-bottom-nav a.active{background:var(--accent-wash);color:var(--accent-deep)}.lead-pv-page .top-actions .icon-btn{display:none}.lead-pv-page .top-actions .btn{width:100%;justify-content:center}.lead-pv-page .card{border-radius:18px}.lead-pv-page .card-head{padding:15px 16px}.lead-pv-page .card-pad{padding:16px}.lead-pv-page .segment,.lead-pv-page .pill-btn{flex-shrink:0}.lead-pv-page .family-head,.lead-pv-page .modal-actions{align-items:stretch;flex-direction:column}.lead-pv-page .family-head .pill-btn,.lead-pv-page .modal-actions .btn{width:100%;justify-content:center}.lead-pv-page .detail-modal{width:100%;height:100vh;max-height:none;border-radius:0;border:none}.lead-pv-page .detail-modal-head{padding:16px;gap:12px;align-items:flex-start;flex-wrap:wrap}.lead-pv-page .detail-modal-head h2{font-size:1.55rem}.lead-pv-page .detail-head-actions{width:100%;justify-content:flex-end}.lead-pv-page .detail-head-actions .btn{padding:9px 11px}.lead-pv-page .detail-modal-body{grid-template-columns:1fr;padding:12px;gap:12px}.lead-pv-page .detail-main,.lead-pv-page .detail-side{gap:12px}.lead-pv-page .detail-modal .detail-hero{flex-direction:column;align-items:flex-start;gap:12px}.lead-pv-page .detail-quick .qbtn{flex:1;justify-content:center}.lead-pv-page .detail-metrics{grid-template-columns:repeat(3,1fr);gap:8px}.lead-pv-page .detail-metrics div{padding:10px 11px}.lead-pv-page .detail-modal-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.lead-pv-page .detail-modal-foot .btn{padding:10px 12px}.lead-pv-page .email-provider-actions .btn{width:100%;justify-content:center}}
.lead-pv-page .ai-star:hover,.lead-pv-page .ai-star.on{color:#ff0000}
.lead-pv-page .help-nav-item.on{background:var(--accent,#6a6a6a);color:#fff;font-weight:600}
.lead-pv-page .intg-copy-row .btn{flex:0 0 auto}
.lead-pv-page .intg-tab.active{color:var(--accent-deep);border-bottom-color:var(--accent-deep)}
.lead-pv-page .intg-keyform .btn{align-self:flex-start}
.lead-pv-page .intg-card-foot .btn{box-sizing:border-box;height:38px;line-height:1;border:1px solid transparent}
.lead-pv-page .intg-card-foot .btn.ghost{border-color:var(--line)}
