/* A&T Call Desk — brand system */
@font-face { font-family: 'Fraunces'; src: url(/fonts/fraunces-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url(/fonts/fraunces-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url(/fonts/fraunces-latin-700-normal.woff2) format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Cormorant'; src: url(/fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Cormorant'; src: url(/fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Cormorant'; src: url(/fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(/fonts/manrope-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(/fonts/manrope-latin-500-normal.woff2) format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(/fonts/manrope-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(/fonts/manrope-latin-700-normal.woff2) format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(/fonts/manrope-latin-800-normal.woff2) format('woff2'); font-weight: 800; font-display: swap; }

:root {
  --green-900: #0d2c1b;
  --green-800: #15442a;   /* brand */
  --green-700: #1d5a38;
  --green-600: #2a7049;
  --green-100: #e3ece5;
  --green-50:  #f0f5f1;
  --gold:      #b09143;   /* brand */
  --gold-600:  #96782f;
  --gold-100:  #f3ecd9;
  --ivory:     #f7f4ec;
  --paper:     #fffdf8;
  --ink:       #1b211d;
  --ink-2:     #4c554f;
  --ink-3:     #7d857f;
  --line:      #e4dfd1;
  --line-2:    #efebe0;
  --red:       #b42318;
  --red-100:   #fde8e6;
  --amber:     #b5620b;
  --amber-100: #fdf0dc;
  --blue:      #1f5f9e;
  --blue-100:  #e4eef8;

  --bg: var(--ivory);
  --surface: var(--paper);
  --surface-2: #fbf9f3;
  --text: var(--ink);
  --text-2: var(--ink-2);
  --text-3: var(--ink-3);
  --border: var(--line);
  --border-2: var(--line-2);
  --accent: var(--green-800);
  --accent-ink: #fff;
  --accent-soft: var(--green-100);
  --shadow: 0 1px 2px rgba(21,68,42,.06), 0 6px 20px rgba(21,68,42,.06);
  --shadow-lg: 0 20px 60px rgba(13,44,27,.22);
  --radius: 14px;
  --radius-sm: 9px;
  --sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0c1611; --surface: #12201a; --surface-2: #162720; --text: #edeae0; --text-2: #b9c0b9; --text-3: #8a948c;
    --border: #24372c; --border-2: #1c2d24; --accent: #3b8a5c; --accent-soft: #1b3326;
    --gold-100: #2c2716; --red-100: #3a1714; --amber-100: #33240f; --blue-100: #142536; --green-100: #1b3326; --green-50: #14231b;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0c1611; --surface: #12201a; --surface-2: #162720; --text: #edeae0; --text-2: #b9c0b9; --text-3: #8a948c;
  --border: #24372c; --border-2: #1c2d24; --accent: #3b8a5c; --accent-soft: #1b3326;
  --gold-100: #2c2716; --red-100: #3a1714; --amber-100: #33240f; --blue-100: #142536; --green-100: #1b3326; --green-50: #14231b;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 500 15px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--accent); }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; letter-spacing: -.01em; margin: 0; }
h1 { font-size: 28px; line-height: 1.15; }
h2 { font-size: 20px; }
h3 { font-size: 16px; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--text-3); }
.small { font-size: 13px; }
.tiny { font-size: 11.5px; letter-spacing: .02em; }
.eyebrow { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.hidden { display: none !important; }
.row { display: flex; gap: 12px; align-items: center; }
.row.wrap { flex-wrap: wrap; }
.spacer { flex: 1; }
.stack > * + * { margin-top: 14px; }
.grid { display: grid; gap: 16px; }
@media (min-width: 900px) { .grid.c2 { grid-template-columns: 1fr 1fr; } .grid.c3 { grid-template-columns: repeat(3, 1fr); } .grid.c-2-1 { grid-template-columns: 2fr 1fr; } }

/* ---------- Buttons & inputs ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--border); background: var(--surface); color: var(--text);
  padding: 9px 16px; border-radius: 999px; font-weight: 700; font-size: 14px; cursor: pointer; text-decoration: none; transition: transform .08s, background .15s, border-color .15s; white-space: nowrap; }
.btn:hover { border-color: var(--text-3); }
.btn:active { transform: scale(.98); }
.btn.primary { background: var(--green-800); border-color: var(--green-800); color: #fff; }
.btn.primary:hover { background: var(--green-700); }
.btn.gold { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn.danger { color: var(--red); border-color: color-mix(in srgb, var(--red) 40%, transparent); }
.btn.ghost { border-color: transparent; background: transparent; }
.btn.sm { padding: 6px 12px; font-size: 13px; }
.btn.block { width: 100%; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.btn svg { width: 18px; height: 18px; }
label.field { display: block; }
label.field > span { display: block; font-size: 12.5px; font-weight: 700; color: var(--text-2); margin-bottom: 6px; }
.input, select.input, textarea.input { width: 100%; border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius-sm); padding: 10px 12px; outline: none; transition: border-color .15s, box-shadow .15s; }
.input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 22%, transparent); }
textarea.input { min-height: 84px; resize: vertical; }
.check { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; font-weight: 600; }
.check input { width: 18px; height: 18px; accent-color: var(--green-800); }
.seg { display: inline-flex; background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; padding: 3px; }
.seg button { border: 0; background: none; padding: 6px 14px; border-radius: 999px; font-weight: 700; font-size: 13px; cursor: pointer; color: var(--text-2); }
.seg button.on { background: var(--green-800); color: #fff; }

/* ---------- Cards ---------- */
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.card.pad { padding: 18px; }
.card-h { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--border-2); }
.card-h h2, .card-h h3 { flex: 1; }
.card-b { padding: 16px 18px; }

.badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--surface-2); color: var(--text-2); border: 1px solid var(--border); white-space: nowrap; }
.badge.green { background: var(--green-100); color: var(--green-700); border-color: transparent; }
.badge.gold { background: var(--gold-100); color: var(--gold-600); border-color: transparent; }
.badge.red { background: var(--red-100); color: var(--red); border-color: transparent; }
.badge.amber { background: var(--amber-100); color: var(--amber); border-color: transparent; }
.badge.blue { background: var(--blue-100); color: var(--blue); border-color: transparent; }
.badge.grey { background: var(--surface-2); color: var(--text-3); }
.dnc-flag { display: inline-flex; align-items: center; gap: 6px; background: var(--red); color: #fff; font-weight: 800; letter-spacing: .06em; font-size: 11.5px; padding: 3px 9px; border-radius: 6px; }
:root[data-theme="dark"] .badge.green, .dark .badge.green { color: #8fd3a9; }

/* ---------- Login ---------- */
.login { min-height: 100vh; display: grid; grid-template-columns: 1fr; }
@media (min-width: 900px) { .login { grid-template-columns: 1.1fr 1fr; } }
.login-art { background: var(--green-800); color: #fff; padding: 40px; display: none; position: relative; overflow: hidden; }
@media (min-width: 900px) { .login-art { display: flex; flex-direction: column; justify-content: space-between; } }
.login-art::after { content: ''; position: absolute; inset: auto -120px -160px auto; width: 520px; height: 520px; border-radius: 50%; border: 1px solid rgba(176,145,67,.35); }
.login-art::before { content: ''; position: absolute; inset: auto -40px -80px auto; width: 360px; height: 360px; border-radius: 50%; border: 1px solid rgba(176,145,67,.22); }
.login-art img { width: 280px; }
.login-art blockquote { font-family: var(--serif); font-size: 34px; line-height: 1.2; margin: 0; max-width: 460px; }
.login-art blockquote em { color: var(--gold); font-style: normal; }
.login-form { display: flex; align-items: center; justify-content: center; padding: 32px 20px; }
.login-form form { width: 100%; max-width: 360px; }
.login-form .mob-logo { width: 210px; margin-bottom: 26px; }
@media (min-width: 900px) { .login-form .mob-logo { display: none; } }

/* ---------- App shell ---------- */
.shell { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: var(--green-800); color: #fff; }
.topbar .brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; }
.topbar .brand { gap: 0; }
.topbar .brand-lg { position: relative; z-index: 2; width: 40px; height: 40px; border-radius: 11px; overflow: hidden; flex: none; box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 6px 14px -8px rgba(0,0,0,.6); }
.topbar .brand-lg img { width: 100%; height: 100%; display: block; }
/* v4.10 gold shine (every 3–6 minutes) */
.topbar .brand-lg::after { content: ''; position: absolute; inset: -40%; background: linear-gradient(120deg, transparent 40%, rgba(255,226,150,0) 44%, rgba(255,226,150,.85) 50%, rgba(255,240,200,0) 56%, transparent 60%); transform: translateX(-80%); pointer-events: none; }
.topbar .brand.shine .brand-lg::after { animation: lgShine 1.1s ease-in-out forwards; }
.topbar .brand.shine .brand-lg { animation: lgGlow 1.4s ease; }
.topbar .brand.shine .brand-in b { background: linear-gradient(100deg, #fff 0 42%, #f3d98f 48%, #fff6dc 50%, #d9b25a 52%, #fff 58% 100%); background-size: 300% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: txShine 1.3s ease-in-out .25s forwards; }
@keyframes lgShine { to { transform: translateX(80%); } }
@keyframes txShine { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes lgGlow { 40% { box-shadow: 0 0 0 1px rgba(217,196,142,.9), 0 0 18px rgba(217,196,142,.55); } }
.topbar .brand-t { position: relative; z-index: 1; display: block; overflow: hidden; margin-left: -6px; padding-left: 16px; }   /* "Call Desk" slides out from behind the logo */
.topbar .brand-in { display: block; }
.topbar .brand.intro .brand-in { animation: brandIn .6s cubic-bezier(.22,.9,.24,1) .25s both; }
.splash-on .topbar .brand.intro .brand-in { animation-play-state: paused; }
@keyframes brandIn { from { transform: translateX(-110%); opacity: 0; } to { transform: none; opacity: 1; } }
.topbar .brand b { display: block; font-family: var(--serif); font-size: 16px; font-weight: 600; letter-spacing: .01em; line-height: 1.1; }
.topbar .brand small { display: block; font-size: 8.5px; letter-spacing: .22em; color: #d8bf7c; font-weight: 800; text-transform: uppercase; margin-top: 2px; }
.topbar .who { text-align: right; line-height: 1.2; font-size: 13px; }
.topbar .who small { color: rgba(255,255,255,.65); display: block; font-size: 11px; }
.icon-btn { width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid rgba(255,255,255,.2); background: transparent; color: #fff; cursor: pointer; }
.icon-btn svg { width: 18px; height: 18px; }
.announce { background: var(--gold); color: #fff; font-weight: 700; padding: 8px 16px; font-size: 13.5px; display: flex; gap: 10px; align-items: center; }
.announce svg { width: 18px; height: 18px; flex: none; }

.layout { display: flex; }
.sidenav { display: none; }
@media (min-width: 1000px) {
  .sidenav { display: block; width: 236px; flex: none; border-right: 1px solid var(--border); background: var(--surface); min-height: calc(100vh - 58px); position: sticky; top: 58px; align-self: flex-start; padding: 16px 10px; }
}
.sidenav a { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-radius: 10px; color: var(--text-2); text-decoration: none; font-weight: 600; font-size: 14px; margin-bottom: 2px; }
.sidenav a svg { width: 18px; height: 18px; opacity: .8; }
.sidenav a:hover { background: var(--surface-2); color: var(--text); }
.sidenav a.on { background: var(--green-800); color: #fff; }
.sidenav a.on svg { opacity: 1; }
.sidenav .sep { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); font-weight: 700; padding: 16px 12px 6px; }
.sidenav .count { margin-left: auto; background: var(--red); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 7px; }
main.page { flex: 1; min-width: 0; padding: 18px 16px 100px; max-width: 1400px; }
@media (min-width: 1000px) { main.page { padding: 26px 30px 60px; } }
.page-h { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.page-h .titles { flex: 1; min-width: 220px; }

/* bottom nav (phones) */
.bottomnav { position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; display: flex; background: var(--surface); border-top: 1px solid var(--border); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
.bottomnav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 2px; color: var(--text-3); text-decoration: none; font-size: 11px; font-weight: 700; border-radius: 10px; position: relative; }
.bottomnav a svg { width: 22px; height: 22px; }
.bottomnav a.on { color: var(--accent); }
.bottomnav a.on::before { content: ''; position: absolute; top: -7px; left: 30%; right: 30%; height: 3px; border-radius: 0 0 3px 3px; background: var(--gold); }
.bottomnav .dot { position: absolute; top: 2px; right: 22%; background: var(--red); color: #fff; font-size: 10px; border-radius: 999px; padding: 0 5px; }
@media (min-width: 1000px) { .bottomnav.admin { display: none; } }

/* ---------- Agent: today strip ---------- */
.today { position: relative; overflow: hidden; padding: 16px 18px 14px; color: #fff; border-radius: 22px; box-shadow: 0 16px 36px rgba(13,44,27,.26);
  background: radial-gradient(120% 140% at 85% 0%, #2a5a3c 0%, #15442a 48%, #0d2c1b 100%); }
.today-sky { position: absolute; inset: auto 0 0 0; height: 54px; pointer-events: none; opacity: .13;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 46' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 46V34h14V24h10v10h8V18h14v16h6V28h10V12h4V4l2-4 2 4v8h4v34h8V22h12v12h10V16h8v18h12V26h14v8h8V12h12v22h10V30h10v4h14V20h10v14h16V26h12v8h18V16h10v18h12V30h16v16h10V24h12v10h14V18h8v28z'/%3E%3C/svg%3E") repeat-x bottom / 400px 46px; }
.today::after { content: ''; position: absolute; right: -70px; top: -90px; width: 240px; height: 240px; border-radius: 50%; border: 1px solid rgba(176,145,67,.35); box-shadow: inset 0 0 0 28px rgba(176,145,67,.06); }
.today > *:not(.today-sky) { position: relative; z-index: 1; }
.today-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.today-top .eyebrow { color: #d6bf84; }
.today-name { font-family: var(--serif); font-size: 24px; font-weight: 600; line-height: 1.1; }
.today-pct { text-align: right; }
.today-pct b { display: block; font-family: var(--serif); font-size: 30px; line-height: 1; color: #d9c48e; font-weight: 600; }
.today-pct span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.today-main { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; }
.ring { width: 96px; height: 96px; position: relative; flex: none; filter: drop-shadow(0 6px 14px rgba(0,0,0,.25)); }
.ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ring-arc { transition: stroke-dashoffset 1s cubic-bezier(.2,.8,.2,1); }
.ring .lbl { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1; }
.ring .lbl b { font-family: var(--serif); font-size: 30px; font-weight: 600; color: #fff; }
.ring .lbl small { display: block; font-size: 10px; color: rgba(255,255,255,.65); margin-top: 3px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.today .stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border: 0; }
.today .stats div { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; padding: 9px 3px 8px; text-align: center; backdrop-filter: blur(6px); }
.today .stats .dot { display: block; width: 6px; height: 6px; border-radius: 50%; margin: 0 auto 6px; background: rgba(255,255,255,.5); }
.today .stats .dot.g { background: #6fcf97; } .today .stats .dot.y { background: var(--gold); }
.today .stats div b { display: block; font-family: var(--serif); font-size: 24px; line-height: 1.05; font-weight: 600; }
.today .stats div span { display: block; font-size: 10px; line-height: 1.15; color: rgba(255,255,255,.72); font-weight: 600; letter-spacing: 0; margin-top: 3px; }
.today .stats div:nth-child(3) b { color: #d9c48e; }
.today-bar { height: 6px; border-radius: 99px; background: rgba(255,255,255,.12); margin-top: 14px; overflow: hidden; }
.today-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #d9c48e, var(--gold)); transition: width 1s cubic-bezier(.2,.8,.2,1); }
.today-foot { display: flex; justify-content: space-between; font-size: 12px; color: rgba(255,255,255,.72); margin-top: 6px; font-weight: 600; }

.section-t { display: flex; align-items: center; gap: 8px; margin: 22px 2px 10px; }
.section-t h2 { font-size: 17px; }
.section-t .badge { margin-left: 2px; }

/* lead cards */
.leads { display: grid; gap: 10px; }
@media (min-width: 760px) { .leads { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); } }
.lead { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 14px 14px 14px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); cursor: pointer; position: relative; transition: border-color .15s, transform .1s; }
.lead:hover { border-color: var(--gold); }
.lead.due { border-left: 4px solid var(--blue); }
.lead.is-dnc { border-color: var(--red); background: var(--red-100); }
.lead .nm { font-weight: 800; font-size: 15.5px; line-height: 1.3; }
.lead .ph { font-variant-numeric: tabular-nums; color: var(--text-2); font-weight: 600; letter-spacing: .02em; }
.lead .meta { grid-column: 1 / -1; display: flex; gap: 6px; flex-wrap: wrap; }
.lead .note { grid-column: 1 / -1; font-size: 13px; color: var(--text-2); background: var(--surface-2); border-radius: 8px; padding: 6px 10px; }
.call-btn { width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--green-800); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 16px rgba(21,68,42,.3); grid-row: span 2; align-self: center; }
.call-btn svg { width: 22px; height: 22px; }
.call-btn:active { transform: scale(.94); }
.call-btn[disabled] { background: var(--red); box-shadow: none; cursor: not-allowed; }
.empty { text-align: center; padding: 36px 16px; color: var(--text-3); }
.empty svg { width: 44px; height: 44px; color: var(--gold); margin-bottom: 8px; }
.empty b { display: block; font-family: var(--serif); font-size: 19px; color: var(--text); font-weight: 600; }

/* ---------- Sheet (bottom on phone, side panel on desktop) ---------- */
.scrim { position: fixed; inset: 0; background: rgba(8,20,13,.5); z-index: 80; opacity: 0; transition: opacity .2s; }
.scrim.on { opacity: 1; }
.sheet { position: fixed; z-index: 90; background: var(--surface); left: 0; right: 0; bottom: 0; max-height: 92vh; border-radius: 22px 22px 0 0; box-shadow: var(--shadow-lg); transform: translateY(100%); transition: transform .25s cubic-bezier(.2,.8,.2,1); display: flex; flex-direction: column; }
.sheet.on { transform: none; }
@media (min-width: 760px) {
  .sheet { left: auto; top: 0; bottom: 0; width: min(520px, 100vw); max-height: none; border-radius: 0; transform: translateX(100%); }
  .sheet.wide { width: min(880px, 100vw); }
}
.sheet-h { display: flex; gap: 12px; align-items: flex-start; padding: 18px 20px 14px; border-bottom: 1px solid var(--border-2); }
.sheet-h .t { flex: 1; min-width: 0; }
.sheet-h .x { border: 0; background: var(--surface-2); width: 36px; height: 36px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; color: var(--text-2); flex: none; }
.sheet-b { overflow-y: auto; padding: 18px 20px 28px; flex: 1; }
.sheet-f { padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--border-2); display: flex; gap: 10px; }
.grab { width: 44px; height: 5px; border-radius: 99px; background: var(--border); margin: 8px auto 0; }
@media (min-width: 760px) { .grab { display: none; } }

.bigcall { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: var(--radius); background: var(--green-50); border: 1px solid var(--green-100); }
.bigcall .ph { font-family: var(--serif); font-size: 24px; flex: 1; font-variant-numeric: tabular-nums; }
.outcomes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.outcome { border: 1.5px solid var(--border); background: var(--surface); border-radius: 12px; padding: 12px 10px; font-weight: 700; cursor: pointer; text-align: left; display: flex; gap: 8px; align-items: center; font-size: 14px; }
.outcome i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.outcome.on { border-color: var(--green-800); background: var(--green-50); box-shadow: inset 0 0 0 1px var(--green-800); }
.o-green i { background: #2f8a55; } .o-blue i { background: var(--blue); } .o-grey i { background: #8a948c; } .o-amber i { background: #d48a1d; } .o-red i { background: var(--red); }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; font-size: 14px; }
.kv dt { color: var(--text-3); font-weight: 600; }
.kv dd { margin: 0; font-weight: 600; word-break: break-word; }
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { position: relative; padding: 0 0 14px 20px; font-size: 13.5px; }
.timeline li::before { content: ''; position: absolute; left: 4px; top: 6px; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.timeline li::after { content: ''; position: absolute; left: 7.5px; top: 16px; bottom: 0; width: 1px; background: var(--border); }
.timeline li:last-child::after { display: none; }

/* ---------- Toast & modal ---------- */
.toasts { position: fixed; z-index: 200; left: 50%; transform: translateX(-50%); bottom: 84px; display: grid; gap: 8px; width: min(440px, calc(100vw - 32px)); }
@media (min-width: 1000px) { .toasts { bottom: 28px; } }
.toast { background: var(--ink); color: #fff; padding: 12px 16px; border-radius: 12px; font-weight: 600; box-shadow: var(--shadow-lg); animation: tin .2s ease-out; display: flex; gap: 10px; align-items: center; }
.toast.err { background: var(--red); }
.toast.ok { background: var(--green-800); }
@keyframes tin { from { transform: translateY(10px); opacity: 0; } }

/* ---------- Admin: KPIs, tables, charts ---------- */
.kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 700px) { .kpis { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .kpis { grid-template-columns: repeat(6, 1fr); } }
.kpi { padding: 14px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.kpi .l { font-size: 12px; color: var(--text-3); font-weight: 700; }
.kpi .v { font-family: var(--serif); font-size: 30px; line-height: 1.1; margin-top: 4px; font-variant-numeric: tabular-nums; }
.kpi .s { font-size: 12px; color: var(--text-2); font-weight: 600; margin-top: 2px; }
.kpi.hero { background: var(--green-800); color: #fff; border-color: var(--green-800); }
.kpi.hero .l, .kpi.hero .s { color: rgba(255,255,255,.75); }
.kpi.gold .v { color: var(--gold); }
.kpi.alert .v { color: var(--red); }

.progress { height: 10px; border-radius: 99px; background: var(--surface-2); border: 1px solid var(--border-2); overflow: hidden; }
.progress > i { display: block; height: 100%; background: linear-gradient(90deg, var(--green-700), var(--green-600)); border-radius: 99px; }
.progress.gold > i { background: linear-gradient(90deg, var(--gold-600), var(--gold)); }
.progress.thin { height: 6px; }
.bar-cell { display: flex; align-items: center; gap: 8px; min-width: 110px; }
.bar-cell .progress { flex: 1; }
.bar-cell .progress.behind > i { background: #d48a1d; }

.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl th { text-align: left; font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); font-weight: 700; padding: 10px 12px; border-bottom: 1px solid var(--border); white-space: nowrap; background: var(--surface); position: sticky; top: 0; }
.tbl th.sort { cursor: pointer; user-select: none; }
.tbl th.sort:hover { color: var(--text); }
.tbl td { padding: 10px 12px; border-bottom: 1px solid var(--border-2); vertical-align: middle; }
.tbl tr.click { cursor: pointer; }
.tbl tr.click:hover td { background: var(--surface-2); }
.tbl td.r, .tbl th.r { text-align: right; font-variant-numeric: tabular-nums; }
.tbl .warn { color: var(--red); font-weight: 800; }
.avatar { width: 32px; height: 32px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 12px; font-weight: 800; background: var(--green-100); color: var(--green-800); flex: none; }
.who-cell { display: flex; align-items: center; gap: 10px; }
.who-cell b { display: block; font-weight: 700; }
.who-cell small { color: var(--text-3); font-size: 12px; }

.chart-bars { display: flex; align-items: flex-end; gap: 6px; height: 150px; padding-top: 10px; }
.chart-bars .b { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.chart-bars .b i { display: block; width: 100%; max-width: 34px; border-radius: 6px 6px 2px 2px; background: var(--green-700); min-height: 2px; }
.chart-bars .b.now i { background: var(--gold); }
.chart-bars .b span { font-size: 11px; color: var(--text-3); font-weight: 600; }
.chart-bars .b em { font-style: normal; font-size: 11px; font-weight: 700; color: var(--text-2); }
.hbars { display: grid; gap: 10px; }
.hbar { display: grid; grid-template-columns: 120px 1fr 48px; gap: 10px; align-items: center; font-size: 13px; font-weight: 600; }
.hbar .track { height: 12px; background: var(--surface-2); border-radius: 99px; overflow: hidden; }
.hbar .track i { display: block; height: 100%; border-radius: 99px; }
.hbar .n { text-align: right; font-variant-numeric: tabular-nums; }
.feed { list-style: none; margin: 0; padding: 0; }
.feed li { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--border-2); font-size: 13.5px; }
.feed li:last-child { border: 0; }
.feed .ico { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--gold-100); color: var(--gold-600); flex: none; font-size: 15px; }

.dropzone { border: 2px dashed var(--border); border-radius: var(--radius); padding: 34px 20px; text-align: center; background: var(--surface-2); cursor: pointer; transition: border-color .15s, background .15s; }
.dropzone.over, .dropzone:hover { border-color: var(--gold); background: var(--gold-100); }
.dropzone svg { width: 40px; height: 40px; color: var(--gold); }
.dropzone b { display: block; font-family: var(--serif); font-size: 18px; margin: 6px 0 2px; }
.result-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.result-strip div { background: var(--surface-2); border-radius: 12px; padding: 12px; }
.result-strip b { display: block; font-family: var(--serif); font-size: 24px; }
.result-strip span { font-size: 12px; color: var(--text-3); font-weight: 700; }
.result-strip .bad b { color: var(--red); }
.result-strip .good b { color: var(--green-700); }

.kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 8px; }
.kcol { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px; min-height: 200px; }
.kcol h3 { font-size: 14px; display: flex; gap: 8px; align-items: center; padding: 4px 4px 10px; }
.kcard { background: var(--surface); border: 1px solid var(--border); border-radius: 11px; padding: 10px 12px; margin-bottom: 8px; cursor: pointer; font-size: 13.5px; }
.kcard:hover { border-color: var(--gold); }
.kcard b { display: block; }

.checker { display: flex; gap: 10px; }
.checker .input { font-size: 18px; letter-spacing: .03em; }
.verdict { margin-top: 16px; padding: 22px; border-radius: var(--radius); text-align: center; }
.verdict.ok { background: var(--green-50); border: 1px solid var(--green-100); }
.verdict.no { background: var(--red); color: #fff; }
.verdict b { display: block; font-family: var(--serif); font-size: 26px; }

.pw-box { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 20px; background: var(--gold-100); padding: 12px 16px; border-radius: 10px; letter-spacing: .06em; text-align: center; user-select: all; }
.loading { padding: 40px; text-align: center; color: var(--text-3); }
.spin { width: 22px; height: 22px; border: 3px solid var(--border); border-top-color: var(--gold); border-radius: 50%; animation: sp .8s linear infinite; display: inline-block; }
@keyframes sp { to { transform: rotate(360deg); } }
.pill-list { display: flex; flex-wrap: wrap; gap: 6px; }
.pill-list label { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border: 1px solid var(--border); border-radius: 999px; cursor: pointer; font-weight: 600; font-size: 13px; background: var(--surface); }
.pill-list input { accent-color: var(--green-800); }
.pill-list label:has(input:checked) { border-color: var(--green-800); background: var(--green-50); }
svg { flex: none; }
.topbar .brand span { white-space: nowrap; }
@media (max-width: 640px) {
  .topbar { padding: 8px 12px; gap: 8px; }
  .topbar .who { display: none; }
  .topbar .brand small { display: none; }
  .icon-btn { width: 34px; height: 34px; }
}

/* ===== v1.7 Calling data ===== */
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 18px; overflow-x: auto; }
.tab { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; color: var(--text-2); text-decoration: none; font-weight: 700; font-size: 14px; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tab:hover { color: var(--text); }
.tab.on { color: var(--green-800); border-bottom-color: var(--gold); }
.count-pill { background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; font-size: 11px; padding: 0 7px; color: var(--text-2); }
.steps { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.steps .st { display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--surface); border: 1px solid var(--border); font-size: 13px; font-weight: 700; color: var(--text-3); }
.steps .st i { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 12px; background: var(--surface-2); border: 1px solid var(--border); }
.steps .st.on { color: var(--green-800); border-color: var(--green-800); }
.steps .st.on i { background: var(--green-800); color: #fff; border-color: var(--green-800); }
.steps .st.done { color: var(--green-700); }
.steps .st.done i { background: var(--green-100); color: var(--green-700); border-color: transparent; }
.wiz { display: grid; gap: 16px; align-items: start; }
.wiz > * { min-width: 0; }
@media (min-width: 1100px) { .wiz { grid-template-columns: minmax(0, 1fr) 330px; } .check-panel { position: sticky; top: 76px; } }
.num-dot { width: 26px; height: 26px; border-radius: 50%; background: var(--green-800); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 13px; flex: none; }
.card-h h3 { flex: 1; }
.preview-tbl { max-height: 280px; overflow: auto; border: 1px solid var(--border-2); border-radius: 10px; }
.preview-tbl th { position: sticky; top: 0; }
.preview-tbl .mapped { background: var(--green-50); }
.maptag { display: block; font-style: normal; color: var(--green-700); font-size: 10.5px; letter-spacing: .06em; min-height: 13px; }
.big-n { font-family: var(--serif); font-size: 46px; line-height: 1; color: var(--green-800); }
.skip-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: 13.5px; }
.skip-list li { display: flex; align-items: center; gap: 8px; }
.skip-list li span:nth-child(2) { flex: 1; }
.skip-list li.zero { color: var(--text-3); }
.dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.dot.red { background: var(--red); } .dot.amber { background: #d48a1d; } .dot.grey { background: #a3aaa4; }
.tips { margin: 0; padding-left: 18px; font-size: 13.5px; color: var(--text-2); line-height: 1.7; }
.dropzone.big { padding: 60px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 260px; }
.dropzone.big svg { width: 54px; height: 54px; }
.dropzone.busy { opacity: .6; pointer-events: none; }
.result-card .ok-ico { width: 52px; height: 52px; border-radius: 50%; background: var(--green-100); color: var(--green-700); display: grid; place-items: center; }
.result-card .ok-ico svg { width: 28px; height: 28px; }
.actionbar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding: 12px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 12px; }
.bulkbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; margin-bottom: 10px; background: var(--green-800); color: #fff; border-radius: 12px; position: sticky; top: 0; z-index: 2; }
.bulkbar .input { padding: 6px 10px; color: var(--text); }
.bulkbar .btn:not(.primary):not(.danger) { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.3); color: #fff; }
.bulkbar .btn.primary { background: var(--gold); border-color: var(--gold); }
.bulkbar .btn.danger { background: #fff; }
.del-opt { display: flex; gap: 12px; padding: 14px; border: 1.5px solid var(--border); border-radius: 12px; cursor: pointer; }
.del-opt input { margin-top: 3px; accent-color: var(--green-800); width: 18px; height: 18px; flex: none; }
.del-opt b { display: block; }
.del-opt span { font-size: 13px; color: var(--text-2); }
.del-opt:has(input:checked) { border-color: var(--green-800); background: var(--green-50); }
.del-opt.danger:has(input:checked) { border-color: var(--red); background: var(--red-100); }
textarea.mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; min-height: 240px; white-space: pre; }
.lists-tbl td { vertical-align: top; }
details summary { cursor: pointer; color: var(--text-2); font-weight: 600; }
.seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.seg button { white-space: nowrap; flex: none; }

/* ===== v1.9 Lead pool ===== */
.lbl { font-size: 12.5px; font-weight: 700; color: var(--text-2); margin-bottom: 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 7px; }
.chip { border: 1px solid var(--border); background: var(--surface); border-radius: 999px; padding: 6px 12px; font-weight: 700; font-size: 13px; cursor: pointer; color: var(--text); display: inline-flex; gap: 7px; align-items: center; transition: all .12s; }
.chip em { font-style: normal; font-size: 11.5px; color: var(--text-3); font-weight: 700; }
.chip:hover { border-color: var(--gold); }
.chip.on { background: var(--green-800); border-color: var(--green-800); color: #fff; }
.chip.on em { color: #d6bf84; }
.gcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.gcard { text-align: left; border: 1.5px solid var(--border); background: var(--surface); border-radius: 14px; padding: 12px 14px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; }
.gcard:hover { border-color: var(--gold); }
.gcard.on { border-color: var(--green-800); box-shadow: inset 0 0 0 1px var(--green-800); background: var(--green-50); }
.gcard .tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.gcard .tags i { font-style: normal; }
.gcard.add { border-style: dashed; color: var(--text-2); align-items: flex-start; }
.gcard.add svg { color: var(--gold); }
.subcard { border: 1px solid var(--border); background: var(--surface-2); border-radius: 12px; padding: 12px; }
.people { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px; margin-top: 10px; max-height: 260px; overflow: auto; }
.people.tall { max-height: 340px; }
.person { display: flex; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); cursor: pointer; font-size: 13px; }
.person input { accent-color: var(--green-800); width: 16px; height: 16px; flex: none; }
.person b { display: block; font-weight: 700; }
.person small { color: var(--text-3); font-size: 11.5px; }
.person .avatar { width: 28px; height: 28px; font-size: 11px; }
.person:has(input:checked) { border-color: var(--green-800); background: var(--green-50); }
.person.off { opacity: .5; }
.opts { display: grid; gap: 10px; }
@media (min-width: 760px) { .opts { grid-template-columns: 1fr 1fr; } }
.opt { border: 1.5px solid var(--border); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; position: relative; }
.opt input[type=radio] { position: absolute; top: 14px; right: 14px; accent-color: var(--green-800); width: 18px; height: 18px; }
.opt span { font-size: 13px; color: var(--text-2); }
.opt .input { margin-top: 4px; max-width: 160px; }
.opt.on { border-color: var(--green-800); background: var(--green-50); }
.planlist { display: grid; gap: 5px; max-height: 330px; overflow: auto; }
.pl { display: grid; grid-template-columns: 110px 1fr 42px; gap: 8px; align-items: center; font-size: 12.5px; }
.pl .nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.pl .pbar { height: 9px; border-radius: 99px; background: var(--surface-2); display: flex; overflow: hidden; }
.pl .pbar i { display: block; height: 100%; background: #c9d4cb; }
.pl .pbar i.add { background: var(--gold); }
.pl .nn { text-align: right; font-weight: 800; color: var(--green-700); font-variant-numeric: tabular-nums; }
.legend { display: flex; gap: 14px; }
.legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: -1px; margin-right: 4px; }
.legend .lg1 { background: #c9d4cb; } .legend .lg2 { background: var(--gold); }

.pwbox { display: flex; gap: 6px; align-items: center; }
.pwbox .input { flex: 1; }

/* ===== v1.9 Agent calling screen ===== */
.startbtn { width: 100%; margin-top: 14px; display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: var(--radius); border: 1px solid var(--gold); background: linear-gradient(90deg, var(--gold-100), var(--surface)); cursor: pointer; text-align: left; box-shadow: var(--shadow); }
.startbtn svg { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--green-800); color: #fff; flex: none; }
.startbtn b { display: block; font-family: var(--serif); font-size: 19px; color: var(--green-800); }
.startbtn small { color: var(--text-2); font-weight: 600; }
.startbtn[disabled] { opacity: .6; cursor: default; }
.toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 16px 0 4px; }
.searchbox { flex: 1; min-width: 200px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--border); background: var(--surface); border-radius: 999px; padding: 0 14px; }
.searchbox svg { color: var(--text-3); flex: none; }
.searchbox input { border: 0; outline: 0; background: transparent; padding: 10px 0; width: 100%; }
.seg button em { font-style: normal; font-size: 11px; opacity: .7; margin-left: 2px; }
.lead.hot { border-color: color-mix(in srgb, var(--gold) 60%, var(--border)); }
.lead .note { display: flex; gap: 6px; align-items: flex-start; }
.lead .note svg { flex: none; margin-top: 2px; color: var(--gold); width: 15px; height: 15px; }
.kbd-hint { margin-top: 18px; text-align: center; display: none; }
@media (pointer: fine) { .kbd-hint { display: block; } }
kbd { font: 700 11px var(--sans); border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 5px; padding: 1px 6px; background: var(--surface); color: var(--text-2); }
.contact { border-radius: var(--radius); background: var(--green-50); border: 1px solid var(--green-100); padding: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.contact .ph { font-family: var(--serif); font-size: 24px; flex: 1; min-width: 180px; font-variant-numeric: tabular-nums; }
.cbtns { display: flex; gap: 8px; }
.cbtn { display: flex; flex-direction: column; align-items: center; gap: 3px; border: 0; border-radius: 14px; padding: 9px 12px; min-width: 70px; cursor: pointer; font-weight: 700; font-size: 12px; }
.cbtn svg { width: 22px; height: 22px; }
.cbtn.call { background: var(--green-800); color: #fff; box-shadow: 0 6px 16px rgba(21,68,42,.3); }
.cbtn.wa { background: #e7f6ec; color: #11803f; border: 1px solid #bfe6cc; }
.cbtn.em { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
.cbtn[disabled] { opacity: .4; cursor: not-allowed; box-shadow: none; }
.h3s { margin: 20px 0 10px; font-size: 16px; }
.otiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
@media (min-width: 560px) { .otiles { grid-template-columns: repeat(4, 1fr); } }
.otile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; border: 1.5px solid var(--border); background: var(--surface); border-radius: 14px; padding: 12px; cursor: pointer; font-weight: 700; font-size: 13.5px; min-height: 86px; transition: transform .08s, border-color .15s; }
.otile:hover { border-color: var(--gold); }
.otile:active { transform: scale(.97); }
.otile > svg { width: 22px; height: 22px; }
.otile em { position: absolute; top: 10px; right: 10px; color: var(--text-3); }
.otile em svg { width: 14px; height: 14px; }
.otile kbd { position: absolute; bottom: 8px; right: 8px; display: none; }
@media (pointer: fine) { .otile kbd { display: inline-block; } }
.otile.busy { opacity: .5; pointer-events: none; }
.otile.o-green > svg { color: #2f8a55; } .otile.o-blue > svg { color: var(--blue); } .otile.o-grey > svg { color: #7d857f; } .otile.o-amber > svg { color: #d48a1d; } .otile.o-red > svg { color: var(--red); }
.otile.o-green { background: linear-gradient(160deg, #eef7f1, var(--surface)); }
.otile.o-blue { background: linear-gradient(160deg, #edf3fa, var(--surface)); }
details.more { margin-top: 18px; border-top: 1px solid var(--border-2); padding-top: 12px; }
.schead { display: flex; align-items: center; gap: 12px; }
.datestrip { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.dd { flex: none; width: 58px; border: 1.5px solid var(--border); background: var(--surface); border-radius: 14px; padding: 7px 0; display: flex; flex-direction: column; align-items: center; cursor: pointer; }
.dd small { font-size: 10.5px; color: var(--text-3); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.dd b { font-family: var(--serif); font-size: 21px; line-height: 1.2; }
.dd.we { background: var(--surface-2); }
.dd.on { background: var(--green-800); border-color: var(--green-800); color: #fff; }
.dd.on small { color: #d6bf84; }
.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 6px; margin-top: 12px; }
.slot { border: 1px solid var(--border); background: var(--surface); border-radius: 10px; padding: 8px 0; font-weight: 700; font-size: 13px; cursor: pointer; font-variant-numeric: tabular-nums; }
.slot:hover:not([disabled]) { border-color: var(--gold); }
.slot.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.slot[disabled] { opacity: .35; cursor: not-allowed; }
.when-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 14px; border-radius: 12px; background: var(--gold-100); color: var(--gold-600); }
.when-line b { color: var(--text); }

/* ---- v2.0 sign-in security ---- */
.seccard{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin-top:12px}
.seccard b{font-size:14px}
.codehint{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:rgba(21,68,42,.06);color:var(--ink);font-size:13px;line-height:1.45}
.codehint svg{flex:none;color:var(--green-800);margin-top:1px}
.code-input{font-size:24px;letter-spacing:.35em;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.tfa-steps{margin:0 0 16px;padding-left:20px;font-size:14px;line-height:1.5}
.tfa-steps li{margin-bottom:10px}
.qrbox{margin:10px 0 6px;display:inline-flex;padding:10px;background:#fff;border:1px solid var(--line);border-radius:14px}
.qrbox img{display:block;width:200px;height:200px}
.tfa-key{display:inline-block;margin-top:6px;padding:6px 10px;border-radius:8px;background:rgba(21,68,42,.06);font-size:13px;letter-spacing:.06em;word-break:break-all}
.tfa{display:inline-flex;align-items:center;gap:3px;color:var(--green-800);font-weight:600}
.tfa svg{width:12px;height:12px}

/* ---- v2.1 message picker ---- */
.tplbox{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.tplhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}
.tplchips{display:flex;flex-wrap:wrap;gap:8px}
.tplchip{border:1px solid var(--line);background:var(--ivory);color:var(--ink);border-radius:999px;padding:9px 14px;font:600 13px/1.2 var(--font,inherit);cursor:pointer;display:inline-flex;flex-direction:column;align-items:flex-start}
.tplchip:hover{border-color:var(--green-700)}
.tplchip.sug{background:var(--green-800);color:#fff;border-color:var(--green-800)}
.tplchip small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-100);font-weight:700}
.tplset{border:1px solid var(--line);border-radius:12px;background:var(--paper);margin-top:10px}
.tplset summary{padding:12px 14px;cursor:pointer;font-weight:700;font-size:14px}
.tplset .stack{padding:0 14px 14px}

/* ===== v2.2 Edge-to-edge phones (iOS notch / Dynamic Island, Android gesture bar) =====
   The app draws behind the system bars (viewport-fit=cover); these insets keep every
   button clear of the clock, battery, camera cut-out and the home indicator. */
:root {
  --sat: env(safe-area-inset-top, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
  --sar: env(safe-area-inset-right, 0px);
}
html, body { overscroll-behavior-y: none; }
/* green backdrop under the status bar on every screen, so white status icons stay readable */
body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; height: var(--sat); background: var(--green-800); z-index: 1000; pointer-events: none; }
.topbar { padding-top: calc(10px + var(--sat)); padding-left: calc(16px + var(--sal)); padding-right: calc(16px + var(--sar)); min-height: calc(56px + var(--sat)); }
@media (max-width: 640px) {
  .topbar { padding-top: calc(8px + var(--sat)); padding-left: calc(12px + var(--sal)); padding-right: calc(12px + var(--sar)); min-height: calc(52px + var(--sat)); }
  .icon-btn { width: 40px; height: 40px; }   /* comfortable 40px touch targets */
}
.announce { padding-left: calc(16px + var(--sal)); padding-right: calc(16px + var(--sar)); }
main.page { padding-left: calc(16px + var(--sal)); padding-right: calc(16px + var(--sar)); padding-bottom: calc(100px + var(--sab)); }
@media (min-width: 1000px) { main.page { padding-left: 30px; padding-right: calc(30px + var(--sar)); padding-bottom: calc(60px + var(--sab)); } }
.bottomnav { padding-left: calc(6px + var(--sal)); padding-right: calc(6px + var(--sar)); }
.login { min-height: 100vh; min-height: 100dvh; }
.login-form { padding: calc(32px + var(--sat)) calc(20px + var(--sar)) calc(32px + var(--sab)) calc(20px + var(--sal)); }
.sheet { max-height: calc(100vh - var(--sat) - 12px); max-height: calc(100dvh - var(--sat) - 12px); }
.sheet-f { padding-left: calc(20px + var(--sal)); padding-right: calc(20px + var(--sar)); }
@media (min-width: 760px) { .sheet { max-height: none; padding-top: var(--sat); padding-right: var(--sar); } }
.toasts { bottom: calc(84px + var(--sab)); }
@media (min-width: 1000px) { .toasts { bottom: calc(28px + var(--sab)); } }
.bottomnav { padding-bottom: calc(6px + var(--sab)); }
.sheet-f { padding-bottom: calc(12px + var(--sab)); }
.mycalls{border-color:var(--gold);background:linear-gradient(90deg,var(--gold-100),var(--paper) 60%)}
.mystat{display:flex;flex-direction:column;min-width:92px}
.mystat b{font-size:22px;color:var(--green-800);line-height:1.1}
.mystat span{font-size:12px;color:var(--ink-3)}

/* v2.5: one-tap calling mode for management/admin */
.mode-btn { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--gold); background: var(--gold); color: #fff; font-weight: 800; font-size: 13px; cursor: pointer; white-space: nowrap; transition: filter .12s, transform .12s; margin-right: 4px; }
.mode-btn svg { width: 17px; height: 17px; }
.mode-btn:hover { filter: brightness(1.06); }
.mode-btn:active { transform: scale(.97); }
.mode-btn.on { background: transparent; color: var(--gold); }
@media (max-width: 520px) { .mode-btn { padding: 0 11px; height: 40px; } .topbar .who { display: none; } }
@media (max-width: 360px) { .mode-btn span { display: none; } .mode-btn { width: 40px; padding: 0; justify-content: center; } }
/* quick assign */
.qa-sum { padding: 12px 14px; border-radius: 12px; background: var(--surface-2, #f3efe3); font-size: 14px; }
.qa-sum b { color: var(--green, #15442a); }
#qa_who optgroup { font-weight: 800; color: var(--text-3); }
#qa_who option { font-weight: 600; color: var(--text); padding: 4px 6px; }
/* v2.6 Salesforce hand-over */
.sf-con .card-b { align-items: center; gap: 14px; }
.sf-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #e8f0f9; color: #0b5cab; flex: none; }
.sf-ic svg { width: 24px; height: 24px; }
.sf-con.on .sf-ic { background: #0b5cab; color: #fff; }
.sf-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 12px; background: var(--surface-2); border: 1px solid var(--border); }
.sf-err { max-width: 260px; margin-top: 4px; white-space: normal; }
#sfsend.btn.gold { background: #0b5cab; border-color: #0b5cab; color: #fff; }
.sf-how pre { background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; font-size: 13px; white-space: pre-wrap; }
.sf-how ol { padding-left: 20px; display: grid; gap: 8px; }
a.badge { text-decoration: none; }
/* v2.7 agent "Add to Salesforce" */
.sfreq { margin-top: 12px; }
.sfbtn { width: 100%; display: flex; align-items: center; gap: 14px; text-align: left; padding: 12px 16px 12px 12px; border-radius: 16px; cursor: pointer;
  border: 1px solid #cfe3f5; background: linear-gradient(135deg, #ffffff 0%, #f1f8fe 100%); color: #032d60; font: inherit;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 2px 8px rgba(3,45,96,.06); transition: box-shadow .2s ease, transform .1s ease; }
.sfbtn:hover { box-shadow: 0 6px 18px rgba(13,158,218,.18); }
.sfbtn:active { transform: scale(.985); }
.sflogo { width: 52px; height: auto; flex: none; display: block; filter: drop-shadow(0 2px 4px rgba(13,158,218,.25)); }
.sfbtn span { display: flex; flex-direction: column; line-height: 1.25; flex: 1; }
.sfbtn b { font-size: 15.5px; font-weight: 800; letter-spacing: -.01em; }
.sfbtn small { font-size: 12.5px; color: #3e5a78; }
.sfbtn em { font-style: normal; font-size: 24px; color: #0d9eda; }
.sfbtn .sfok { width: 28px; height: 28px; border-radius: 50%; background: #2e844a; color: #fff; display: grid; place-items: center; flex: none; animation: sfPop .35s ease; }
.sfbtn .sfok svg { width: 16px; height: 16px; stroke-width: 3; }
.sfbtn.done { cursor: default; background: linear-gradient(135deg, #ffffff 0%, #eef8f2 100%); border-color: #bfdccb; }
.sfbtn.done:hover { box-shadow: 0 2px 8px rgba(3,45,96,.06); }
@keyframes sfPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.sfpanel { margin-top: 10px; padding: 16px; border-radius: 16px; border: 1px solid #cfe3f5; background: linear-gradient(180deg, #f6fbff, var(--surface) 60%); display: flex; flex-direction: column; gap: 2px; animation: sfIn .22s ease; }
.sfhead { display: flex; align-items: center; gap: 12px; }
.sfhead > div { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.sfhead b { font-size: 15.5px; color: #032d60; }
.sfhead .sflogo { width: 46px; }
.sfx { border: 0; background: transparent; font-size: 24px; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px 6px; border-radius: 8px; }
.sfx:hover { background: rgba(0,0,0,.05); }
.sfpanel .chip.on { background: #0d9eda; border-color: #0d9eda; color: #fff; }
.slide { position: relative; margin-top: 12px; height: 58px; border-radius: 29px; background: #032d60; overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: none;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.25); }
.slide .sl-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 29px; background: linear-gradient(90deg, #0b5cab, #0d9eda); }
.slide .sl-label { position: absolute; inset: 0; display: grid; place-items: center; padding-left: 40px; color: #fff; font-weight: 700; font-size: 15px; letter-spacing: .01em; pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,.55) 0%, #fff 45%, rgba(255,255,255,.55) 90%); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: slShine 2.6s linear infinite; }
.slide .sl-knob { position: absolute; left: 4px; top: 4px; width: 50px; height: 50px; border-radius: 50%; border: 0; background: #fff; color: #0d9eda; display: grid; place-items: center; cursor: grab; touch-action: none;
  box-shadow: 0 3px 10px rgba(0,0,0,.25); }
.slide .sl-knob:active { cursor: grabbing; }
.slide .sl-knob svg { width: 24px; height: 24px; stroke-width: 2.6; }
.slide.busy .sl-knob { animation: slPulse .9s ease-in-out infinite; }
.slide.sent { background: #2e844a; }
.slide.sent .sl-fill { background: #2e844a; }
.slide.sent .sl-knob { color: #2e844a; }
.slide.sent .sl-label, .slide.busy .sl-label { animation: none; -webkit-text-fill-color: #fff; background: none; }
@keyframes slShine { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes slPulse { 50% { box-shadow: 0 0 0 8px rgba(255,255,255,.25), 0 3px 10px rgba(0,0,0,.25); } }
@keyframes sfIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.sftag { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; font-size: 11.5px; font-weight: 800; color: #0b5cab; }
.sftag svg { width: 14px; height: 14px; }
.sftag.in_sf, .sftag.approved { color: #1f6b43; }
.sftag.pending { color: #8a6d24; }
/* admin: requests */
.sfq { border: 1px solid #b9d3ee; }
.sfq .card-h { background: linear-gradient(180deg, #f2f8fe, transparent); }
.sfq-row { display: grid; grid-template-columns: 1.3fr 1fr 1.6fr auto; gap: 14px; align-items: center; padding: 12px 18px; border-top: 1px solid var(--border); }
.sfq-row .note { font-size: 13px; }
.sfq-row .acts { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
@media (max-width: 800px) { .sfq-row { grid-template-columns: 1fr; gap: 6px; } .sfq-row .acts { justify-content: flex-start; } }
/* v2.8 announcement page (marketing) */
main.page.single { padding-bottom: calc(24px + var(--sab, 0px)); }
.annstat { border-color: var(--border); }
.annstat.on { border-color: #b8dcc6; background: linear-gradient(90deg, #eef7f1, var(--surface)); }
.annstat-dot { width: 14px; height: 14px; border-radius: 50%; background: #c7c2b4; flex: none; }
.annstat.on .annstat-dot { background: #2f8a55; box-shadow: 0 0 0 0 rgba(47,138,85,.5); animation: annpulse 1.8s infinite; }
@keyframes annpulse { 70% { box-shadow: 0 0 0 10px rgba(47,138,85,0); } 100% { box-shadow: 0 0 0 0 rgba(47,138,85,0); } }
.annstat-text { font-family: 'Fraunces', serif; font-size: 20px; margin: 4px 0; }
.anntext { font-size: 17px; line-height: 1.4; }
.annhist { display: grid; gap: 6px; margin-top: 6px; }
.annh { display: flex; align-items: stretch; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: var(--surface); }
.annh-use { flex: 1; text-align: left; padding: 9px 12px; border: 0; background: none; font: inherit; font-size: 14px; color: var(--text); cursor: pointer; }
.annh-use:hover { background: var(--surface-2); }
.annh-x { border: 0; border-left: 1px solid var(--border); background: none; padding: 0 10px; color: var(--text-3); cursor: pointer; }
.annprev-bar { border-radius: 10px; }
.annprev-tv { border-radius: 14px; padding: 22px; background: linear-gradient(135deg, #e9e4d6, #f7f4ec); border: 1px solid var(--border); }
.annprev-card { position: relative; overflow: hidden; border-radius: 16px; padding: 22px 20px 24px; text-align: center; color: #f7f4ec;
  background: radial-gradient(120% 90% at 0% 0%, #1f5a39 0%, #15442a 45%, #0c2a1a 100%); border: 1px solid rgba(212,180,106,.55); box-shadow: 0 14px 40px rgba(21,68,42,.3); }
.annprev-card img { height: 34px; width: auto; display: block; margin: 0 auto 10px; }
.annprev-eb { display: inline-flex; align-items: center; gap: 6px; color: #d4b46a; font-size: 10.5px; font-weight: 800; letter-spacing: .28em; text-transform: uppercase; }
.annprev-eb svg { width: 14px; height: 14px; }
.annprev-text { font-family: 'Fraunces', serif; font-weight: 600; font-size: 22px; line-height: 1.2; margin-top: 8px; word-wrap: break-word; }
.annprev-text.long { font-size: 17px; }
.annprev-card i { position: absolute; top: -40%; bottom: -40%; width: 16%; left: -30%; transform: skewX(-18deg); background: linear-gradient(90deg, transparent, rgba(255,240,200,.25), transparent); animation: annprevShine 3.6s ease-in-out infinite; }
@keyframes annprevShine { 0% { left: -30%; } 60%, 100% { left: 130%; } }
.slide.sent .sl-label, .slide.busy .sl-label { padding-left: 0; padding-right: 54px; }
/* v3.0 branch comparison */
.brgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; padding: 16px 18px 18px; }
.brcard { text-align: left; font: inherit; color: inherit; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 16px 18px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; transition: box-shadow .2s, transform .1s; }
.brcard:hover { box-shadow: 0 8px 22px rgba(21,68,42,.12); }
.brcard:active { transform: scale(.99); }
.brname { font-family: var(--serif, 'Fraunces', Georgia, serif); font-size: 22px; color: var(--text); }
.brbig { font-size: 34px; font-weight: 800; line-height: 1.1; margin-top: 4px; }
.brbig small { font-size: 14px; font-weight: 600; color: var(--text-3); }
.brstats { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; font-size: 12.5px; color: var(--text-3); margin-top: 6px; }
.brstats b { color: var(--text); }
.brbar { height: 4px; border-radius: 4px; background: var(--border); overflow: hidden; margin-top: 8px; }
.brbar i { display: block; height: 100%; background: var(--gold, #B09143); }
.annov { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.annov .item { border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px; cursor: pointer; background: var(--surface); text-align: left; font: inherit; color: inherit; }
.annov .item.on { border-color: var(--green-700, #1f5c3a); box-shadow: 0 0 0 2px rgba(31,92,58,.15); }
.annov .item small { display: block; color: var(--text-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* v3.1 sign-ups */
.bottomnav .count { position: absolute; top: 2px; left: calc(50% + 6px); background: var(--red); color: #fff; border-radius: 999px; font-size: 10px; line-height: 16px; min-width: 16px; padding: 0 4px; text-align: center; }
.evgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.evcard { overflow: hidden; }
.evcard.invited { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(176,145,67,.25); }
.evcard.yes { border-color: rgba(42,112,73,.45); }
.evinv { background: var(--gold-100); color: var(--gold-600); font-weight: 800; font-size: 13px; padding: 8px 16px; display: flex; gap: 8px; align-items: center; }
.evinv svg { width: 16px; height: 16px; }
.evico { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; flex: none; background: var(--green-100); color: var(--accent); }
.evico.area { background: var(--gold-100); color: var(--gold-600); }
.evico svg { width: 22px; height: 22px; }
.evico.sm { width: 32px; height: 32px; border-radius: 9px; }
.evico.sm svg { width: 17px; height: 17px; }
.evtitle { margin: 2px 0 4px; font-family: var(--serif); font-size: 21px; line-height: 1.2; }
.evmeta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--text-2); }
.evmeta span { display: inline-flex; gap: 5px; align-items: center; }
.evmeta svg { width: 15px; height: 15px; }
.evdesc { margin: 0; font-size: 14px; color: var(--text-2); white-space: pre-line; }
.evbtns .btn { flex: 1; justify-content: center; }
.evok { display: flex; gap: 8px; align-items: center; color: var(--green-600); font-weight: 800; }
.evteam { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border-top: 1px dashed var(--border); padding-top: 10px; font-size: 13px; color: var(--text-2); }
.evteam svg { width: 15px; height: 15px; }
.evteam b.warn { color: var(--amber); }
.evnudge { margin: 12px 0; border-color: var(--gold); background: linear-gradient(90deg, var(--gold-100), var(--surface) 60%); }
.evnudge svg { width: 22px; height: 22px; color: var(--gold-600); }
.chip.static { cursor: default; }
/* v3.2 notifications bar */
.ntfbar { display: flex; align-items: center; gap: 10px; padding: 8px 16px; background: var(--green-50); border-bottom: 1px solid var(--border); font-size: 13.5px; font-weight: 600; color: var(--text-2); }
.ntfbar > svg { width: 18px; height: 18px; color: var(--gold-600); flex: none; }
.ntfbar span { flex: 1; }
.ntfx { border: 0; background: transparent; color: var(--text-3); cursor: pointer; padding: 4px; border-radius: 8px; display: grid; place-items: center; }
.ntfx svg { width: 16px; height: 16px; }

/* ===== v3.3 Sign-ups – modern look ===== */
.cv-green  { --cv: linear-gradient(135deg, #0f3520 0%, #15442A 45%, #2A7049 100%); --cvink: #fff; --cvsub: rgba(255,255,255,.78); --cvacc: #d9c48e; }
.cv-gold   { --cv: linear-gradient(135deg, #6e5420 0%, #B09143 55%, #d8c182 100%); --cvink: #fff; --cvsub: rgba(255,255,255,.85); --cvacc: #fff6dc; }
.cv-marina { --cv: linear-gradient(135deg, #0c3142 0%, #1d6a80 55%, #3ba3a6 100%); --cvink: #fff; --cvsub: rgba(255,255,255,.8); --cvacc: #bfe9e4; }
.cv-sunset { --cv: linear-gradient(135deg, #6b2f19 0%, #b9673a 50%, #e6b468 100%); --cvink: #fff; --cvsub: rgba(255,255,255,.85); --cvacc: #ffe7bf; }
.cv-night  { --cv: radial-gradient(120% 140% at 85% 0%, #2a4a37 0%, #0d2219 55%, #08140e 100%); --cvink: #fff; --cvsub: rgba(255,255,255,.72); --cvacc: #B09143; }
.cv-sand   { --cv: linear-gradient(135deg, #efe5cb 0%, #f8f2e2 60%, #e6d6ad 100%); --cvink: #15442A; --cvsub: rgba(21,68,42,.72); --cvacc: #96782f; }
.evc-cover, .evhero, .dhead, .sw { background: var(--cv); color: var(--cvink); }
/* skyline line art across the bottom of every cover */
.evc-cover::after, .evhero::after, .dhead::after { content: ''; position: absolute; inset: auto 0 0 0; height: 46px; pointer-events: none; opacity: .16;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 46' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 46V34h14V24h10v10h8V18h14v16h6V28h10V12h4V4l2-4 2 4v8h4v34h8V22h12v12h10V16h8v18h12V26h14v8h8V12h12v22h10V30h10v4h14V20h10v14h16V26h12v8h18V16h10v18h12V30h16v16h10V24h12v10h14V18h8v28z'/%3E%3C/svg%3E") repeat-x bottom / 400px 46px; }
.cv-sand.evc-cover::after, .cv-sand.evhero::after, .cv-sand.dhead::after { filter: invert(1); opacity: .08; }

.evgrid2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 16px; align-items: start; }
.evc { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s, border-color .15s; display: flex; flex-direction: column; }
.evc:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(21,68,42,.06), 0 14px 34px rgba(21,68,42,.12); }
.evc.org { cursor: pointer; }
.evc.invited { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(176,145,67,.22), var(--shadow); }
.evc.yes { border-color: rgba(42,112,73,.5); }
.evc.past { opacity: .78; }
.evc.past .evc-cover { filter: saturate(.55); }
.evc-cover { position: relative; min-height: 112px; padding: 16px 16px 22px; display: flex; gap: 14px; align-items: flex-start; }
.evc-tags { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 0; }
.evc-cd { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; position: relative; z-index: 1; }
.kpill { white-space: nowrap; display: inline-flex; gap: 5px; align-items: center; font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px;
  background: rgba(255,255,255,.16); color: var(--cvink); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.18); }
.cv-sand .kpill { background: rgba(21,68,42,.08); border-color: rgba(21,68,42,.12); }
.kpill.ghost { background: transparent; }
.kpill svg { width: 13px; height: 13px; }
.cdchip { font-size: 12px; font-weight: 800; padding: 5px 10px; border-radius: 999px; background: rgba(0,0,0,.22); color: #fff; white-space: nowrap; }
.cv-sand .cdchip { background: var(--green-800); }
.cdchip.soon { background: var(--gold); color: #1b1407; animation: cdpulse 2.4s ease-in-out infinite; }
@keyframes cdpulse { 50% { box-shadow: 0 0 0 5px rgba(176,145,67,.25); } }
.evc-cover .badge { box-shadow: 0 1px 6px rgba(0,0,0,.12); }
.badge.live { background: #e7f6ec; color: #17803d; animation: cdpulse 2s infinite; }

.dtile { flex: none; width: 58px; border-radius: 14px; background: var(--surface); color: var(--green-800); text-align: center; overflow: hidden; box-shadow: 0 6px 18px rgba(0,0,0,.18); position: relative; z-index: 1; display: flex; flex-direction: column; }
.dtile .m { background: var(--gold); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 3px 0; }
.dtile .d { font-family: var(--serif); font-size: 26px; font-weight: 600; line-height: 1.1; padding-top: 3px; }
.dtile .w { font-size: 11px; font-weight: 700; color: var(--text-3); padding-bottom: 5px; }
.dtile.icon { height: 58px; display: grid; place-items: center; color: var(--gold-600); }
.dtile.icon svg { width: 26px; height: 26px; }
.dtile.sm { width: 44px; border-radius: 11px; box-shadow: 0 1px 2px rgba(0,0,0,.08); border: 1px solid var(--border); }
.dtile.sm .m { font-size: 9.5px; padding: 2px 0; }
.dtile.sm .d { font-size: 19px; padding: 1px 0 3px; }
.dtile.sm.icon { height: 44px; }
.dtile.sm.icon svg { width: 20px; height: 20px; }

.evc-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 11px; }
.evc .evtitle { margin: 0; font-size: 21px; }
.evmeta a { color: inherit; text-decoration: none; display: inline-flex; gap: 5px; align-items: center; border-bottom: 1px dashed var(--border); }
.evmeta a:hover { color: var(--green-700); }
.evmeta.light { color: var(--cvsub); }
.achips { display: flex; flex-wrap: wrap; gap: 6px; }
.achips span { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 8px; background: var(--gold-100); color: var(--gold-600); }
.evdesc.clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.cap { display: flex; flex-direction: column; gap: 5px; }
.capbar { height: 8px; border-radius: 99px; background: var(--surface-2); border: 1px solid var(--border-2); overflow: hidden; }
.capbar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--green-600), var(--green-800)); transition: width .6s cubic-bezier(.2,.8,.2,1); }
.capbar.hot i { background: linear-gradient(90deg, var(--gold), var(--amber)); }
.capbar.full i { background: linear-gradient(90deg, var(--amber), var(--red)); }
.caplbl { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--text-2); }

.faces { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-2); font-weight: 600; min-width: 0; }
.faces.empty { color: var(--text-3); font-weight: 600; }
.faces .fstack { display: inline-flex; flex: none; }
.av { width: 28px; height: 28px; border-radius: 50%; display: inline-grid; place-items: center; color: #fff; font-size: 10.5px; font-weight: 800; border: 2px solid var(--surface); flex: none; letter-spacing: .02em; }
.faces .av + .av { margin-left: -8px; }
.av.more { background: var(--surface-2); color: var(--text-2); border-color: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.av.sm { width: 26px; height: 26px; font-size: 10px; border: 0; }
.evfoot { gap: 10px; flex-wrap: wrap; align-items: center; justify-content: space-between; }

.evbtns { display: flex; gap: 8px; flex-wrap: wrap; }
.evbtns .btn { flex: 1; justify-content: center; min-height: 42px; }
.evbtns .btn.icon-only { flex: none; width: 42px; padding: 0; }
.evc.org .evbtns { flex-wrap: nowrap; }
.evc.org .evbtns .btn { padding-left: 10px; padding-right: 10px; white-space: nowrap; }
.evbtns .btn.big { min-height: 50px; font-size: 15px; }
.evbtns .btn.on:disabled { opacity: 1; }
.evstate { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; font-weight: 700; padding: 10px 12px; border-radius: 12px; background: var(--surface-2); }
.evstate svg { flex: none; width: 17px; height: 17px; margin-top: 1px; }
.evstate.ok { background: var(--green-50); color: var(--green-700); }
.evstate.wait { background: var(--blue-100); color: var(--blue); font-weight: 600; }
.evtools { display: flex; gap: 6px; border-top: 1px solid var(--border-2); padding-top: 10px; }
.tbtn { flex: 1; display: inline-flex; gap: 6px; align-items: center; justify-content: center; padding: 7px 6px; border-radius: 10px; border: 0; background: none; color: var(--text-2);
  font: 700 12.5px var(--sans); cursor: pointer; text-decoration: none; transition: background .12s, color .12s; }
.tbtn:hover { background: var(--green-50); color: var(--green-800); }
.tbtn svg { width: 16px; height: 16px; }

.steps { list-style: none; display: flex; margin: 0; padding: 0; gap: 0; counter-reset: s; }
.steps li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700; color: var(--text-3); position: relative; text-align: center; }
.steps li::before { content: ''; position: absolute; top: 12px; left: -50%; width: 100%; height: 2px; background: var(--border); z-index: 0; }
.steps li:first-child::before { display: none; }
.steps li.done::before, .steps li.now::before { background: var(--green-600); }
.steps i { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-style: normal; background: var(--surface-2); border: 2px solid var(--border); position: relative; z-index: 1; font-size: 11px; }
.steps li.done { color: var(--green-700); }
.steps li.done i { background: var(--green-700); border-color: var(--green-700); color: #fff; }
.steps li.now i { border-color: var(--gold); color: var(--gold-600); box-shadow: 0 0 0 4px rgba(176,145,67,.18); }
.steps i svg { width: 13px; height: 13px; }

.evteam2 { border-top: 1px dashed var(--border); padding-top: 11px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.evteam2 b svg { width: 15px; height: 15px; vertical-align: -3px; }
.tbar { height: 8px; border-radius: 99px; background: var(--surface-2); display: flex; overflow: hidden; border: 1px solid var(--border-2); }
.tbar i { display: block; height: 100%; }
.tbar i.y, .tleg i.y { background: var(--green-600); }
.tbar i.i, .tleg i.i { background: var(--gold); }
.tleg { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--text-2); font-size: 12px; font-weight: 600; }
.tleg span { display: inline-flex; gap: 6px; align-items: center; }
.tleg i { width: 9px; height: 9px; border-radius: 3px; background: var(--border); display: inline-block; }
.tleg .warn { color: var(--amber); }

.pills { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 4px 0 16px; padding: 2px; }
.pills button { flex: none; border: 1px solid var(--border); background: var(--surface); border-radius: 999px; padding: 8px 14px; font: 700 13.5px var(--sans); color: var(--text-2); cursor: pointer; display: inline-flex; gap: 8px; align-items: center; transition: all .12s; }
.pills button span { background: var(--surface-2); border-radius: 99px; padding: 1px 8px; font-size: 11.5px; color: var(--text-3); }
.pills button.on { background: var(--green-800); border-color: var(--green-800); color: #fff; box-shadow: 0 4px 14px rgba(21,68,42,.25); }
.pills button.on span { background: rgba(255,255,255,.18); color: #fff; }

.evhero { position: relative; border-radius: 22px; padding: 22px 22px 18px; margin: 0 0 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(13,44,27,.22); }
.evhero-in { display: flex; gap: 18px; align-items: center; position: relative; z-index: 1; flex-wrap: wrap; }
.evhero .dtile { width: 72px; }
.evhero .dtile .d { font-size: 32px; }
.evhero-t { flex: 1; min-width: 220px; }
.evhero-t .eyebrow { color: var(--cvacc); }
.evhero h2 { margin: 2px 0 6px; font-family: var(--serif); font-size: 27px; line-height: 1.15; color: var(--cvink); }
.evhero-cd { text-align: right; }
.evhero-cd .lbl { display: block; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cvsub); }
.evhero-cd b { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--cvacc); white-space: nowrap; }
.evhero-a { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; position: relative; z-index: 1; padding-bottom: 18px; }
.btn.light { background: rgba(255,255,255,.14); color: var(--cvink); border-color: rgba(255,255,255,.25); backdrop-filter: blur(6px); }
.btn.light:hover { background: rgba(255,255,255,.24); }
.cv-sand .btn.light { background: rgba(21,68,42,.06); border-color: rgba(21,68,42,.18); }

/* organiser */
.evkpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 18px; }
.evk { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 14px 16px; display: flex; gap: 12px; align-items: flex-start; box-shadow: var(--shadow); }
.evk .ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--green-50); color: var(--green-800); flex: none; }
.evk .ic.g { background: var(--green-800); color: #fff; }
.evk .ic.gold { background: var(--gold-100); color: var(--gold-600); }
.evk .v { font-family: var(--serif); font-size: 28px; font-weight: 600; line-height: 1.05; }
.evk .l { font-weight: 800; font-size: 13px; }
.evk .s { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.evk.hot { border-color: var(--gold); background: linear-gradient(135deg, var(--gold-100), var(--surface) 70%); }
.evbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.seg .n { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 99px; background: rgba(0,0,0,.07); font-size: 11px; }
.seg button.on .n { background: rgba(255,255,255,.2); }
.seg.sm button { padding: 5px 11px; display: inline-flex; gap: 6px; align-items: center; }
.seg.sm svg { width: 15px; height: 15px; }
.input.sm { padding: 7px 12px; font-size: 13.5px; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--border-2); border-radius: 12px; overflow: hidden; }
.stats .st { padding: 8px 6px; text-align: center; display: flex; flex-direction: column; gap: 1px; }
.stats .st + .st { border-left: 1px solid var(--border-2); }
.stats .st b { font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.1; }
.stats .st span { font-size: 10.5px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .04em; }
.stats .st.g b { color: var(--green-700); }
.stats .st.gold b { color: var(--gold-600); }
.stats .st.hot { background: var(--gold-100); }
.stats .st.hot b { color: var(--gold-600); }

.agenda section { margin-bottom: 18px; }
.agm { font-family: var(--serif); font-size: 19px; margin: 0 0 8px; display: flex; gap: 8px; align-items: baseline; }
.agm span { font: 700 12px var(--sans); color: var(--text-3); }
.agi { display: grid; grid-template-columns: auto 1fr auto auto; gap: 14px; align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px; cursor: pointer; transition: border-color .12s, transform .12s; position: relative; }
.agi::before { content: ''; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 3px; border-radius: 3px; background: var(--gold); }
.agi:hover { border-color: var(--gold); transform: translateX(2px); }
.agi.past { opacity: .65; }
.agi.past::before { background: var(--border); }
.agt { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.agt small { color: var(--text-3); font-size: 12.5px; }
.agt .cap { max-width: 320px; }
.agn { text-align: center; }
.agn b { display: block; font-family: var(--serif); font-size: 22px; line-height: 1; color: var(--green-700); }
.agn span { font-size: 11px; color: var(--text-3); font-weight: 700; }

/* edit sheet */
.edgrid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .9fr); gap: 22px; align-items: start; }
.edprev { position: sticky; top: 0; }
.evc.mini { box-shadow: var(--shadow); pointer-events: none; }
.evc.mini:hover { transform: none; }
.swatches { display: flex; gap: 8px; flex-wrap: wrap; }
.sw { width: 40px; height: 40px; border-radius: 12px; border: 2px solid transparent; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); transition: transform .12s; }
.sw:hover { transform: scale(1.06); }
.sw.on { border-color: var(--surface); box-shadow: 0 0 0 2px var(--gold); }
.qchips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.qchips .chip { padding: 5px 11px; font-size: 12.5px; }
.qchips.sm .chip { padding: 3px 9px; font-size: 11.5px; }

/* detail */
.dhead { position: relative; border-radius: 16px; padding: 16px 16px 26px; display: flex; gap: 14px; align-items: center; overflow: hidden; margin-bottom: 12px; }
.dh-t { flex: 1; min-width: 0; position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px; }
.dh-m { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13.5px; color: var(--cvsub); font-weight: 600; }
.dh-m span, .dh-m a { display: inline-flex; gap: 5px; align-items: center; color: inherit; text-decoration: none; }
.dh-m svg { width: 15px; height: 15px; }
.dh-cd { position: relative; z-index: 1; font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--cvacc); white-space: nowrap; }
.dkpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 12px 0 14px; }
.dk { border: 1px solid var(--border); border-radius: 14px; padding: 11px 13px; background: var(--surface); }
.dk .l { font-size: 11.5px; font-weight: 800; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; }
.dk .v { font-family: var(--serif); font-size: 26px; font-weight: 600; line-height: 1.15; }
.dk .v small { font-size: 15px; color: var(--text-3); }
.dk .s { font-size: 12px; color: var(--text-3); }
.dk.hero { background: var(--green-50); border-color: rgba(42,112,73,.3); grid-column: span 2; }
.dk.hero .capbar { margin: 6px 0 4px; }
.dk.gold { background: var(--gold-100); border-color: transparent; }
.cibtn { border: 1px solid var(--border); background: var(--surface); border-radius: 999px; padding: 4px 11px; font: 700 12px var(--sans); cursor: pointer; color: var(--text-2); display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.cibtn:hover { border-color: var(--green-600); color: var(--green-700); }
.cibtn.on { background: var(--green-700); border-color: var(--green-700); color: #fff; }
.cibtn svg { width: 13px; height: 13px; }

/* door check-in */
.door { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 1.2fr); gap: 22px; align-items: start; }
.door-qr { text-align: center; background: #fff; border: 1px solid var(--border); border-radius: 20px; padding: 20px; box-shadow: var(--shadow); }
.door-qr img { width: 100%; max-width: 320px; aspect-ratio: 1; display: block; margin: 0 auto; image-rendering: pixelated; }
.door-qr .code { font: 800 30px/1.2 ui-monospace, 'SFMono-Regular', Menlo, monospace; letter-spacing: .28em; color: #15442A; margin: 10px 0 4px; }
.door-qr .muted { color: #6b746d; }
.dlive { display: flex; gap: 16px; align-items: center; padding: 14px; border-radius: 16px; background: var(--green-50); border: 1px solid rgba(42,112,73,.2); }
.dlive .big { font-family: var(--serif); font-size: 22px; font-weight: 600; }
.dring { --p: 0; width: 84px; height: 84px; border-radius: 50%; flex: none; display: grid; place-items: center; align-content: center;
  background: radial-gradient(closest-side, var(--surface) 76%, transparent 77% 100%), conic-gradient(var(--green-700) calc(var(--p) * 1%), var(--border) 0); }
.dring b { font-family: var(--serif); font-size: 26px; line-height: 1; }
.dring span { font-size: 11px; color: var(--text-3); font-weight: 700; }
.dppl { display: flex; flex-direction: column; gap: 6px; max-height: 46vh; overflow: auto; }
.dp { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--border-2); border-radius: 12px; }
.dp > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dp small { color: var(--text-3); font-size: 12px; }
.dp.done { background: var(--green-50); }
.dp.walk { border-style: dashed; }
.sheet.full { top: 0; max-height: none !important; border-radius: 0; }
.sheet.full .door-qr img { max-width: 440px; }
.codein { font: 800 28px ui-monospace, Menlo, monospace; letter-spacing: .3em; text-align: center; text-transform: uppercase; padding: 14px; }
.ciok { text-align: center; padding: 10px 0 4px; }
.ciok .tick { width: 76px; height: 76px; border-radius: 50%; margin: 0 auto 12px; display: grid; place-items: center; background: var(--green-700); color: #fff; animation: pop .45s cubic-bezier(.2,1.6,.4,1); box-shadow: 0 0 0 10px var(--green-100); }
.ciok .tick svg { width: 38px; height: 38px; stroke-width: 2.6; }
.ciok h3 { font-family: var(--serif); font-size: 22px; margin: 6px 0; }
@keyframes pop { from { transform: scale(.4); opacity: 0; } }
.evnudge .dtile { box-shadow: none; }

@media (max-width: 760px) {
  .evgrid2 { grid-template-columns: 1fr; }
  .edgrid, .door { grid-template-columns: 1fr; }
  .edprev { position: static; order: -1; }
  .evhero { padding: 18px 16px 14px; border-radius: 18px; }
  .evhero h2 { font-size: 23px; }
  .evhero-cd { text-align: left; width: 100%; }
  .evhero-cd b { font-size: 24px; }
  .evhero-a .btn { flex: 1; justify-content: center; }
  .agi { grid-template-columns: auto 1fr auto; }
  .agi .agb { display: none; }
  .hide-sm { display: none; }
  .dk.hero { grid-column: span 2; }
  .evbar .input.sm { max-width: none !important; flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .cdchip.soon, .badge.live, .ciok .tick { animation: none; } .evc:hover, .agi:hover { transform: none; } }
.sheet-f { flex-wrap: wrap; row-gap: 8px; }
/* v3.3.1 pool: manage campaigns & areas */
.pmnote { display: flex; gap: 10px; align-items: flex-start; background: var(--green-50); border: 1px solid rgba(42,112,73,.2); color: var(--text-2); border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.pmnote svg { flex: none; width: 18px; height: 18px; color: var(--green-700); margin-top: 1px; }

/* ===== v3.4 Ask A&T ===== */
.askat { display: inline-flex; align-items: baseline; gap: .28em; font-family: 'Cormorant', Georgia, serif; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--green-800); white-space: nowrap; line-height: 1; }
.askat img { height: .86em; width: auto; align-self: center; transform: translateY(.02em); }
.askat.light { color: #fff; }
.askat.xl { font-size: 44px; }
.askh { margin: 0; font-size: 28px; }
.askh-sub { display: block; font-family: var(--sans); font-size: 10.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); margin-top: 5px; }
.tagline { font-family: 'Cormorant', Georgia, serif; font-style: italic; font-weight: 500; color: var(--gold-600); font-size: 17px; letter-spacing: .02em; }
.botann { display: flex; align-items: center; gap: 10px; margin: 2px 0 10px; padding: 10px 14px; border-radius: 14px; background: linear-gradient(90deg, var(--gold), #c9a95a); color: #fff; box-shadow: 0 8px 20px rgba(176,145,67,.32); }
.botann svg { width: 18px; height: 18px; flex: none; }
.botann .t { font-family: 'Cormorant', Georgia, serif; font-style: italic; font-weight: 600; font-size: 19px; letter-spacing: .02em; }
.botann .msg { font-weight: 700; font-size: 13.5px; flex: 1; min-width: 0; }
.bwelcome h2 { font-family: var(--serif); margin: 18px 0 6px; color: var(--text); font-size: 23px; }
.bwelcome .nm { font-family: 'Cormorant', Georgia, serif; font-style: italic; font-weight: 500; font-size: 27px; color: var(--gold-600); }
.botstart .chip, .bchips .chip { padding: 9px 15px; font-size: 13.5px; }
.botstart .chip.g { background: var(--green-800); border-color: var(--green-800); color: #fff; }
.botstart .chip svg, .bchips .chip svg { width: 14px; height: 14px; }
.thinking { font-family: var(--serif); font-style: italic; color: var(--text-2); font-size: 14px; margin-right: 4px; }
.bav { color: var(--gold); }
.botpage { display: flex; flex-direction: column; height: calc(100vh - 58px - 46px); max-width: 860px; margin: 0 auto; }
main.page.botmain { padding-bottom: 20px; }
.bothead { display: flex; gap: 14px; align-items: center; padding: 4px 0 14px; }
.bothead h1 { margin: 0; font-size: 24px; }
.bav { width: 34px; height: 34px; border-radius: 12px; background: var(--green-800); color: var(--gold); display: grid; place-items: center; flex: none; box-shadow: 0 4px 12px rgba(21,68,42,.25); }
.bav svg { width: 20px; height: 20px; }
.bav.big { width: 48px; height: 48px; border-radius: 16px; }
.bav.big svg { width: 28px; height: 28px; }
.botlog { flex: 1; overflow-y: auto; padding: 6px 4px 14px; display: flex; flex-direction: column; gap: 14px; scroll-behavior: smooth; }
.bwelcome { text-align: center; margin: auto; max-width: 420px; color: var(--text-2); }
.bwelcome .bav { margin: 0 auto 12px; }
.bwelcome h2 { font-family: var(--serif); margin: 0 0 6px; color: var(--text); }
.bm { display: flex; gap: 10px; align-items: flex-end; max-width: 92%; }
.bm.me { align-self: flex-end; flex-direction: row-reverse; }
.bbw { display: flex; flex-direction: column; gap: 8px; min-width: 0; flex: 1; }
.bb { padding: 11px 15px; border-radius: 18px; background: var(--surface); border: 1px solid var(--border); font-size: 14.5px; line-height: 1.5; box-shadow: var(--shadow); word-break: break-word; }
.bm.bot .bb { border-bottom-left-radius: 6px; }
.bm.me .bb { background: var(--green-800); color: #fff; border-color: var(--green-800); border-bottom-right-radius: 6px; }
.bb code { background: var(--green-50); color: var(--green-800); padding: 1px 6px; border-radius: 6px; font: 600 13px var(--sans); }
.bm.me .bb code { background: rgba(255,255,255,.15); color: #fff; }
.bts { font-size: 11px; color: var(--text-3); padding-left: 6px; }
.typing .bb { display: flex; gap: 4px; align-items: center; padding: 11px 16px; }
.typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--text-3); animation: bdot 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; } .typing i:nth-child(3) { animation-delay: .4s; }
@keyframes bdot { 0%, 60%, 100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-5px); opacity: 1; } }
.bbtns, .bchips { display: flex; flex-wrap: wrap; gap: 6px; }
.botstart { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 0 10px; }
.botin { display: flex; gap: 8px; padding: 10px 0 0; border-top: 1px solid var(--border-2); }
.botin .input { flex: 1; border-radius: 999px; padding: 12px 18px; font-size: 15px; }
.botin .btn { border-radius: 50%; width: 46px; height: 46px; padding: 0; justify-content: center; flex: none; }
.bcard { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 12px 14px; box-shadow: var(--shadow); }
.bph { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.bph small { display: block; color: var(--text-3); font-size: 12px; }
.bgrp { border-top: 1px solid var(--border-2); padding: 8px 0 2px; }
.bgl { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.bgl span { background: var(--surface-2); border-radius: 99px; padding: 0 7px; margin-left: 4px; }
.bf { display: flex; gap: 10px; align-items: center; padding: 6px 0; }
.bfi { width: 30px; height: 30px; border-radius: 9px; background: var(--green-50); color: var(--green-800); display: grid; place-items: center; flex: none; }
.bfi svg { width: 16px; height: 16px; }
.bfn { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bfn b { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bfn small { color: var(--text-3); font-size: 11.5px; }
.bfa { display: flex; gap: 4px; flex: none; }
.ib { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text-2); display: grid; place-items: center; cursor: pointer; text-decoration: none; }
.ib:hover { border-color: var(--green-600); color: var(--green-800); }
.ib.wa { background: #e8f8ee; color: #128c4a; border-color: #cdeedb; }
.ib svg { width: 16px; height: 16px; }
.blist { display: flex; flex-direction: column; gap: 6px; }
.bpi { display: flex; gap: 10px; align-items: center; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 9px 12px; cursor: pointer; font: inherit; color: inherit; }
.bpi:hover { border-color: var(--gold); }
.bpi > svg { width: 17px; height: 17px; color: var(--text-3); flex: none; }
.bpi > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bpi small { color: var(--text-3); font-size: 12px; }
.btbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.btbl th { text-align: left; color: var(--text-3); font-weight: 700; padding: 5px 10px 5px 0; width: 38%; vertical-align: top; border-top: 1px solid var(--border-2); }
.btbl td { padding: 5px 0; border-top: 1px solid var(--border-2); font-weight: 600; }
.bleads { display: flex; flex-direction: column; gap: 6px; }
.blead { display: flex; gap: 10px; align-items: center; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 8px 12px; cursor: pointer; font: inherit; color: inherit; }
.blead:hover { border-color: var(--green-600); }
.blead .av.sm svg { width: 13px; height: 13px; }
.blead .av.sm { color: #fff; font-size: 11px; }
.bln { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bln b { font-size: 14px; }
.bln small { color: var(--text-3); font-size: 12px; }
.blead > svg { width: 16px; height: 16px; color: var(--text-3); flex: none; }
.bottomnav a[data-nav="bot"] svg { color: var(--gold); }
/* watermark on lead screens (agent's name, faint) – discourages screenshots */
#wm { position: fixed; inset: 0; pointer-events: none; z-index: 5; opacity: .06; background-repeat: repeat; background-size: 260px 180px; }
@media (max-width: 760px) { main.page.botmain { padding-bottom: calc(74px + var(--sab, 0px)); padding-top: 10px; } .botpage { height: calc(100dvh - 58px - var(--sat, 0px) - var(--sab, 0px) - 84px); min-height: 0; } .bothead { padding-bottom: 8px; } .bothead .bav.big { width: 40px; height: 40px; } .askh { font-size: 23px; } .askat.xl { font-size: 36px; } .bm { max-width: 100%; } .bfa .ib { width: 30px; height: 30px; } }
@media (prefers-reduced-motion: reduce) { .typing i { animation: none; } }
.chip.warn { background: var(--amber-100); border-color: transparent; color: var(--amber); }
/* search box inside the marketing-material reply */
.bsearch { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 8px; box-shadow: var(--shadow); }
.bsearch .bsi { position: absolute; left: 20px; top: 20px; color: var(--text-3); pointer-events: none; }
.bsearch .bsi svg { width: 16px; height: 16px; }
.bsearch .input { padding-left: 38px; border-radius: 999px; }
.bsr { display: flex; flex-direction: column; gap: 4px; }
.bsr:not(:empty) { padding-top: 8px; }
.bsx { display: flex; gap: 10px; align-items: center; text-align: left; background: var(--surface-2); border: 1px solid var(--border-2); border-radius: 10px; padding: 7px 10px; cursor: pointer; font: inherit; color: inherit; }
.bsx:hover { border-color: var(--gold); background: var(--surface); }
.bsx > svg { width: 16px; height: 16px; color: var(--green-700); flex: none; }
.bsx span { display: flex; flex-direction: column; min-width: 0; }
.bsx b { font-size: 13.5px; } .bsx small { color: var(--text-3); font-size: 11.5px; }
/* roles & access */
.rolegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; align-items: start; }
.rolepeople { display: flex; flex-direction: column; gap: 6px; }
.rp { display: flex; gap: 10px; align-items: center; padding: 6px 8px; border: 1px solid var(--border-2); border-radius: 12px; }
.rp.off { opacity: .6; }
.rpn { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rpn b { font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rpn small { color: var(--text-3); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rp .input.sm { width: auto; max-width: 150px; padding: 5px 8px; font-size: 12.5px; }

/* v3.7 Roles & access – permission matrix */
.permtbl th.c, .permtbl td.c { text-align: center; width: 84px; }
.permtbl th.c span { display: inline-block; font-size: 10.5px; line-height: 1.15; white-space: normal; max-width: 80px; }
.permtbl tr.grp td { background: var(--green-50); color: var(--green-700); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 6px 12px; }
.permtbl input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--green-700); }
.rp { flex-wrap: wrap; }
.rp .rpsel { display: flex; gap: 6px; flex: 0 0 auto; }
.rp .rpsel .input.sm { max-width: 128px; }
.rp .rpsel .input.sm + .input.sm { max-width: 92px; }
.rpn { flex: 1 1 110px; }

/* v3.7.1 Salesforce mailbox */
.mailbox { border-color: var(--border); margin-bottom: 16px; }
.mailbox.on { border-color: rgba(21,68,42,.35); box-shadow: 0 6px 20px rgba(21,68,42,.08); }
.mb-head { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.mb-ic { width: 44px; height: 44px; border-radius: 14px; background: #15442A; color: #fff; display: grid; place-items: center; flex: none; }
.mb-ic svg { width: 22px; height: 22px; }
.mb-flow { display: flex; align-items: stretch; gap: 8px; margin-top: 14px; overflow-x: auto; padding-bottom: 2px; }
.mb-flow .step { flex: 1 1 140px; min-width: 130px; background: var(--ivory, #F7F4EC); border: 1px solid var(--border-2); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; position: relative; }
.mb-flow .step i { position: absolute; right: 10px; top: 8px; width: 20px; height: 20px; border-radius: 50%; background: var(--gold); color: #fff; font: 700 11px/20px Manrope, sans-serif; text-align: center; font-style: normal; }
.mb-flow .step b { font-family: var(--serif); font-size: 15px; }
.mb-flow .step span { font-size: 11.5px; color: var(--text-3); }
.mb-flow .arrow { align-self: center; color: var(--gold); font-weight: 700; font-size: 12px; white-space: nowrap; flex: none; }
.mb-queue { margin-top: 14px; border-top: 1px solid var(--border-2); padding-top: 10px; }
.mb-q { display: flex; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--border-2); font-size: 13px; flex-wrap: wrap; }
.mb-q:last-child { border-bottom: 0; }
.mb-set { margin-top: 12px; border-top: 1px solid var(--border-2); padding-top: 10px; }
.mb-set summary { cursor: pointer; }
.mailprev { white-space: pre-wrap; font: 12.5px/1.5 Menlo, Consolas, monospace; background: var(--ivory, #F7F4EC); border: 1px solid var(--border-2); border-radius: 10px; padding: 12px; max-height: 60vh; overflow: auto; }
.btn.xs { padding: 3px 8px; font-size: 11.5px; border-radius: 8px; }

/* v3.8 announcer voice */
.vc-flow { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.voicecard .btn.danger.ghost { color: var(--red); }

/* v3.9 Ask A&T marketing drive (folder browser inside the chat) */
.bdrive { margin-top: 8px; border: 1px solid var(--border-2); border-radius: 14px; background: var(--card); overflow: hidden; }
.bdrive.busy { opacity: .55; pointer-events: none; }
.bcrumbs { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; padding: 8px 10px; background: var(--green-50); border-bottom: 1px solid var(--border-2); font-size: 12.5px; }
.bcrumbs .sep { color: var(--text-3); }
.bcr { border: 0; background: transparent; padding: 3px 6px; border-radius: 8px; font: inherit; font-weight: 600; color: var(--green-700); cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.bcr svg { width: 15px; height: 15px; }
.bcr.on { background: #fff; color: var(--text); cursor: default; }
.bcr:not(.on):hover { background: rgba(21,68,42,.08); }
.bfolders { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; padding: 8px; }
.bfo { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid var(--border-2); border-radius: 12px; background: var(--ivory, #F7F4EC); text-align: left; font: inherit; cursor: pointer; min-width: 0; }
.bfo:hover { border-color: var(--gold); background: #fff; }
.bfo > svg:first-child { width: 22px; height: 22px; color: var(--gold); flex: none; }
.bfo > svg:last-child { width: 14px; height: 14px; color: var(--text-3); flex: none; margin-left: auto; }
.bfo span { display: flex; flex-direction: column; min-width: 0; }
.bfo b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bfo small { font-size: 11px; color: var(--text-3); }
.bfiles { padding: 4px 8px 8px; }
.bfiles .bf { border-top: 1px dashed var(--border-2); }
.bfiles .bf:first-child { border-top: 0; }

/* v4.0 upload column mapping */
.maptbl { max-height: 420px; overflow: auto; border: 1px solid var(--border-2); border-radius: 10px; }
.maptbl th { position: sticky; top: 0; z-index: 1; }
.maptbl tr.off td { opacity: .45; }
.maptbl tr.core td:first-child b { color: var(--green-700); }
.maptbl .mapex { max-width: 260px; }
.maptbl .mapex span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.maptbl td.c, .maptbl th.c { text-align: center; }

/* v4.0 capture guard */
body.nocopy main, body.nocopy .sheet { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
body.nocopy main input, body.nocopy main textarea { -webkit-user-select: text; user-select: text; }
body.veil main, body.veil .sheet { filter: blur(14px); transition: filter .15s; }
#capture-block { position: fixed; inset: 0; z-index: 99999; background: #15442A; color: #fff; display: grid; place-items: center; text-align: center; padding: 24px; font-family: var(--sans, Manrope, sans-serif); }
#capture-block b { font-family: var(--serif); font-size: 26px; display: block; margin-bottom: 8px; }
#capture-block p { max-width: 420px; opacity: .85; }
.brpick button.on { background: var(--green-700); color: #fff; }
.annprev-text .ph { display: block; font-weight: 700; font-size: 1.15em; margin-bottom: 4px; }
.annprev-text .pl { display: block; }
.annprev-text .pm { display: block; font-size: 11px; opacity: .7; margin-top: 8px; }

/* v4.0 announcement look preview */
.lkprev { border-radius: 16px; padding: 22px 26px; background: linear-gradient(135deg, #15442A, #0d2c1b); color: #F7F4EC; text-align: center; }
.lkprev.left { text-align: left; }
.lkprev .lkh { font-weight: 700; font-size: 26px; line-height: 1.15; margin-bottom: 8px; }
.lkprev .lkl { font-size: 16px; line-height: 1.4; opacity: .92; }
.lkprev.s-s .lkh { font-size: 20px; } .lkprev.s-s .lkl { font-size: 13px; }
.lkprev.s-l .lkh { font-size: 32px; } .lkprev.s-l .lkl { font-size: 19px; }
.lkprev.s-xl .lkh { font-size: 40px; } .lkprev.s-xl .lkl { font-size: 23px; }
.lkprev.c-white { color: #fff; } .lkprev.c-gold { color: #d9c48e; } .lkprev.c-gold .lkh { color: #B09143; }
.lkprev.c-green { background: #F7F4EC; color: #15442A; }

/* v4.2 Ask A&T lead source switch (only for roles with campaign access) */
.botsrc { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:6px 4px 8px; }
.botsrc .bsl { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted, #6b7280); margin-right:4px; }
.botsrc .bsb { display:inline-flex; align-items:center; gap:6px; border:1px solid #d9d3c3; background:#fffdf8; color:#1b211d; border-radius:999px; padding:6px 12px; font:600 13px Manrope, sans-serif; cursor:pointer; }
.botsrc .bsb svg { width:15px; height:15px; }
.botsrc .bsb.on { background:#15442A; border-color:#15442A; color:#F7F4EC; }
.botsrc .bsb[data-src="campaign"].on { background:#B09143; border-color:#B09143; color:#fff; }
.botpage.campmode .botin .input { border-color:#B09143; }
.campbox { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); gap:14px; align-items:start; margin-top:14px; padding:14px; border:1px dashed #d8c99a; border-radius:12px; background:#fbf8ef; }
.campbox b svg { width:16px; height:16px; vertical-align:-3px; color:#B09143; }
@media (max-width:760px) { .campbox { grid-template-columns:1fr; } }

/* v4.2 Announcements: composer + live queue */
.annlay { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:16px; align-items:start; }
@media (max-width:1100px) { .annlay { grid-template-columns:minmax(0,1fr); } }
.amc { border:1px solid #e4dfd1; border-radius:14px; padding:10px 12px 8px; background:#fffdf8; display:flex; flex-direction:column; gap:8px; transition:border-color .15s, box-shadow .15s; }
.amc.focus { border-color:#B09143; box-shadow:0 0 0 3px rgba(176,145,67,.14); }
.amc-h { display:flex; align-items:center; gap:4px; }
.amc-n { width:24px; height:24px; border-radius:50%; background:#15442A; color:#F7F4EC; font:700 12px Manrope, sans-serif; display:grid; place-items:center; }
.amc-h .ib svg, .aqo .ib svg { transform:rotate(-90deg); }
.amc-h .ib.dn svg, .aqo .ib.dn svg { transform:rotate(90deg); }
.amc-h [data-crm] svg { transform:none; }
.amc-head { font-weight:700; }
.amc-body { min-height:76px; resize:vertical; }
.amc-f { display:flex; gap:8px; }
.amc-split { display:flex; align-items:center; gap:8px; flex-wrap:wrap; background:#fbf6e6; border:1px solid #ecdcae; border-radius:10px; padding:8px 10px; font-size:13px; }
.amc-add { border-style:dashed; justify-content:center; width:100%; }
.scrpick { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.scrrow { display:grid; grid-template-columns:90px repeat(3, minmax(0,1fr)); gap:8px; align-items:center; }
.scrrow > b { font-size:13px; }
.scr { display:flex; align-items:center; gap:6px; border:1px solid #e4dfd1; border-radius:10px; padding:7px 9px; font-size:13px; cursor:pointer; background:#fffdf8; min-width:0; }
.scr span { display:flex; align-items:center; gap:6px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scr i { font-style:normal; width:20px; height:20px; flex:none; border-radius:6px; background:#F7F4EC; color:#15442A; font-weight:800; font-size:12px; display:grid; place-items:center; }
.scr.on { border-color:#15442A; background:#eef4f0; }
.scr.on i { background:#15442A; color:#F7F4EC; }
.scr input { position:absolute; opacity:0; pointer-events:none; }
.scr.empty { color:#9aa29c; border-style:dashed; cursor:default; }
@media (max-width:640px) { .scrrow { grid-template-columns:1fr; } }
.aq .aqs { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:8px; }
.aqsc { display:flex; align-items:center; gap:8px; border:1px solid #e4dfd1; border-radius:12px; padding:8px 10px; background:#fffdf8; min-width:0; }
.aqsc > div { min-width:0; } .aqsc b { display:block; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .aqsc small { color:#6b7280; }
.aqsc.off { opacity:.6; }
.aqsn { width:26px; height:26px; flex:none; border-radius:8px; background:#15442A; color:#F7F4EC; font-weight:800; display:grid; place-items:center; font-size:13px; }
.aql { display:flex; flex-direction:column; gap:8px; }
.aqi { display:flex; gap:8px; align-items:flex-start; border:1px solid #e4dfd1; border-left:4px solid #B09143; border-radius:12px; padding:8px 10px; background:#fff; }
.aqi.paused { border-left-color:#c8c8c8; background:#f6f6f3; opacity:.75; }
.aqo { display:flex; flex-direction:column; gap:2px; }
.aqt { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:14px; }
.aqt span { white-space:pre-line; overflow-wrap:anywhere; }
.aqt small { color:#6b7280; font-size:12px; }
.aqa { display:flex; gap:2px; }

/* v4.2 TV screens: three slots per branch */
.slotgrid { display:flex; flex-direction:column; gap:22px; margin-top:16px; }
.slotbr-h { display:flex; align-items:baseline; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
.slotbr-h h2 { margin:0; font:500 24px Fraunces, Georgia, serif; color:#15442A; }
.slots { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; }
@media (max-width:1100px) { .slots { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:700px) { .slots { grid-template-columns:minmax(0,1fr); } }
.slot { display:flex; flex-direction:column; gap:6px; min-width:0; }
.slot > .card { flex:1; }
.slot-n { font:800 11px Manrope, sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#B09143; }
.slot-free { border-style:dashed; background:#fbf8ef; }
.slot-free svg { width:30px; height:30px; color:#B09143; }
.annlink svg { width:22px; height:22px; color:#B09143; }
.slot-fb { display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; padding:28px 16px; }
.slot-fb p { margin:0; max-width:240px; }
.botann .msg { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* v4.2 sound & look summary on Announcements; TV page jump bar */
.slrow { display:flex; align-items:center; gap:12px; }
.slrow > div { flex:1; min-width:0; } .slrow b { display:block; font-size:14px; } .slrow small { color:#6b7280; }
.sli { width:34px; height:34px; flex:none; border-radius:10px; background:#F7F4EC; color:#B09143; display:grid; place-items:center; }
.sli.aa { font:600 15px Fraunces, Georgia, serif; color:#15442A; }
.annprev-card[data-col="white"] { color:#fff; } .annprev-card[data-col="gold"] .ph { color:#d9c48e; }
.annprev-card[data-col="green"] { background:#F7F4EC !important; color:#15442A; } .annprev-card[data-col="green"] .annprev-eb { color:#B09143; }
.tvjump { margin:4px 0 14px; } .tvjump .chip { text-decoration:none; } .tvjump .chip svg { width:15px; height:15px; }
.card.flash { box-shadow:0 0 0 3px rgba(176,145,67,.55); transition:box-shadow .3s; }
.card, #tv_screens { scroll-margin-top: 84px; }

/* v4.2 results locked until the agent contacts the client */
.otiles.locked .otile { opacity:.42; filter:grayscale(.6); }
.lockhint { display:flex; align-items:center; gap:8px; margin:0 0 10px; padding:9px 12px; border-radius:12px; background:#fbf6e6; border:1px solid #ecdcae; color:#6b5a26; font-size:13px; }
.lockhint svg { width:16px; height:16px; color:#B09143; flex:none; }
.lockhint.shake { animation:lkshake .4s; }
@keyframes lkshake { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-6px); } 75% { transform:translateX(6px); } }

/* v4.3 branded notice: deep A&T green with a moving sheen and shining gold text */
.toast.brand { position:relative; overflow:hidden; justify-content:center; text-align:center; padding:14px 18px; border:1px solid rgba(217,196,142,.55);
  background:linear-gradient(135deg, #1d5a38 0%, #15442A 45%, #0d2c1b 100%); box-shadow:0 10px 30px rgba(13,44,27,.45), inset 0 1px 0 rgba(255,255,255,.12); }
.toast.brand::before { content:''; position:absolute; inset:0; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.16) 48%, transparent 66%); transform:translateX(-100%); animation:tsheen 2.2s ease-in-out infinite; }
.toast.brand .tgold { position:relative; font:800 15px Manrope, sans-serif; letter-spacing:.02em;
  background:linear-gradient(90deg, #b0913f 0%, #f3e3ad 25%, #c9a957 50%, #fff2c4 70%, #b0913f 100%); background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:tgold 2.6s linear infinite; }
@keyframes tsheen { to { transform:translateX(100%); } }
@keyframes tgold { to { background-position:200% center; } }

/* v4.3 holding times */
.holdtbl td { vertical-align:middle; } .holdtbl select.input { min-width:0; }
.holdn.off { opacity:.35; pointer-events:none; }
.holdcard .card-h svg { color:#B09143; }

/* v4.3 Salesforce: send / get tabs, three ways in, pull form */
.sftabs { align-self:flex-end; } .sftabs a { text-decoration:none; display:inline-flex; align-items:center; gap:6px; } .sftabs a svg { width:15px; height:15px; }
.sfways { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
@media (max-width:1000px) { .sfways { grid-template-columns:minmax(0,1fr); } }
.sfway { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid #e4dfd1; border-radius:14px; background:#fffdf8; min-width:0; }
.sfway > div { flex:1; min-width:0; } .sfway b { display:block; } .sfway small { color:#6b7280; }
.sfway .n { width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center; font-weight:800; background:#F7F4EC; color:#15442A; }
.sfway.on .n { background:#15442A; color:#F7F4EC; }
.sfnc { background:#fbf6e6; border:1px solid #ecdcae; border-radius:12px; padding:14px 16px; } .sfnc p { margin:4px 0 8px; } .sfnc ol { margin:0; padding-left:18px; line-height:1.7; }
.sfsteps { margin:0; padding-left:18px; line-height:1.7; }
.sgchips { max-height:168px; overflow:auto; padding:2px; } .sgchips .chip small { opacity:.7; margin-left:2px; }
.sgprev { border:1px dashed #d8c99a; border-radius:12px; padding:12px; background:#fffdf8; }
.sgstats { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin-bottom:10px; }
.sgstats div { background:#F7F4EC; border-radius:10px; padding:10px 12px; } .sgstats b { font:600 22px Fraunces, Georgia, serif; color:#15442A; display:block; } .sgstats small { color:#6b7280; }
.seg a { padding: 6px 14px; border-radius: 999px; font-weight: 700; font-size: 13px; color: var(--text-2); white-space: nowrap; flex: none; }
.seg a.on { background: var(--green-800); color: #fff; }

/* v4.4 e-mails to leads */
.mailbtn { display:flex; align-items:center; gap:12px; width:100%; margin:10px 0 4px; padding:12px 16px; border-radius:16px; border:1px solid #e4dfd1; background:#fffdf8; color:#15442A; cursor:pointer; text-align:left; font:inherit; }
.mailbtn > svg:first-child { width:22px; height:22px; color:#B09143; flex:none; } .mailbtn > svg:last-child { width:18px; height:18px; opacity:.5; flex:none; }
.mailbtn span { flex:1; min-width:0; } .mailbtn b { display:block; font-size:15px; } .mailbtn small { color:#6b7280; }
.mslimits { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:10px 12px; border-radius:12px; background:#F7F4EC; font-size:13px; margin-bottom:12px; }
.mslimits svg { width:15px; height:15px; vertical-align:-3px; color:#B09143; }
.msstat { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:8px; margin-top:6px; }
.msst { display:flex; flex-direction:column; gap:2px; text-align:left; padding:10px 12px; border-radius:12px; border:1px solid #e4dfd1; background:#fffdf8; cursor:pointer; font:inherit; color:#1b211d; }
.msst b { font-size:14px; } .msst span { font-size:12px; color:#6b7280; } .msst em { font-style:normal; font-size:12px; font-weight:700; color:#15442A; }
.msst.on { border-color:#15442A; background:#eef4f0; box-shadow:0 0 0 2px rgba(21,68,42,.15); } .msst:disabled { opacity:.45; cursor:default; }
.msprev { margin-top:10px; border:1px solid #e4dfd1; border-radius:14px; background:#F7F4EC; overflow:hidden; min-height:80px; }
.msmeta { display:flex; flex-direction:column; gap:2px; padding:10px 12px; font-size:12.5px; border-bottom:1px solid #e4dfd1; background:#fffdf8; }
.mailframe { display:block; width:100%; height:560px; border:0; background:#F7F4EC; }
.mscamps { display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.mscamp { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:8px 10px; border:1px solid #e4dfd1; border-radius:12px; background:#fffdf8; }
.mscamp b { display:block; font-size:13px; } .mscamp small { color:#6b7280; font-size:11.5px; }
.msbar { height:6px; border-radius:99px; background:#ece7d8; overflow:hidden; } .msbar i { display:block; height:100%; background:linear-gradient(90deg,#15442A,#B09143); }
@media (max-width:640px) { .mscamp { grid-template-columns:1fr; } }
.tplgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:14px; }
.tplcard.off { opacity:.6; }
.tpled { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
@media (max-width:1000px) { .tpled { grid-template-columns:minmax(0,1fr); } }
.tpledprev { position:sticky; top:0; }
.chip input[hidden] + * { }

.gbcard .card-h { flex-wrap:wrap; } .gbcard .card-h .num-dot svg { width:14px; height:14px; } .gbcard .card-h > .muted { flex-basis:100%; }
.gbprev { padding:10px 12px; border-radius:12px; background:#F7F4EC; } .gbprev b { font:600 20px Fraunces, Georgia, serif; color:#15442A; }
.grid.c4 { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; } @media (max-width:900px) { .grid.c4 { grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* v4.4.3 who is calling */
.wctiles { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
@media (max-width:700px) { .wctiles { grid-template-columns:minmax(0,1fr); } }
.wct { display:flex; flex-direction:column; gap:6px; text-align:left; padding:14px 16px; border-radius:14px; border:1px solid #e4dfd1; background:#fffdf8; cursor:pointer; font:inherit; color:#1b211d; }
.wct .l { font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#B09143; }
.wct .v { font-size:15px; color:#4A5568; } .wct .v b { font:600 30px Fraunces, Georgia, serif; color:#15442A; margin-right:2px; }
.wct .s { font-size:12px; color:#6b7280; }
.wct.on { border-color:#15442A; box-shadow:0 0 0 2px rgba(21,68,42,.14); }
.wcbar { height:6px; border-radius:99px; background:#ece7d8; overflow:hidden; } .wcbar i { display:block; height:100%; background:linear-gradient(90deg,#15442A,#B09143); }
.wcnot { margin-top:14px; display:flex; flex-direction:column; gap:8px; } .wcnot .chip small { opacity:.6; margin-left:4px; }
.wcnot.ok { flex-direction:row; align-items:center; color:#15442A; font-weight:700; } .wcnot.ok svg { width:18px; height:18px; }

/* v4.4.3 who's using Call Desk */
.ustiles { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
@media (max-width:900px) { .ustiles { grid-template-columns:repeat(2, minmax(0,1fr)); } }
.ust { display:flex; flex-direction:column; gap:2px; text-align:left; padding:12px 14px; border-radius:14px; border:1px solid #e4dfd1; background:#fffdf8; cursor:pointer; font:inherit; color:#4A5568; }
.ust b { font:600 28px Fraunces, Georgia, serif; color:#15442A; } .ust span { font-size:12.5px; font-weight:700; }
.ust.red b { color:#b42318; } .ust.amber b { color:#b26b00; } .ust.green b { color:#15442A; }
.ust.on { border-color:#15442A; box-shadow:0 0 0 2px rgba(21,68,42,.14); }
.seg a, .seg a:hover { text-decoration: none; }

/* v4.5.0 dashboard reports (Report filter) */
.rpick { display:inline-flex; align-items:center; gap:6px; padding-left:10px; border:1px solid #15442A; border-radius:12px; background:#fffdf8; color:#15442A; }
.rpick svg { width:16px; height:16px; flex:none; }
.rpick select { border:0; background:transparent; font-weight:700; color:#15442A; width:auto; padding-left:2px; box-shadow:none; }
.rdates { display:inline-flex; align-items:center; gap:6px; } .rdates .input { width:auto; }
.rperiods { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin-top:12px; }
@media (max-width:760px) { .rperiods { grid-template-columns:minmax(0,1fr); } }
.rperiods > div { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 6px; padding:10px 12px; border:1px solid var(--border, #e4dfd1); border-radius:12px; color:#4A5568; font-size:13.5px; }
.rperiods > div > span:first-child { flex-basis:100%; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#B09143; }
.rperiods b { font:600 22px Fraunces, Georgia, serif; color:#15442A; }
.rperiods small { flex-basis:100%; color:#6b7280; font-size:12px; }
.rbar { flex-basis:100%; height:6px; border-radius:6px; background:#eee9dc; overflow:hidden; } .rbar i { display:block; height:100%; background:linear-gradient(90deg,#15442A,#2f6b47); border-radius:6px; }
.rnote { margin-top:10px; font-size:13.5px; color:#4A5568; } .rnote b { color:#15442A; } .rnote .warn, .rnote b.warn { color:#b42318; }
.rgroups { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:8px; margin:12px 0 8px; }
.rg { display:flex; flex-direction:column; gap:1px; padding:10px 12px; border:1px solid var(--border, #e4dfd1); border-radius:12px; background:#fffdf8; }
.rg b { font:600 22px Fraunces, Georgia, serif; color:#15442A; } .rg span { font-size:12.5px; font-weight:700; color:#4A5568; } .rg small { font-size:11.5px; color:#8a948c; }
.rg.bad b { color:#b42318; } .rg.gold b { color:#B09143; }
.rdays { display:flex; align-items:flex-end; gap:3px; height:150px; padding-top:16px; }
.rday { flex:1; min-width:6px; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; position:relative; }
.rday i { display:block; width:100%; max-width:26px; background:#15442A; border-radius:4px 4px 0 0; min-height:2px; }
.rday em { font-style:normal; font-size:10.5px; color:#4A5568; margin-bottom:2px; } .rday span { font-size:10.5px; color:#8a948c; margin-top:4px; }
.rtool { flex-wrap:wrap; gap:8px; } .rshow button b { margin-left:4px; opacity:.75; }
:root[data-theme="dark"] .rpick, :root[data-theme="dark"] .rg, :root[data-theme="dark"] .rperiods > div { background:transparent; }

/* v4.6.0 Salesforce mapping */
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing:.01em; }
.sfid { white-space:nowrap; font-size:11.5px; font-weight:700; color:#15442A; background:rgba(21,68,42,.08); border-radius:6px; padding:1px 6px; font-family: ui-monospace, Menlo, Consolas, monospace; }
.sfid.miss { color:#b42318; background:rgba(180,35,24,.08); font-family:inherit; }
.field .req { font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#B09143; margin-left:6px; }
.sfcols { display:flex; flex-direction:column; gap:8px; padding:12px 14px; border-radius:12px; border:1px solid #e4dfd1; background:#fffdf8; }
.sfcols > b { display:flex; align-items:center; gap:8px; } .sfcols > b svg { width:17px; height:17px; flex:none; }
.sfcols.ok { border-color:rgba(21,68,42,.35); } .sfcols.ok > b { color:#15442A; }
.sfcols.bad { border-color:rgba(180,35,24,.4); background:rgba(180,35,24,.04); } .sfcols.bad > b { color:#b42318; }
.sfcols .chip.have { border-color:rgba(21,68,42,.35); color:#15442A; } .sfcols .chip.miss { border-color:rgba(180,35,24,.45); color:#b42318; font-weight:700; }
.check.sfowner { align-items:flex-start; gap:10px; padding:10px 12px; border:1px dashed #B09143; border-radius:12px; margin-bottom:12px; }
.check.sfowner span { display:flex; flex-direction:column; gap:2px; } .check.sfowner small { font-weight:400; }
.mftbl td { vertical-align:middle; } .mftbl .input.sm { max-width:280px; }
:root[data-theme="dark"] .sfcols { background:transparent; }
.mpwrap { max-height:560px; overflow:auto; } .mpwrap thead th { position:sticky; top:0; background:var(--card, #fffdf8); z-index:1; }

/* v4.7.0 pools: New / Reshuffle, dial-code table, dead leads */
.seg.pmode { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:5px; width:100%; }
.seg.pmode button { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; justify-content:flex-start; text-align:left; padding:10px 14px; border-radius:12px; }
.seg.pmode button b { font-size:15px; } .seg.pmode button em { font-style:normal; font-weight:800; opacity:.8; }
.seg.pmode button small { flex-basis:100%; font-size:11.5px; opacity:.75; font-weight:500; }
.lbl small { text-transform:none; letter-spacing:0; font-weight:500; color:#8a948c; }
.chip.keep { border-style:dashed; }
.ctbl { max-height:360px; overflow:auto; border:1px solid var(--border, #e4dfd1); border-radius:12px; }
.ctbl th { cursor:pointer; white-space:nowrap; position:sticky; top:0; background:var(--card, #fffdf8); z-index:1; }
.ctbl th small { display:block; font-weight:500; text-transform:none; letter-spacing:0; font-size:10.5px; opacity:.7; }
.ctbl th.on { color:#15442A; box-shadow:inset 0 -3px 0 #B09143; }
.ctbl td[data-pg] { cursor:pointer; } .ctbl td.on b { color:#15442A; text-decoration:underline; text-decoration-color:#B09143; text-underline-offset:3px; }
.ctbl td.hit { background:rgba(21,68,42,.10); color:#15442A; font-weight:800; }
.kpi.kbtn { text-align:left; cursor:pointer; font:inherit; color:inherit; } .kpi.kbtn:hover { border-color:#B09143; }
:root[data-theme="dark"] .ctbl td.hit { background:rgba(176,145,67,.18); color:inherit; }
@media (max-width:700px) {
  .page-h > .row { flex-wrap:wrap; } .page-h > .row .btn { flex:1 1 auto; }
  .wiz .card-h { flex-wrap:wrap; } .wiz .card-h h3 { flex:1 1 auto; min-width:0; }
  .seg.pmode { grid-template-columns:1fr; }
}

/* v4.8.0 My calls announcement – slides in once, then slides back into a small gold button */
.annslide { position:relative; margin:0 0 14px; }
.annpill { display:inline-flex; align-items:center; gap:8px; border:0; cursor:pointer; font:inherit; font-weight:800; font-size:13px; color:#fff;
  padding:7px 14px 7px 10px; border-radius:999px; background:linear-gradient(120deg,#15442A 0%,#1f5a39 55%,#15442A 100%); box-shadow:0 6px 18px -8px rgba(21,68,42,.55); }
.annpill svg { width:16px; height:16px; color:#E9D7A0; } .annpill em { font-style:normal; background:#B09143; color:#fff; border-radius:999px; padding:0 8px; font-size:12px; line-height:20px; }
.annslide.open .annpill { opacity:0; pointer-events:none; position:absolute; }
.annbody { display:grid; grid-template-rows:0fr; opacity:0; transform:translateY(-12px); transition:grid-template-rows .55s cubic-bezier(.2,.8,.2,1), opacity .45s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
.annslide.open .annbody { grid-template-rows:1fr; opacity:1; transform:none; }
.annbody > .annin { overflow:hidden; display:flex; align-items:flex-start; gap:12px; border-radius:16px; color:#fff; padding:0 16px;
  background:linear-gradient(115deg,#15442A 0%,#1d5536 45%,#15442A 100%); position:relative; }
.annslide.open .annbody > .annin { padding:14px 16px; box-shadow:0 18px 40px -24px rgba(21,68,42,.8); }
.annin::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 30%,rgba(233,215,160,.28) 48%,transparent 66%); transform:translateX(-100%); animation:annshine 3.2s ease-in-out infinite; pointer-events:none; }
@keyframes annshine { 0%,30% { transform:translateX(-100%); } 70%,100% { transform:translateX(100%); } }
.annin > svg { width:22px; height:22px; color:#E9D7A0; flex:none; margin-top:2px; }
.annlist { display:flex; flex-direction:column; gap:4px; flex:1; min-width:0; }
.annlist span { font-weight:700; font-size:14.5px; line-height:1.45; background:linear-gradient(90deg,#F4E7BE,#E1C77A,#F4E7BE); -webkit-background-clip:text; background-clip:text; color:transparent; }
.annhide { border:0; background:rgba(255,255,255,.12); color:#fff; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; cursor:pointer; flex:none; }
.annhide svg { width:15px; height:15px; transform:rotate(-90deg); }
@media (prefers-reduced-motion: reduce) { .annbody { transition:none; } .annin::after { animation:none; } }
/* v4.8 people: bulk delete bar · pool search · Ask A&T tag */
.ubulk { display:flex; align-items:center; gap:8px; padding:10px 16px; background:rgba(180,35,24,.06); border-bottom:1px solid rgba(180,35,24,.25); color:var(--text, #1b211d); } .ubulk.hidden { display:none; } .ubulk b { color:#b42318; }
.searchbox.pgsearch { max-width:360px; flex:1 1 240px; }
.bottag { font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#B09143; }

/* ===== v4.9 opening screen (once a day per person) – exactly as the approved preview ===== */
.splash { position: fixed; inset: 0; z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #F7F4EC; cursor: pointer; transition: opacity .45s ease, visibility .45s; }
.splash.out { opacity: 0; visibility: hidden; }
.sp-pb { font: 800 11px Manrope, system-ui, sans-serif; letter-spacing: .42em; text-transform: uppercase; color: #15442A; margin: 0 0 18px .42em; opacity: 0; transform: translateY(10px); }
.sp-pb b { font-weight: 800; background: linear-gradient(90deg, #15442A 0%, #15442A 40%, #B09143 50%, #15442A 60%, #15442A 100%); background-size: 250% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; color: transparent; }
.sp-tile { width: 132px; height: 132px; border-radius: 30px; box-shadow: 0 22px 40px -18px rgba(21,68,42,.55); }
.sp-line { width: 0; height: 2px; margin: 16px 0 0; background: linear-gradient(90deg, transparent, #B09143, transparent); }
.splash.play .sp-pb { animation: spIn .7s cubic-bezier(.2,.8,.2,1) .15s forwards; }
.splash.play .sp-pb b { animation: spShine 1.3s ease-in-out .5s forwards; }
.splash.play .sp-line { animation: spLine .9s ease .35s forwards; }
@keyframes spIn { to { opacity: 1; transform: none; } }
@keyframes spShine { from { background-position: 100% 0; } to { background-position: -50% 0; } }
@keyframes spLine { to { width: 120px; } }
@media (prefers-reduced-motion: reduce) {
  .splash.play .sp-pb { animation: none; opacity: 1; transform: none; } .splash.play .sp-line { animation: none; width: 120px; }
  .topbar .brand.intro .brand-in { animation: none; }
}

/* ===== v4.9 WhatsApp my leads ===== */
.wabtn .wa-dot { flex: none !important; width: 30px; height: 30px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; }
.wabtn .wa-dot svg { width: 17px; height: 17px; }
.btn.wa.primary { background: #15442A; border-color: #15442A; color: #F7F4EC; }
.btn.wa.primary svg { color: #D9C48E; }
.wafoot { display: contents; }
.waprev { margin-top: 10px; border: 1px solid #e4dfd1; border-radius: 14px; overflow: hidden; min-height: 70px; padding: 14px;
  background: #F7F4EC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='4' cy='4' r='1.1' fill='%23e2d6b8'/%3E%3C/svg%3E"); }
.wabub { display: flex; justify-content: flex-end; }
.wabub-in { position: relative; max-width: 88%; background: #fffdf8; color: #1b211d; border: 1px solid #e6dcc2; border-right: 3px solid #B09143; padding: 8px 10px 18px; border-radius: 10px 0 10px 10px; font-size: 14px; line-height: 1.45; box-shadow: 0 1px 1px rgba(0,0,0,.08); white-space: normal; word-break: break-word; }
.wabub-t { position: absolute; right: 8px; bottom: 3px; font-size: 10.5px; color: #B09143; }
.waq-top { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.waq-n { font-size: 14px; white-space: nowrap; } .waq-n b { font-size: 20px; font-family: var(--serif); color: var(--green-800); }
.waq-card { border: 1px solid #e4dfd1; border-radius: 16px; padding: 14px; background: #fffdf8; }
.waq-who { display: flex; align-items: center; gap: 10px; }
.wa-av { width: 40px; height: 40px; border-radius: 50%; background: #15442A; color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
.waq-log { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 4px; font-size: 13px; }
.watxt { white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.waq-act { display: flex; gap: 8px; margin-top: 12px; } .waq-act .btn { flex: 1; justify-content: center; padding: 12px; }
.waq-act .btn:disabled { opacity: .45; }

/* v4.9 Reach your clients – E-mail / WhatsApp my leads on Hot leads, in A&T green and gold */
.reach { position: relative; overflow: hidden; margin: 0 0 18px; padding: 16px; border-radius: 18px; color: #F7F4EC;
  background: radial-gradient(120% 140% at 100% 0%, #1f5a3a 0%, #15442A 55%, #0f3520 100%); border: 1px solid rgba(217,196,142,.35); box-shadow: 0 10px 24px rgba(21,68,42,.18); }
.reach::before { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.07) 48%, transparent 62%); pointer-events: none; }
.reach-h { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.reach-h b { display: block; font: 600 18px var(--serif); color: #fff; } .reach-h small { color: rgba(247,244,236,.72); font-size: 12px; }
.reach-mark { flex: none; width: 42px; height: 42px; border-radius: 11px; box-shadow: 0 0 0 1px rgba(217,196,142,.6), 0 4px 10px rgba(0,0,0,.25); }
.reach-btns { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; }
.reach-b { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; cursor: pointer; text-align: left; font: inherit; color: #15442A;
  background: linear-gradient(180deg, #fffdf8, #F7F4EC); border: 1px solid #D9C48E; transition: transform .15s ease, box-shadow .15s ease; }
.reach-b:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.18); }
.reach-b > span:nth-child(2) { flex: 1; min-width: 0; } .reach-b b { display: block; font-size: 15px; } .reach-b small { color: #6b7280; font-size: 12px; }
.reach-b > svg:last-child { width: 18px; height: 18px; color: #B09143; flex: none; }
.reach-i { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #15442A; color: #D9C48E; box-shadow: inset 0 0 0 1px rgba(217,196,142,.6); }
.reach-i svg { width: 18px; height: 18px; }

/* v4.9.3 file window in Ask A&T – View / Share file / WhatsApp link / Copy link / Save */
.bfn[data-fopen] { cursor: pointer; }
.fsh-doc { position: relative; height: 120px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 14px;
  background: radial-gradient(120% 140% at 100% 0%, #1f5a3a 0%, #15442A 60%, #0f3520 100%); border: 1px solid rgba(217,196,142,.35); }
.fsh-doc img { width: 54px; height: 54px; border-radius: 14px; box-shadow: 0 0 0 1px rgba(217,196,142,.6), 0 8px 18px rgba(0,0,0,.3); }
.fsh-ext { position: absolute; top: 12px; left: 14px; font: 800 11px Manrope, sans-serif; letter-spacing: .18em; color: #D9C48E; }
.fsh-btns { display: grid; gap: 8px; }
.fsh-b { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1px solid #e4dfd1; background: #fffdf8; color: #15442A; font: inherit; text-align: left; cursor: pointer; }
.fsh-b > svg { width: 20px; height: 20px; color: #B09143; flex: none; }
.fsh-b span { flex: 1; min-width: 0; } .fsh-b b { display: block; font-size: 15px; } .fsh-b small { color: #6b7280; font-size: 12px; }
.fsh-b.main { background: #15442A; color: #F7F4EC; border-color: #15442A; } .fsh-b.main small { color: rgba(247,244,236,.75); } .fsh-b.main > svg { color: #D9C48E; }
.fsh-b:disabled { opacity: .55; cursor: default; }

/* ===== v4.10 Send to my Salesforce – from A&T green to Salesforce blue ===== */
.sfbox { margin-top: 14px; }
.sfwrap2 { border-radius: 18px; padding: 12px; background: linear-gradient(180deg, #fbf8f0, #fffdf8); border: 1px solid #eadfc4; }
.sft { display: flex; align-items: center; gap: 10px; } .sft .sflogo { width: 40px; flex: none; }
.sft b { display: block; font-size: 14.5px; color: #15442A; } .sft small { display: block; font-size: 12px; color: #6b7280; }
.sfwrap2 .chips { margin-top: 8px; } .sfwrap2 .chip.on { background: #15442A; border-color: #15442A; color: #fff; }
.sfwrap2 .sfnote { margin-top: 8px; min-height: 40px; }
.sfs { --p: 0; position: relative; margin-top: 10px; height: 62px; border-radius: 31px; overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: none;
  background: color-mix(in srgb, #032D60 calc(var(--p) * 100%), #15442A); box-shadow: inset 0 0 0 1px color-mix(in srgb, #5aa9f0 calc(var(--p) * 100%), rgba(217,196,142,.55)); }
.sfs-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 62px; border-radius: 31px; opacity: .9;
  background: linear-gradient(90deg, #B09143 0%, color-mix(in srgb, #0176D3 calc(var(--p) * 100%), #D9C48E) 100%); }
.sfs-lbl { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 56px 0 66px; white-space: nowrap; font-weight: 800; font-size: 15px; letter-spacing: .01em; pointer-events: none;
  background: linear-gradient(100deg, #fff 0 40%, #ffe9b0 50%, #fff 60% 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: sfsLbl 2.6s linear infinite; }
@keyframes sfsLbl { from { background-position: 120% 0; } to { background-position: -30% 0; } }
.sfs-dest { position: absolute; right: 12px; top: 50%; width: 40px; transform: translateY(-50%); pointer-events: none; opacity: calc(.35 + var(--p) * .65); filter: grayscale(calc(1 - var(--p))) brightness(calc(1.6 - var(--p) * .6)); }
.sfs-knob { position: absolute; left: 5px; top: 5px; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: #fff; display: grid; place-items: center; cursor: grab; touch-action: none; box-shadow: 0 6px 14px rgba(0,0,0,.28); }
.sfs-knob:active { cursor: grabbing; }
.sfs-knob img { position: absolute; } .sfs-knob .k1 { width: 36px; height: 36px; border-radius: 10px; opacity: calc(1 - var(--p) * 2.2); } .sfs-knob .k2 { width: 36px; opacity: calc(var(--p) * 2.2 - .9); }
.sfs-knob svg { position: absolute; width: 26px; height: 26px; stroke: #fff; stroke-width: 3.2; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 30; stroke-dashoffset: 30; }
.sfs.busy .sfs-knob { animation: sfsKp .8s ease-in-out infinite; } @keyframes sfsKp { 50% { box-shadow: 0 0 0 10px rgba(27,150,255,.25); } }
.sfs.sent { background: #0176D3; box-shadow: none; } .sfs.sent .sfs-fill { width: 100% !important; background: linear-gradient(90deg, #0176D3, #1B96FF); }
.sfs.sent .sfs-knob { background: #2e844a; transition: background .3s; } .sfs.sent .sfs-knob img { opacity: 0 !important; }
.sfs.sent .sfs-knob svg { animation: sfsChk .45s ease .15s forwards; } @keyframes sfsChk { to { stroke-dashoffset: 0; } }
.sfs.sent .sfs-lbl, .sfs.busy .sfs-lbl { animation: none; -webkit-text-fill-color: #fff; background: none; }
.sfs.sent .sfs-lbl { padding: 0 70px 0 24px; } .sfs.sent .sfs-dest { opacity: 0; }
.sfs-burst { position: absolute; inset: 0; pointer-events: none; } .sfs-burst i { position: absolute; width: 7px; height: 7px; border-radius: 50%; opacity: 0; }
.sfs.sent .sfs-burst i { animation: sfsBu .9s ease-out forwards; } @keyframes sfsBu { 0% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(var(--x), var(--y)) scale(.4); } }
.sfdone2 { display: flex; align-items: center; gap: 12px; border-radius: 16px; padding: 12px 14px; background: linear-gradient(135deg, #fff, #eaf4ff); border: 1px solid #bcdcf7; animation: sfd2 .4s ease; }
.sfdone2 .sflogo { width: 40px; flex: none; } .sfdone2 span { flex: 1; } .sfdone2 b { display: block; color: #032D60; } .sfdone2 small { color: #3e5a78; }
.sfdone2 .sfok { width: 28px; height: 28px; border-radius: 50%; background: #2e844a; color: #fff; display: grid; place-items: center; flex: none; } .sfdone2 .sfok svg { width: 16px; height: 16px; stroke-width: 3; }
@keyframes sfd2 { from { transform: scale(.96); opacity: 0; } }
.sfstep h3 { font: 600 21px var(--serif); color: #15442A; margin: 4px 0 0; }
.sflater { display: block; margin: 12px auto 0; background: none; border: 0; color: #6b7280; font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.sftag.todo { color: #8a6d24; background: #fbf3dc; border: 1px solid #ecdcae; border-radius: 999px; padding: 2px 8px; }
@media (prefers-reduced-motion: reduce) { .sfs-lbl { animation: none; } }

/* ===== v4.10 roll-to-choose date & time ===== */
.rl-h { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 4px; margin-top: 10px; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; color: #B09143; text-align: center; }
.rl { position: relative; display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 4px; height: 200px; margin-top: 6px; border-radius: 16px; background: #fffdf8; border: 1px solid #e4dfd1; overflow: hidden; }
.rl::before { content: ''; position: absolute; left: 8px; right: 8px; top: 80px; height: 40px; border-radius: 12px; background: rgba(21,68,42,.06); border: 1px solid rgba(176,145,67,.6); pointer-events: none; }
.rl::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(#fffdf8 0%, rgba(255,253,248,0) 34%, rgba(255,253,248,0) 66%, #fffdf8 100%); }
.rl-c { height: 200px; overflow-y: scroll; scroll-snap-type: y mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding: 80px 0; overscroll-behavior: contain; }
.rl-c::-webkit-scrollbar { display: none; }
.rl-c div { height: 40px; display: grid; place-items: center; scroll-snap-align: center; font-weight: 700; font-size: 16px; color: #9aa1a8; transition: color .15s, font-size .15s; white-space: nowrap; }
.rl-c div.on { color: #15442A; font-size: 18px; }
.rl-when { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 12px 14px; border-radius: 14px; background: #15442A; color: #F7F4EC; font-size: 14px; }
.rl-when svg { width: 18px; height: 18px; color: #D9C48E; flex: none; } .rl-when b { font: 600 16px var(--serif); color: #fff; }
.rl-bad { color: #f3c9a8; font-weight: 700; }

/* ===== v4.10 Admin view ⇄ Start calling switch ===== */
.msw { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; align-items: center; height: 40px; padding: 3px; margin-right: 4px; border-radius: 999px; font: inherit;
  background: rgba(0,0,0,.18); border: 1px solid rgba(217,196,142,.55); cursor: pointer; user-select: none; }
.msw-k { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); border-radius: 999px; overflow: hidden;
  background: linear-gradient(135deg, #d9c48e, #B09143 60%, #9a7b33); box-shadow: 0 4px 12px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.5); transition: transform .42s cubic-bezier(.3,1.3,.5,1); }
.msw.on .msw-k { transform: translateX(100%); }
.msw-k::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.55) 48%, transparent 66%); transform: translateX(-120%); }
.msw.anim .msw-k::after { animation: mswS .8s ease .15s; } @keyframes mswS { to { transform: translateX(120%); } }
.msw > span { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0 12px; font-weight: 800; font-size: 12.5px; color: rgba(255,255,255,.78); transition: color .3s; white-space: nowrap; }
.msw > span svg { width: 15px; height: 15px; }
.msw:not(.on) > span:first-child, .msw.on > span:last-child { color: #15442A; }
.msw b { font-weight: 800; } .msw b.sm { display: none; }
@media (max-width: 520px) { .msw > span { padding: 0 9px; } .msw b.lg { display: none; } .msw b.sm { display: inline; } }

/* ===== v4.10 announcements for every account: slide in once, then a small button ===== */
.annfloat { position: fixed; top: calc(64px + var(--sat, 0px)); right: 16px; z-index: 40; width: min(560px, calc(100% - 32px)); display: flex; flex-direction: column; align-items: flex-end; pointer-events: none; }
.annfloat .annslide { margin: 0; width: 100%; display: flex; flex-direction: column; align-items: flex-end; pointer-events: auto; }
.annfloat .annbody { width: 100%; }
.annfloat .annpill { box-shadow: 0 8px 20px -10px rgba(0,0,0,.45); border: 1px solid rgba(217,196,142,.6); }

/* ===== v4.10 results unlock after Call ===== */
.cbtn.call.nudge { animation: callNudge .7s ease; }
@keyframes callNudge { 0%,100% { transform: none; box-shadow: none; } 30% { transform: scale(1.06); box-shadow: 0 0 0 6px rgba(176,145,67,.35); } 60% { transform: scale(.98); } }
.otiles.unlocked .otile { animation: otUnlock .45s ease both; }
@keyframes otUnlock { from { opacity: .42; filter: grayscale(.6); } to { opacity: 1; filter: none; } }

/* v4.10 compact Salesforce card: notes behind "Details" */
.sft span { flex: 1; min-width: 0; }
.sfmore-t { flex: none; display: inline-flex; align-items: center; gap: 4px; border: 1px solid #e4dfd1; background: #fff; color: #15442A; border-radius: 999px; padding: 5px 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.sfmore-t svg { width: 13px; height: 13px; transform: rotate(90deg); transition: transform .25s; } .sfwrap2.open .sfmore-t svg { transform: rotate(-90deg); }
.sfmore { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; } .sfmore > div { overflow: hidden; }
.sfwrap2.open .sfmore { grid-template-rows: 1fr; }
.stephide { display: none !important; }

/* v4.10.1 alerts on the Audit log */
.alertbox { border-color: #e7b4ad; } .alertbox .card-h h3 svg { color: #c0392b; }
.alertbox .feed li.new { background: #fdf1ef; border-radius: 10px; }

/* ===== v4.11 Campaigns (A&T green · gold · ivory) ===== */
.mkseg { margin: 0 0 16px; flex-wrap: wrap; } .mkseg a svg { width: 15px; height: 15px; vertical-align: -3px; }
.mkgrid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 960px) { .mkgrid { grid-template-columns: 1fr; } }
.mkc { padding: 16px; margin-bottom: 16px; border-radius: 18px; }
.mkh { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; } .mkh h3 { margin: 0; font: 600 18px var(--serif); }
.mkh .n { width: 26px; height: 26px; border-radius: 50%; background: #15442A; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 12px; flex: none; }
.mkh .hint { margin-left: auto; font-size: 12px; color: var(--text-3, #6b7280); }
.mkclock { margin-left: auto; background: #15442A; color: #fff; border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 800; }
.mkchan { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.mkchan button { position: relative; border: 1px solid #e4dfd1; background: #fff; border-radius: 16px; padding: 14px 12px; text-align: left; cursor: pointer; font: inherit; color: #1b211d; display: flex; gap: 10px; align-items: center; }
.mkchan button svg { width: 24px; height: 24px; color: #B09143; flex: none; } .mkchan button b { display: block; font-size: 15px; } .mkchan button small { color: #6b7280; font-size: 11.5px; }
.mkchan button.on { background: #15442A; border-color: #15442A; color: #fff; } .mkchan button.on small { color: rgba(255,255,255,.72); } .mkchan button.on svg { color: #D9C48E; }
.mkoff { position: absolute; top: 6px; right: 8px; font-style: normal; font-size: 10px; font-weight: 800; color: #8a6d24; background: #fbf3dc; border-radius: 999px; padding: 1px 6px; }
.mksrc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 4px; }
.mksrc button { border: 1px solid #e4dfd1; background: #fff; border-radius: 14px; padding: 10px 12px; font: inherit; cursor: pointer; text-align: left; color: #1b211d; }
.mksrc button b { display: block; font-size: 14px; } .mksrc button small { color: #6b7280; font-size: 11.5px; }
.mksrc button.on { border-color: #15442A; box-shadow: 0 0 0 2px rgba(21,68,42,.15); background: #eef4f0; }
.mkl { display: flex; align-items: center; gap: 10px; } .mkl a { font-size: 11.5px; color: #15442A; letter-spacing: 0; cursor: pointer; text-decoration: underline; font-weight: 700; } .mkl a:first-of-type { margin-left: auto; }
.mksearch { display: flex; align-items: center; gap: 8px; border: 1px solid #e4dfd1; border-radius: 12px; padding: 7px 10px; background: #fff; margin: 4px 0 8px; }
.mksearch input { border: 0; outline: 0; font: inherit; flex: 1; background: none; } .mksearch svg { width: 16px; height: 16px; color: #6b7280; }
#mk_c_lead .chip em, #mk_c_inv .chip em, #mk_c_up .chip em { font-style: normal; color: #B09143; font-weight: 800; } .chip.on em { color: #D9C48E !important; }
.mkdrop { display: block; margin-top: 10px; border: 1.5px dashed #cdbf98; border-radius: 14px; padding: 14px; text-align: center; background: #fbf8ef; cursor: pointer; color: #6b5a26; }
.mkdrop b { display: block; color: #15442A; } .mkdrop small { font-size: 12px; }
.mkctry { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.mkctry button { border: 1px solid #e4dfd1; background: #fff; border-radius: 12px; padding: 8px 10px; font: inherit; cursor: pointer; display: flex; align-items: center; gap: 8px; text-align: left; color: #1b211d; }
.mkctry button .f { font-size: 18px; } .mkctry button b { font-size: 13px; display: block; } .mkctry button small { color: #6b7280; font-size: 11.5px; }
.mkctry button.on { border-color: #15442A; background: #eef4f0; box-shadow: 0 0 0 2px rgba(21,68,42,.12); }
.mkopts { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 13px; }
.mkprev { margin-top: 10px; } .mkprev .mailframe { height: 420px; }
.mksms { padding: 14px; background: #f3f1ea; border-radius: 14px; border: 1px solid #e4dfd1; } .mksms .b { background: #fff; border-radius: 16px 16px 16px 4px; padding: 10px 12px; font-size: 14px; line-height: 1.5; margin-top: 6px; }
.mkwab { display: flex; gap: 6px; margin-top: 8px; } .mkwab span { flex: 1; text-align: center; border-top: 1px solid #eee3c9; padding-top: 6px; color: #15442A; font-weight: 800; font-size: 12.5px; }
.mksum { position: sticky; top: 76px; }
.mkbig { border-radius: 18px; padding: 18px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, #1f5a3a, #15442A 60%, #0f3520); border: 1px solid rgba(217,196,142,.35); box-shadow: 0 14px 30px -16px rgba(21,68,42,.6); }
.mkbig .k { font-size: 11px; font-weight: 800; letter-spacing: .14em; color: #D9C48E; } .mkbig .v { font: 600 44px/1.05 var(--serif); margin: 4px 0; } .mkbig .s { font-size: 13px; color: #e9e3cf; }
.mkmix .bar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; margin: 12px 0 6px; background: rgba(255,255,255,.1); } .mkmix .bar i { display: block; height: 100%; }
.mkmix .legend { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; color: #e9e3cf; } .mkmix .legend b { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.mkbig .rows { margin-top: 12px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 10px; display: grid; gap: 6px; font-size: 13px; }
.mkbig .rows div { display: flex; justify-content: space-between; } .mkbig .rows span:last-child { font-weight: 800; color: #f3c9a8; }
.mkbig .when { display: flex; gap: 6px; margin: 14px 0 10px; } .mkbig .when button { flex: 1; border: 1px solid rgba(217,196,142,.5); background: transparent; color: #fff; border-radius: 12px; padding: 9px; font: inherit; font-weight: 800; font-size: 13px; cursor: pointer; }
.mkbig .when button.on { background: #B09143; border-color: #B09143; color: #15442A; }
.mkat { margin-bottom: 10px; }
.mkgo { width: 100%; border: 0; border-radius: 14px; padding: 14px; font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; background: linear-gradient(135deg, #d9c48e, #B09143 60%, #9a7b33); color: #15442A; box-shadow: inset 0 1px 0 rgba(255,255,255,.5); position: relative; overflow: hidden; }
.mkgo:disabled { opacity: .55; cursor: default; }
.mkgo:not(:disabled)::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.5) 48%, transparent 66%); transform: translateX(-120%); animation: mkgoSh 3.2s ease-in-out infinite; }
@keyframes mkgoSh { 60%, 100% { transform: translateX(120%); } }
.mkbig .note { font-size: 12px; color: #e9e3cf; margin-top: 10px; line-height: 1.5; } .mkbig .note a { color: #D9C48E; }
.mkwho { line-height: 1.55; color: #4a5568; }
.mkbar { display: none; }
@media (max-width: 960px) { .mksum { position: static; } .mkbar { display: flex; position: fixed; left: 0; right: 0; bottom: calc(64px + var(--sab, 0px)); z-index: 25; align-items: center; gap: 12px; padding: 10px 16px; background: #15442A; color: #fff; border-top: 1px solid rgba(217,196,142,.5); }
  .mkbar b { font: 600 22px var(--serif); } .mkbar small { display: block; font-size: 11px; color: #D9C48E; letter-spacing: .1em; font-weight: 800; } .mkbar .btn { margin-left: auto; } }
@media (max-width: 560px) { .mkchan { grid-template-columns: 1fr; } .mksrc button small { display: none; } .mkctry { grid-template-columns: 1fr 1fr; } }
.btn.gold { background: linear-gradient(135deg, #d9c48e, #B09143); border-color: #B09143; color: #15442A; }
.mkch { display: inline-flex; align-items: center; font-weight: 800; font-size: 12px; border-radius: 999px; padding: 3px 9px; background: #eef4f0; color: #15442A; }
.mkch.wa { background: #fbf3dc; color: #7a5f1d; } .mkch.sms { background: #efeaf7; color: #4b3d73; }
.mkrow { cursor: pointer; } .mkrow:hover td { background: #f5f1e5; }
.mkback { font-weight: 800; color: #15442A; text-decoration: none; }
.mkkpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 14px 0; } @media (max-width: 820px) { .mkkpis { grid-template-columns: repeat(2, 1fr); } }
.mkkpis .kpi.bad .v { color: #a5402e; } .mkkpis .kpi .s .up { color: #2e844a; font-weight: 800; } .mkkpis .kpi .s .down { color: #a5402e; font-weight: 800; }
.mktwo { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; align-items: start; } @media (max-width: 900px) { .mktwo { grid-template-columns: 1fr; } }
.mkfun { display: grid; gap: 8px; margin-top: 6px; } .mkfun > div { display: grid; grid-template-columns: 90px 1fr 130px; align-items: center; gap: 10px; font-size: 13px; }
.mkfun .b { height: 24px; border-radius: 8px; } .mkfun .b0 { background: #15442A; } .mkfun .b1 { background: #2f6b47; } .mkfun .b2 { background: #5d8a6e; } .mkfun .b3 { background: #B09143; } .mkfun .b4 { background: #D9C48E; }
.mkfun .n { font-weight: 800; text-align: right; } .mkfun .n small { display: block; font-weight: 600; color: #6b7280; font-size: 11px; }
.mkfail > div { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed #e4dfd1; font-size: 13px; gap: 8px; } .mkfail > div:last-child { border: 0; }
.mkminibar { height: 8px; border-radius: 5px; background: #ece6d6; overflow: hidden; min-width: 70px; flex: 1; } .mkminibar i { display: block; height: 100%; background: #15442A; }
.mksrcrow { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px dashed #e4dfd1; } .mksrcrow span { flex: 1.4; min-width: 0; } .mksrcrow b { display: block; font-size: 13px; } .mksrcrow small { color: #6b7280; font-size: 11.5px; } .mksrcrow em { font-style: normal; font-weight: 800; min-width: 42px; text-align: right; }
.mrlabel { font: 600 16px var(--serif); color: #15442A; }
.mrsched { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .mrrow { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid #e4dfd1; border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .2s, box-shadow .2s; } .mrrow.on, .mrrow:has(input:checked) { border-color: #B09143; box-shadow: 0 0 0 2px rgba(176,145,67,.15); } .mrrow small { color: var(--muted, #6b6b6b); } .mrrow .input { max-width: 160px; } .mrrow .row .input { flex: 1; min-width: 0; } @media (max-width: 760px) { .mrsched { grid-template-columns: 1fr; } }
.mktpl { border: 1px solid #e4dfd1; border-radius: 12px; padding: 10px 12px; background: #fff; display: grid; gap: 6px; } .mktpl.off { opacity: .6; }
.mkdet { padding: 16px; }

/* ===== v4.11 Help desk ===== */
.hdsw { border-color: #e4dfd1; } .hdsw.on { border-color: #15442A; box-shadow: 0 0 0 2px rgba(21,68,42,.12); }
.hdtoggle { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; } .hdtoggle input { display: none; }
.hdtoggle i { width: 46px; height: 26px; border-radius: 999px; background: #d8d2c2; position: relative; transition: background .2s; flex: none; }
.hdtoggle i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .25s cubic-bezier(.3,1.3,.5,1); }
.hdtoggle input:checked + i { background: #15442A; } .hdtoggle input:checked + i::after { transform: translateX(20px); background: #D9C48E; }
.hdteam { border: 1px solid #e4dfd1; border-radius: 14px; padding: 12px; background: #fff; display: grid; gap: 8px; } .hdteam.off { opacity: .6; }
.hdpeople { display: flex; flex-wrap: wrap; gap: 6px; } .hdp { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #e4dfd1; border-radius: 999px; padding: 3px 4px 3px 10px; font-size: 12.5px; font-weight: 700; background: #fbf8ef; }
.hdp small { color: #6b7280; font-weight: 500; } .hdp .ib { width: 24px; height: 24px; } .hdp .ib svg { width: 12px; height: 12px; } .hdp.off { opacity: .55; }
.btks { display: grid; gap: 8px; margin-top: 8px; }
.btk { border-left: 3px solid #B09143; } .btk.answered { border-left-color: #2e844a; } .btk.done { opacity: .7; border-left-color: #c9c2b0; }
.btk-h { display: flex; align-items: center; gap: 8px; } .btk-h small { color: #6b7280; } .btk-s { font-weight: 700; margin: 4px 0; }
.btk-r { background: #eef4f0; border-radius: 10px; padding: 8px 10px; font-size: 13px; white-space: pre-wrap; margin: 4px 0; } .btk-r small { display: block; color: #15442A; font-weight: 800; }
.btkthread { display: grid; gap: 10px; } .btkm { border-radius: 12px; padding: 10px 12px; background: #fbf8ef; border: 1px solid #eadfc4; white-space: pre-wrap; font-size: 14px; }
.btkm small { display: block; font-weight: 800; color: #6b7280; margin-bottom: 4px; white-space: normal; } .btkm.team { background: #eef4f0; border-color: #cfd9cf; } .btkm.system { background: #fff; font-size: 12.5px; color: #6b7280; } .btkm.ignored { display: none; }

/* v4.11 help desk header + phone fit */
.hdreqh { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; } .hdreqh .hdf { display: flex; gap: 6px; grid-column: 1 / -1; flex-wrap: wrap; } .hdreqh .hdf .input { flex: 1; min-width: 120px; max-width: none; }
@media (max-width: 640px) { .hdsw .card-b label.small { width: 100%; } .hdsw .card-b label.small .input { width: 64px !important; } .hdpeople { flex-wrap: wrap; } .hdp { max-width: 100%; } .hdp small { overflow: hidden; text-overflow: ellipsis; } }
.grid > .card, .grid > div { min-width: 0; }
.hdteam .row { flex-wrap: wrap; }
.mktwo > * { min-width: 0; } @media (max-width: 900px) { .mktwo { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 400px) { .topbar { gap: 8px; padding-left: 12px; padding-right: 12px; } }
@media (max-width: 400px) { .msw { margin-right: 0; } .msw > span { padding: 0 9px; gap: 4px; } }
.kpis.hdk { grid-template-columns: repeat(4, 1fr); } @media (max-width: 640px) { .kpis.hdk { grid-template-columns: 1fr 1fr; } }

/* ===== v4.12 AI reception ===== */
.page-h .rcon { align-self: center; font-size: 12px; padding: 6px 12px; }
.rcnote { border-color: #e9dcb6; background: #fbf6e8; } .rcnote svg { color: #B09143; flex: none; }
.kpis.rck { grid-template-columns: repeat(5, 1fr); } @media (max-width: 900px) { .kpis.rck { grid-template-columns: 1fr 1fr; } .kpis.rck .hero { grid-column: 1 / -1; } }
.kpi .s { font-size: 12px; color: var(--muted, #6b6b6b); margin-top: 2px; }
.rcbar { display: grid; grid-template-columns: minmax(0, 1fr) 90px auto; gap: 10px; align-items: center; font-size: 13px; }
.rcbar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.rcbar i { display: block; height: 7px; border-radius: 9px; background: #efe9da; overflow: hidden; } .rcbar i b { display: block; height: 100%; background: linear-gradient(90deg, #15442A, #2c6a45); border-radius: 9px; }
.rcbar small { color: var(--muted, #6b6b6b); white-space: nowrap; } .rcbar em { color: var(--red); font-style: normal; }
.rcgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.rcsp { cursor: pointer; transition: transform .15s, box-shadow .2s, border-color .2s; } .rcsp:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(21,68,42,.10); border-color: #B09143; }
.rcsp.off { opacity: .6; } .rcsp.now { border-color: #cfe0d4; }
.rcext { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 40px; padding: 0 10px; border-radius: 12px; background: #15442A; color: #F7F4EC; font-weight: 800; font-size: 16px; letter-spacing: .5px; box-shadow: inset 0 -3px 0 #B09143; }
.rcext.lg { min-width: 84px; height: 64px; font-size: 26px; border-radius: 16px; }
.rctags { display: flex; flex-wrap: wrap; gap: 6px; } .chip.sm { font-size: 12px; padding: 4px 9px; } .chip.sm svg { width: 12px; height: 12px; } .chip.dev { background: #fbf6e8; border-color: #e9dcb6; color: #6d5a26; }
.rcdays { display: flex; flex-wrap: wrap; gap: 6px; } .rcdays label { cursor: pointer; } .rcdays input { display: none; }
.rcdays b { display: inline-block; padding: 7px 11px; border-radius: 10px; border: 1px solid #e4dfd1; background: #fff; font-size: 13px; } .rcdays input:checked + b { background: #15442A; border-color: #15442A; color: #F7F4EC; }
.rcres { border-color: #15442A; background: linear-gradient(160deg, #fffdf8, #f4f0e4); animation: rcIn .35s ease; } .rcres.closed, .rcres.reception { border-color: #B09143; }
@keyframes rcIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.rcbig { display: flex; align-items: center; gap: 14px; } .rcbig b { font-family: Fraunces, serif; font-size: 22px; }
.rcsay { font-family: Fraunces, serif; font-style: italic; font-size: 16px; color: #15442A; padding: 10px 14px; border-left: 3px solid #B09143; background: #fff; border-radius: 0 10px 10px 0; }
.rcchk { display: flex; gap: 10px; align-items: flex-start; } .rcchk i { flex: none; width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-weight: 800; font-size: 12px; background: #efe9da; color: #6b6b6b; }
.rcchk.ok i { background: #15442A; color: #F7F4EC; } .rcchk.it i { background: #fbf6e8; color: #B09143; border: 1px solid #e9dcb6; font-size: 10px; }
.rcfacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .rcfacts div { background: #fff; border: 1px solid #e4dfd1; border-radius: 10px; padding: 8px 10px; } .rcfacts small { display: block; color: var(--muted, #6b6b6b); font-size: 11px; text-transform: uppercase; letter-spacing: .6px; }
.rcsum { background: #fff; border: 1px solid #e4dfd1; border-left: 3px solid #B09143; border-radius: 10px; padding: 10px 12px; } .rcsum small { color: #B09143; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; font-size: 11px; }
code { overflow-wrap: anywhere; }
/* v4.12 phone fit: the role switch drops its icons on small phones; tab strips scroll instead of widening the page */
@media (max-width: 400px) { .msw > span svg { display: none; } .msw > span { padding: 0 10px; } }
.seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; } .seg::-webkit-scrollbar { display: none; } .seg > a, .seg > button { flex: none; }
.row > .seg { min-width: 0; }
.page-h > * { min-width: 0; max-width: 100%; }

/* ===== v4.13 Identity & signatures ===== */
.sigframe { display:block; width:100%; height:430px; border:1px solid var(--border); border-radius:10px; background:#fff; }
.idgrid { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap:16px; align-items:start; }
.idtop { display:flex; gap:14px; align-items:center; }
.idph { border-radius:50%; object-fit:cover; background:var(--green-50); flex:none; }
.idav { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--green-800); color:#E3CF95; font-weight:800; font-size:12px; }
.idn { font-family:var(--serif); font-size:20px; color:var(--green-800); font-weight:600; line-height:1.15; }
.idt { color:#B09143; font-weight:700; font-size:13px; margin-top:2px; }
.idsign { font:13px/1.5 ui-monospace,Menlo,Consolas,monospace; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:10px 12px; margin:0 0 10px; white-space:pre-wrap; }
.idcard { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.idedit { display:grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap:18px; align-items:start; }
.form2 { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; }
.form2 .full { grid-column:1 / -1; }
.form2 .row { display:flex; gap:8px; }
.animlist { display:grid; gap:6px; }
.animrow { display:grid; grid-template-columns:auto auto 1fr minmax(120px,220px); gap:10px; align-items:center; padding:7px 10px; border:1px solid var(--border); border-radius:10px; font-size:13.5px; }
.animrow:has(input:checked) { border-color:var(--green-800); background:var(--green-50); }
.animrow .num { font-family:var(--serif); color:#B09143; font-weight:700; font-size:12px; letter-spacing:.08em; }
.animrow input[type=checkbox] { width:17px; height:17px; accent-color:var(--green-700); }
.input.xs { padding:5px 8px; font-size:12.5px; }
.slide { border-top:1px dashed var(--border); padding:12px 0 6px; }
.reqcard .reqh { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.tbl.mini td { padding:5px 8px; font-size:13px; }
.badge.ok { background:var(--green-100); color:var(--green-700); border-color:transparent; }
.badge.warn { background:var(--amber-100); color:var(--amber); border-color:transparent; }
.sfnc.warn { background:#fdf1ec; border-color:#f0c9b8; } .sfnc.ok { background:#eaf5ee; border-color:#bfe0cb; }
.icon-btn.me { padding:0; } .meav { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--green-800); color:#E3CF95; font-weight:800; font-size:11.5px; letter-spacing:.02em; }
.page-h .actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
td.err, .small.err { color:var(--red); }
@media (max-width: 900px) { .idgrid, .idedit { grid-template-columns:1fr; } .sigframe { height:520px; } }
@media (max-width: 560px) { .form2 { grid-template-columns:1fr; } .animrow { grid-template-columns:auto auto 1fr; } .animrow .input { grid-column:1 / -1; } }

/* v4.14 take-back of held numbers (Investor Desk) */
.takebox { border-top:1px dashed var(--border); padding-top:12px; }
.heldbox { background:var(--gold-100); border:1px solid #ecdcae; border-radius:10px; padding:10px 12px; }

/* v4.14 lead sources */
.srcgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(340px,1fr)); gap:14px; }
.srccard.off { opacity:.6; }
.srch { display:flex; gap:10px; align-items:center; margin-bottom:10px; }
.srcico { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--green-50); color:var(--green-800); flex:none; }
.kpis.c4 { grid-template-columns:repeat(4,1fr); gap:8px; } .kpis.c4 .kpi { padding:8px 10px; } .kpis.c4 .kpi .v { font-size:22px; } .kpi .v.warn { color:var(--amber); }
.connbox { background:var(--surface-2); border:1px solid var(--border); border-radius:10px; padding:12px 14px; } .connbox code { font-size:12px; word-break:break-all; }
@media (max-width:560px) { .kpis.c4 { grid-template-columns:repeat(2,1fr); } }

/* v4.15 event artwork & personal flyers */
.evart { position:relative; cursor:pointer; background:#0f1a13; }
.evart img { display:block; width:100%; max-height:260px; object-fit:cover; }
.evart-tag { position:absolute; right:10px; bottom:10px; display:inline-flex; gap:6px; align-items:center; background:rgba(21,68,42,.9); color:#E3CF95; font-size:12px; font-weight:700; padding:5px 10px; border-radius:999px; }
.tbtn.gold { color:#8a6d2a; }
.flyerwrap { background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:10px; text-align:center; }
.flyerimg { max-width:100%; max-height:62vh; border-radius:8px; display:block; margin:0 auto; box-shadow:var(--shadow); }
.flyerbtns { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }

/* v4.16 fresh enquiries, blocks and the enquiry bar */
.lead .note.enq { color:var(--green-800); }
.lead .note.enq b { color:var(--red); }
.blockpick { align-items:center; margin:0 0 8px; }
.nlbar { position:fixed; left:12px; right:12px; top:max(10px, env(safe-area-inset-top, 0px)); z-index:1200; display:flex; gap:10px; align-items:center; background:var(--green-800); color:#F7F2E4; border:1px solid rgba(227,207,149,.35); border-radius:14px; padding:10px 12px; box-shadow:0 14px 34px rgba(0,0,0,.35); animation:nlin .4s cubic-bezier(.2,.9,.2,1) both; }
.nlbar .dot { width:10px; height:10px; border-radius:50%; background:#E25B4A; flex:none; animation:cdpulse 1.2s infinite; }
.nlbar .t { flex:1; min-width:0; font-size:13px; line-height:1.25; } .nlbar .t b { display:block; } .nlbar .t small { color:#D8D2C0; font-size:11.5px; }
.nlbar .btn.ghost { color:#F7F2E4; border-color:rgba(255,255,255,.35); background:transparent; }
@keyframes nlin { from { transform:translateY(-14px); opacity:0 } to { transform:none; opacity:1 } }
@media (max-width:560px) { .nlbar { flex-wrap:wrap; } .nlbar .t { flex-basis:100%; } }

/* v4.17 property details on the lead card */
.lead .note.prop{color:var(--green,#15442A);opacity:.9}
/* v4.18.3 phones: the profile button (v4.13) pushed Sign out off the right edge for admins / managers – tighter top bar under 520px */
@media (max-width: 520px) {
  .topbar { gap: 8px; padding-left: calc(10px + var(--sal)); padding-right: calc(10px + var(--sar)); }
  .topbar .icon-btn { width: 34px; height: 34px; flex: 0 0 34px; }
  .topbar .icon-btn.me .meav { width: 28px; height: 28px; font-size: 11px; }
  .msw { height: 36px; margin-right: 0; } .msw > span { padding: 0 8px; gap: 3px; font-size: 12.5px; }
  .topbar .brand-lg { width: 36px; height: 36px; border-radius: 10px; }
  .topbar .spacer { min-width: 0; }
}
@media (max-width: 430px) { .topbar .icon-btn#pw { display: none; } }   /* phones: the key button moves into My profile (Sign-in & security) so Sign out always fits */
/* v4.21 relay member chips: small remove / move-up buttons inside the existing chip */
.chip .chipx { border: 0; background: rgba(255,255,255,.18); color: inherit; font: inherit; font-size: 12px; line-height: 1; width: 18px; height: 18px; border-radius: 50%; cursor: pointer; margin-left: 2px; display: inline-grid; place-items: center; }
.chip.off { opacity: .55; }

/* v4.22 lead IDs, client local time, live "call within" ring */
.leadref { display:inline; font: 500 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing:.2px; color:var(--text-3, var(--text-2)); opacity:.75; background:none; border:0; padding:0; margin-left:4px; vertical-align:baseline; white-space:nowrap; }   /* v4.22 quiet internal ID – there for search, not for show */
.lead .note.ctime.ok { color:var(--green-800); }
.lead .note.ctime.ok svg { color:#2e8b57; }
.lead .note.ctime.wait { color:var(--text-2); }
.lead .note.ctime.wait svg { color:var(--amber); }
.relayclock { display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 4px; border-radius:999px; background:var(--surface-2); border:1px solid var(--line, rgba(0,0,0,.08)); font-size:12px; line-height:1; }
.relayclock svg { width:22px; height:22px; transform:rotate(-90deg); }
.relayclock .rc-bg { fill:none; stroke:rgba(0,0,0,.08); stroke-width:3; }
.relayclock .rc-arc { fill:none; stroke-width:3; stroke-linecap:round; transition:stroke-dashoffset .9s linear, stroke .4s; }
.relayclock svg.rc-green .rc-arc { stroke:#2e8b57; } .relayclock svg.rc-amber .rc-arc { stroke:var(--amber); } .relayclock svg.rc-red .rc-arc, .relayclock svg.rc-out .rc-arc { stroke:var(--red); }
.relayclock b { font-variant-numeric:tabular-nums; font-weight:800; font-size:13px; }
.relayclock b.rc-green { color:#1f6e43; } .relayclock b.rc-amber { color:#9a6610; } .relayclock b.rc-red, .relayclock b.rc-out { color:#b0302a; }
.relayclock small { color:var(--text-2); font-size:11px; }
.relayclock.pulse { animation: rcpulse 1s ease-in-out infinite; border-color:rgba(192,57,43,.45); }
.relayclock.over { background:var(--red); border-color:var(--red); } .relayclock.over b { color:#fff; } .relayclock.over .rc-bg { stroke:rgba(255,255,255,.3); } .relayclock.over .rc-arc { stroke:#fff; }
@keyframes rcpulse { 0%,100% { box-shadow:0 0 0 0 rgba(192,57,43,.35); } 50% { box-shadow:0 0 0 6px rgba(192,57,43,0); } }
@media (prefers-reduced-motion: reduce) { .relayclock.pulse { animation:none; } }
.note.ctime.inline { display:inline-flex; gap:6px; align-items:center; font-size:13px; background:var(--surface-2); border-radius:8px; padding:5px 10px; }
.note.ctime.inline svg { width:15px; height:15px; color:var(--gold); }
.note.ctime.inline.ok { color:var(--green-800); }

/* ============ v4.22 approved lead cards: Spotlight (urgent) + calm (everything else) ============ */
.leads { gap: 12px; }
svg.i2 { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
@keyframes lcRise { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.lead.spot, .lead.calm { display: block; padding: 0; grid-template-columns: none; animation: lcRise .6s cubic-bezier(.2,.8,.2,1) both; }
.leads > .lead:nth-child(2) { animation-delay: .06s; } .leads > .lead:nth-child(3) { animation-delay: .12s; } .leads > .lead:nth-child(4) { animation-delay: .18s; } .leads > .lead:nth-child(n+5) { animation-delay: .22s; }
.lead.spot .leadref, .lead.calm .leadref { margin-left: 8px; }

/* Spotlight */
.lead.spot { position: relative; overflow: hidden; clip-path: inset(0 round 30px); isolation: isolate; border: 0; border-radius: 30px; padding: 20px 20px 18px; color: #f7f4ec;
  background: radial-gradient(120% 90% at 100% 0%, #1e5a38 0%, transparent 55%), linear-gradient(160deg, #17482c 0%, #0e2f1d 62%, #0a2214 100%);
  box-shadow: 0 18px 40px -18px rgba(11,38,23,.65); }
.lead.spot:hover { border-color: transparent; transform: translateY(-1px); }
.lead.spot::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(140deg, rgba(217,196,142,.75), rgba(217,196,142,.05) 40%, rgba(217,196,142,.05) 60%, rgba(217,196,142,.6));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.sp-sheen { position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: linear-gradient(105deg, transparent 40%, rgba(241,228,188,.16) 50%, transparent 60%) no-repeat; background-size: 250% 100%; animation: spSheen 5.5s ease-in-out infinite; }
.sp-orb { position: absolute; right: -58px; top: -58px; width: 190px; height: 190px; border-radius: 50%; border: 1px solid rgba(217,196,142,.22); z-index: -1; animation: spSpin 30s linear infinite; }
.sp-orb::after { content: ""; position: absolute; inset: 22px; border-radius: 50%; border: 1px dashed rgba(217,196,142,.14); }
.sp-orb b { position: absolute; top: 50%; left: -3px; width: 6px; height: 6px; border-radius: 50%; background: #d9c48e; box-shadow: 0 0 10px #d9c48e; }
.sp-mono { position: absolute; right: 18px; top: 18px; font-family: var(--serif, 'Fraunces', Georgia, serif); font-size: 13px; letter-spacing: 2px; color: rgba(217,196,142,.55); }
.sp-live { display: inline-flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: #f1e4bc;
  background: rgba(217,196,142,.12); border: 1px solid rgba(217,196,142,.28); border-radius: 999px; padding: 5px 11px 5px 9px; max-width: calc(100% - 50px); }
.sp-live b { width: 7px; height: 7px; border-radius: 50%; flex: none; background: #ff6b5b; animation: spPing 1.4s infinite; --pc: 255,107,91; }
.sp-live.gv b { background: #d9c48e; --pc: 217,196,142; } .sp-live.cb b { background: #7fb2f0; --pc: 127,178,240; }
.sp-nm { font-family: var(--serif, 'Fraunces', Georgia, serif); font-size: 25px; font-weight: 600; margin-top: 12px; line-height: 1.12; overflow-wrap: anywhere; }
.sp-ph { font-size: 15px; color: #cfe0d5; letter-spacing: .06em; margin-top: 4px; font-variant-numeric: tabular-nums; }
.lead.spot .leadref { color: rgba(247,244,236,.42); opacity: 1; }
.sp-meta { font-size: 13px; color: #b9cbbf; margin-top: 10px; line-height: 1.5; } .sp-meta em { font-style: normal; color: #f1e4bc; font-weight: 700; }
.sp-note { font-size: 12.5px; color: #b9cbbf; font-style: italic; margin-top: 6px; }
.sp-row { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 14px; border-radius: 22px; background: rgba(0,0,0,.18); border: 1px solid rgba(217,196,142,.16); }
.sp-ring { display: flex; align-items: center; gap: 14px; }
.sp-ring svg { width: 56px; height: 56px; transform: rotate(-90deg); flex: none; }
.sp-ring circle { fill: none; stroke-width: 4.5; stroke-linecap: round; } .sp-ring .bg { stroke: rgba(217,196,142,.16); }
.sp-ring .arc { stroke: #d9c48e; transition: stroke-dashoffset 1s linear; filter: drop-shadow(0 0 4px rgba(217,196,142,.55)); }
.sp-ring.fixed.late .arc { stroke: rgba(217,196,142,.16); }
.lead.spot.is-due .sp-ring .arc { stroke: #7fb2f0; filter: drop-shadow(0 0 4px rgba(127,178,240,.55)); }
.sp-cd { font-variant-numeric: tabular-nums; font-size: 30px; font-weight: 800; color: #d9c48e; line-height: 1; }
.lead.spot.is-due .sp-cd { color: #cfe2fb; font-size: 26px; }
.sp-cd small { display: block; font-size: 10px; letter-spacing: 2px; color: #9fb3a6; font-weight: 800; margin-top: 6px; text-transform: uppercase; }
.sp-tz { margin-left: auto; text-align: right; font-size: 11.5px; color: #b9cbbf; line-height: 1.35; } .sp-tz b { display: block; color: #f7f4ec; font-size: 14.5px; }
.sp-tz small { color: #e9c58a; font-weight: 700; } .sp-tz small.ok { color: #8fd4ac; }
.sp-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.sp-acts button { display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 999px; font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; border: 0; position: relative; overflow: hidden; transition: transform .15s; }
.sp-acts button:active { transform: scale(.96); }
.sp-call { grid-column: 1 / -1; height: 54px !important; font-size: 15.5px !important; color: #10301e; background: linear-gradient(135deg, #d9c48e, #b09143 55%, #94782f); box-shadow: 0 10px 22px -10px rgba(217,196,142,.9); animation: spBreathe 2.4s ease-in-out infinite; }
.sp-call::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.55) 50%, transparent 65%); transform: translateX(-120%); animation: spGlint 3.2s ease-in-out infinite; }
.sp-call svg { animation: spRingIcon 2.4s ease-in-out infinite; }
.sp-gh { background: rgba(247,244,236,.07) !important; color: #f7f4ec; border: 1px solid rgba(217,196,142,.35) !important; }
.sp-gh:first-of-type svg { color: #8fd4ac; } .sp-gh + .sp-gh svg { color: #d9c48e; }
.sp-gh:disabled { opacity: .4; cursor: default; }
.lead.spot.urgent { animation: lcRise .6s both, spAlarm 1.2s ease-in-out infinite; }
.lead.spot.urgent .sp-cd { color: #ffb4a9; } .lead.spot.urgent .sp-ring .arc { stroke: #ff8a7a; filter: drop-shadow(0 0 5px rgba(255,138,122,.7)); }
@keyframes spSheen { 0%, 55% { background-position: 120% 0; } 85%, 100% { background-position: -20% 0; } }
@keyframes spSpin { to { transform: rotate(360deg); } }
@keyframes spPing { 0% { box-shadow: 0 0 0 0 rgba(var(--pc), .6); } 80%, 100% { box-shadow: 0 0 0 9px rgba(var(--pc), 0); } }
@keyframes spBreathe { 0%, 100% { box-shadow: 0 10px 22px -10px rgba(217,196,142,.9); } 50% { box-shadow: 0 10px 30px -6px rgba(217,196,142,1); } }
@keyframes spGlint { 0%, 60% { transform: translateX(-120%); } 85%, 100% { transform: translateX(120%); } }
@keyframes spRingIcon { 0%, 70%, 100% { transform: rotate(0); } 74% { transform: rotate(-14deg); } 78% { transform: rotate(12deg); } 82% { transform: rotate(-10deg); } 86% { transform: rotate(8deg); } 90% { transform: rotate(0); } }
@keyframes spAlarm { 0%, 100% { box-shadow: 0 18px 40px -18px rgba(11,38,23,.65), 0 0 0 0 rgba(255,138,122,0); } 50% { box-shadow: 0 18px 40px -18px rgba(11,38,23,.65), 0 0 0 6px rgba(255,138,122,.2); } }

/* Calm */
.lead.calm { background: var(--surface); border: 1px solid var(--border); border-radius: 26px; padding: 16px 16px 14px; box-shadow: none; transition: box-shadow .25s, transform .25s, border-color .2s; }
.lead.calm:hover { border-color: var(--border); box-shadow: 0 14px 28px -18px rgba(21,68,42,.35); transform: translateY(-2px); }
.lc-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; border-radius: 999px; padding: 4px 10px 4px 8px; margin-bottom: 10px; background: var(--green-100, #e5f0e9); color: var(--green-800); }
.lc-chip i { width: 6px; height: 6px; border-radius: 50%; background: #2e8b57; }
.lc-chip.hot { background: var(--gold-100, #f3ecd8); color: #8a6f2a; } .lc-chip.hot i { background: var(--gold); }
.lc-chip.try { background: var(--amber-100); color: var(--amber); } .lc-chip.try i { background: var(--amber); }
.lc-chip.up { background: var(--blue-100, #e6effa); color: var(--blue); } .lc-chip.up i { background: var(--blue); }
.lc-chip.inv { background: #efe9da; color: #5b4a1e; } .lc-chip.inv i { background: #5b4a1e; }
.lc-chip.por { background: #e9f1ee; color: #245b47; } .lc-chip.por i { background: #245b47; }
.lc-chip.dnc { background: var(--red-100, #fde8e6); color: var(--red); } .lc-chip.dnc i { background: var(--red); }
.lc-top { display: flex; gap: 12px; align-items: center; }
.lc-av { width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center; font-family: var(--serif, 'Fraunces', Georgia, serif); font-weight: 600; font-size: 15px; color: #d9c48e; background: linear-gradient(150deg, #15442a, #0b2617); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px rgba(176,145,67,.45); }
.lc-who { min-width: 0; flex: 1; } .lead.calm .nm { font-weight: 800; font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
.lead.calm .ph { font-size: 13.5px; margin-top: 1px; }
.lc-meta { font-size: 12.5px; color: var(--text-2); margin-top: 2px; line-height: 1.4; }
.lc-note { font-size: 12.5px; color: var(--text-2); font-style: italic; margin-top: 10px; }
.lc-time { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; font-size: 12.5px; font-weight: 700; }
.lc-time .ok { color: var(--green-800); display: inline-flex; gap: 6px; align-items: center; } .lc-time .ok::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #2e8b57; box-shadow: 0 0 0 3px rgba(46,139,87,.15); }
.lc-time .wait { color: var(--amber); } .lc-time .up { color: var(--blue); }
.lc-time .ret { color: var(--text-3); font-weight: 600; font-size: 11.5px; white-space: nowrap; } .lc-time .ret.soon { color: var(--red); }
.lc-caps { display: grid; grid-template-columns: 1.2fr 1fr 1fr; margin-top: 12px; border: 1px solid #e3d7b4; border-radius: 999px; overflow: hidden; background: var(--surface); }
.lc-caps button { display: flex; align-items: center; justify-content: center; gap: 7px; height: 44px; border: 0; background: transparent; font: inherit; font-size: 13px; font-weight: 700; color: var(--green-800); cursor: pointer; min-width: 0; transition: background .15s; }
.lc-caps button + button { border-left: 1px solid #ede4cc; }
.lc-caps button:hover:not(:disabled) { background: var(--surface-2); }
.lc-caps .c { background: var(--green-800); color: #f7f4ec; } .lc-caps .c:hover:not(:disabled) { background: #1c5434; } .lc-caps .c svg { color: #d9c48e; }
.lc-caps .w svg, .lc-caps .e svg { color: var(--gold); }
.lc-caps button:disabled { opacity: .38; cursor: default; }
.lead.calm.is-dnc { background: repeating-linear-gradient(135deg, var(--surface) 0 10px, var(--red-100, #fbf3f1) 10px 20px); border-color: var(--border); }
.lead.calm.is-dnc .lc-caps { opacity: .5; }
@media (max-width: 360px) { .lc-caps button span { font-size: 12px; } .lc-caps { grid-template-columns: 1fr 1fr 1fr; } }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lc-caps { border-color: var(--border); } :root:not([data-theme="light"]) .lc-caps button + button { border-left-color: var(--border); } :root:not([data-theme="light"]) .lc-chip.inv { background: #2a2414; color: #d9c48e; } :root:not([data-theme="light"]) .lc-chip.por { background: #14261f; color: #8fd4ac; } }
:root[data-theme="dark"] .lc-caps { border-color: var(--border); } :root[data-theme="dark"] .lc-caps button + button { border-left-color: var(--border); } :root[data-theme="dark"] .lc-chip.inv { background: #2a2414; color: #d9c48e; } :root[data-theme="dark"] .lc-chip.por { background: #14261f; color: #8fd4ac; }
@media (prefers-reduced-motion: reduce) { .lead.spot, .lead.calm, .sp-sheen, .sp-orb, .sp-live b, .sp-call, .sp-call::after, .sp-call svg, .lead.spot.urgent { animation: none !important; } }
.lc-chip.due { background: var(--blue-100, #e6effa); color: var(--blue); } .lc-chip.due i { background: var(--blue); animation: spPing 1.4s infinite; --pc: 31,95,158; }
.lc-chip.fresh { background: var(--red-100, #fde8e6); color: var(--red); } .lc-chip.fresh i { background: var(--red); animation: spPing 1.4s infinite; --pc: 180,35,24; }
.lc-chip.given { background: var(--gold-100, #f3ecd8); color: #8a6f2a; } .lc-chip.given i { background: var(--gold); animation: spPing 1.4s infinite; --pc: 176,145,67; }
/* v4.22 lead sheet: same Call | WhatsApp | Email capsule as the cards */
.contact { border-radius: 24px; }
.contact .cbtns { flex: 1 1 100%; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 0; border: 1px solid #e3d7b4; border-radius: 999px; overflow: hidden; background: var(--surface); }
.contact .cbtn { flex-direction: row; justify-content: center; gap: 7px; height: 46px; border-radius: 0; padding: 0 8px; min-width: 0; font-size: 13.5px; box-shadow: none; border: 0; background: transparent; color: var(--green-800); }
.contact .cbtn + .cbtn { border-left: 1px solid #ede4cc; }
.contact .cbtn svg { width: 18px; height: 18px; }
.contact .cbtn.call { background: var(--green-800); color: #f7f4ec; } .contact .cbtn.call svg { color: #d9c48e; }
.contact .cbtn.wa, .contact .cbtn.em { background: transparent; border: 0; color: var(--green-800); } .contact .cbtn.wa svg, .contact .cbtn.em svg { color: var(--gold); }
.contact .cbtn.wa + .cbtn.em { border-left: 1px solid #ede4cc; }
.contact .cbtn[disabled] { opacity: .38; }
:root[data-theme="dark"] .contact .cbtns { border-color: var(--border); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .contact .cbtns { border-color: var(--border); } }
/* v4.22 sign-up sheets panel */
ol.howto { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 6px; color: var(--text-2); line-height: 1.5; }
ol.howto li::marker { color: var(--gold); font-weight: 800; }
ol.howto code, .sfnc code { font-size: 11.5px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 6px; padding: 0 5px; }
.codebox { position: relative; border-radius: 16px; background: #0e2f1d; border: 1px solid rgba(217,196,142,.3); }
.codebox pre { margin: 0; padding: 14px 14px 44px; max-height: 210px; overflow: auto; font: 11.5px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #d8e3db; white-space: pre; }
.codebox .btn { position: absolute; right: 10px; bottom: 10px; }
.im-ph { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; display: block; box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px rgba(176,145,67,.45); background: var(--surface-2); }
.im-ph.bad { opacity: .35; outline: 2px solid var(--red); outline-offset: 1px; }
