/* ===========================================================
   The Content Factory — San Diego
   Design system v3 — warm & approachable · one violet · light + dark
   Every color is defined ONCE via light-dark(): the first value is light,
   the second is dark. Theme follows the device by default (color-scheme below);
   a manual toggle sets .force-light / .force-dark on <html> to override.
   =========================================================== */

:root {
  color-scheme: light;   /* DEFAULT LIGHT everywhere (public site is always light). Dark ONLY when the CRM user explicitly opts in via .force-dark below. */

  /* Surfaces — crisp white (the contentfactorysandiego.com brand) / neutral slate dark */
  --bg:        light-dark(#ffffff, #0f1116);   /* app background */
  --bg-2:      light-dark(#f7f8fa, #171a21);   /* panels, column backs */
  --bg-3:      light-dark(#f1f2f5, #21242d);   /* hovers, chips */
  --surface:   light-dark(#ffffff, #161920);   /* cards */
  --surface-2: light-dark(#f7f8fa, #1c2029);   /* faint card variant */
  --line:      light-dark(rgba(17,20,28,0.09), rgba(235,238,248,0.10));
  --line-2:    light-dark(rgba(17,20,28,0.16), rgba(235,238,248,0.17));

  /* Ink */
  --text:      light-dark(#14161c, #eef0f6);
  --text-soft: light-dark(#4b505b, #b6bcc9);
  --text-mute: light-dark(#5f6675, #8a90a0);

  /* Brand — the site's violet */
  --violet:      light-dark(#7c3aed, #a78bfa);
  --violet-2:    light-dark(#6d28d9, #b8a3fc);
  --violet-soft: light-dark(#f3effe, #2b2545);
  --accent-soft: light-dark(#f3effe, #2b2545);
  --blue:        light-dark(#2563eb, #6ba5ff);   /* = the EMAIL / info channel */

  /* Semantic — soft pill bg + readable text, both modes */
  --success:      light-dark(#16a34a, #4ade80);
  --success-soft: light-dark(#dcfce7, #14301e);
  --warning:      light-dark(#b45309, #fbbf24);
  --warning-soft: light-dark(#fef3c7, #392c10);
  --danger:       light-dark(#dc2626, #f87171);
  --danger-soft:  light-dark(#fee2e2, #3b1717);
  --info:         light-dark(#2563eb, #6ba5ff);
  --info-soft:    light-dark(#eef2ff, #14213c);

  --grad: linear-gradient(110deg, light-dark(#7c3aed,#a78bfa) 0%, light-dark(#6366f1,#8b90f7) 50%, light-dark(#2563eb,#6ba5ff) 100%);
  --grad-soft: linear-gradient(135deg, light-dark(#f4efff,#2b2545) 0%, light-dark(#eef3ff,#14213c) 100%);
  --glow: 0 0 0 1px light-dark(rgba(124,58,237,.35), rgba(167,139,250,.40)), 0 16px 40px -14px light-dark(rgba(99,102,241,.35), rgba(0,0,0,.55));

  --radius:   16px;
  --radius-sm:11px;
  --radius-lg:26px;

  --maxw: 1140px;
  --pad:  clamp(20px, 5vw, 60px);

  --font-display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;

  --shadow-sm: 0 1px 2px light-dark(rgba(17,20,28,.04), rgba(0,0,0,.35)), 0 1px 3px light-dark(rgba(17,20,28,.06), rgba(0,0,0,.4));
  --shadow:    0 10px 30px -12px light-dark(rgba(17,20,28,.16), rgba(0,0,0,.55));
  --shadow-lg: 0 28px 60px -24px light-dark(rgba(17,20,28,.22), rgba(0,0,0,.65));
  --t: .32s cubic-bezier(.22,.61,.36,1);
}

/* Manual theme override (toggle persists to localStorage, sets these on <html>) */
:root.force-light { color-scheme: light; }
:root.force-dark  { color-scheme: dark; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; font-family: var(--font-body);
  background: var(--bg); color: var(--text);
  line-height: 1.6; -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.08; margin: 0 0 .4em; letter-spacing: -.025em; color: var(--text); }
h1 { font-size: clamp(2.3rem, 5.5vw, 4.1rem); }
h2 { font-size: clamp(1.8rem, 3.8vw, 2.8rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }
p  { margin: 0 0 1em; color: var(--text-soft); }

.container { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad); }
.section { padding-block: clamp(56px, 9vw, 116px); position: relative; }
.center { text-align: center; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-size: .78rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--violet-2);
  padding: 6px 13px; border-radius: 100px; background: var(--accent-soft);
  border: 1px solid var(--line); margin-bottom: 20px;
}
.lead { font-size: clamp(1.05rem, 1.5vw, 1.25rem); color: var(--text-soft); max-width: 60ch; }
.muted { color: var(--text-mute); }
.val-danger { color: var(--danger); }
.mini-pill.hold { background: var(--warning-soft); color: var(--warning); }
.val-success { color: var(--success); }
.val-warning { color: var(--warning); }

/* ===== Remy page ===== */
.remy-hero { background: var(--grad); border-radius: var(--radius-lg); padding: 26px 28px; color: #fff; margin-bottom: 22px; box-shadow: var(--shadow); }
.remy-id { display: flex; align-items: center; gap: 14px; }
.remy-av { position: relative; width: 54px; height: 54px; border-radius: 16px; background: rgba(255,255,255,.16); display: grid; place-items: center; flex: none; }
.remy-av .ic { width: 28px; height: 28px; color: #fff; }
.remy-pulse { position: absolute; right: -3px; top: -3px; width: 13px; height: 13px; border-radius: 50%; background: #4ade80; border: 2.5px solid #fff; animation: remyPulse 2s infinite; }
@keyframes remyPulse { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,.55); } 70% { box-shadow: 0 0 0 9px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } }
.remy-name { font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; display: flex; align-items: center; gap: 10px; }
.remy-live { font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: rgba(255,255,255,.18); padding: 3px 10px; border-radius: 100px; }
.remy-sub { font-size: .85rem; opacity: .85; }
.remy-line { margin: 16px 0 18px; font-size: 1.02rem; line-height: 1.5; opacity: .97; max-width: 62ch; color: #fff; }
.remy-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.remy-stats .rs { background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.18); border-radius: 13px; padding: 12px 14px; }
.remy-stats .rs b { display: block; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.1; }
.remy-stats .rs span { font-size: .74rem; opacity: .85; }
@media (max-width: 640px){ .remy-stats { grid-template-columns: repeat(2, 1fr); } .remy-hero { padding: 20px; } }
.remy-h { display: flex; align-items: center; gap: 8px; margin: 24px 0 12px; }
.remy-h .ic { width: 18px; height: 18px; color: var(--violet); }
.handoff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.handoff { background: var(--surface); border: 1px solid color-mix(in srgb, var(--danger) 24%, transparent); border-radius: 14px; padding: 14px 15px; box-shadow: var(--shadow-sm); }
.ho-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.ho-tag { display: inline-flex; align-items: center; gap: 4px; background: var(--danger-soft); color: var(--danger); font-size: .68rem; font-weight: 700; padding: 2px 9px; border-radius: 100px; white-space: nowrap; }
.ho-tag .ic { width: 11px; height: 11px; }
.ho-heat { font-size: .7rem; font-weight: 700; color: var(--warning); }
.ho-want { font-size: .84rem; color: var(--text-soft); margin-bottom: 11px; }
.ho-actions { display: flex; gap: 7px; }
.ho-actions .ic { width: 13px; height: 13px; }
.rt-list { display: flex; flex-direction: column; gap: 9px; }
.rt-card { display: flex; gap: 12px; align-items: flex-start; width: 100%; text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 13px 15px; cursor: pointer; transition: border-color .13s, transform .13s, box-shadow .13s; font: inherit; color: inherit; }
.rt-card:hover { border-color: var(--violet); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.rt-av { width: 38px; height: 38px; border-radius: 50%; background: var(--violet-soft); color: var(--violet-2); font-weight: 700; display: grid; place-items: center; flex: none; font-family: var(--font-display); }
.rt-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rt-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rt-when { margin-left: auto; font-size: .72rem; color: var(--text-mute); }
.rt-pill { font-size: .64rem; font-weight: 700; padding: 2px 8px; border-radius: 100px; }
.rt-pill.hot { background: var(--danger-soft); color: var(--danger); }
.rt-pill.won { background: var(--success-soft); color: var(--success); }
.rt-want { font-size: .78rem; color: var(--violet-2); font-weight: 600; }
.rt-line { font-size: .85rem; color: var(--text-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-open { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--text-mute); flex: none; }
.rt-open .ic { width: 14px; height: 14px; }
.gradient-text { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--font-display); font-weight: 600; font-size: .96rem;
  padding: 14px 24px; border-radius: 100px; border: 1px solid transparent;
  cursor: pointer; transition: transform var(--t), box-shadow var(--t), background var(--t), border-color var(--t), color var(--t);
  white-space: nowrap; line-height: 1;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-primary { background: var(--grad); color: #fff; box-shadow: 0 10px 24px -10px rgba(99,102,241,.6); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -10px rgba(99,102,241,.7); }
.btn-ghost { background: var(--surface); color: var(--text); border-color: var(--line-2); box-shadow: var(--shadow-sm); }
.btn-ghost:hover { border-color: var(--violet); color: var(--violet-2); transform: translateY(-2px); }
.btn-dark { background: var(--text); color: #fff; }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { background: var(--danger); }
.btn-dark:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.btn-block { width: 100%; }
.btn-lg { padding: 17px 30px; font-size: 1.02rem; }
.btn-sm { padding: 9px 15px; font-size: .85rem; }
.btn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }

/* ---------- Nav ---------- */
.nav { position: sticky; top: 0; z-index: 80; backdrop-filter: blur(16px); background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px; height: 70px; }
.brand { display: flex; align-items: center; gap: 11px; font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; color: var(--text); white-space: nowrap; flex: none; }
.brand span { white-space: nowrap; }
.brand .mark { width: 33px; height: 33px; border-radius: 9px; flex: none; background: var(--grad); display: grid; place-items: center; color: #fff; font-size: 1rem; box-shadow: 0 5px 14px -6px rgba(99,102,241,.7); }
.brand small { display: block; font-size: .6rem; letter-spacing: .22em; color: var(--text-mute); font-weight: 500; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; gap: 1px; }
.nav-links a { font-size: .88rem; color: var(--text-soft); padding: 8px 10px; border-radius: 8px; transition: color var(--t), background var(--t); font-weight: 500; white-space: nowrap; }
.nav-links a:hover, .nav-links a.active { color: var(--text); background: var(--bg-3); }
.nav-cta { display: flex; align-items: center; gap: 10px; }
.nav-toggle { display: none; background: none; border: 0; color: var(--text); cursor: pointer; padding: 8px; }
.nav-toggle svg { width: 26px; height: 26px; }

@media (max-width: 1100px) {
  .nav-links { position: fixed; inset: 70px 0 auto 0; flex-direction: column; align-items: stretch; background: var(--surface); border-bottom: 1px solid var(--line); padding: 12px var(--pad); gap: 2px; transform: translateY(-120%); transition: transform var(--t); z-index: 70; box-shadow: var(--shadow); }
  .nav-links.open { transform: translateY(0); }
  .nav-links a { padding: 13px; font-size: 1rem; }
  .nav-toggle { display: block; }
  .nav-cta .btn:not(.nav-toggle) { display: none; }
  .nav-cta .nav-toggle { display: block; }
}

/* ---------- Kanban ---------- */
.kanban-board { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; }
.kanban-board .kanban-column { overflow-y: auto; max-height: 100%; }

/* ---------- Hero ---------- */
.hero { position: relative; padding-block: clamp(56px, 8vw, 100px); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(50% 45% at 12% 6%, rgba(124,58,237,.10), transparent 60%), radial-gradient(48% 45% at 92% 20%, rgba(37,99,235,.09), transparent 60%); }
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 5vw, 60px); align-items: center; }
.hero h1 { margin-bottom: .35em; }
.hero .lead { margin-bottom: 24px; }
.hero-points { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 10px; }
.hero-points li { display: flex; align-items: center; gap: 11px; color: var(--text-soft); font-size: 1rem; }
.hero-points li b { color: var(--text); font-weight: 600; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-bottom: 20px; }
.hero-trust { font-size: .9rem; color: var(--text-mute); }
.hero-media { position: relative; }
.hero-media img { width: 100%; height: 100%; max-height: 540px; object-fit: cover; border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: var(--shadow-lg); }
.hero-media .badge { position: absolute; bottom: -16px; left: -16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 13px 17px; display: flex; align-items: center; gap: 11px; box-shadow: var(--shadow); }
.hero-media .badge .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(22,163,74,.16); }
.hero-media .badge b { font-family: var(--font-display); color: var(--text); }
@media (max-width: 880px){ .hero-grid { grid-template-columns: 1fr; } .hero-media { order: -1; } }

/* ---------- Marquee ---------- */
.marquee { overflow: hidden; border-block: 1px solid var(--line); padding-block: 22px; background: var(--bg-2); }
.marquee-track { display: flex; gap: 56px; align-items: center; width: max-content; animation: scroll 38s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track span { font-family: var(--font-display); color: var(--text-mute); font-size: 1rem; white-space: nowrap; display: inline-flex; align-items: center; gap: 56px; font-weight: 500; }
.marquee-track span::after { content: "✦"; color: var(--violet); }
@keyframes scroll { to { transform: translateX(-50%); } }

/* ---------- Cards / grids ---------- */
.grid { display: grid; gap: 20px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px){ .grid-3 { grid-template-columns: 1fr; } .grid-2 { grid-template-columns: 1fr; } }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; transition: transform var(--t), border-color var(--t), box-shadow var(--t); box-shadow: var(--shadow-sm); }
.card:hover { transform: translateY(-4px); border-color: var(--line-2); box-shadow: var(--shadow); }
.card .ic { width: 46px; height: 46px; border-radius: 12px; background: var(--accent-soft); display: grid; place-items: center; font-size: 1.35rem; margin-bottom: 16px; }
.card h3 { margin-bottom: .35em; }
.card p { margin-bottom: 0; font-size: .95rem; }

.section-head { max-width: 62ch; margin-bottom: 42px; }
.section-head.center { margin-inline: auto; }

/* ---------- Gallery ---------- */
.gallery { columns: 3; column-gap: 14px; }
@media (max-width: 900px){ .gallery { columns: 2; } }
@media (max-width: 560px){ .gallery { columns: 1; } }
.gallery img { width: 100%; margin-bottom: 14px; border-radius: var(--radius-sm); border: 1px solid var(--line); transition: transform var(--t); break-inside: avoid; box-shadow: var(--shadow-sm); }
.gallery img:hover { transform: scale(1.015); box-shadow: var(--shadow); }

/* ---------- Logo wall ---------- */
.logo-wall { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 760px){ .logo-wall { grid-template-columns: repeat(2,1fr); } }
.logo-wall a { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); aspect-ratio: 1; display: grid; place-items: center; padding: 20px; transition: transform var(--t), border-color var(--t), box-shadow var(--t); box-shadow: var(--shadow-sm); }
.logo-wall a:hover { transform: translateY(-4px); border-color: var(--violet); box-shadow: var(--shadow); }
.logo-wall img { max-height: 100%; width: auto; object-fit: contain; border-radius: 8px; }

/* ---------- Embeds ---------- */
.embed { position: relative; width: 100%; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); background: #000; }
.embed.ratio-16x9 { aspect-ratio: 16/9; }
.embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* YouTube facade — real thumbnail + play button, swaps to player on click (robust vs. embed config errors) */
.yt-facade { cursor: pointer; }
.yt-facade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.yt-facade .yt-play { position: absolute; inset: 0; margin: auto; width: 68px; height: 48px; background: rgba(18,18,18,.8); border-radius: 14px; transition: background .2s, transform .2s; }
.yt-facade:hover .yt-play { background: #ff0000; transform: scale(1.06); }
.yt-facade .yt-play::after { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-38%,-50%); border-style: solid; border-width: 11px 0 11px 19px; border-color: transparent transparent transparent #fff; }

/* ---------- Set blocks ---------- */
.set { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; align-items: center; margin-bottom: 28px; }
.set.rev > .set-copy { order: 2; }
@media (max-width: 860px){ .set, .set.rev > .set-copy { grid-template-columns: 1fr; order: 0; } }
.set-tag { font-family: var(--font-display); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--violet-2); margin-bottom: 8px; }

/* ---------- CTA band ---------- */
.cta-band { position: relative; border-radius: var(--radius-lg); overflow: hidden; padding: clamp(38px, 6vw, 72px); text-align: center; border: 1px solid var(--line); background: var(--grad-soft); }
.cta-band h2 { margin-bottom: .3em; }
.cta-actions { display: flex; gap: 13px; justify-content: center; flex-wrap: wrap; margin-top: 22px; }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
@media (max-width: 760px){ .stats { grid-template-columns: repeat(2,1fr); } }
.stat { text-align: center; padding: 24px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.stat b { display: block; font-family: var(--font-display); font-size: clamp(1.7rem, 4vw, 2.5rem); background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat span { font-size: .82rem; color: var(--text-mute); letter-spacing: .04em; }

/* ---------- Pricing plans ---------- */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
@media (max-width: 880px){ .plans { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }
.plans.four { grid-template-columns: repeat(4, 1fr); }
.plans.four .plan { padding: 26px 22px; }
.plans.four .plan-price { font-size: 2.5rem; }
@media (max-width: 1000px){ .plans.four { grid-template-columns: repeat(2, 1fr); max-width: 640px; margin-inline: auto; } }
@media (max-width: 540px){ .plans.four { grid-template-columns: 1fr; max-width: 420px; } }
.plan { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px 28px; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); transition: transform var(--t), box-shadow var(--t), border-color var(--t); }
.plan:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.plan.featured { border-color: var(--violet); box-shadow: 0 24px 50px -22px rgba(99,102,241,.45); }
.plan .ribbon { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--grad); color: #fff; font-family: var(--font-display); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; padding: 6px 14px; border-radius: 100px; white-space: nowrap; box-shadow: 0 8px 18px -8px rgba(99,102,241,.7); }
.plan .plan-name { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; }
.plan .plan-sub { color: var(--text-mute); font-size: .9rem; margin-bottom: 18px; }
.plan .plan-price { font-family: var(--font-display); font-size: 3rem; font-weight: 600; line-height: 1; letter-spacing: -.03em; }
.plan .plan-price small { font-size: .9rem; color: var(--text-mute); font-weight: 500; }
.plan .plan-per { color: var(--text-mute); font-size: .86rem; margin: 6px 0 20px; }
.plan ul { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 10px; }
.plan ul li { display: flex; gap: 9px; font-size: .93rem; color: var(--text-soft); }
.plan ul li::before { content: "✓"; color: var(--violet); font-weight: 700; flex: none; }
.plan .btn { margin-top: auto; }

/* ---------- Footer ---------- */
.footer { border-top: 1px solid var(--line); background: var(--bg-2); padding-block: 52px 28px; margin-top: 36px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; margin-bottom: 34px; }
@media (max-width: 760px){ .footer-grid { grid-template-columns: 1fr; gap: 24px; } }
.footer h4 { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-mute); font-family: var(--font-display); }
.footer a { color: var(--text-soft); display: block; padding: 5px 0; font-size: .93rem; transition: color var(--t); }
.footer a:hover { color: var(--violet-2); }
.footer .addr { color: var(--text-soft); font-size: .93rem; }
.footer .addr b { color: var(--text); }
.footer-bottom { border-top: 1px solid var(--line); padding-top: 20px; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: .84rem; color: var(--text-mute); }

/* ===========================================================
   Booking platform
   =========================================================== */
.booking-shell { display: grid; grid-template-columns: 1fr 350px; gap: 32px; align-items: start; }
@media (max-width: 980px){ .booking-shell { grid-template-columns: 1fr; } }

.steps { display: flex; gap: 8px; margin-bottom: 28px; flex-wrap: wrap; }
.step-pill { display: flex; align-items: center; gap: 8px; font-size: .84rem; color: var(--text-mute); padding: 7px 13px; border-radius: 100px; border: 1px solid var(--line); background: var(--surface); }
.step-pill .n { width: 21px; height: 21px; border-radius: 50%; display: grid; place-items: center; font-size: .76rem; font-weight: 700; background: var(--bg-3); color: var(--text-soft); font-family: var(--font-display); }
.step-pill.active { color: var(--violet-2); border-color: var(--violet); background: var(--accent-soft); }
.step-pill.active .n { background: var(--grad); color: #fff; }
.step-pill.done { color: var(--text-soft); }
.step-pill.done .n { background: var(--success); color: #fff; }
.step-pill.can-go { cursor: pointer; transition: border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.step-pill.can-go:hover { border-color: var(--violet-2); color: var(--text); box-shadow: var(--shadow-sm); }

.panel { display: none; animation: fade .35s var(--t); }
.panel.active { display: block; }
@keyframes fade { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform:none; } }

.svc-option { display: flex; gap: 15px; align-items: center; width: 100%; text-align: left; cursor: pointer; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 12px; transition: border-color var(--t), box-shadow var(--t), transform var(--t); box-shadow: var(--shadow-sm); position: relative; }
.svc-option:hover { border-color: var(--line-2); transform: translateY(-2px); box-shadow: var(--shadow); }
.svc-option.selected { border-color: var(--violet); box-shadow: var(--glow); }
.svc-option .emoji { font-size: 1.5rem; flex: none; width: 48px; height: 48px; display: grid; place-items: center; background: var(--accent-soft); border-radius: 12px; }
.svc-option .meta { flex: 1; }
.svc-option .meta h4 { margin-bottom: 3px; }
.svc-option .meta p { margin: 0; font-size: .88rem; }
.svc-option .price { text-align: right; font-family: var(--font-display); flex: none; }
.svc-option .price b { display: block; font-size: 1.2rem; color: var(--text); }
.svc-option .price span { font-size: .76rem; color: var(--text-mute); }
.svc-option .mini-ribbon { position: absolute; top: -9px; right: 16px; background: var(--grad); color: #fff; font-family: var(--font-display); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 100px; }

/* Set chooser — photo cards */
.set-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 4px 0; }
@media (max-width: 640px){ .set-pick { grid-template-columns: 1fr; } }
.set-photo { cursor: pointer; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); transition: transform var(--t), border-color var(--t), box-shadow var(--t); box-shadow: var(--shadow-sm); position: relative; }
.set-photo:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--line-2); }
.set-photo.selected { border-color: var(--violet); box-shadow: var(--glow); }
.set-photo .ph { aspect-ratio: 16/10; overflow: hidden; }
.set-photo .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t); }
.set-photo:hover .ph img { transform: scale(1.04); }
.set-photo .body { padding: 16px 18px; }
.set-photo b { font-family: var(--font-display); display: block; font-size: 1.05rem; }
.set-photo .sub { font-size: .86rem; color: var(--text-soft); margin: 3px 0 10px; }
.set-photo .facts { display: flex; flex-wrap: wrap; gap: 6px; }
.set-photo .facts span { font-size: .76rem; background: var(--bg-3); color: var(--text-soft); padding: 4px 9px; border-radius: 100px; }
.set-photo .pick-badge { position: absolute; top: 12px; right: 12px; width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.95); border: 1.5px solid var(--line-2); display: grid; place-items: center; color: transparent; font-size: .8rem; transition: all var(--t); z-index: 2; }
.set-photo.selected .pick-badge { background: var(--grad); border-color: transparent; color: #fff; }
/* compact inline variant (kept for fallback) */
.set-card { cursor: pointer; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; background: var(--surface); transition: all var(--t); box-shadow: var(--shadow-sm); }
.set-card.selected { border-color: var(--violet); box-shadow: var(--glow); }
.set-card b { font-family: var(--font-display); display: block; }
.set-card span { font-size: .82rem; color: var(--text-mute); }

/* Calendar */
.cal { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow-sm); }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cal-head b { font-family: var(--font-display); font-size: 1.05rem; }
.cal-nav { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); width: 34px; height: 34px; border-radius: 9px; cursor: pointer; font-size: 1.05rem; transition: background var(--t); }
.cal-nav:hover { background: var(--accent-soft); }
.cal-nav:disabled { opacity: .35; cursor: not-allowed; }
.cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; }
.cal-dow { text-align: center; font-size: .7rem; color: var(--text-mute); padding: 5px 0; font-weight: 600; }
.cal-day { aspect-ratio: 1; border: 1px solid transparent; background: var(--bg-2); border-radius: 9px; color: var(--text-soft); cursor: pointer; font-family: var(--font-display); font-size: .92rem; transition: all var(--t); display: grid; place-items: center; }
.cal-day:hover:not(:disabled) { background: var(--accent-soft); color: var(--violet-2); }
.cal-day.selected { background: var(--grad); color: #fff; box-shadow: 0 8px 18px -8px rgba(99,102,241,.7); }
.cal-day.today { border-color: var(--line-2); }
.cal-day:disabled { opacity: .35; cursor: not-allowed; }
.cal-day.empty { background: none; cursor: default; }

.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px,1fr)); gap: 9px; margin-top: 16px; }
.slot { padding: 11px 8px; text-align: center; background: var(--surface); border: 1px solid var(--line-2); border-radius: 9px; cursor: pointer; font-size: .88rem; font-family: var(--font-display); transition: all var(--t); }
.slot:hover { border-color: var(--violet); color: var(--violet-2); }
.slot.selected { background: var(--grad); color: #fff; border-color: transparent; }
/* taken/booked slots get a red diagonal "BOOKED" ink-stamp + keep the strikethrough */
.slot.taken, .rc-slot.taken { position: relative; color: #b6bdc9; background: #f7f8fa; border-color: var(--line); text-decoration: line-through; cursor: not-allowed; }
.slot.taken::after, .rc-slot.taken::after {
  content: "BOOKED";
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%) rotate(-11deg);
  color: var(--danger);
  font-family: var(--font-display), system-ui, sans-serif;
  font-weight: 800; font-size: .54rem; letter-spacing: 1px; text-transform: uppercase;
  padding: 1px 5px; border: 1.6px solid var(--danger); border-radius: 3px;
  background: rgba(255,255,255,.5);
  box-shadow: inset 0 0 0 1px rgba(220,38,38,.25);
  opacity: .88; text-decoration: none; pointer-events: none; white-space: nowrap;
}

/* Forms */
.field { margin-bottom: 16px; }
.field label { display: block; font-size: .85rem; color: var(--text-soft); margin-bottom: 6px; font-weight: 500; }
.field .req { color: var(--violet-2); }
.input, .textarea, .select { width: 100%; padding: 12px 14px; background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius-sm); color: var(--text); font-family: var(--font-body); font-size: .97rem; transition: border-color var(--t), box-shadow var(--t); }
.input::placeholder, .textarea::placeholder { color: #aab0bb; }
.input:focus, .textarea:focus, .select:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(124,58,237,.14); }
.textarea { resize: vertical; min-height: 92px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
@media (max-width: 520px){ .field-row { grid-template-columns: 1fr; } }
.hint { font-size: .8rem; color: var(--text-mute); margin-top: 5px; }
.err-msg { color: var(--danger); font-size: .82rem; margin-top: 5px; display: none; }
.field.invalid .input, .field.invalid .select { border-color: var(--danger); }
.field.invalid .err-msg { display: block; }

/* Upsell / order bump */
.bump { border: 2px dashed var(--violet); border-radius: var(--radius); padding: 22px; background: var(--grad-soft); position: relative; }
.bump.added { border-style: solid; background: var(--surface); box-shadow: var(--glow); }
.bump-head { display: flex; align-items: flex-start; gap: 14px; }
.bump .emoji { font-size: 1.8rem; flex: none; }
.bump h3 { margin-bottom: 4px; }
.bump .bump-price { font-family: var(--font-display); font-size: 1.5rem; white-space: nowrap; }
.bump .bump-price small { font-size: .8rem; color: var(--text-mute); }
.bump-toggle { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 13px 16px; background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius-sm); cursor: pointer; font-weight: 600; font-family: var(--font-display); transition: all var(--t); }
.bump-toggle:hover { border-color: var(--violet); }
.bump-toggle .box { width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--line-2); display: grid; place-items: center; color: transparent; transition: all var(--t); flex: none; }
.bump.added .bump-toggle { border-color: var(--violet); background: var(--accent-soft); }
.bump.added .bump-toggle .box { background: var(--grad); border-color: transparent; color: #fff; }

/* Production — recording tiers */
.tier-card { position: relative; display: flex; gap: 15px; align-items: flex-start; width: 100%; text-align: left; cursor: pointer; background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--radius); padding: 18px 18px 18px 16px; margin-bottom: 12px; transition: border-color var(--t), box-shadow var(--t), transform var(--t); box-shadow: var(--shadow-sm); }
.tier-card:hover { border-color: var(--line-2); transform: translateY(-2px); box-shadow: var(--shadow); }
.tier-card.selected { border-color: var(--violet); box-shadow: var(--glow); }
.tier-card .radio { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line-2); flex: none; margin-top: 2px; display: grid; place-items: center; transition: all var(--t); }
.tier-card.selected .radio { border-color: var(--violet); }
.tier-card.selected .radio::after { content: ""; width: 11px; height: 11px; border-radius: 50%; background: var(--grad); }
.tier-card .emoji { font-size: 1.5rem; flex: none; }
.tier-card .t-body { flex: 1; }
.tier-card .t-body h4 { margin: 0 0 3px; }
.tier-card .t-body p { margin: 0; font-size: .88rem; }
.tier-card .t-price { text-align: right; font-family: var(--font-display); flex: none; }
.tier-card .t-price b { display: block; font-size: 1.15rem; }
.tier-card .t-price .free { color: var(--success); }
.tier-card .mini-ribbon { position: absolute; top: -9px; right: 16px; background: var(--grad); color: #fff; font-family: var(--font-display); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 100px; }

/* Upsells (reveal) */
.upsell-wrap { margin-top: 22px; padding-top: 6px; }
.upsell-wrap .uh { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.upsell-wrap .uh::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.upsell-item { display: flex; gap: 13px; align-items: center; width: 100%; text-align: left; cursor: pointer; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 10px; transition: all var(--t); box-shadow: var(--shadow-sm); }
.upsell-item:hover { border-color: var(--line-2); }
.upsell-item.added { border-color: var(--violet); background: var(--accent-soft); }
.upsell-item .emoji { font-size: 1.35rem; flex: none; width: 40px; height: 40px; display: grid; place-items: center; background: var(--bg-3); border-radius: 10px; }
.upsell-item.added .emoji { background: var(--surface); }
.upsell-item .u-body { flex: 1; min-width: 0; }
.upsell-item .u-body b { font-family: var(--font-display); font-size: .96rem; }
.upsell-item .u-body p { margin: 1px 0 0; font-size: .82rem; color: var(--text-mute); }
.upsell-item .u-price { font-family: var(--font-display); font-weight: 600; white-space: nowrap; }
.upsell-item .box { width: 24px; height: 24px; border-radius: 7px; border: 2px solid var(--line-2); display: grid; place-items: center; color: transparent; flex: none; transition: all var(--t); }
.upsell-item.added .box { background: var(--grad); border-color: transparent; color: #fff; }

/* Pay */
.pay-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow-sm); }
.pay-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-bottom: 20px; }
.pay-opt { cursor: pointer; padding: 15px; border: 1px solid var(--line-2); border-radius: var(--radius-sm); background: var(--surface); transition: all var(--t); }
.pay-opt.selected { border-color: var(--violet); background: var(--accent-soft); }
.pay-opt b { font-family: var(--font-display); display: block; }
.pay-opt span { font-size: .82rem; color: var(--text-mute); }
.card-input-row { display: grid; grid-template-columns: 1fr 108px 88px; gap: 11px; }
@media (max-width: 520px){ .card-input-row { grid-template-columns: 1fr; } }
.secure-note { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--text-mute); margin-top: 13px; }

/* Summary sidebar */
.summary { position: sticky; top: 90px; background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); }
.summary h3 { font-size: 1.05rem; margin-bottom: 16px; }
.summary-row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: .9rem; }
.summary-row span:first-child { color: var(--text-mute); }
.summary-row span:last-child { text-align: right; font-weight: 500; color: var(--text); }
.summary-row.add span:last-child { color: var(--violet-2); }
.summary-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.summary-total b { font-family: var(--font-display); font-size: 1.45rem; }
.summary-empty { color: var(--text-mute); font-size: .9rem; }

.flow-actions { display: flex; justify-content: space-between; gap: 13px; margin-top: 24px; }

/* Confirmation */
.confirm { text-align: center; max-width: 560px; margin: 0 auto; }
.confirm .check { width: 82px; height: 82px; border-radius: 50%; background: var(--grad); display: grid; place-items: center; margin: 0 auto 22px; font-size: 2.4rem; color: #fff; box-shadow: 0 16px 36px -12px rgba(99,102,241,.7); animation: pop .5s var(--t); }
@keyframes pop { 0%{transform:scale(.5);opacity:0;} 100%{transform:scale(1);opacity:1;} }
.confirm-detail { background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; text-align: left; margin: 22px 0; }
.confirm-detail .summary-row:last-child { border-bottom: 0; }
.notif-row { display: flex; gap: 11px; justify-content: center; flex-wrap: wrap; margin: 16px 0; }
.notif-chip { display: flex; align-items: center; gap: 7px; font-size: .85rem; color: var(--text-soft); background: var(--surface); border: 1px solid var(--line); padding: 8px 13px; border-radius: 100px; box-shadow: var(--shadow-sm); }
.notif-chip .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--success); }

/* ===========================================================
   Admin dashboard
   =========================================================== */
.admin-layout { display: grid; grid-template-columns: 230px 1fr; min-height: 100vh; }
@media (max-width: 860px){ .admin-layout { grid-template-columns: 1fr; } }
.admin-side { background: var(--bg-2); border-right: 1px solid var(--line); padding: 22px 15px; position: sticky; top: 0; height: 100vh; overflow-y: auto; overscroll-behavior: contain; }
.admin-side::-webkit-scrollbar { width: 8px; }
.admin-side::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 100px; }
/* mobile dashboard: sticky hamburger top-bar + slide-in drawer (the sidebar
   slides over the content instead of stacking on top of it) */
.admin-topbar { display: none; }
.admin-backdrop { display: none; }
@media (max-width: 860px){
  .admin-topbar {
    display: flex; align-items: center; gap: 12px;
    position: sticky; top: 0; z-index: 45;
    background: var(--surface); border-bottom: 1px solid var(--line); padding: 11px 14px;
  }
  .admin-burger { background: none; border: 0; color: var(--text); padding: 4px; cursor: pointer; display: flex; line-height: 0; }
  .admin-topbar-brand { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
  .admin-topbar-brand .mark { width: 26px; height: 26px; font-size: .8rem; }
  /* off-canvas drawer */
  .admin-side {
    position: fixed; top: 0; left: 0; height: 100vh; width: 272px; max-width: 84vw;
    transform: translateX(-100%); transition: transform .26s ease;
    z-index: 60; border-right: 1px solid var(--line); border-bottom: 0;
    overflow-y: auto; padding: 18px 15px;
  }
  .admin-side.open { transform: translateX(0); box-shadow: 0 12px 50px rgba(0,0,0,.28); }
  .admin-backdrop { display: block; position: fixed; inset: 0; background: rgba(15,23,42,.5); z-index: 55; opacity: 0; pointer-events: none; transition: opacity .2s; }
  .admin-backdrop.show { opacity: 1; pointer-events: auto; }
  .admin-main { padding: 16px 14px; }
}
.admin-side .brand { margin-bottom: 28px; padding-inline: 8px; }
.admin-nav { display: flex; flex-direction: column; gap: 3px; }
.admin-nav button { display: flex; align-items: center; gap: 10px; text-align: left; background: none; border: 0; color: var(--text-soft); padding: 11px 14px; border-radius: 10px; cursor: pointer; font-size: .93rem; font-family: var(--font-body); transition: all var(--t); }
.admin-nav button:hover { background: var(--surface); color: var(--text); }
.admin-nav button.active { background: var(--surface); color: var(--violet-2); border: 1px solid var(--line); box-shadow: var(--shadow-sm); font-weight: 600; }
.admin-main { padding: clamp(20px, 4vw, 38px); background: var(--bg); min-width: 0; }   /* min-width:0 lets the grid column shrink instead of overflowing/clipping */
.admin-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 26px; flex-wrap: wrap; padding-right: 34px; }
.admin-head h1 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 15px; margin-bottom: 28px; }
@media (max-width: 760px){ .kpis { grid-template-columns: repeat(2,1fr); } }
.kpi { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 19px; box-shadow: var(--shadow-sm); }
.kpi span { font-size: .8rem; color: var(--text-mute); }
.kpi b { display: block; font-family: var(--font-display); font-size: 1.85rem; margin-top: 5px; }
.kpi .trend { font-size: .78rem; color: var(--success); }
/* "Loading…" placeholder shown in place of a $-figure while live Stripe data is in flight (beats flashing $0) */
.num-loading { display: inline-block; font-size: .5em; font-weight: 600; letter-spacing: .03em; opacity: .6; vertical-align: middle; animation: numpulse 1.1s ease-in-out infinite; }
@keyframes numpulse { 0%, 100% { opacity: .35; } 50% { opacity: .8; } }

.table-wrap { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 13px 17px; font-size: .89rem; border-bottom: 1px solid var(--line); }
th { color: var(--text-mute); font-weight: 600; font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; background: var(--bg-2); }
tbody tr:hover { background: var(--bg-2); }
tr.row-click { cursor: pointer; }
tr.row-click:hover { background: var(--accent-soft); }
/* keyboard focus visibility — world-class a11y for the whole app */
:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; border-radius: 4px; }
button:focus-visible, .lnk:focus-visible, .seg-chip:focus-visible, .eng-chip:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
td .badge-status { display: inline-flex; align-items: center; gap: 5px; font-size: .77rem; padding: 4px 10px; border-radius: 100px; }
.st-confirmed { background: var(--success-soft); color: var(--success); }
.st-pending { background: var(--warning-soft); color: #a16207; }
.st-cancelled { background: var(--danger-soft); color: var(--danger); }
.st-completed { background: #e0e7ff; color: #4338ca; }
/* lead stages */
.st-new { background: #dbeafe; color: var(--info); }
.st-contacted { background: var(--warning-soft); color: #a16207; }
.st-tour { background: #f3e8ff; color: var(--violet); }
.st-won { background: var(--success-soft); color: var(--success); }
.st-lost { background: var(--bg-3); color: var(--text-mute); }
/* ad platform pills + source chips */
.plat { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 100px; }
.plat-google { background: #e8f0fe; color: #1a73e8; }
.plat-meta { background: #e7f0ff; color: #0866ff; }
.src-chip { font-size: .74rem; padding: 3px 9px; border-radius: 100px; background: var(--bg-3); color: var(--text-soft); }
.stage-select { padding: 5px 8px; border: 1px solid var(--line-2); border-radius: 8px; font-size: .8rem; background: var(--surface); font-family: var(--font-body); cursor: pointer; }
/* social hitlist chips */
.socials-row { display: inline-flex; gap: 5px; flex-wrap: wrap; }
.soc { width: 26px; height: 26px; border-radius: 7px; display: inline-grid; place-items: center; color: #fff; font-size: .7rem; font-weight: 700; font-family: var(--font-display); text-decoration: none; transition: transform .15s; line-height: 1; }
.soc:hover { transform: translateY(-2px) scale(1.08); }
.soc-empty { color: var(--text-mute); font-size: .8rem; }
.socials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 520px){ .socials-grid { grid-template-columns: 1fr; } }
.soc-input { display: flex; align-items: center; gap: 8px; }
.soc-input .soc { flex: none; }
.soc-input input { flex: 1; padding: 9px 11px; }

.modal-overlay { position: fixed; inset: 0; background: rgba(17,20,28,.45); backdrop-filter: blur(4px); display: none; place-items: center; z-index: 200; padding: 20px; }
.modal-overlay.open { display: grid; }
.modal { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; max-width: 520px; width: 100%; max-height: 90vh; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; box-shadow: var(--shadow-lg); }
/* lock the page behind any open modal so scrolling stays inside the card */
body:has(.modal-overlay.open) { overflow: hidden; }
.modal h3 { margin-bottom: 16px; }
.modal-close { float: right; background: none; border: 0; color: var(--text-mute); font-size: 1.5rem; cursor: pointer; }
/* sticky top bar so the back/close control stays reachable on long scrolling modals */
.modal-topbar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--surface); padding: 14px 0 12px; margin: 0 0 6px; border-bottom: 1px solid var(--line); }
.modal-topbar b { font-family: 'Space Grotesk', sans-serif; font-size: .95rem; }
.modal-topbar .modal-close { float: none; line-height: 1; }

/* ===== Reschedule calendar popup ===== */
.rc-current { font-size: .85rem; color: var(--text-mute); margin: 4px 0 14px; }
.rc-current b { color: var(--text); }
.rc-cal { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px 14px; }
.rc-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.rc-head b { font-family: 'Space Grotesk', sans-serif; font-size: .95rem; }
.rc-nav { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; font-size: 1.2rem; line-height: 1; color: var(--text); transition: .12s; }
.rc-nav:hover { background: var(--bg-2); border-color: var(--violet); color: var(--violet); }
.rc-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rc-dow { text-align: center; font-size: .68rem; font-weight: 700; color: var(--text-mute); padding-bottom: 4px; text-transform: uppercase; }
.rc-day { aspect-ratio: 1; border: 1px solid transparent; border-radius: 10px; background: var(--bg-2); color: var(--text); font-size: .86rem; font-weight: 600; cursor: pointer; transition: .12s; display: flex; align-items: center; justify-content: center; }
.rc-day:hover:not(.off):not(.empty) { border-color: var(--violet); background: var(--accent-soft); }
.rc-day.empty { background: none; cursor: default; }
.rc-day.off { color: #cbd2dc; background: none; cursor: not-allowed; }
.rc-day.today { box-shadow: inset 0 0 0 1.5px var(--violet); }
.rc-day.sel { background: var(--grad); color: #fff; border-color: transparent; }
.rc-slots-head { font-size: .82rem; font-weight: 700; margin: 16px 0 8px; }
.rc-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.rc-slot { padding: 9px 4px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--text); font-size: .82rem; font-weight: 600; cursor: pointer; transition: .12s; }
.rc-slot:hover:not(.taken) { border-color: var(--violet); background: var(--accent-soft); color: var(--violet); }
.rc-slot.taken { color: #cbd2dc; background: var(--bg-2); cursor: not-allowed; text-decoration: line-through; }
.rc-slot.sel { background: var(--grad); color: #fff; border-color: transparent; }
.btn:disabled { opacity: .45; cursor: not-allowed; }

.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(120%); background: var(--text); color: #fff; border-radius: 13px; padding: 13px 20px; box-shadow: var(--shadow-lg); z-index: 300; transition: transform .4s var(--t); display: flex; align-items: center; gap: 10px; font-size: .9rem; }
.toast.show { transform: translateX(-50%) translateY(0); }
.toast .dot { width: 9px; height: 9px; border-radius: 50%; background: #4ade80; }

.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.day-toggle { padding: 8px 14px; border-radius: 100px; border: 1px solid var(--line-2); background: var(--surface); color: var(--text-soft); cursor: pointer; font-size: .85rem; font-family: var(--font-display); transition: all var(--t); }
.day-toggle.on { background: var(--grad); color: #fff; border-color: transparent; }

.empty-state { text-align: center; padding: 56px 20px; color: var(--text-mute); }

/* ---- Dashboard month calendar ---- */
.dcal { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.dcal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.dcal-dow { text-align: center; font-size: .72rem; color: var(--text-mute); font-weight: 600; padding: 9px 0; background: var(--bg-2); border-bottom: 1px solid var(--line); }
.dcal-day { min-height: 120px; min-width: 0; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 7px 7px 8px; }
.dcal-day:nth-child(7n) { border-right: 0; }
.dcal-day .dn { font-size: .74rem; color: var(--text-mute); font-family: var(--font-display); }
.dcal-day.today { background: var(--accent-soft); }
.dcal-day.today .dn { color: var(--violet-2); font-weight: 700; }
.dcal-day.empty { background: var(--bg-2); }
.dcal-chip { display: block; font-size: .72rem; font-weight: 600; padding: 4px 8px; border-radius: 7px; margin-top: 5px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transition: filter .15s; }
.dcal-chip:hover { filter: brightness(1.08); }
/* personal Google Calendar overlay — one consistent INDIGO everywhere (legend swatch, month/week chips, day cards) so it always reads as the same calendar */
.dcal-mine { display: block; font-size: .68rem; padding: 2px 6px; border-radius: 6px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: #4338ca; border: 1px solid #c7d2fe; border-left: 3px solid #6366f1; background: var(--info-soft); cursor: default; }
a.dcal-mine.link { cursor: pointer; text-decoration: none; }
a.dcal-mine.link:hover { border-left-color: var(--violet); color: var(--violet-2, var(--violet-2)); filter: brightness(.98); }
.legend-sep { display: inline-block; width: 1px; height: 20px; background: var(--line); margin: 0 4px; vertical-align: middle; }
.cal-overlay-ctl { display: inline-flex; align-items: center; gap: 6px; }
.eng-chip.mycal.active { background: var(--accent-soft); border-color: var(--violet); color: var(--violet-2); }
.mycal-detail { font-size: .74rem; padding: 4px 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--bg-1, #fff); color: var(--text-2, var(--text-soft)); cursor: pointer; }
.mycal-detail:hover { border-color: var(--violet); }
@media (max-width: 760px){ .dcal-day { min-height: 86px; } .dcal-chip, .dcal-mine { font-size: .64rem; } }
/* Week view — 7 day-columns reusing the month chip styling */
.wkgrid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 8px; }
.wkcol { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm, 10px); overflow: hidden; min-height: 210px; display: flex; flex-direction: column; }
.wkcol.today { border-color: var(--violet, var(--violet)); box-shadow: 0 0 0 1px var(--violet, var(--violet)); }
.wkcol-head { display: flex; align-items: baseline; justify-content: space-between; gap: 4px; padding: 7px 10px; background: var(--bg-2); border: 0; border-bottom: 1px solid var(--line); cursor: pointer; width: 100%; text-align: left; font: inherit; }
.wkcol-head:hover { background: var(--bg-3, var(--bg-3)); }
.wkcol.today .wkcol-head { background: var(--accent-soft); }
.wkdow { font-size: .68rem; font-weight: 600; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.wknum { font-size: 1.05rem; font-weight: 700; font-family: var(--font-display); }
.wkcol.today .wknum { color: var(--violet-2); }
.wkcol-body { display: flex; flex-direction: column; padding: 7px; flex: 1; }
.wkcol-body .dcal-chip { white-space: normal; }
.wk-empty { color: var(--text-mute); opacity: .5; font-size: .8rem; text-align: center; padding-top: 10px; }
/* Day view — clean time-ordered agenda */
.dayview { display: flex; flex-direction: column; gap: 8px; max-width: 660px; }
.day-row { display: flex; align-items: stretch; gap: 12px; }
.day-row[data-bk] { cursor: pointer; }
.day-time { flex: 0 0 84px; text-align: right; font-weight: 600; font-size: .84rem; padding-top: 11px; color: var(--text); display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.day-dur { font-size: .68rem; font-weight: 500; color: var(--text-mute); }
.day-card { flex: 1; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--warning); border-radius: 10px; padding: 10px 14px; transition: box-shadow .12s, transform .12s; }
.day-row[data-bk]:hover .day-card { box-shadow: var(--shadow); transform: translateY(-1px); }
.day-sub { font-size: .8rem; color: var(--text-soft); margin-top: 3px; }
.day-row .badge-status { align-self: center; }
.day-gcal .day-card { border-left-color: #6366f1; background: var(--info-soft); }
.day-row-link { display: contents; text-decoration: none; color: inherit; }
@media (max-width: 760px){ .wkgrid { grid-template-columns: 1fr; } .wkcol { min-height: 0; } .day-time { flex-basis: 70px; } }
/* ============ MOBILE: stack CRM data tables into tappable cards (was: 6 cols scrolling off-screen) ============ */
@media (max-width: 680px) {
  .table-wrap { overflow-x: visible; border: 0; box-shadow: none; }
  .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap td { display: block; width: auto; }
  .table-wrap thead { position: absolute; left: -9999px; }            /* hide header row visually, keep for screen readers */
  .table-wrap tr { background: var(--surface); border: 1px solid var(--line); border-radius: 13px; padding: 11px 13px; margin-bottom: 10px; box-shadow: var(--shadow-sm); }
  .table-wrap td { border: 0 !important; padding: 3px 0; white-space: normal; text-align: left; }
  .table-wrap td:first-child { font-size: 1.04rem; font-weight: 700; }
  .table-wrap td:empty { display: none; }
  .table-wrap td:last-child:not(:first-child) { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line) !important; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
  .table-wrap tr:has(.empty-state), .table-wrap tr:has(td[colspan]) { border: 0; background: transparent; box-shadow: none; padding: 0; }
}
/* ============ MOBILE: collapse the Remy chat button to a compact icon (was overlapping content) ============ */
@media (max-width: 680px) {
  .cf-chat-btn .cf-chat-label { display: none; }
  .cf-chat-btn { padding: 0; width: 56px; height: 56px; justify-content: center; border-radius: 50%; bottom: 16px; right: 16px; }
  .cf-chat-btn .av { width: 30px; height: 30px; font-size: 1.15rem; }
}
/* ============ A11y: respect the OS "reduce motion" setting (stops the pulsing markers, marquee, hover-scales) ============ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
/* ===== Automation builder (GHL-style) ===== */
.auto-group { margin-bottom: 16px; }
.ag-head { font-family: var(--font-display); font-weight: 600; font-size: .95rem; margin: 0 0 8px; padding-left: 10px; border-left: 3px solid var(--gc, var(--violet)); }
.auto-card { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gc, var(--violet)); border-radius: 12px; padding: 12px 14px; margin-bottom: 8px; cursor: pointer; transition: box-shadow .12s, transform .12s; }
.auto-card:hover { box-shadow: var(--shadow); transform: translateY(-1px); }
.auto-card.off { opacity: .58; border-left-color: var(--line-2); }
.auto-card .ac-main { flex: 1; min-width: 0; }
.ac-name { font-weight: 700; font-size: .95rem; }
.ac-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 3px 0; font-size: .76rem; align-items: center; }
.ac-trig { color: var(--text-soft); }
.ac-ch { background: var(--bg-3, var(--bg-3)); color: var(--text-soft); border-radius: 5px; padding: 1px 6px; font-weight: 600; letter-spacing: .03em; font-size: .68rem; }
.ac-prev { font-size: .8rem; color: var(--text-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.auto-tokens { display: flex; flex-wrap: wrap; gap: 5px; margin: -4px 0 14px; }
.tok-chip { font-size: .72rem; font-family: ui-monospace, SFMono-Regular, monospace; background: var(--accent-soft); color: var(--violet-2); border: 1px solid var(--violet, var(--violet)); border-radius: 6px; padding: 2px 7px; cursor: pointer; }
.tok-chip:hover { background: var(--violet, var(--violet)); color: #fff; }
.chk { display: inline-flex; align-items: center; gap: 5px; font-size: .9rem; cursor: pointer; }
.auto-preview { margin-top: 6px; background: var(--bg-2); border: 1px dashed var(--line-2); border-radius: 12px; padding: 12px; }
.ap-label { font-size: .74rem; font-weight: 600; color: var(--text-soft); margin-bottom: 8px; }
.prev-sms { background: #e9f9ee; border: 1px solid #b7ebc6; color: #052e16; border-radius: 14px 14px 14px 4px; padding: 9px 13px; font-size: .9rem; max-width: 82%; line-height: 1.4; }
.prev-email { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.pe-subj { font-weight: 700; padding: 9px 13px; border-bottom: 1px solid var(--line); font-size: .9rem; }
.pe-body { padding: 11px 13px; font-size: .88rem; line-height: 1.45; }
@media (max-width: 680px) { .auto-card { flex-wrap: wrap; } .ac-prev { white-space: normal; } }
/* Remy knowledge: edit provenance + change history */
.rk-prov { display: inline-block; margin-left: 8px; font-size: .68rem; color: var(--violet-2, var(--violet)); background: var(--accent-soft); padding: 1px 6px; border-radius: 999px; vertical-align: middle; white-space: nowrap; }
.rk-actions .btn { vertical-align: middle; }
.rk-audit summary { cursor: pointer; font-size: .82rem; color: var(--text-2, var(--text-soft)); user-select: none; }
.rk-audit summary:hover { color: var(--violet, var(--violet)); }
.rk-audit[open] summary { margin-bottom: 4px; }

/* ---- Reports charts (no library) ---- */
.rep-bars { display: flex; align-items: flex-end; gap: 8px; height: 170px; padding-top: 8px; position: relative; }
.rep-goalline { position: absolute; left: 0; right: 0; border-top: 2px dashed rgba(124,58,237,.5); font-size: .7rem; line-height: 1; text-align: right; padding-right: 2px; margin-top: -7px; pointer-events: none; z-index: 1; }
.rep-bar .b.wkhit { background: linear-gradient(180deg, var(--success), var(--success)); }
.rep-bar { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 6px; height: 100%; }
.rep-bar .b { width: 100%; max-width: 46px; background: var(--grad); border-radius: 6px 6px 0 0; min-height: 3px; transition: height .4s var(--t); }
.rep-bar .bl { font-size: .68rem; color: var(--text-mute); }
.rep-bar .bv { font-size: .68rem; color: var(--text-soft); font-weight: 600; }
.rep-hbar { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.rep-hbar .lbl { width: 190px; font-size: .82rem; flex: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rep-hbar .track { flex: 1; height: 18px; background: var(--bg-3); border-radius: 100px; overflow: hidden; }
.rep-hbar .fill { display: block; height: 100%; background: var(--grad); border-radius: 100px; }
.rep-hbar .fill { height: 100%; background: var(--grad); border-radius: 100px; }
.rep-hbar .val { font-size: .8rem; font-weight: 600; width: 70px; text-align: right; flex: none; }

/* ---- Editing Kanban board ---- */
/* align-items:stretch makes every column the full board height, so the whole
   column is a drop zone — you can drop into a short/empty column anywhere. */
.kanban { display: grid; grid-template-columns: repeat(8, minmax(184px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 10px; align-items: stretch; min-height: 62vh; }
.kcol { display: flex; flex-direction: column; background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px; min-height: 62vh; }
.kcol > .kcard:last-child { margin-bottom: auto; }   /* let the empty space below cards stay droppable */
.kcol.dragover { border-color: var(--violet); background: var(--accent-soft); box-shadow: inset 0 0 0 2px var(--violet); }
.kcol-head { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-display); font-size: .8rem; font-weight: 600; color: var(--text-soft); margin-bottom: 10px; padding: 0 2px; }
.kcol-head .ct { background: var(--surface); border: 1px solid var(--line); border-radius: 100px; padding: 1px 8px; font-size: .7rem; color: var(--text-mute); }
.kcard { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; padding: 11px; margin-bottom: 9px; box-shadow: var(--shadow-sm); cursor: pointer; transition: box-shadow .15s, border-color .15s; }
.kcard:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.kcard.dragging { opacity: .4; transform: rotate(1.5deg); }
.kanban { scroll-behavior: smooth; }
.kcard b { font-family: var(--font-display); font-size: .9rem; display: block; line-height: 1.25; }
.kcard .meta { font-size: .74rem; color: var(--text-mute); margin-top: 3px; }
.kcard .prog { height: 5px; background: var(--bg-3); border-radius: 100px; margin-top: 9px; overflow: hidden; }
.kcard .prog i { display: block; height: 100%; background: var(--grad); }
.kcard .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 9px; gap: 6px; }
.kcard .foot .right { display: flex; align-items: center; gap: 8px; font-size: .72rem; color: var(--text-mute); }
.pri { font-size: .64rem; padding: 2px 7px; border-radius: 100px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.pri-high { background: var(--danger-soft); color: var(--danger); } .pri-normal { background: var(--bg-3); color: var(--text-mute); } .pri-low { background: var(--success-soft); color: var(--success); }
@media (max-width: 760px){ .kanban { grid-template-columns: repeat(8, 80vw); } }

/* deliverable checklist + drive + project comments */
.chk { display: flex; align-items: center; gap: 9px; padding: 7px 0; font-size: .9rem; cursor: pointer; }
.chk .box { width: 19px; height: 19px; border-radius: 5px; border: 2px solid var(--line-2); display: grid; place-items: center; color: transparent; flex: none; transition: all .15s; }
.chk.done .box { background: var(--grad); border-color: transparent; color: #fff; }
.chk.done span { text-decoration: line-through; color: var(--text-mute); }
.drive-file { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; margin-bottom: 6px; font-size: .85rem; }
.drive-file .fi { width: 26px; height: 26px; border-radius: 7px; display: grid; place-items: center; background: var(--bg-3); flex: none; }
.drive-file .ff { font-size: .68rem; color: var(--text-mute); margin-left: auto; }
.pcomment { padding: 10px 0; border-bottom: 1px solid var(--line); }
.pcomment .pc-top { display: flex; justify-content: space-between; gap: 8px; font-size: .76rem; color: var(--text-mute); }
.pcomment .pc-top b { font-family: var(--font-display); color: var(--text); }
.pcomment .pc-body { font-size: .9rem; margin-top: 3px; white-space: pre-wrap; }
.stage-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.stage-pill2 { padding: 6px 11px; border-radius: 100px; border: 1px solid var(--line-2); background: var(--surface); cursor: pointer; font-size: .78rem; font-family: var(--font-display); color: var(--text-soft); }
.stage-pill2.on { background: var(--grad); color: #fff; border-color: transparent; }

/* ---- CRM quick templates ---- */
.tmpl-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.tmpl-row button { font-size: .76rem; padding: 5px 11px; border: 1px solid var(--line-2); background: var(--surface); border-radius: 100px; cursor: pointer; color: var(--text-soft); font-family: var(--font-body); transition: all .15s; }
.tmpl-row button:hover { border-color: var(--violet); color: var(--violet-2); }
.alert-info { background: var(--accent-soft); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 13px 17px; font-size: .87rem; color: var(--text-soft); margin-bottom: 22px; display: block; }

/* ---- Team / avatars / chips ---- */
.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-family: var(--font-display); font-weight: 700; font-size: .9rem; flex: none; }
.avatar.sm { width: 26px; height: 26px; font-size: .76rem; }
.user-chip { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); margin-bottom: 16px; }
.user-chip .who b { display: block; font-size: .9rem; font-family: var(--font-display); }
.user-chip .who span { font-size: .74rem; color: var(--text-mute); text-transform: capitalize; }
.eng-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; padding: 3px 9px 3px 3px; border-radius: 100px; background: var(--bg-3); border: 1.5px solid transparent; cursor: pointer; transition: .12s; }
button.eng-chip:hover { border-color: var(--violet); }
.eng-chip.active { border-color: var(--violet); background: var(--accent-soft); box-shadow: 0 0 0 2px var(--accent-soft); font-weight: 600; }
.eng-chip.clear { background: none; color: var(--text-mute); }
.legend-hint { font-size: .74rem; font-weight: 700; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; margin-right: 2px; }
/* list toolbar: search + sort */
.list-toolbar { display: flex; gap: 10px; align-items: center; margin: 12px 0 6px; flex-wrap: wrap; }
.sort-mini { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 600; color: var(--text-mute); white-space: nowrap; }
.sort-mini .select { padding: 7px 10px; font-size: .82rem; }

/* ---- shared reporting period filter (Finance / Reports / Schedule) ---- */
.period-filter { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 8px 12px; margin-bottom: 16px; box-shadow: var(--shadow-sm); }
.pf-ico { display: inline-flex; align-items: center; color: var(--text-mute); line-height: 1; }
.pf-ico .ic { width: 15px; height: 15px; }
.pf-grans { display: inline-flex; gap: 2px; background: var(--bg-2); border-radius: 9px; padding: 3px; }
.pf-gran { background: none; border: 0; padding: 6px 12px; border-radius: 7px; font-size: .83rem; font-weight: 600; color: var(--text-mute); cursor: pointer; transition: all .12s; white-space: nowrap; }
.pf-gran:hover { color: var(--text); }
.pf-gran.on { background: var(--surface); color: var(--violet-2); box-shadow: var(--shadow-sm); }
.pf-step { display: inline-flex; align-items: center; gap: 4px; }
.pf-arrow { background: var(--bg-2); border: 1px solid var(--line); width: 30px; height: 30px; border-radius: 8px; cursor: pointer; font-size: 1.15rem; line-height: 1; color: var(--text-soft); display: grid; place-items: center; }
.pf-arrow:hover { background: var(--surface); color: var(--violet); border-color: var(--line-2); }
.pf-label { font-weight: 700; font-size: .9rem; min-width: 92px; text-align: center; }
.pf-custom { display: inline-flex; align-items: center; gap: 8px; }
.pf-custom .input { padding: 6px 9px; font-size: .82rem; }
@media (max-width: 560px){ .period-filter { gap: 8px; } .pf-grans { width: 100%; overflow-x: auto; scrollbar-width: none; } .pf-grans::-webkit-scrollbar { display: none; } .pf-label { min-width: 70px; } }
.list-count { font-size: .76rem; margin: 2px 0 8px; }
th.th-sort { cursor: pointer; user-select: none; transition: color .12s; }
th.th-sort:hover { color: var(--violet); }
th.th-sort.active { color: var(--violet); }
.eng-chip .avatar { width: 20px; height: 20px; font-size: .66rem; }
/* engineer-filter highlight on the calendar */
.dcal-chip.dim, .dcal-mine.dim { opacity: .22; filter: grayscale(.6); }
.dcal-chip.hl { box-shadow: 0 0 0 2px #fff, 0 0 0 4px currentColor; font-weight: 700; }
.dcal-mine.hl { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #6366f1; font-weight: 700; }
.eng-unassigned { display: inline-flex; align-items: center; gap: 5px; color: #fff; background: var(--danger); font-size: .76rem; font-weight: 700; padding: 4px 11px; border-radius: 100px; box-shadow: 0 0 0 0 rgba(220,38,38,.5); animation: pulseRed 1.8s infinite; }
.eng-unassigned::before { content: "⚠"; }
/* compact unassigned marker for kanban cards — just a pulsing red ⚠ (full text on hover) so it never overflows the card */
.unassigned-mini { display: inline-grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; background: var(--danger); color: #fff; font-size: .7rem; font-weight: 700; cursor: help; flex: none; box-shadow: 0 0 0 0 rgba(220,38,38,.5); animation: pulseRed 1.8s infinite; }
@keyframes pulseRed { 0% { box-shadow: 0 0 0 0 rgba(220,38,38,.45); } 70% { box-shadow: 0 0 0 7px rgba(220,38,38,0); } 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); } }
/* loud unassigned chip on the calendar */
.dcal-chip.unassigned { color: var(--danger); border: 1.5px dashed var(--danger); background: var(--danger-soft) !important; font-weight: 700; animation: pulseRed 1.8s infinite; }
.dcal-chip.unassigned:hover { background: #ffe4e4 !important; }
/* premium / non-standard bookings get a gold ring so engineers spot them at a glance */
.dcal-chip.premium { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--warning); }
/* badge used on schedule / overview rows */
.extras-badge { display: inline-block; margin: 0 0 0 2px; vertical-align: middle; white-space: nowrap; font-size: .68rem; font-weight: 800; color: var(--warning); background: linear-gradient(180deg,var(--warning-soft),var(--warning-soft)); border: 1px solid var(--warning); border-radius: 100px; padding: 2px 9px; letter-spacing: .01em; }
/* highlighted block inside the pre-session brief, next to the prep checklist */
.brief-extras { border: 1.5px solid var(--warning); background: linear-gradient(180deg,var(--warning-soft),var(--warning-soft)); border-radius: 12px; padding: 12px 14px; margin: 14px 0; }
.brief-extras .bx-head { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .92rem; color: var(--warning); margin-bottom: 8px; }
.brief-extras .bx-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.brief-extras .bx-chip { font-size: .78rem; font-weight: 700; color: #7c2d12; background: var(--surface); border: 1px solid var(--warning); border-radius: 8px; padding: 4px 10px; }
.brief-extras .bx-note { font-size: .8rem; color: var(--warning); line-height: 1.4; }

/* ---- Booking detail modal ---- */
.bk-badge { font-size: .72rem; font-weight: 700; text-transform: capitalize; padding: 3px 10px; border-radius: 100px; }
.bk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 14px 0; }
.bk-grid > div { display: flex; flex-direction: column; gap: 1px; }
.bk-k { font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); }
.bk-v { font-size: .9rem; color: var(--text); }
.bk-notes { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; font-size: .85rem; color: var(--text-soft); margin-bottom: 12px; }
/* session files — drag-drop uploader + Raw/Polished folders */
.files-sec { border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin: 14px 0; background: var(--bg-2); }
.files-head { display: flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .92rem; margin-bottom: 10px; }
.files-head .ic { width: 17px; height: 17px; color: var(--violet); }
.files-demo { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); background: var(--surface); border: 1px solid var(--line); padding: 3px 8px; border-radius: 100px; }

/* client file-delivery panel */
.deliver-box { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; padding: 14px; }
.deliver-box.err { color: var(--text-soft); font-size: .85rem; }
.deliver-loading { display: flex; align-items: center; gap: 7px; font-size: .85rem; padding: 6px 0; }
.deliver-loading .ic, .deliver-working .ic { width: 14px; height: 14px; }
.deliver-box .btn .ic { width: 14px; height: 14px; }
.deliver-pending { font-size: .85rem; margin: 11px 0 4px; }
.deliver-lbl { display: block; font-size: .78rem; font-weight: 600; margin: 12px 0 5px; }
.deliver-box textarea { min-height: 64px; font-size: .88rem; }
.deliver-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.deliver-working { display: flex; align-items: center; gap: 7px; color: var(--text-soft); font-size: .85rem; margin-top: 10px; }
.deliver-done { margin-top: 11px; padding: 11px 13px; background: var(--success-soft); border: 1px solid color-mix(in srgb, var(--success) 28%, transparent); border-radius: 10px; font-size: .88rem; }
.deliver-done > b { display: inline-flex; align-items: center; gap: 5px; color: var(--success); }
.deliver-done .ic { width: 14px; height: 14px; }
.deliver-map { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; }
.deliver-map > div { font-size: .84rem; }
.deliver-last { font-size: .78rem; margin: 11px 0 6px; }
.files-bts { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; }
.files-bts > summary { font-size: .82rem; color: var(--text-mute); cursor: pointer; font-weight: 600; list-style: revert; }
.dz-ic .ic { width: 18px; height: 18px; color: var(--violet); }
.dropzone { display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; border: 2px dashed var(--line-2); border-radius: 12px; padding: 18px 14px; background: var(--surface); color: var(--text-soft); transition: .15s; cursor: default; }
.dropzone.over { border-color: var(--violet); background: var(--accent-soft); transform: scale(1.01); }
.dropzone .dz-ic { font-size: 1.4rem; }
.dropzone b { font-size: .9rem; color: var(--text); }
.dropzone .dz-sub { font-size: .8rem; }
.dz-browse { background: none; border: 0; color: var(--violet); font-weight: 700; cursor: pointer; padding: 0; font-size: .8rem; text-decoration: underline; }
.files-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 12px 0 4px; }
.files-drive { font-size: .82rem; font-weight: 600; color: var(--violet); text-decoration: none; }
.folders { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.file-folder { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px; }
.file-folder.pol { border-color: var(--warning); background: linear-gradient(180deg,#fffdf7,#fff); }
.ff-head { font-size: .78rem; font-weight: 700; margin-bottom: 8px; }
.ff-empty { font-size: .76rem; color: var(--text-mute); padding: 10px 0; text-align: center; }
.file-grid { display: flex; flex-direction: column; gap: 7px; }
.file-card { display: flex; align-items: center; gap: 9px; }
.file-thumb { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 8px; overflow: hidden; background: var(--bg-2); display: flex; align-items: center; justify-content: center; }
.file-thumb img { width: 100%; height: 100%; object-fit: cover; }
.file-thumb .fi { font-size: 1.1rem; }
.file-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.file-meta b { font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-meta span { font-size: .7rem; color: var(--text-mute); }
.file-x { background: none; border: 0; color: var(--text-mute); cursor: pointer; font-size: .85rem; padding: 2px 4px; border-radius: 6px; }
.file-x:hover { background: var(--danger-soft); color: var(--danger); }
@media (max-width: 640px){ .folders { grid-template-columns: 1fr; } }

.dur-extra { font-size: .7rem; font-weight: 800; color: var(--warning); background: var(--warning-soft); border: 1px solid var(--warning); border-radius: 100px; padding: 1px 7px; margin-left: 4px; }
/* booking after-hours / rush acknowledgment */
.bk-notice { border-radius: 10px; padding: 12px 14px; font-size: .88rem; font-weight: 500; display: flex; gap: 9px; align-items: flex-start; line-height: 1.5; }
.bk-notice.red { color: var(--danger); background: var(--danger-soft); border: 1px solid var(--danger-soft); }
.bk-notice.amber { color: var(--warning); background: var(--warning-soft); border: 1px solid var(--warning-soft); }
.bk-notice b { font-weight: 700; }
.ack-box { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,.08); font-weight: 600; cursor: pointer; }
.ack-box input { margin-top: 2px; width: 16px; height: 16px; flex: 0 0 auto; }
.bk-notice.green { color: var(--success); background: var(--success-soft); border: 1px solid var(--success-soft); }
.bk-review-btn { background: var(--danger); color: #fff; border: 0; border-radius: 7px; padding: 4px 10px; font-weight: 700; font-size: .8rem; cursor: pointer; margin-left: 4px; }
.bk-review-btn:hover { background: var(--danger); }
.slot.afterhours { border-style: dashed; color: var(--warning); }
.slot.afterhours.selected { color: #fff; }
/* moon legend on the booking slot grid — subtle */
.slot-legend { margin-top: 10px; font-size: .74rem; color: var(--text-mute); line-height: 1.4; }
/* scheduling: short-notice banner */
.sched-banner { display: flex; align-items: flex-start; gap: 9px; font-size: .84rem; line-height: 1.5; border-radius: 10px; padding: 10px 13px; margin: 0 0 14px; }
.sched-banner.rush { background: var(--warning-soft); border: 1px solid var(--warning-soft); color: var(--warning); }
/* scheduling: after-hours drawer */
.sched-drawer { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); cursor: pointer; font-size: .9rem; color: var(--text); transition: .12s; }
.sched-drawer:hover { border-color: var(--violet); }
.sched-drawer.open { border-color: var(--violet); background: var(--accent-soft); }
.sched-drawer-r { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--warning); white-space: nowrap; }
.sched-drawer .chev { transition: transform .2s; color: var(--text-mute); font-weight: 400; }
.sched-drawer.open .chev { transform: rotate(180deg); }
/* collapsible after-hours drawer — pops open below the toggle */
.after-wrap { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .3s ease, opacity .22s ease; }
.after-wrap.open { max-height: 900px; opacity: 1; }
.after-inner { padding-top: 12px; }
.after-note { font-size: .78rem; color: var(--text-soft); margin: 0 0 8px; line-height: 1.45; }
/* collapsed exact-time toggle */
.ct-toggle { display: inline-block; margin-top: 10px; background: none; border: 0; color: var(--violet); font-weight: 600; font-size: .84rem; cursor: pointer; padding: 4px 0; }
.ct-toggle:hover { text-decoration: underline; }
/* custom exact start time (revealed) */
.custom-time { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; padding: 12px 14px; border: 1px dashed var(--line-2); border-radius: 11px; background: var(--bg-2); }
/* guests block (multiple) */
.guest-block { margin-top: 8px; border: 1px dashed var(--line-2); border-radius: 11px; padding: 12px 14px; background: var(--bg-2); }
.guest-head { font-size: .9rem; margin-bottom: 10px; line-height: 1.45; }
.guest-row { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; margin-bottom: 8px; }
.guest-row .field-row { margin-bottom: 8px; }
.guest-row .field-row:last-child { margin-bottom: 0; }
.guest-row .gr-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: center; }
.guest-x { width: 30px; height: 30px; border: 1px solid var(--line); background: var(--surface); border-radius: 8px; color: var(--text-mute); cursor: pointer; font-size: .8rem; }
.guest-x:hover { border-color: var(--danger); color: var(--danger); }
.park-chk.on { border-color: var(--violet); background: var(--accent-soft); }
/* TEST MODE badge */
.test-badge { position: fixed; bottom: 16px; left: 16px; z-index: 500; background: var(--text); color: #fff; border-radius: 12px; padding: 10px 14px; font-size: .8rem; font-weight: 800; box-shadow: var(--shadow-lg); max-width: 280px; line-height: 1.4; }
.test-badge span { display: block; font-weight: 500; font-size: .72rem; color: var(--line-2); margin-top: 2px; }
/* post-purchase upsell on the thank-you page */
.post-upsell { text-align: left; border: 1.5px solid var(--warning); background: linear-gradient(180deg,var(--warning-soft),#fff); border-radius: 14px; padding: 16px 18px; margin: 18px auto 0; max-width: 520px; }
.post-upsell .pu-top { font-size: 1rem; color: var(--warning); margin-bottom: 6px; }
.post-upsell p { font-size: .88rem; line-height: 1.55; color: var(--text-soft); margin: 0 0 12px; }
.post-upsell .hint { margin-top: 8px; color: var(--success); font-weight: 600; }
/* last-chance order bump on the pay step */
.last-chance { display: flex; align-items: flex-start; gap: 11px; border: 1.5px solid var(--warning); background: linear-gradient(180deg,var(--warning-soft),#fff); border-radius: 12px; padding: 12px 14px; margin: 4px 0 16px; cursor: pointer; }
.last-chance input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--warning); }
.last-chance .lc-body { flex: 1; min-width: 0; }
.last-chance .lc-top { display: flex; justify-content: space-between; gap: 10px; }
.last-chance .lc-top b { color: var(--warning); font-size: .92rem; }
.last-chance .lc-price { font-weight: 800; color: var(--warning); white-space: nowrap; }
.last-chance .lc-desc { display: block; font-size: .8rem; color: var(--text-soft); margin-top: 2px; line-height: 1.4; }
.custom-time input[type=time] { padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; font-size: .9rem; font-family: inherit; }
.ct-msg { flex-basis: 100%; font-size: .8rem; line-height: 1.4; }
.ct-msg.bad { color: var(--danger); font-weight: 600; }
/* after-hours / short-notice acknowledgment popup */
.bk-modal-overlay { position: fixed; inset: 0; background: rgba(17,20,28,.5); backdrop-filter: blur(4px); display: grid; place-items: center; z-index: 400; padding: 20px; }
.bk-modal { box-sizing: border-box; background: var(--surface); border-radius: 16px; max-width: 440px; width: 100%; padding: 24px; box-shadow: var(--shadow-lg); max-height: 88vh; overflow-y: auto; overflow-wrap: anywhere; }
.bk-modal h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.15rem; margin-bottom: 12px; line-height: 1.25; }
.bk-modal p { font-size: .9rem; line-height: 1.5; margin-bottom: 12px; color: var(--text); overflow-wrap: anywhere; }
.bk-modal-tip { background: var(--accent-soft); border-radius: 9px; padding: 10px 12px; font-size: .86rem !important; }
.bk-modal-fee { box-sizing: border-box; background: var(--warning-soft); border: 1px solid var(--warning-soft); border-radius: 10px; padding: 11px 13px; font-size: .9rem; display: flex; flex-direction: column; gap: 2px; margin-bottom: 4px; }
.bk-modal-fee b { font-family: 'Space Grotesk', sans-serif; font-size: 1.2rem; color: var(--warning); }
.bk-modal-fee small { color: var(--warning); font-size: .72rem; overflow-wrap: anywhere; }
.bk-modal-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.bk-modal-actions .btn { flex: 1 1 140px; white-space: normal; min-height: 44px; line-height: 1.25; padding: 10px 12px; }
/* studio hours configurator */
.hdays { display: flex; flex-direction: column; gap: 8px; }
.hday { display: grid; grid-template-columns: 78px 1fr auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.hday.off { background: var(--bg-2); opacity: .72; }
.hday-tog { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 5px 0; border-radius: 7px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-mute); cursor: pointer; }
.hday-tog.on { background: var(--success-soft); color: var(--success); border-color: var(--success-soft); }
.hday-name { font-weight: 600; font-size: .9rem; }
.hday-times { display: inline-flex; align-items: center; gap: 6px; }
.hday-times .input { padding: 6px 8px; font-size: .82rem; width: auto; }
.hd-dash { color: var(--text-mute); }
.hchip-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); margin-bottom: 6px; font-size: .84rem; }
.hchip-x { background: none; border: 0; color: var(--text-mute); cursor: pointer; }
.hchip-x:hover { color: var(--danger); }
.hovr-add { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.hovr-add .hovr-t { max-width: 110px; }
.hovr-closed { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; white-space: nowrap; }
.fee-card { border: 1.5px solid var(--warning); background: linear-gradient(180deg,var(--warning-soft),#fff); }
.fee-toggle { display: flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; margin-bottom: 10px; cursor: pointer; }
@media (max-width: 560px){ .hday { grid-template-columns: 70px 1fr; } .hday-times { grid-column: 1 / -1; } }
/* estimates / agreements */
.est-badge { font-size: .68rem; font-weight: 700; padding: 3px 9px; border-radius: 100px; white-space: nowrap; }
.est-body { padding-top: 4px; }
.est-ai { border: 1.5px solid var(--violet-soft); background: var(--accent-soft); border-radius: 11px; padding: 12px; margin: 6px 0; }
.est-ai-head { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: .88rem; color: var(--violet-2); margin-bottom: 8px; }
.est-ai .textarea { min-height: 64px; background: var(--surface); }
.est-lines { display: flex; flex-direction: column; gap: 6px; }
.est-line { display: grid; grid-template-columns: 1fr 70px 80px 70px 24px; gap: 6px; align-items: center; }
.est-line .input { padding: 8px 9px; font-size: .84rem; }
.est-line .el-amt { font-size: .84rem; font-weight: 700; text-align: right; }
.el-x { background: none; border: 0; color: var(--text-mute); cursor: pointer; font-size: .8rem; }
.el-x:hover { color: var(--danger); }
.est-totals { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-top: 14px; flex-wrap: wrap; }
.est-tot { text-align: right; display: flex; flex-direction: column; gap: 2px; }
.est-tot b { font-family: 'Space Grotesk', sans-serif; font-size: 1.3rem; margin-left: 6px; }
.est-tot .muted b { font-size: .95rem; color: var(--text); }
.est-actions { display: flex; gap: 10px; align-items: center; margin-top: 18px; }
.est-actions .btn-primary { margin-left: auto; }
@media (max-width: 560px){ .est-line { grid-template-columns: 1fr 56px 64px 60px 20px; } }
/* editing time & billing */
.btn-xs { padding: 3px 8px !important; font-size: .72rem !important; }
.pj-billing { border: 1px solid var(--line); border-radius: 12px; padding: 13px; background: var(--bg-2); }
.pjb-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pjb-total { display: flex; flex-direction: column; }
.pjb-total .pjb-lbl { font-size: .72rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.pjb-total b { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; line-height: 1.1; }
.pjb-total small { font-size: .76rem; color: var(--text-mute); margin-top: 1px; }
.pjb-running { display: flex; align-items: center; gap: 7px; margin-top: 10px; padding: 8px 11px; background: var(--danger-soft); border: 1px solid var(--danger-soft); border-radius: 9px; font-size: .82rem; }
.pjb-running b { font-family: 'Space Grotesk', sans-serif; font-variant-numeric: tabular-nums; }
.rec-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--danger); display: inline-block; animation: recPulse 1.3s infinite; }
@keyframes recPulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.pjb-log { display: flex; flex-direction: column; gap: 5px; margin: 12px 0 8px; max-height: 180px; overflow-y: auto; }
.te-row { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; }
.te-dur { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .86rem; min-width: 52px; }
.te-meta { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.te-src { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; width: fit-content; padding: 1px 6px; border-radius: 100px; }
.te-src.te-timer { background: var(--success-soft); color: var(--success); }
.te-src.te-manual { background: var(--warning-soft); color: var(--warning); }
.te-who { font-size: .72rem; color: var(--text-mute); }
.te-x { background: none; border: 0; color: var(--text-mute); cursor: pointer; font-size: .78rem; }
.te-x:hover { color: var(--danger); }
.te-empty { font-size: .78rem; color: var(--text-mute); text-align: center; padding: 12px 0; }
.pjb-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pjb-transp { font-size: .74rem; color: var(--text-soft); line-height: 1.45; margin-top: 10px; padding-top: 9px; border-top: 1px dashed var(--line-2); }
.kcard-hrs { font-size: .72rem; color: var(--text-soft); margin-top: 4px; display: flex; align-items: center; gap: 5px; }
.kcard-hrs b { color: var(--success); }
/* suggested upsells in the brief */
.brief-upsell { border: 1.5px solid var(--success); background: linear-gradient(180deg,#f0fdf4,#fff); border-radius: 12px; padding: 12px 14px; margin: 12px 0; }
.brief-upsell .bu-head { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .92rem; color: var(--success); margin-bottom: 8px; }
.brief-upsell .bu-when { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--success); margin: 10px 0 6px; }
.up-row { display: flex; align-items: flex-start; gap: 10px; padding: 8px 10px; border: 1px solid var(--success-soft); border-radius: 9px; background: var(--surface); margin-bottom: 6px; }
.up-row.up-big { border-color: var(--success); box-shadow: 0 0 0 1.5px var(--success-soft); }
.up-main { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.up-main b { font-size: .85rem; color: #14532d; }
.up-main span { font-size: .78rem; color: var(--text-soft); line-height: 1.4; }
.up-like { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 3px 7px; border-radius: 100px; white-space: nowrap; height: fit-content; }
.up-like.up-high { background: var(--success); color: #fff; }
.up-like.up-med { background: #d1fae5; color: var(--success); }
.up-like.up-low { background: var(--bg-2); color: var(--text-mute); }
/* simplified, scriptless sell rows: name · price · likelihood on one tidy line */
.bu-rows { display: flex; flex-direction: column; gap: 5px; }
.up-row { display: flex; align-items: center; gap: 10px; padding: 7px 11px; border: 1px solid var(--success-soft); border-radius: 9px; background: var(--surface); }
.up-name { flex: 1; font-size: .86rem; color: #14532d; }
.up-price { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .9rem; color: var(--success); }
.up-like { font-size: .8rem; width: 22px; text-align: center; }

/* ===== Pre-session brief: prep checklist up top + calmer layout ===== */
.brief-prep { border: 1.5px solid var(--violet); background: linear-gradient(180deg,var(--violet-soft),#fff); border-radius: 12px; padding: 11px 13px; margin: 12px 0; }
.brief-prep .bp-head { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .92rem; color: var(--violet-2); margin-bottom: 8px; }
.bp-item { display: flex; align-items: flex-start; gap: 9px; padding: 5px 0; font-size: .86rem; line-height: 1.4; cursor: pointer; }
.bp-item input { margin-top: 2px; width: 16px; height: 16px; accent-color: var(--violet); flex: none; cursor: pointer; }
.bp-item.done span { text-decoration: line-through; color: var(--text-mute); }
.brief-datacheck { margin: 10px 0; border: 1px solid var(--warning-soft); background: var(--warning-soft); border-radius: 10px; padding: 10px 12px; }
.brief-datacheck .bdc-head { font-weight: 700; font-size: .82rem; color: var(--warning); margin-bottom: 6px; }
.bdc-row { display: flex; gap: 7px; align-items: flex-start; font-size: .82rem; margin-top: 4px; color: var(--text-soft); }
.bdc-row.warn { color: #7c2d12; }
.brief-more { margin: 12px 0 4px; border-top: 1px solid var(--line); padding-top: 8px; }
.brief-more > summary { cursor: pointer; font-weight: 700; font-size: .82rem; color: var(--text-soft); list-style: none; padding: 4px 0; }
.brief-more > summary::-webkit-details-marker { display: none; }
.brief-more > summary:hover { color: var(--violet-2); }
.brief-more-body { padding-top: 6px; }
.brief-srclink { font-size: .76rem; background: var(--bg-3); border-radius: 6px; padding: 3px 8px; color: var(--violet-2); text-decoration: none; }
/* commissions */
.comm-hero { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 6px; }
.comm-stat { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 2px; }
.comm-stat span { font-size: .76rem; color: var(--text-mute); }
.comm-stat b { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; color: var(--success); }
.comm-stat small { font-size: .72rem; color: var(--text-mute); }
@media (max-width: 640px){ .comm-hero { grid-template-columns: 1fr; } }
/* editor brief "watch first" callout */
.brief-watch { border: 1.5px solid var(--violet); background: var(--accent-soft); border-radius: 11px; padding: 11px 13px; margin: 12px 0; }
.brief-watch .bw-head { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .88rem; color: var(--violet-2); margin-bottom: 4px; }
.brief-watch .bw-note { font-size: .82rem; line-height: 1.45; color: var(--text); }
.bk-contact { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 2px; }
.bk-cbtn { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; font-weight: 600; padding: 6px 12px; border-radius: 100px; border: 1px solid var(--line); background: var(--surface); color: var(--text); text-decoration: none; transition: .12s; }
.bk-cbtn:hover { border-color: var(--violet); background: var(--accent-soft); color: var(--violet); }
.bk-cnum { font-size: .8rem; color: var(--text-mute); }
.bk-guests { font-size: .82rem; color: var(--text-soft); margin: 8px 0 2px; line-height: 1.5; background: var(--accent-soft); border-radius: 9px; padding: 8px 11px; }
.bk-guests b { color: var(--text); }
.bk-park { font-size: .82rem; color: var(--text-soft); margin: 6px 0 2px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 9px; padding: 7px 11px; }
.bk-park b { color: var(--info); }
/* booking flow: parking selector */
.park-block { margin-top: 8px; border: 1px dashed var(--line-2); border-radius: 11px; padding: 12px 14px; background: var(--bg-2); }
.park-head { font-size: .9rem; margin-bottom: 9px; }
.park-opts { display: flex; gap: 10px; flex-wrap: wrap; }
.park-chk { display: inline-flex; align-items: center; gap: 7px; font-size: .88rem; font-weight: 600; padding: 8px 13px; border: 1px solid var(--line); border-radius: 100px; background: var(--surface); cursor: pointer; }
.park-chk input { width: 15px; height: 15px; accent-color: var(--violet); }
.park-chk:has(input:checked) { border-color: var(--violet); background: var(--accent-soft); }
.bk-drive { display: flex; align-items: center; gap: 8px; background: #eef6ff; border: 1px solid #cfe3ff; color: var(--info); border-radius: 10px; padding: 10px 12px; font-size: .85rem; font-weight: 600; text-decoration: none; margin-bottom: 14px; }
.bk-drive:hover { background: #e0eeff; }
.bk-drive .bk-open { margin-left: auto; opacity: .8; }
.bk-seq { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--bg-2); }
.bk-seq-head { font-weight: 700; font-size: .86rem; margin-bottom: 8px; }
.bk-seq-row { display: flex; align-items: center; gap: 10px; padding: 5px 0; border-top: 1px solid var(--line); }
.bk-seq-row:first-of-type { border-top: none; }
.bk-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.bk-seq-label { display: flex; flex-direction: column; font-size: .84rem; flex: 1; }
.bk-seq-sub { font-size: .7rem; color: var(--text-mute); }
.bk-seq-status { font-size: .68rem; font-weight: 700; text-transform: uppercase; padding: 2px 8px; border-radius: 100px; }
.s-sent { background: var(--success-soft); color: var(--success); } .s-scheduled { background: var(--violet-soft); color: var(--violet-2); }
.s-pending { background: var(--warning-soft); color: var(--warning); } .s-skipped { background: var(--bg-3); color: var(--text-mute); }

/* ---- Automations view ---- */
.auto-row { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--line); }
.auto-row:first-of-type { border-top: none; }
.auto-main { flex: 1; min-width: 0; }
.auto-meta { font-size: .74rem; color: var(--text-mute); }
.auto-body { font-size: .85rem; color: var(--text-soft); margin-top: 5px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 9px; padding: 8px 11px; }
.auto-actions { display: flex; flex-direction: column; gap: 6px; flex: none; }
.auto-mini { display: flex; align-items: center; gap: 9px; padding: 6px 0; border-top: 1px solid var(--line); font-size: .82rem; }
.auto-mini:first-of-type { border-top: none; }
.am-name { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 130px; }
.am-tp { color: var(--text-soft); flex: 1; }
.am-when { color: var(--text-mute); font-size: .76rem; white-space: nowrap; }
@media (max-width: 640px){ .bk-grid { grid-template-columns: 1fr; } .auto-row { flex-direction: column; } .auto-actions { flex-direction: row; } }

/* ---- clickable name/avatar affordance ---- */
.lnk { cursor: pointer; transition: color .12s, filter .12s; }
.emp-mini { cursor: pointer; display: inline-flex; transition: transform .12s; }
.emp-mini:hover { transform: scale(1.15); }
.lnk:hover { color: var(--violet); filter: brightness(1.05); text-decoration: none; }
b.lnk:hover, .bk-v.lnk:hover { text-decoration: underline; }

/* ---- Client 360 + employee cards ---- */
/* client record rendered as a full page (not a modal) */
.client-page { background: var(--bg-1, #fff); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow); max-width: 1000px; }
@media (max-width: 760px){ .client-page { padding: 16px 14px; } }
.card360-head { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
.c360-av { width: 52px; height: 52px; border-radius: 14px; background: var(--grad); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; flex: none; }
.c360-tag { font-size: .72rem; background: var(--bg-3); border-radius: 100px; padding: 2px 10px; color: var(--text-soft); }
.c360-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.c360-stats > div { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 10px 8px; text-align: center; }
.c360-stats b { display: block; font-family: var(--font-display); font-size: 1.12rem; }
.c360-stats b.bal-due { color: var(--danger); }
.c360-stats span { font-size: .66rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.c360-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.c360-sec { font-weight: 700; font-size: .82rem; margin-bottom: 7px; }
.c360-row { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 9px; cursor: pointer; transition: background .12s; }
.c360-row:hover { background: var(--bg-2); }
.c360-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.c360-rmain { display: flex; flex-direction: column; font-size: .84rem; line-height: 1.25; min-width: 0; }
.c360-rsub { font-size: .7rem; color: var(--text-mute); }
.c360-empty { font-size: .8rem; color: var(--text-mute); padding: 4px 8px; }
.c360-call { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 9px; }
.c360-call .c360-rsub { white-space: normal; }
.c360-msg { font-size: .78rem; padding: 6px 9px; border-radius: 9px; background: var(--bg-2); margin-bottom: 5px; }
.c360-msg.out { background: var(--accent-soft); }
.c360-msg b { font-size: .72rem; }
.c360-pay { display: flex; justify-content: space-between; font-size: .8rem; padding: 4px 2px; border-bottom: 1px dashed var(--line); }
.c360-paytot { font-weight: 700; border-bottom: none; border-top: 2px solid var(--line); margin-top: 3px; padding-top: 6px; }
@media (max-width: 640px){ .c360-stats { grid-template-columns: repeat(2,1fr); } .c360-cols { grid-template-columns: 1fr; } }

/* ---- autocomplete ---- */
.ac-list { position: relative; z-index: 30; background: var(--surface); border-radius: 10px; box-shadow: var(--shadow); margin-top: 4px; overflow: hidden; }
.ac-list:empty { display: none; }
.ac-item { display: flex; flex-direction: column; padding: 8px 12px; cursor: pointer; border-bottom: 1px solid var(--line); }
.ac-item:last-child { border-bottom: none; }
.ac-item:hover { background: var(--accent-soft); }
.ac-item b { font-size: .86rem; } .ac-item span { font-size: .73rem; color: var(--text-mute); }
.merge-prev { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 14px; font-size: .9rem; margin-top: 12px; }
.merge-danger { background: var(--danger-soft); border: 1.5px solid var(--danger-soft); border-radius: 12px; padding: 16px; margin-top: 14px; }
.merge-danger .md-title { color: var(--danger); font-weight: 800; font-family: var(--font-display); margin-bottom: 8px; }
.merge-danger p { font-size: .86rem; color: var(--danger); line-height: 1.45; }
.merge-danger .chk-inline { color: var(--danger); font-weight: 600; }

/* ---- changelog ---- */
.changelog { display: flex; flex-direction: column; gap: 16px; max-width: 760px; }
.cl-entry { display: grid; grid-template-columns: 110px 1fr; gap: 14px; }
.cl-date { font-size: .8rem; color: var(--text-mute); font-weight: 600; padding-top: 14px; }
.cl-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); }
.cl-card b { font-family: var(--font-display); font-size: 1rem; }
.cl-list { margin: 10px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.cl-list li { font-size: .86rem; color: var(--text-soft); line-height: 1.4; }
@media (max-width: 640px){ .cl-entry { grid-template-columns: 1fr; gap: 4px; } .cl-date { padding-top: 0; } }
.cl-time { font-size: .72rem; color: var(--text-mute); font-weight: 500; }

/* ---- toggle switch ---- */
.switch { position: relative; display: inline-block; width: 42px; height: 24px; flex: none; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .sl { position: absolute; inset: 0; background: var(--bg-3); border-radius: 100px; transition: .2s; cursor: pointer; }
.switch .sl::before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; top: 3px; background: var(--surface); border-radius: 50%; transition: .2s; box-shadow: var(--shadow-sm); }
.switch input:checked + .sl { background: var(--violet); }
.switch input:checked + .sl::before { transform: translateX(18px); }

/* ---- automation campaigns (scannable list, ActiveCampaign/Klaviyo style) ---- */
.select.sm { width: auto; padding: 5px 8px; font-size: .82rem; }

/* ===== modern automations: stat strip, journey timeline, audience tracks ===== */
.auto-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 18px; }
.auto-stat { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 15px 16px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 3px; }
.auto-stat .as-n { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.7rem; line-height: 1; }
.auto-stat .as-n small { font-size: .9rem; color: var(--text-mute); font-weight: 500; }
.auto-stat .as-l { font-size: .78rem; color: var(--text-mute); }
.auto-stat.live { border-color: var(--violet); background: linear-gradient(180deg,var(--violet-soft),#fff); }
.auto-stat.live .as-n { color: var(--violet-2); }
.auto-stat.fail { border-color: var(--danger); background: linear-gradient(180deg,var(--danger-soft),#fff); }
.auto-stat.fail .as-n { color: var(--danger); }

.auto-journey-card { background: linear-gradient(135deg,var(--text),#1e1b4b); border-radius: 16px; padding: 18px 20px; margin-bottom: 18px; box-shadow: var(--shadow); }
.ajc-head { color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1rem; margin-bottom: 16px; }
.ajc-head .muted { color: #a5b4fc !important; font-weight: 400; font-size: .82rem; }
.auto-journey { display: flex; align-items: flex-start; overflow-x: auto; padding-bottom: 6px; gap: 0; scrollbar-width: thin; }
.aj-step { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 84px; flex: none; }
.aj-ic { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.1); border: 1.5px solid rgba(165,180,252,.5); display: grid; place-items: center; font-size: 1.25rem; margin-bottom: 7px; }
.aj-t { color: #fff; font-size: .8rem; font-weight: 600; line-height: 1.2; }
.aj-sub { color: #a5b4fc; font-size: .64rem; line-height: 1.3; margin-top: 2px; }
.aj-line { flex: 1; min-width: 18px; height: 2px; background: linear-gradient(90deg,rgba(165,180,252,.6),rgba(165,180,252,.25)); margin-top: 23px; }

.auto-tracks { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.auto-track { background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--tc); border-radius: 13px; padding: 14px 16px; box-shadow: var(--shadow-sm); }
.auto-track .at-head { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .95rem; margin-bottom: 9px; }
.at-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.at-toggle { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); font-size: .84rem; }
.at-toggle:first-of-type { border-top: 0; }
.at-list li { font-size: .82rem; color: var(--text-soft); line-height: 1.4; padding-left: 18px; position: relative; }
.at-list li::before { content: "✓"; position: absolute; left: 0; color: var(--tc); font-weight: 700; }
@media (max-width: 560px){ .auto-journey-card { padding: 14px; } }
.quiet-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 11px 16px; box-shadow: var(--shadow-sm); margin-bottom: 16px; font-size: .88rem; }
.status-pill { font-size: .66rem; font-weight: 700; padding: 2px 8px; border-radius: 100px; vertical-align: middle; margin-left: 4px; }
.status-pill.live { background: var(--success-soft); color: var(--success); }
.status-pill.paused { background: var(--bg-3); color: var(--text-mute); }
.camp-list { display: flex; flex-direction: column; gap: 9px; }
.camp2 { background: var(--surface); border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-sm); transition: border-color .15s, box-shadow .15s; overflow: hidden; }
.camp2.on { border-left: 3px solid var(--success); }
.camp2.off { border-left: 3px solid var(--line-2); background: var(--bg-2); }
.camp2.off .camp2-emoji, .camp2.off .camp2-name { opacity: .65; }
.camp2:hover { box-shadow: var(--shadow); }
.camp2-row { display: flex; align-items: center; gap: 14px; padding: 13px 16px; cursor: pointer; }
.camp2-emoji { font-size: 1.45rem; flex: none; }
.camp2-main { flex: 1; min-width: 0; }
.camp2-name { font-family: var(--font-display); font-weight: 600; font-size: .95rem; }
.camp2-trig { font-size: .76rem; color: var(--text-mute); margin-top: 2px; }
.camp2-flow { display: flex; align-items: center; gap: 0; flex: none; }
.camp2-flow .fdot { width: 8px; height: 8px; border-radius: 50%; background: var(--violet); flex: none; }
.camp2.off .camp2-flow .fdot { background: var(--line-2); }
.camp2-flow .fline { width: 12px; height: 2px; background: #e9e4fb; flex: none; }
.camp2.off .camp2-flow .fline { background: var(--line); }
.camp2-stat { text-align: center; flex: none; min-width: 46px; }
.camp2-stat b { display: block; font-family: var(--font-display); font-size: 1.05rem; line-height: 1; }
.camp2-stat span { font-size: .64rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.camp2-chev { color: var(--text-mute); font-size: .9rem; flex: none; width: 14px; text-align: center; }
.camp2-detail { padding: 4px 16px 16px 54px; border-top: 1px solid var(--line); }
.camp2-desc { font-size: .84rem; color: var(--text-soft); margin: 12px 0; line-height: 1.45; }
.camp2-steps { display: flex; flex-direction: column; gap: 7px; margin-bottom: 12px; }
.camp2-step { display: flex; align-items: flex-start; gap: 10px; font-size: .82rem; color: var(--text-soft); }
.camp2-snum { flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--accent-soft); color: var(--violet); font-size: .7rem; font-weight: 700; display: grid; place-items: center; }
.camp2-stop { font-size: .77rem; color: var(--text-mute); background: var(--bg-2); border-radius: 8px; padding: 8px 11px; }
@media (max-width: 640px){ .camp2-flow, .camp2-stat { display: none; } .camp2-detail { padding-left: 16px; } }
.act-row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); font-size: .82rem; }
.act-row:first-of-type { border-top: none; }
.act-emoji { flex: none; }
.act-name { font-weight: 600; min-width: 0; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.act-tp { flex: 1; color: var(--text-soft); min-width: 0; }
.act-ch { font-size: .68rem; color: var(--text-mute); background: var(--bg-3); border-radius: 100px; padding: 1px 8px; }
.act-when { font-size: .74rem; color: var(--text-mute); white-space: nowrap; }
@media (max-width: 600px){ .act-tp { display: none; } }

/* ---- users / permissions ---- */
.user-row { display: flex; align-items: center; gap: 12px; padding: 13px 4px; border-top: 1px solid var(--line); }
.user-row:first-of-type { border-top: none; }
.user-row .urole { font-size: .72rem; padding: 2px 9px; border-radius: 100px; background: var(--bg-3); color: var(--text-soft); text-transform: capitalize; }
.perm-grid { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.perm-tag { font-size: .72rem; padding: 3px 9px; border-radius: 100px; border: 1px solid var(--line); cursor: pointer; user-select: none; }
.perm-tag.on { background: var(--accent-soft); border-color: var(--violet); color: var(--violet); }
.perm-tag.locked { cursor: default; opacity: .8; }

/* =========================================================
   MOBILE POLISH PASS (#11) — phone-grade layout for the dashboard
   ========================================================= */
@media (max-width: 760px){
  th, td { padding: 10px 12px; font-size: .84rem; }   /* tighter table cells so more fits before horizontal scroll */
  .admin-main { padding: 16px 13px; }
  .admin-head { margin-bottom: 18px; }
  .kpi { padding: 15px; }
  .kpi b { font-size: 1.55rem; }
}
@media (max-width: 560px){
  /* Team rows stack vertically instead of cramming name + perms + buttons across one line */
  .user-row { flex-direction: column; align-items: stretch; gap: 9px; padding: 14px 2px; }
  .user-row > .flex.items-center { min-width: 0 !important; }
  .user-row .flex.gap.items-center { flex-wrap: wrap; }
  .perm-grid { margin-top: 4px; }
  /* modals breathe edge-to-edge on small screens */
  .modal-overlay { padding: 10px; }
  .modal { padding: 20px 16px; max-height: 94vh; border-radius: 16px; }
  /* single-column tiles + horizontally scrollable filter chips (no ugly 3-row wrap) */
  .app-grid { grid-template-columns: 1fr; }
  .seg-row { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; scrollbar-width: none; }
  .seg-row::-webkit-scrollbar { display: none; }
  .seg-chip { flex: none; }
  /* the sub-tab bar (Team etc.) scrolls instead of wrapping */
  .subtabs { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .subtabs::-webkit-scrollbar { display: none; }
  .subtab { white-space: nowrap; flex: none; }
  /* action button drops under the page title with a comfy tap target */
  .admin-head { padding-right: 0; }
  .admin-head .btn { flex: none; }
}

/* ---- integration app tiles ---- */
.app-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.app-tile { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; }
.app-tile.on { border-color: var(--success-soft); background: #f6fef9; }
.app-top { display: flex; align-items: center; gap: 11px; margin-bottom: 9px; }
.app-emoji { font-size: 1.6rem; }
.app-top b { font-family: var(--font-display); font-size: 1rem; }
.app-cat { font-size: .72rem; color: var(--text-mute); }
.app-live { font-size: .72rem; font-weight: 700; color: var(--success); white-space: nowrap; }
.app-live.demo { color: var(--warning); }
.app-demo-tag { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); background: var(--bg-2); border: 1px solid var(--line); padding: 2px 6px; border-radius: 100px; white-space: nowrap; }
.app-desc { font-size: .82rem; color: var(--text-soft); line-height: 1.4; margin-bottom: 12px; flex: 1; }

/* ---- agency console ---- */
.agency-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.agency-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); }
.agency-card.is-active { border-color: var(--violet); box-shadow: 0 0 0 1px var(--violet); }
.ag-top { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.ag-mark { width: 40px; height: 40px; border-radius: 11px; color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; flex: none; }
.ag-top b { font-family: var(--font-display); font-size: 1rem; display: block; }
.ag-here { font-size: .68rem; color: var(--violet-2); font-weight: 700; }
.ag-stats { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .8rem; color: var(--text-mute); margin-bottom: 14px; }
.ag-stats b { color: var(--text); }
.ag-actions { display: flex; gap: 8px; }
.ag-actions .btn-primary { flex: 1; }
.ag-del { flex: none; }

/* ---- studio switcher ---- */
.studio-switch { position: relative; margin: 0 4px 12px; }
.ss-btn { width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px 11px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; font-size: .86rem; font-weight: 600; }
.ss-btn:hover { border-color: var(--line-2); }
.ss-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.ss-name { flex: 1; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-car { color: var(--text-mute); font-size: .8rem; }
.ss-menu { position: absolute; left: 0; right: 0; top: 100%; margin-top: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); z-index: 90; padding: 5px; }
.ss-lbl { font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-mute); font-weight: 700; padding: 6px 9px 3px; }
.ss-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 9px; border: none; background: none; border-radius: 8px; cursor: pointer; font-size: .85rem; text-align: left; text-decoration: none; color: var(--text); }
.ss-item:hover { background: var(--bg-2); }
.ss-item.on { background: var(--accent-soft); }
.ss-iname { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-ck { color: var(--violet); }
.ss-del { font-style: normal; color: var(--text-mute); opacity: .55; padding: 0 3px; }
.ss-del:hover { color: var(--danger); opacity: 1; }
.ss-new { color: var(--violet-2); font-weight: 600; border-top: 1px solid var(--line); border-radius: 0; margin-top: 4px; }

/* ---- nav groups + global search ---- */
.nav-group { display: flex; align-items: center; gap: 8px; font-size: .68rem; text-transform: uppercase; letter-spacing: .09em; color: var(--violet); font-weight: 800; padding: 7px 8px; margin: 16px 0 4px; }
.nav-group::after { content: ""; flex: 1; height: 1px; background: linear-gradient(to right, var(--line-2), transparent); }
.nav-group:first-child { margin-top: 2px; }
.gsearch { position: relative; padding: 0 4px 10px; }
.gsearch input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 8px 11px; font-size: .84rem; background: var(--bg-2); }
.gsearch input:focus { outline: none; border-color: var(--violet); background: var(--surface); }
.gsearch-results { position: absolute; left: 4px; right: 4px; top: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); z-index: 80; max-height: 60vh; overflow-y: auto; display: none; }
.gsearch-results.show { display: block; }
.gs-sec { font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-mute); font-weight: 700; padding: 8px 12px 3px; }
.gs-item { display: flex; flex-direction: column; padding: 7px 12px; cursor: pointer; }
.gs-item:hover { background: var(--accent-soft); }
.gs-item b { font-size: .84rem; } .gs-item span { font-size: .72rem; color: var(--text-mute); }
.gs-empty { padding: 12px; font-size: .82rem; color: var(--text-mute); }

/* ---- onboarding / launch wizard ---- */
.launch-body { background: var(--grad-soft); min-height: 100vh; }
.launch-wrap { max-width: 720px; margin: 0 auto; padding: clamp(24px, 5vw, 56px) 20px 60px; }
.launch-head { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.lh-mark { width: 52px; height: 52px; border-radius: 14px; background: var(--grad); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; flex: none; }
.launch-head h1 { font-size: clamp(1.5rem, 4vw, 2rem); }
.launch-head p { font-size: .9rem; margin-top: 4px; }
.launch-steps { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.lstep-pill { display: flex; align-items: center; gap: 7px; font-size: .82rem; color: var(--text-mute); padding: 6px 12px 6px 6px; border-radius: 100px; background: var(--surface); border: 1px solid var(--line); cursor: pointer; }
.lstep-pill .n { width: 22px; height: 22px; border-radius: 50%; background: var(--bg-3); color: var(--text-mute); display: grid; place-items: center; font-size: .74rem; font-weight: 700; }
.lstep-pill.active { color: var(--violet-2); border-color: var(--violet); }
.lstep-pill.active .n, .lstep-pill.done .n { background: var(--grad); color: #fff; }
.lstep-pill.done { color: var(--text-soft); }
.launch-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: clamp(20px, 4vw, 34px); }
.lstep h2 { font-size: 1.15rem; margin-bottom: 18px; }
.input.err { border-color: var(--danger); }
.team-row { display: grid; grid-template-columns: 1fr 1.2fr auto auto; gap: 8px; margin-bottom: 8px; align-items: center; }
.tr-del { background: none; border: none; color: var(--text-mute); cursor: pointer; font-size: 1rem; }
.tr-del:hover { color: var(--danger); }
.launch-nav { display: flex; align-items: center; gap: 10px; margin-top: 26px; }
.launch-nav .btn-primary { margin-left: auto; }
.launch-foot { text-align: center; font-size: .84rem; margin-top: 20px; }
.review-box { border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: var(--bg-2); }
.rv-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.rv-mark { width: 44px; height: 44px; border-radius: 12px; color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; flex: none; }
.rv-brand b { font-family: var(--font-display); font-size: 1.1rem; }
.rv-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.rv-grid > div { display: flex; flex-direction: column; }
.rv-grid span { font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); }
.rv-grid b { font-size: .92rem; display: flex; align-items: center; gap: 6px; }
.rv-dot { width: 12px; height: 12px; border-radius: 50%; }
.rv-team { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px; }
.snapshot-note { margin-top: 16px; font-size: .84rem; color: var(--text-soft); background: var(--accent-soft); border-radius: 10px; padding: 11px 14px; line-height: 1.5; }
@media (max-width: 560px){ .team-row { grid-template-columns: 1fr 1fr; } .team-row .tr-role { grid-column: 1 / 2; } .rv-grid { grid-template-columns: 1fr; } }

/* ---- branding / white-label ---- */
.color-input { width: 46px; height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 2px; cursor: pointer; background: var(--surface); }
.swatches { display: flex; flex-wrap: wrap; gap: 6px; }
.swatch { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); cursor: pointer; transition: transform .12s; }
.swatch:hover { transform: scale(1.15); }
.brand-preview { position: sticky; top: 18px; }
.bp-bar { display: flex; align-items: center; gap: 11px; }
.bp-mark { width: 40px; height: 40px; border-radius: 11px; background: var(--grad); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; flex: none; }
.bp-bar b { font-family: var(--font-display); font-size: 1.2rem; }
.bp-tag { font-size: .86rem; color: var(--text-soft); margin-top: 8px; }
.bp-chip { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--violet-2); background: var(--accent-soft); padding: 6px 13px; border-radius: 100px; }

/* ---- rush sessions box ---- */
.rush-box { border: 1px solid var(--danger-soft); background: var(--surface); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); margin-bottom: 18px; }
.rush-head { display: flex; align-items: center; gap: 11px; background: linear-gradient(135deg, var(--danger-soft), var(--danger-soft)); padding: 13px 16px; border-bottom: 1px solid var(--danger-soft); }
.rush-ic { display: inline-flex; color: var(--danger); } .rush-ic .ic { width: 22px; height: 22px; }
.rush-head b { color: var(--danger); font-family: var(--font-display); display: block; }
.rush-head span { font-size: .8rem; color: #c2554f; }
.rush-list { display: flex; flex-direction: column; }
.rush-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--line); }
.rush-row:first-child { border-top: none; }
.rush-info { display: flex; flex-direction: column; min-width: 0; }
.rush-info b { font-size: .92rem; }
.rush-info span { font-size: .8rem; color: var(--text-mute); }
.rush-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.rush-eng { min-width: 150px; }
.rush-confirm { font-size: .84rem; font-weight: 600; color: var(--text-soft); }
.rush-none { font-size: .82rem; color: var(--text-mute); font-style: italic; }
@media (max-width: 560px){ .rush-row { align-items: stretch; } .rush-actions { width: 100%; } .rush-eng { flex: 1; } }

/* ---- welcome modal ---- */
.welcome-hero { text-align: center; margin-bottom: 16px; }
.w-mark { width: 54px; height: 54px; border-radius: 15px; color: #fff; display: inline-grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 1.4rem; }
.welcome-list { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.wl-row { display: flex; gap: 11px; align-items: flex-start; padding: 7px 10px; border-radius: 9px; font-size: .88rem; color: var(--text-soft); }
.wl-row:hover { background: var(--bg-2); }
.wl-ic { font-size: 1.1rem; flex: none; }
.wl-row b { color: var(--text); }

/* first-open page spotlights */
.modal.spotlight { max-width: 440px; }
.spot-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.spot-head h2 { font-size: 1.4rem; margin: 0; }
.spot-ic { width: 46px; height: 46px; border-radius: 13px; background: var(--accent-soft); display: grid; place-items: center; color: var(--violet); flex: none; }
.spot-ic .ic { width: 23px; height: 23px; }
.spot-intro { color: var(--text-soft); font-size: .95rem; margin-bottom: 16px; line-height: 1.5; }
.spot-list { display: flex; flex-direction: column; gap: 11px; margin-bottom: 20px; }
.spot-row { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: var(--text-soft); line-height: 1.45; }
.spot-row b { color: var(--text); }
.spot-dot { width: 22px; height: 22px; border-radius: 50%; background: var(--success-soft); display: grid; place-items: center; color: var(--success); flex: none; margin-top: 1px; }
.spot-dot .ic { width: 13px; height: 13px; }

/* ---- empty state with CTA ---- */
.empty-cta { text-align: center; padding: 34px 20px; }
.empty-cta .ec-ic { font-size: 2.2rem; margin-bottom: 8px; }
.empty-cta b { font-family: var(--font-display); font-size: 1.05rem; display: block; }
.empty-cta p { font-size: .88rem; color: var(--text-mute); max-width: 380px; margin: 6px auto 14px; line-height: 1.5; }

/* ---- gamified reports ---- */
.goal-card { background: linear-gradient(135deg, #1e1b4b, var(--violet-2)); color: #fff; border-radius: var(--radius); padding: 20px 22px; margin-bottom: 16px; box-shadow: var(--shadow); }
.goal-card.hit { background: linear-gradient(135deg, #064e3b, var(--success)); }
.goal-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.goal-top > div:first-child { flex: 1 1 200px; min-width: 0; }
.goal-top > div:last-child { flex: 0 0 auto; }
.goal-top .btn-ghost { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.25); color: #fff; }
.goal-top .btn-ghost:hover { background: rgba(255,255,255,.25); }
.goal-lbl { font-size: .8rem; opacity: .85; display: flex; align-items: center; gap: 8px; }
.goal-delta { font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; opacity: 1; white-space: nowrap; }
.goal-delta.up { background: rgba(134,239,172,.22); color: var(--success-soft); }
.goal-delta.down { background: rgba(252,165,165,.22); color: var(--danger-soft); }
.rec-badge { background: rgba(255,255,255,.2); border-radius: 100px; padding: 2px 9px; font-size: .68rem; font-weight: 700; }
.goal-big { font-family: var(--font-display); font-size: clamp(1.8rem, 5vw, 2.6rem); font-weight: 700; line-height: 1.1; margin-top: 4px; }
.goal-of { font-size: .9rem; opacity: .7; font-weight: 400; }
.goal-bar { height: 14px; background: rgba(255,255,255,.18); border-radius: 100px; overflow: hidden; }
.goal-bar > span { display: block; height: 100%; background: linear-gradient(90deg, var(--warning), var(--warning)); border-radius: 100px; transition: width .6s var(--t); }
.goal-card.hit .goal-bar > span { background: linear-gradient(90deg, #86efac, var(--success)); }
.goal-foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; font-size: .88rem; }
.goal-delta { font-size: .8rem; font-weight: 700; padding: 2px 9px; border-radius: 100px; }
.goal-delta.up { background: rgba(34,197,94,.25); color: var(--success-soft); }
.goal-delta.down { background: rgba(239,68,68,.25); color: var(--danger-soft); }
.records { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.rec { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 11px 13px; box-shadow: var(--shadow-sm); }
.rec span { font-size: .72rem; color: var(--text-mute); display: block; }
.rec b { font-family: var(--font-display); font-size: 1.15rem; }
.lb-row { display: flex; align-items: center; gap: 9px; padding: 8px 4px; border-top: 1px solid var(--line); cursor: pointer; }
.lb-row:first-of-type { border-top: none; }
.lb-row:hover { background: var(--bg-2); }
.lb-rank { width: 22px; font-size: 1rem; flex: none; text-align: center; }
.lb-name { font-weight: 600; font-size: .86rem; min-width: 56px; }
.lb-bar { flex: 1; height: 10px; background: var(--bg-3); border-radius: 100px; overflow: hidden; }
.lb-bar > span { display: block; height: 100%; border-radius: 100px; transition: width .5s var(--t); }
.lb-val { font-size: .82rem; font-weight: 700; text-align: right; flex: none; }
.lb-val small { display: block; font-size: .66rem; font-weight: 400; color: var(--text-mute); }

/* ---- finance hero ---- */
.fin-hero { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow-sm); }
.fin-split { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 14px; }
.fin-big span { font-size: .8rem; color: var(--text-mute); display: block; }
.fin-big b { font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 2.1rem); color: var(--success); }
.fin-big.out b { color: var(--warning); }
.fin-bar { height: 16px; border-radius: 100px; overflow: hidden; display: flex; background: var(--bg-3); }
.fin-bar .fb-paid { background: linear-gradient(90deg, var(--success), var(--success)); }
.fin-bar .fb-due { background: linear-gradient(90deg, var(--warning), var(--warning)); }
.fin-foot { margin-top: 10px; font-size: .86rem; color: var(--text-soft); }

/* ---- help & guide ---- */
.help-acc { display: flex; flex-direction: column; gap: 10px; max-width: 820px; }
.help-sec { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-sm); overflow: hidden; }
.help-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 15px 18px; background: none; border: none; cursor: pointer; font-family: var(--font-display); font-weight: 600; font-size: .98rem; text-align: left; }
.help-q:hover { background: var(--bg-2); }
.help-car { color: var(--text-mute); transition: transform .15s; }
.help-sec.open .help-car { transform: rotate(180deg); }
.help-a { padding: 4px 18px 18px; font-size: .9rem; color: var(--text-soft); line-height: 1.55; }
.help-a p { margin-bottom: 9px; }
.help-ol { margin: 4px 0 0 18px; display: flex; flex-direction: column; gap: 8px; }
.help-ol li { line-height: 1.5; }
.help-grp { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; color: var(--violet); margin: 14px 0 6px; }
.help-grp:first-child { margin-top: 0; }
.help-row { display: flex; gap: 11px; padding: 7px 0; align-items: flex-start; }
.help-ic { font-size: 1.1rem; flex: none; width: 24px; text-align: center; }
.help-row b { display: block; font-size: .88rem; color: var(--text); }
.help-row span { font-size: .84rem; color: var(--text-mute); }

/* ---- getting started ---- */
.getstarted { background: var(--grad-soft); border: 1px solid var(--violet-soft); border-radius: var(--radius); padding: 18px; margin-bottom: 18px; }
.gs-head { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-family: var(--font-display); }
.gs-head .muted { font-family: var(--font-body); font-weight: 400; font-size: .84rem; margin-left: auto; }
.gs-dismiss { margin-left: 10px; background: none; border: 0; font-size: 1.35rem; line-height: 1; color: var(--text-mute); cursor: pointer; padding: 0 5px; border-radius: 6px; }
.gs-dismiss:hover { background: rgba(0,0,0,.06); color: var(--text); }
.gs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.gs-item { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; cursor: pointer; text-align: left; transition: border-color .12s, transform .12s; }
.gs-item:hover { border-color: var(--violet); transform: translateY(-2px); }
.gs-ic { flex: none; display: inline-flex; color: var(--violet); } .gs-ic .ic { width: 20px; height: 20px; }
.gs-head .ic { width: 18px; height: 18px; color: var(--violet); }
.gs-item b { display: block; font-size: .9rem; } .gs-item span { font-size: .76rem; color: var(--text-mute); }
.gs-item > div { flex: 1; min-width: 0; }
.gs-arrow { color: var(--text-mute); flex: none; }

/* ---- action center ---- */
.action-center { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); margin-bottom: 18px; }
.ac-head { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; margin-bottom: 12px; }
.ac-head .ic { width: 18px; height: 18px; color: var(--violet); }
.ac-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 9px; }
.ac-item { display: flex; align-items: center; gap: 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 11px; padding: 10px 12px; cursor: pointer; text-align: left; transition: border-color .12s, background .12s; }
.ac-item:hover { border-color: var(--violet); background: var(--accent-soft); }
.ac-ic { flex: none; display: inline-flex; color: var(--violet); }
.ac-ic .ic { width: 19px; height: 19px; }
.ac-n { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; min-width: 20px; flex: none; }
.ac-label { flex: 1; font-size: .82rem; color: var(--text-soft); }
.ac-clear { display: flex; align-items: center; gap: 8px; color: var(--text-soft); }
.ac-clear .ic { width: 17px; height: 17px; color: var(--success); }

/* Overview — hot leads "golden window" box */
.hot-box { background: var(--danger-soft); border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 16px; }
.hot-box-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.hot-box-head .ic { width: 22px; height: 22px; color: var(--danger); flex: none; margin-top: 1px; }
.hot-box-head b { color: var(--danger); }
.hot-list { display: flex; flex-direction: column; gap: 8px; }
.hot-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: var(--surface); border: 1px solid color-mix(in srgb, var(--danger) 18%, transparent); border-radius: 10px; padding: 9px 12px; flex-wrap: wrap; }
.hot-info { min-width: 0; flex: 1; }
.hot-tag { display: inline-flex; align-items: center; gap: 3px; background: var(--danger-soft); color: var(--danger); font-size: .66rem; font-weight: 700; padding: 1px 6px; border-radius: 5px; }
.hot-tag .ic { width: 11px; height: 11px; }
.hot-min { color: var(--danger); }
.hot-actions { display: flex; gap: 6px; flex-shrink: 0; flex-wrap: wrap; }
.hot-actions .ic { width: 13px; height: 13px; }

/* Overview — schedule card (today + coming up) */
.sched-card { padding: 16px 18px; }
.sched-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.sc-title { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.sc-title .ic { width: 18px; height: 18px; color: var(--violet); }
.sc-sub { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-mute); margin: 6px 0 6px; }
.sc-list { display: flex; flex-direction: column; }
.sm-row { display: flex; align-items: center; gap: 12px; padding: 9px 8px; border-radius: 9px; cursor: pointer; transition: background .12s; border-bottom: 1px solid var(--line); }
.sm-row:last-child { border-bottom: 0; }
.sm-row:hover { background: var(--bg-2); }
.sm-time { flex: 0 0 auto; min-width: 116px; font-size: .82rem; font-weight: 600; color: var(--text-soft); font-variant-numeric: tabular-nums; }
.sm-client { flex: 1; min-width: 0; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sm-client .extras-badge { display: inline-flex; align-items: center; gap: 2px; }
.sm-client .extras-badge .ic { width: 11px; height: 11px; color: var(--warning); }
.sm-eng { flex: 0 0 auto; font-size: .8rem; color: var(--text-soft); }
.sc-empty { display: flex; align-items: center; gap: 8px; color: var(--text-mute); padding: 12px 8px; font-size: .9rem; }
.sc-empty .ic { width: 16px; height: 16px; color: var(--success); }
@media (max-width: 620px){ .sm-time { min-width: 0; flex-basis: 100%; } .sm-row { flex-wrap: wrap; gap: 4px 10px; } }
.ac-arrow { color: var(--text-mute); flex: none; }
.ac-clear { font-size: .9rem; color: var(--text-soft); padding: 6px 2px; }

/* ---- segments + chips + pills ---- */
.seg-row { display: flex; flex-wrap: wrap; gap: 8px; }
.seg-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--surface); border-radius: 100px; padding: 6px 13px; font-size: .82rem; cursor: pointer; transition: all .12s; }
.seg-chip:hover { border-color: var(--line-2); }
.seg-chip.on { background: var(--violet); color: #fff; border-color: var(--violet); }
.seg-ct { font-size: .7rem; opacity: .7; }
.tagchip { display: inline-flex; align-items: center; gap: 4px; font-size: .7rem; background: var(--accent-soft); color: var(--violet); border-radius: 100px; padding: 2px 9px; margin: 0 3px 3px 0; }
.tagchip i { cursor: pointer; font-style: normal; opacity: .6; }
.tagchip i:hover { opacity: 1; }
.mini-pill { font-size: .66rem; font-weight: 700; padding: 2px 8px; border-radius: 100px; background: var(--bg-3); color: var(--text-soft); }
.mini-pill.od { background: var(--danger-soft); color: var(--danger); }
.mini-pill.live { background: var(--success-soft); color: var(--success); }
.codechip { font-size: .74rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: 6px; padding: 1px 6px; }
.use-bar { display: inline-block; width: 70px; height: 6px; background: var(--bg-3); border-radius: 100px; overflow: hidden; vertical-align: middle; margin-right: 7px; }
.use-bar span { display: block; height: 100%; background: var(--grad); }

/* ---- tasks ---- */
.task-sec { font-weight: 700; font-size: .82rem; margin: 14px 0 6px; }
.task-sec:first-child { margin-top: 0; }
.task-row { display: flex; align-items: center; gap: 12px; padding: 10px 4px; border-top: 1px solid var(--line); }
.task-row:first-of-type { border-top: none; }
.task-check { width: 20px; height: 20px; border: 2px solid var(--line-2); border-radius: 6px; flex: none; cursor: pointer; display: grid; place-items: center; color: #fff; font-size: .8rem; }
.task-row.done .task-check { background: var(--success); border-color: var(--success); }
.task-row.done .task-title { text-decoration: line-through; color: var(--text-mute); }
.task-main { flex: 1; min-width: 0; }
.task-title { font-size: .9rem; }
.task-meta { font-size: .74rem; color: var(--text-mute); margin-top: 2px; }
.task-od { color: var(--danger); font-weight: 600; }
.task-assignee { flex: none; }
.task-del { background: none; border: none; color: var(--text-mute); cursor: pointer; flex: none; opacity: .5; }
.task-del:hover { opacity: 1; color: var(--danger); }
/* richer task cards: who it's FOR vs who requested it, links, completion notes */
.task-row { padding-left: 10px; }
button.task-check { padding: 0; background: var(--surface); }
button.task-check:hover { border-color: var(--success); }
.avatar.xs { width: 16px; height: 16px; font-size: .58rem; border-radius: 50%; vertical-align: middle; }
.task-meta { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.tk-for { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; color: var(--text-2, var(--text-soft)); }
.tk-by { color: var(--text-mute); }
.tk-note { font-size: .76rem; color: var(--text-2, var(--text-soft)); background: var(--bg-2); border-radius: 8px; padding: 4px 8px; margin-top: 5px; }
.task-mini { background: none; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; flex: none; padding: 3px 7px; font-size: .82rem; }
.task-mini:hover { border-color: var(--violet); }
.tk-doneperson { margin-bottom: 14px; }
.tk-doneperson-h { display: flex; align-items: center; gap: 7px; font-size: .86rem; padding: 4px 0 2px; border-bottom: 2px solid var(--line); margin-bottom: 4px; }
/* Books — connected bank strip */
.bank-strip { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.bank-chip { background: var(--accent-soft); border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; font-size: .82rem; font-weight: 600; color: var(--violet-2, var(--violet-2)); }
/* Books — P&L summary bar */
.books-pnl { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.books-pnl .bp-cell { flex: 1; min-width: 130px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 2px; }
.books-pnl .bp-cell > span { font-size: .72rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.books-pnl .bp-cell > b { font-family: var(--font-display); font-size: 1.5rem; }
.books-pnl .bp-cell > small { font-size: .72rem; color: var(--text-mute); }
.books-pnl .bp-cell.profit { background: linear-gradient(135deg, #1e1b4b, var(--violet-2)); border: none; color: #fff; }
.books-pnl .bp-cell.profit > span, .books-pnl .bp-cell.profit > small { color: rgba(255,255,255,.8); }
.books-pnl .bp-cell.profit.neg { background: linear-gradient(135deg, var(--danger), var(--danger)); }
.books-pnl .bp-op { display: flex; align-items: center; font-size: 1.4rem; color: var(--text-mute); font-weight: 700; }
@media (max-width: 680px){ .books-pnl .bp-op { display: none; } }
/* Books toolbar: search + filters + export */
.books-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 6px; }
.books-toolbar .bk-chk { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--text-mute); white-space: nowrap; cursor: pointer; user-select: none; }
.books-toolbar .bk-chk input { accent-color: var(--violet-2); }
/* Profit-by-month trend */
.books-trend { display: flex; align-items: flex-end; gap: 14px; min-height: 120px; padding-top: 6px; overflow-x: auto; }
.books-trend .bt-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 5px; flex: 1; min-width: 46px; }
.books-trend .bt-val { font-size: .68rem; font-weight: 700; white-space: nowrap; }
.books-trend .bt-val.pos { color: var(--success); }
.books-trend .bt-val.neg { color: var(--danger); }
.books-trend .bt-bar { width: 70%; max-width: 42px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, var(--violet), var(--violet-2)); }
.books-trend .bt-bar.neg { background: linear-gradient(180deg, var(--danger), var(--danger)); }
.books-trend .bt-lbl { font-size: .68rem; color: var(--text-mute); white-space: nowrap; }
/* Books → Insights */
.ins-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 720px){ .ins-kpis { grid-template-columns: repeat(2, 1fr); } }
.ins-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 13px 15px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 2px; }
.ins-kpi-l { font-size: .68rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.ins-kpi b { font-family: var(--font-display); font-size: 1.45rem; }
.ins-kpi b.pos { color: var(--success); } .ins-kpi b.neg { color: var(--danger); }
.ins-kpi small { font-size: .7rem; color: var(--text-mute); }
.ins-chart { display: flex; align-items: flex-end; gap: 8px; height: 168px; }
.ins-col { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; height: 100%; }
.ins-barwrap { width: 100%; max-width: 38px; display: flex; flex-direction: column; justify-content: flex-end; }
.ins-seg { width: 100%; }
.ins-seg.grn { background: linear-gradient(180deg, var(--success), var(--success)); border-radius: 5px 5px 0 0; }
.ins-seg.red { background: linear-gradient(180deg, var(--danger), var(--danger)); }
.ins-seg.loss { background: linear-gradient(180deg, var(--danger), var(--danger)); border-radius: 5px 5px 0 0; }
.ins-barwrap .ins-seg:last-child { border-radius: 0 0 3px 3px; }
.ins-mlbl { font-size: .64rem; color: var(--text-mute); white-space: nowrap; }
.ins-legend { display: flex; gap: 16px; margin-top: 12px; font-size: .72rem; color: var(--text-mute); }
.ins-legend span { display: inline-flex; align-items: center; gap: 5px; }
.ins-legend i, .ins-leg2 i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; flex: none; }
.ins-donut { position: relative; width: 150px; margin: 0 auto 6px; }
.ins-donut-c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ins-donut-c b { font-family: var(--font-display); font-size: 1.05rem; }
.ins-donut-c span { font-size: .64rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.ins-leg2 { display: flex; flex-direction: column; gap: 7px; }
.ins-leg2 > div { display: flex; align-items: center; gap: 8px; font-size: .8rem; }
.ins-leg2 > div span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ins-leg2 > div b { color: var(--text-mute); font-size: .78rem; }
/* Studio utilization hero */
.util-card { border: 1px solid #e9d5ff; background: linear-gradient(180deg, var(--violet-soft), #fff); }
.util-top { display: flex; align-items: center; gap: 20px; margin: 8px 0 16px; flex-wrap: wrap; }
.util-big { font-family: var(--font-display); font-size: 3.2rem; line-height: 1; font-weight: 700; flex: none; }
.util-big.low { color: var(--danger); } .util-big.mid { color: var(--warning); } .util-big.high { color: var(--success); }
.util-meta { font-size: .9rem; }
.util-meta b { font-weight: 700; }
.util-dows { display: flex; gap: 10px; align-items: flex-end; }
.util-dow { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.util-dow .udp { font-size: .66rem; font-weight: 700; color: var(--text-mute); }
.util-dow .udtrack { width: 64%; max-width: 34px; height: 64px; background: var(--bg-3); border-radius: 6px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.util-dow .udfill { width: 100%; border-radius: 6px 6px 0 0; min-height: 2px; }
.util-dow .udfill.low { background: var(--danger); } .util-dow .udfill.mid { background: var(--warning); } .util-dow .udfill.high { background: var(--success); }
.util-dow .udl { font-size: .68rem; color: var(--text-mute); }
/* Overview financial-health card */
.finhealth { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1.4fr; gap: 14px; align-items: center; }
@media (max-width: 720px){ .finhealth { grid-template-columns: 1fr 1fr; } }
.finhealth .fh-stat { display: flex; flex-direction: column; gap: 2px; }
.finhealth .fh-stat span { font-size: .68rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.finhealth .fh-stat b { font-family: var(--font-display); font-size: 1.4rem; }
.finhealth .fh-stat b.pos { color: var(--success); } .finhealth .fh-stat b.neg { color: var(--danger); }
.finhealth .fh-spark { display: flex; align-items: flex-end; gap: 4px; height: 48px; }
.finhealth .fh-spark i { flex: 1; min-width: 4px; border-radius: 3px 3px 0 0; background: var(--violet); display: block; }
.finhealth .fh-spark i.pos { background: var(--success); } .finhealth .fh-spark i.neg { background: var(--danger); }
/* Stripe deep-link (brand indigo) */
.stripe-link { color: #635bff; font-weight: 600; white-space: nowrap; }
.stripe-link:hover { text-decoration: underline; }
/* Google Ads setup steps */
.gads-step { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.gads-step b { font-size: .9rem; }
/* Looker Studio embedded dashboard */
.looker-frame { position: relative; width: 100%; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--bg-2); height: 620px; }
.looker-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 760px){ .looker-frame { height: 460px; } }

/* ---- client card extras ---- */
.c360-tagbar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-bottom: 10px; }
.tag-add { border: 1px dashed var(--line-2); border-radius: 100px; padding: 2px 10px; font-size: .72rem; width: 70px; }
.tag-add:focus { outline: none; border-color: var(--violet); }
.c360-note { width: 100%; min-height: 52px; font-size: .82rem; margin-bottom: 12px; background: #fffdf5; border-color: var(--warning-soft); }
.c360-tasks { margin-bottom: 12px; }
.c360-task { display: flex; align-items: center; gap: 9px; font-size: .82rem; padding: 4px 0; }
.c360-task .task-check { width: 16px; height: 16px; }
.c360-timeline { display: flex; flex-direction: column; }
.tl-item { display: flex; gap: 10px; padding: 6px 0; }
.tl-ic { flex: none; }
.tl-body { font-size: .8rem; color: var(--text-soft); line-height: 1.35; }
.tl-body b { color: var(--text); }
.tl-when { display: block; font-size: .68rem; color: var(--text-mute); }
/* ---- unified communication timeline (contact 360) ---- */
.c360-timeline .tl-msg { margin: 0 0 11px; }
.tl-msg.out { padding-left: 16px; }
.tl-msg.in { padding-right: 16px; }
.tl-bubble { background: var(--bg-3); border-radius: 12px; padding: 8px 11px; font-size: .84rem; line-height: 1.42; white-space: pre-wrap; word-break: break-word; color: var(--text); }
.tl-msg.out .tl-bubble { background: var(--violet-soft); }
.tl-msg-meta { font-size: .7rem; color: var(--text-mute); margin-top: 3px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tl-msg-head { display: flex; justify-content: space-between; gap: 8px; font-size: .8rem; font-weight: 600; color: var(--text-soft); margin-bottom: 3px; }
.tl-email { font-size: .82rem; }
.tl-email > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--text-mute); }
.tl-email > summary::-webkit-details-marker { display: none; }
.tl-snip { color: var(--text-mute); }
.tl-emailbody { margin-top: 7px; padding: 9px 11px; background: var(--bg-soft, var(--bg-2)); border: 1px solid var(--line); border-radius: 9px; font-size: .83rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; color: var(--text-soft); }
.tl-badge { font-size: .66rem; font-weight: 700; padding: 1px 7px; border-radius: 99px; white-space: nowrap; }
.tl-auto { font-size: .64rem; font-weight: 700; color: var(--warning); background: var(--warning-soft); padding: 1px 6px; border-radius: 99px; }
.tl-err { font-size: .72rem; color: var(--danger); margin-top: 3px; }
.tl-call { border: 1px solid var(--line); border-radius: 11px; padding: 9px 11px; margin: 0 0 11px; background: var(--card, #fff); }
.tl-call-head { display: flex; align-items: center; gap: 9px; }
.tl-call-head .tl-body { flex: 1; min-width: 0; }
.tl-call-sub { display: block; font-size: .72rem; color: var(--text-mute); }
.tl-audio { width: 100%; height: 34px; margin-top: 8px; }
.tl-callmore { margin-top: 7px; font-size: .8rem; }
.tl-callmore > summary { cursor: pointer; color: var(--violet-2, var(--violet)); font-weight: 600; }
.tl-sum { font-size: .8rem; color: var(--text-soft); margin: 6px 0 0; background: var(--violet-soft); border-radius: 8px; padding: 7px 9px; }
.tl-next { font-size: .78rem; color: var(--violet-2); margin: 5px 0 0; }
.tl-trans { font-size: .76rem; color: var(--text-soft); margin-top: 6px; max-height: 160px; overflow: auto; white-space: pre-wrap; background: var(--bg-soft, var(--bg-2)); border-radius: 8px; padding: 7px 9px; }

/* ---- live Claude bug-fix chat ---- */
.bugchat { margin-top: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft, var(--bg-2)); padding: 10px; }
.bc-status { font-size: .76rem; font-weight: 600; margin-bottom: 8px; }
.bc-status:empty { display: none; }
.bugchat-thread { max-height: 340px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 2px; }
.bc-msg { display: flex; }
.bc-user { justify-content: flex-end; }
.bc-claude { justify-content: flex-start; }
.bc-bubble { max-width: 88%; padding: 8px 11px; border-radius: 12px; font-size: .85rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.bc-user .bc-bubble { background: var(--violet-2, var(--violet)); color: #fff; }
.bc-claude .bc-bubble { background: var(--surface); border: 1px solid var(--line); color: var(--text); }
.bc-think { color: var(--text-mute); font-style: italic; }
.bc-steps { font-size: .7rem; color: var(--text-mute); margin-top: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.bc-patch { margin-top: 8px; }
.bugchat-compose { display: flex; gap: 6px; margin-top: 8px; align-items: flex-end; }
.bugchat-compose .bc-input { flex: 1; font-size: .84rem; }

/* ---- campaign editor ---- */
.mergebar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; margin-bottom: 14px; font-size: .78rem; color: var(--text-mute); position: sticky; top: 0; z-index: 2; }
.mf { font-size: .73rem; background: var(--surface); border: 1px solid var(--line-2); border-radius: 100px; padding: 3px 10px; cursor: pointer; color: var(--violet); font-weight: 600; transition: all .12s; }
.mf:hover { background: var(--violet); color: #fff; border-color: var(--violet); }
.campmsg { border: 1px solid var(--line); border-radius: 12px; padding: 13px; margin-bottom: 12px; }
.campmsg-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.campmsg-head b { font-family: var(--font-display); font-size: .9rem; }
.campmsg-when { font-size: .73rem; color: var(--text-mute); }
.campmsg-reset { margin-left: auto; background: none; border: none; color: var(--text-mute); font-size: .74rem; cursor: pointer; }
.campmsg-reset:hover { color: var(--violet); }
.campmsg-body { width: 100%; min-height: 80px; font-size: .86rem; line-height: 1.45; }
.campmsg-prev { margin-top: 8px; background: #eef6ff; border: 1px solid #cfe3ff; border-radius: 9px; padding: 9px 11px; font-size: .82rem; color: #1e3a5f; line-height: 1.4; }
.prev-lbl { display: inline-block; font-size: .64rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: #2563eb; margin-right: 8px; }

/* ---- AI pre-session brief ---- */
.brief-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: linear-gradient(135deg, #f5f3ff, var(--info-soft)); border: 1px solid var(--violet-soft); border-radius: 12px; padding: 14px; }
.brief-loading { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 18px; text-align: center; color: var(--violet); font-weight: 600; }
.brief { background: linear-gradient(135deg, #faf9ff, #f3f6ff); border: 1px solid var(--violet-soft); border-radius: 12px; padding: 14px; }
.brief-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.brief-head b { font-family: var(--font-display); }
.brief-tag { font-size: .64rem; background: var(--violet-soft); color: var(--violet-2); border-radius: 100px; padding: 2px 8px; font-weight: 700; }
.brief-hero { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.brief-av { width: 42px; height: 42px; border-radius: 11px; background: var(--grad); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; flex: none; }
.brief-name { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; }
.brief-role { font-size: .8rem; color: var(--text-mute); }
.brief-tldr { background: var(--surface); border: 1px solid var(--violet-soft); border-left: 3px solid var(--violet); border-radius: 9px; padding: 10px 12px; font-size: .86rem; line-height: 1.45; color: var(--text); margin-bottom: 12px; }
.brief-tldr b { color: var(--violet-2); margin-right: 4px; }
.brief-sum { font-size: .88rem; line-height: 1.5; color: var(--text-soft); margin-bottom: 12px; }
.brief-fu { background: var(--surface); border: 1px solid var(--line); border-radius: 9px; padding: 9px 12px; margin-bottom: 7px; }
.brief-fu b { font-size: .82rem; display: block; margin-bottom: 3px; }
.brief-fu p { font-size: .82rem; color: var(--text-soft); line-height: 1.45; }
.brief-ask { display: flex; gap: 8px; margin-top: 12px; }
.brief-ask input { flex: 1; border: 1px solid var(--line); border-radius: 9px; padding: 9px 12px; font-size: .86rem; background: var(--surface); }
.brief-ask input:focus { outline: none; border-color: var(--violet); }
.brief-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.brief-facts .bf { background: var(--surface); border: 1px solid var(--line); border-radius: 9px; padding: 7px 10px; }
.brief-facts .bf span { display: block; font-size: .62rem; text-transform: uppercase; letter-spacing: .03em; color: var(--text-mute); }
.brief-facts .bf b { font-size: .82rem; }
.brief-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 6px 0 12px; }
.brief-link { display: flex; align-items: center; gap: 9px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; text-decoration: none; color: var(--text); transition: border-color .12s, transform .12s; }
.brief-link:hover { border-color: var(--violet); transform: translateY(-1px); }
.brief-fav { width: 22px; height: 22px; border-radius: 5px; flex: none; object-fit: cover; }
.brief-fav.ph { display: grid; place-items: center; font-size: .9rem; background: var(--bg-3); }
.bl-txt { flex: 1; min-width: 0; }
.bl-txt b { display: block; font-size: .82rem; line-height: 1.2; }
.bl-txt span { font-size: .72rem; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.brief-conf { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.brief-bio { font-size: .84rem; line-height: 1.55; color: var(--text-soft); margin-bottom: 12px; }
/* identity check banner */
.brief-id { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 9px; margin-bottom: 12px; border: 1px solid; }
.brief-id.id-verified { background: #f0fdf4; border-color: var(--success-soft); }
.brief-id.id-check { background: var(--warning-soft); border-color: var(--warning-soft); }
.brief-id .id-ic { font-size: 1.05rem; line-height: 1; }
.brief-id .id-tx { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.brief-id .id-tx b { font-size: .82rem; }
.brief-id .id-tx span { font-size: .77rem; color: var(--text-soft); line-height: 1.4; }
.brief-id .id-conf { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 3px 7px; border-radius: 100px; white-space: nowrap; }
.brief-id .id-conf.id-high { background: var(--success); color: #fff; }
.brief-id .id-conf.id-medium { background: var(--warning); color: #fff; }
.brief-id .id-conf.id-low { background: var(--danger); color: #fff; }
/* recent youtube episodes */
.brief-eps { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.brief-ep { display: flex; align-items: flex-start; gap: 10px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); text-decoration: none; color: var(--text); transition: .12s; }
.brief-ep:hover { border-color: #ff0000; background: var(--danger-soft); }
.brief-ep .ep-play { color: #ff0000; font-size: .8rem; margin-top: 2px; }
.brief-ep .ep-tx { display: flex; flex-direction: column; gap: 1px; }
.brief-ep .ep-tx b { font-size: .82rem; line-height: 1.35; }
.brief-ep .ep-tx span { font-size: .76rem; color: var(--text-soft); line-height: 1.4; }
.brief-ep.ghost { border-style: dashed; }
.brief-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.brief-sec { font-size: .78rem; font-weight: 700; margin-bottom: 5px; }
.brief-list { margin: 0; padding-left: 17px; display: flex; flex-direction: column; gap: 5px; }
.brief-list li { font-size: .82rem; color: var(--text-soft); line-height: 1.4; }
@media (max-width: 600px){ .brief-cols, .brief-links { grid-template-columns: 1fr; } .brief-facts { grid-template-columns: repeat(2, 1fr); } }

/* ---- SOPs / training library ---- */
.sop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.sop-card { display: flex; flex-direction: column; gap: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); text-decoration: none; color: inherit; transition: border-color .12s, box-shadow .12s; }
.sop-card:hover { border-color: var(--violet); box-shadow: var(--shadow); }
.sop-ic { font-size: 1.7rem; }
.sop-card b { font-family: var(--font-display); font-size: .98rem; }
.sop-card .sop-desc { font-size: .82rem; color: var(--text-soft); line-height: 1.4; flex: 1; }
.sop-meta { display: flex; align-items: center; gap: 8px; font-size: .72rem; color: var(--text-mute); margin-top: 4px; }
.sop-open { margin-left: auto; color: var(--violet); font-weight: 600; }

/* ---- conflict warning ---- */
.conflict-warn { background: var(--danger-soft); border: 1px solid var(--danger-soft); color: var(--danger); border-radius: 10px; padding: 9px 12px; font-size: .82rem; margin-bottom: 12px; }
.chk-inline { display: flex; align-items: center; gap: 8px; font-size: .88rem; cursor: pointer; }
.chk-inline input { width: 16px; height: 16px; }
@media (max-width: 700px){ .user-row { flex-wrap: wrap; } }

/* ---- Google integration cards ---- */
.intg { display: flex; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.intg .gicon { width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center; font-size: 1.3rem; background: var(--bg-3); flex: none; }
.intg .grow { flex: 1; }
.intg .grow b { font-family: var(--font-display); }
.intg .grow .st { font-size: .82rem; color: var(--text-mute); }
.dot-on { color: var(--success); } .dot-off { color: var(--warning); }
.gbadge { display: inline-flex; align-items: center; gap: 5px; font-size: .74rem; padding: 3px 9px; border-radius: 100px; }
.gbadge.on { background: var(--success-soft); color: var(--success); } .gbadge.off { background: var(--warning-soft); color: var(--warning); }

/* ---- CRM messaging (inbox command center) ---- */
.crm { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow-sm); height: calc(100dvh - 152px); min-height: 480px; }
@media (max-width: 760px){ .crm { grid-template-columns: minmax(0,1fr); height: calc(100dvh - 116px); border-radius: 14px; } .crm .chat-pane { display: none; } .crm.show-chat .thread-pane { display: none; } .crm.show-chat .chat-pane { display: flex; } }
.thread-pane { min-width: 0; border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; }
.thread-search { padding: 10px 12px; border-bottom: 1px solid var(--line); flex: none; }
#threadList { flex: 1; min-height: 0; overflow-y: auto; }
.thread-item { display: flex; gap: 11px; padding: 12px 14px; border-bottom: 1px solid var(--line); cursor: pointer; transition: background .15s; position: relative; align-items: center; }
.thread-item:hover { background: var(--bg-2); }
.thread-item.active { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--violet); }
.thread-item .ti-body { flex: 1; min-width: 0; }
.thread-item .ti-top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.thread-item b { font-size: .9rem; font-family: var(--font-display); }
.thread-item .ti-time { font-size: .72rem; color: var(--text-mute); flex: none; }
.thread-item .ti-prev { font-size: .82rem; color: var(--text-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; display: flex; align-items: center; gap: 5px; }
.thread-item .ti-chan { flex: none; opacity: .55; display: inline-flex; }
.thread-item .ti-chan .ic { width: 13px; height: 13px; }
.chat-pane { display: flex; min-width: 0; min-height: 0; }
.chat-main { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; }
.chat-context { width: 288px; flex: none; border-left: 1px solid var(--line); overflow-y: auto; background: var(--bg-2); display: none; }
@media (min-width: 1180px){ .chat-context { display: block; } }
.chat-head { padding: 11px 16px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--surface); flex: none; }
.chat-head .ch-meta { flex: 1; min-width: 120px; } .chat-head b { font-family: var(--font-display); }
.chat-head .ch-meta span { font-size: .8rem; color: var(--text-mute); }
.chat-body { flex: 1; min-height: 0; overflow-y: auto; padding: 18px; background: linear-gradient(180deg, var(--bg-2), var(--surface)); display: flex; flex-direction: column; gap: 4px; }
.chat-date { align-self: center; font-size: .66rem; font-weight: 700; color: var(--text-mute); background: var(--bg-3); padding: 3px 12px; border-radius: 100px; margin: 14px 0 8px; text-transform: uppercase; letter-spacing: .03em; }
/* Message rows — avatar + bubble. TEXTS render as chat bubbles (customer left =
   warm neutral, you right = VIOLET, Remy = lighter violet). EMAILS render as
   blue "letter cards" (.msg-b.email below) so text vs email is unmistakable:
   shape (bubble vs card) + color (violet vs blue) + an envelope + subject. */
.msg-row { display: flex; align-items: flex-end; gap: 8px; margin-bottom: 12px; max-width: 86%; }
.msg-row.in { align-self: flex-start; }
.msg-row.out { align-self: flex-end; flex-direction: row-reverse; margin-left: auto; }
.msg-av { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: .72rem; font-weight: 700; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.msg-col { display: flex; flex-direction: column; min-width: 0; }
.msg-row.out .msg-col { align-items: flex-end; }
.msg-b { padding: 9px 13px; border-radius: 16px; font-size: .92rem; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; max-width: 100%; }
.msg-b.them  { background: var(--bg-3); color: var(--text); border-bottom-left-radius: 5px; }
.msg-b.staff { background: linear-gradient(180deg, var(--violet), var(--violet-2)); color: #fff; border-bottom-right-radius: 5px; }
.msg-b.remy  { background: linear-gradient(180deg, color-mix(in srgb, var(--violet) 70%, #fff 30%), var(--violet)); color: #fff; border-bottom-right-radius: 5px; }

/* ===== EMAIL = letter card (blue), NOT a chat bubble ===== */
.msg-row.email-row { max-width: 96%; }
.msg-b.email {
  background: var(--info-soft); color: var(--text);
  border: 1px solid color-mix(in srgb, var(--info) 26%, transparent);
  border-radius: 13px; padding: 0; overflow: hidden;
  width: min(440px, 78vw); max-width: 100%;
}
.msg-row.in  .msg-b.email { border-left: 3px solid var(--info);  border-bottom-left-radius: 5px; }
.msg-row.out .msg-b.email { border-right: 3px solid var(--info); border-bottom-right-radius: 5px; }
.email-head { display: flex; align-items: center; gap: 7px; padding: 9px 13px 5px; flex-wrap: wrap; }
.email-head .ic { width: 15px; height: 15px; color: var(--info); flex: none; }
.email-tag { font-size: .63rem; font-weight: 800; letter-spacing: .06em; color: var(--info); }
.email-from { font-size: .72rem; color: var(--text-mute); }
.email-subj { font-weight: 600; font-size: .92rem; color: var(--text); padding: 0 13px 3px; line-height: 1.3; }
.email-body { padding: 3px 13px 11px; font-size: .9rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.email-body.clamp { display: -webkit-box; -webkit-line-clamp: 10; -webkit-box-orient: vertical; overflow: hidden; }
.email-more { display: block; padding: 0 13px 10px; font-size: .76rem; font-weight: 700; color: var(--info); background: none; border: 0; cursor: pointer; }
.email-reply { display: inline-flex; align-items: center; gap: 5px; margin: 2px 13px 12px; padding: 5px 13px; border: 1px solid color-mix(in srgb, var(--info) 38%, transparent); background: var(--surface); color: var(--info); border-radius: 100px; font-size: .78rem; font-weight: 700; cursor: pointer; transition: background .12s, border-color .12s; }
.email-reply:hover { background: var(--info-soft); border-color: var(--info); }
.email-reply .ic { width: 13px; height: 13px; }
.msg-meta { font-size: .67rem; color: var(--text-mute); margin-top: 4px; padding: 0 4px; }
.msg-stat { font-weight: 600; }
.msg-stat.fail { color: var(--danger); }
.msg-stat.eng { color: var(--success); }   /* email opened / link clicked — positive engagement signal */
.msg-retry { background: var(--danger-soft); border: 1px solid var(--danger); color: var(--danger); font-size: .68rem; font-weight: 700; padding: 1px 8px; border-radius: 100px; cursor: pointer; margin-left: 5px; vertical-align: middle; }
.msg-retry:hover { background: var(--danger-soft); }
.msg-retry:disabled { opacity: .6; cursor: default; }
.msg-errlink { color: var(--danger); font-size: .68rem; text-decoration: underline; margin-left: 3px; white-space: nowrap; }
.msg-stat.sched { color: var(--violet); }
/* upcoming automated sends — shown ghosted/dashed so they read as "queued, not sent yet" */
.sched-head { text-align: center; font-size: .7rem; font-weight: 700; color: var(--violet); text-transform: uppercase; letter-spacing: .04em; margin: 16px 0 10px; opacity: .9; }
.msg-row.sched { opacity: .82; }
.msg-b.staff.sched-b { background: var(--violet-soft); color: var(--violet-2); border: 1px dashed var(--violet); }

/* message read/unread */
.unread-badge { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; background: var(--violet); color: #fff; border-radius: 100px; font-size: .76rem; font-weight: 700; vertical-align: middle; margin-left: 6px; }
.msg-filters { display: flex; gap: 6px; padding: 12px 12px 4px; border-bottom: 1px solid var(--line); }
.msg-fil { flex: 1; border: 1px solid var(--line); background: var(--surface); border-radius: 9px; padding: 6px 4px; font-size: .8rem; cursor: pointer; color: var(--text-soft); transition: all .12s; }
.msg-fil:hover { border-color: var(--line-2); }
.msg-fil.on { background: var(--violet); color: #fff; border-color: var(--violet); }
.fil-ct { background: rgba(255,255,255,.3); border-radius: 100px; padding: 0 6px; font-size: .72rem; font-weight: 700; }
.msg-fil:not(.on) .fil-ct { background: var(--violet); color: #fff; }
.thread-item { position: relative; }
.thread-item.unread b { font-weight: 800; }
.thread-item.unread .ti-prev { color: var(--text); font-weight: 600; }
.ti-dot { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 50%; background: var(--violet); }
.thread-item.unread { padding-left: 18px; }
/* ---- multi-operator inbox: ownership tabs + per-thread assignment ---- */
.msg-filters { flex-wrap: wrap; }
.msg-fil-grow { display: none; }
.msg-fil-unread.on { background: var(--violet, var(--violet)); border-color: var(--violet, var(--violet)); }
.thread-item .ti-asg { flex: none; align-self: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; font-size: .68rem; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px #fff; }
.assign-sel { flex: none; max-width: 132px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text-soft); font-size: .78rem; padding: 5px 7px; cursor: pointer; }
.assign-sel:hover { border-color: var(--line-2); }
.chat-compose { border-top: 1px solid var(--line); padding: 12px; background: var(--surface); }
.compose-row { display: flex; gap: 9px; align-items: flex-end; }
.compose-row textarea { flex: 1; resize: none; min-height: 44px; max-height: 120px; }
.seg { display: inline-flex; background: var(--bg-3); border-radius: 100px; padding: 3px; gap: 2px; }
.seg button { border: 0; background: none; padding: 6px 14px; border-radius: 100px; font-size: .82rem; cursor: pointer; font-family: var(--font-display); color: var(--text-soft); }
.seg button.on { background: var(--surface); color: var(--violet-2); box-shadow: var(--shadow-sm); }
.sig-preview { font-size: .78rem; color: var(--text-mute); margin: 8px 2px 0; font-style: italic; }

/* sidebar theme toggle (Auto / Light / Dark) */
.theme-toggle { display: flex; gap: 3px; background: var(--bg-3); border-radius: 100px; padding: 3px; margin: 4px 0 10px; }
.theme-toggle button { flex: 1; border: 0; background: none; padding: 6px 4px; border-radius: 100px; font-size: .76rem; font-weight: 600; font-family: var(--font-display); color: var(--text-mute); cursor: pointer; transition: all .14s; }
.theme-toggle button:hover { color: var(--text); }
.theme-toggle button.on { background: var(--surface); color: var(--violet-2); box-shadow: var(--shadow-sm); }
.chat-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: var(--text-mute); text-align: center; padding: 30px; gap: 8px; }
/* ---- contact context panel (wide screens) ---- */
.cx-hero { text-align: center; padding: 22px 16px 18px; border-bottom: 1px solid var(--line); }
.cx-av { width: 62px; height: 62px; border-radius: 50%; margin: 0 auto 10px; display: grid; place-items: center; color: #fff; font-size: 1.4rem; font-weight: 700; font-family: var(--font-display); }
.cx-name { font-family: var(--font-display); font-size: 1.04rem; line-height: 1.2; }
.cx-sub { font-size: .8rem; color: var(--text-mute); margin-top: 3px; word-break: break-word; }
.cx-actions { display: flex; gap: 6px; justify-content: center; margin-top: 15px; flex-wrap: wrap; }
.cx-act { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: .67rem; color: var(--text-soft); cursor: pointer; background: none; border: 0; width: 58px; }
.cx-act .cx-ic { width: 40px; height: 40px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); display: grid; place-items: center; color: var(--violet); transition: all .14s; }
.cx-act:hover .cx-ic { background: var(--accent-soft); border-color: transparent; transform: translateY(-1px); }
.cx-act .ic { width: 17px; height: 17px; }
.cx-sec { padding: 15px 16px; border-bottom: 1px solid var(--line); }
.cx-sec h4 { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); margin-bottom: 11px; font-weight: 700; }
.cx-stat { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: .86rem; padding: 4px 0; }
.cx-stat span { color: var(--text-mute); } .cx-stat b { font-family: var(--font-display); }
.cx-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.cx-chip { font-size: .74rem; padding: 3px 10px; border-radius: 100px; background: var(--surface); border: 1px solid var(--line); color: var(--text-soft); }
.cx-chip.hot { background: var(--danger-soft); border-color: var(--danger-soft); color: var(--danger); font-weight: 600; }

/* ===========================================================
   Website AI chat widget + coupon pop-up
   =========================================================== */
.cf-chat-btn { position: fixed; bottom: 22px; right: 22px; z-index: 120; display: flex; align-items: center; gap: 9px; background: linear-gradient(150deg, #2e9bff 0%, #007aff 100%); color: #fff; border: 0; border-radius: 100px; padding: 13px 18px 13px 14px; font-family: var(--font-display); font-weight: 600; font-size: .95rem; cursor: pointer; box-shadow: 0 14px 34px -10px rgba(0,122,255,.55); transition: transform .25s; }
.cf-chat-btn:hover { transform: translateY(-2px) scale(1.02); }
.cf-chat-btn .av { width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.22); display: grid; place-items: center; font-size: 1rem; }
.cf-chat-btn .pulse { position: absolute; top: -3px; right: -3px; width: 13px; height: 13px; background: #34d399; border-radius: 50%; border: 2px solid #fff; }
.cf-chat-panel { position: fixed; bottom: 22px; right: 22px; z-index: 121; width: min(380px, calc(100vw - 32px)); height: min(560px, calc(100vh - 90px)); background: var(--surface); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-lg); display: none; flex-direction: column; overflow: hidden; }
.cf-chat-panel.open { display: flex; animation: fade .3s var(--t); }
.cf-chat-head { background: var(--grad); color: #fff; padding: 16px 18px; display: flex; align-items: center; gap: 11px; }
.cf-chat-head .av { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; font-size: 1.2rem; }
.cf-chat-head b { font-family: var(--font-display); display: block; line-height: 1.2; }
.cf-chat-head small { opacity: .85; font-size: .76rem; display: flex; align-items: center; gap: 5px; }
.cf-chat-head .online { width: 7px; height: 7px; background: #34d399; border-radius: 50%; display: inline-block; }
.cf-chat-head .x { margin-left: auto; background: rgba(255,255,255,.18); border: 0; color: #fff; width: 30px; height: 30px; border-radius: 9px; cursor: pointer; font-size: 1.1rem; }
.cf-chat-body { flex: 1; overflow-y: auto; padding: 16px; background: var(--bg-2); display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.cf-msg { max-width: 84%; padding: 10px 13px; border-radius: 15px; font-size: .9rem; line-height: 1.45; white-space: pre-wrap; }
.cf-msg.bot { align-self: flex-start; background: var(--surface); border: 1px solid var(--line); border-bottom-left-radius: 4px; }
.cf-msg.user { align-self: flex-end; background: var(--grad); color: #fff; border-bottom-right-radius: 4px; }
.cf-typing { align-self: flex-start; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; padding: 11px 14px; display: flex; gap: 4px; }
.cf-typing span { width: 7px; height: 7px; background: var(--text-mute); border-radius: 50%; animation: cfbounce 1.1s infinite; }
.cf-typing span:nth-child(2){ animation-delay:.15s } .cf-typing span:nth-child(3){ animation-delay:.3s }
@keyframes cfbounce { 0%,60%,100%{ transform: translateY(0); opacity:.5 } 30%{ transform: translateY(-5px); opacity:1 } }
.cf-quick { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 16px 10px; background: var(--bg-2); }
.cf-quick button { background: var(--surface); border: 1px solid var(--line-2); color: var(--violet-2); border-radius: 100px; padding: 7px 12px; font-size: .8rem; cursor: pointer; font-family: var(--font-body); transition: all .2s; }
.cf-quick button:hover { background: var(--accent-soft); border-color: var(--violet); }
.cf-chat-input { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); background: var(--surface); }
.cf-chat-input input { flex: 1; padding: 11px 13px; border: 1px solid var(--line-2); border-radius: 100px; font-family: var(--font-body); font-size: .9rem; }
.cf-chat-input input:focus { outline: none; border-color: var(--violet); }
.cf-chat-input button { background: var(--grad); color: #fff; border: 0; width: 42px; border-radius: 50%; cursor: pointer; font-size: 1.05rem; flex: none; }
@media (max-width: 520px){ .cf-chat-panel { bottom: 0; right: 0; width: 100vw; height: 100vh; border-radius: 0; } .cf-chat-btn { bottom: 16px; right: 16px; } }
/* unread badge on the chat bubble */
.cf-badge { position: absolute; top: -7px; right: -5px; min-width: 21px; height: 21px; background: var(--danger); color: #fff; border-radius: 50%; font-size: .72rem; font-weight: 700; display: none; place-items: center; border: 2px solid #fff; padding: 0 5px; font-family: var(--font-display); }
.cf-badge.show { display: grid; animation: cfPopBadge .3s var(--t); }
@keyframes cfPopBadge { from { transform: scale(0); } to { transform: scale(1); } }
/* incoming-message notification card */
.cf-notif { position: fixed; bottom: 80px; right: 22px; z-index: 122; width: min(304px, calc(100vw - 40px)); background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 12px 14px; display: none; gap: 11px; align-items: flex-start; cursor: pointer; }
.cf-notif.show { display: flex; animation: cfNotifIn .5s cubic-bezier(.22,.61,.36,1); }
.cf-notif:hover { border-color: var(--line-2); }
@keyframes cfNotifIn { from { opacity: 0; transform: translateY(16px) scale(.95); } to { opacity: 1; transform: none; } }
.cf-notif .av { width: 38px; height: 38px; border-radius: 50%; background: var(--grad); display: grid; place-items: center; font-size: 1.1rem; color: #fff; flex: none; }
.cf-notif .nf-body { flex: 1; min-width: 0; }
.cf-notif .nf-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cf-notif .nf-name { font-family: var(--font-display); font-weight: 600; font-size: .9rem; }
.cf-notif .nf-time { font-size: .68rem; color: var(--text-mute); flex: none; }
.cf-notif .nf-msg { font-size: .84rem; color: var(--text-soft); margin-top: 2px; line-height: 1.4; }
.cf-notif .nf-x { position: absolute; top: 5px; right: 8px; background: none; border: 0; color: var(--text-mute); font-size: 1rem; cursor: pointer; line-height: 1; }
@media (max-width: 520px){ .cf-notif { bottom: 72px; right: 16px; } }

/* Coupon pop-up */
.cf-pop-overlay { position: fixed; inset: 0; z-index: 130; background: rgba(17,20,28,.55); backdrop-filter: blur(4px); display: none; place-items: center; padding: 20px; }
.cf-pop-overlay.open { display: grid; animation: fade .3s var(--t); }
.cf-pop { background: var(--surface); border-radius: 24px; max-width: 760px; width: 100%; overflow: hidden; box-shadow: var(--shadow-lg); display: grid; grid-template-columns: 1fr 1fr; position: relative; }
@media (max-width: 640px){ .cf-pop { grid-template-columns: 1fr; max-width: 420px; } .cf-pop .cf-pop-art { display: none; } }
.cf-pop-art { background: var(--grad); position: relative; min-height: 100%; display: grid; place-items: center; color: #fff; text-align: center; padding: 30px; }
.cf-pop-art .big { font-family: var(--font-display); font-size: 4.6rem; font-weight: 700; line-height: .9; letter-spacing: -.02em; }
.cf-pop-art .sub { margin-top: 12px; text-transform: uppercase; font-family: var(--font-display); font-weight: 700; font-size: .9rem; letter-spacing: .16em; opacity: 1; }
.cf-pop-body { padding: 32px 30px; }
.cf-pop-body h3 { font-size: 1.5rem; margin-bottom: 6px; }
.cf-pop .x { position: absolute; top: 12px; right: 14px; background: rgba(17,20,28,.5); border: 0; color: #fff; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 1.2rem; line-height: 1; z-index: 5; box-shadow: 0 2px 8px rgba(0,0,0,.25); transition: background .2s; }
.cf-pop .x:hover { background: rgba(17,20,28,.8); }
/* notification "typing…" dots */
.nf-typing { display: inline-flex; gap: 4px; padding: 3px 0; }
.nf-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--text-mute); animation: cfbounce 1.1s infinite; }
.nf-typing span:nth-child(2){ animation-delay: .15s } .nf-typing span:nth-child(3){ animation-delay: .3s }
.cf-pop .code-box { margin-top: 14px; padding: 16px; border: 2px dashed var(--violet); border-radius: 12px; text-align: center; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--violet-2); letter-spacing: .1em; background: var(--accent-soft); animation: cfBigPop .5s both cubic-bezier(.18,.89,.32,1.28); }
/* bouncy entrance + big-number pop for the coupon */
.cf-pop { animation: cfPopIn .55s cubic-bezier(.18,.89,.32,1.28); }
@keyframes cfPopIn { from { opacity: 0; transform: scale(.82) translateY(22px); } to { opacity: 1; transform: none; } }
.cf-pop-art { overflow: hidden; }
.cf-pop-art::after { content: ""; position: absolute; inset: -40%; background: conic-gradient(from 0deg, transparent 0 38%, rgba(255,255,255,.18) 45%, transparent 52% 100%); animation: cfShine 4s linear infinite; }
@keyframes cfShine { to { transform: rotate(360deg); } }
.cf-pop-art .big { position: relative; z-index: 1; animation: cfBigPop .6s .12s both cubic-bezier(.18,.89,.32,1.28); text-shadow: 0 4px 20px rgba(0,0,0,.25); }
.cf-pop-art .sub { position: relative; z-index: 1; }
@keyframes cfBigPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.cf-confetti { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 140; }

/* utility */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-2{margin-top:16px}.mt-3{margin-top:26px}
.flex{display:flex}.between{justify-content:space-between}.items-center{align-items:center}.gap{gap:12px}.wrap{flex-wrap:wrap}
.tag { display:inline-block; font-size:.74rem; padding:4px 10px; border-radius:100px; background:var(--accent-soft); color:var(--violet-2); font-family:var(--font-display); font-weight:600; }
.divider { height:1px; background:var(--line); margin:26px 0; border:0; }
.bg-soft { background: var(--bg-2); }

/* ===== set "choose for me" card ===== */
.set-photo.set-auto { display:flex; align-items:center; justify-content:center; text-align:center;
  border:1.5px dashed var(--line-2); background:var(--bg-2); min-height:120px; padding:18px; }
.set-photo.set-auto.selected { border-style:solid; }
.set-photo.set-auto .auto-body { display:flex; flex-direction:column; gap:4px; }
.set-photo.set-auto .auto-ic { font-size:1.6rem; }
.set-photo.set-auto b { font-size:.98rem; }
.set-photo.set-auto .sub { font-size:.82rem; color:var(--muted); line-height:1.4; }

/* ===== Set picker: "view photos" button + gallery lightbox + redesigned "not sure" ===== */
.set-photo .ph { position: relative; }
.set-gallery-btn { position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-display); font-weight: 600; font-size: .78rem; color: #fff; cursor: pointer;
  background: rgba(17,20,28,.62); border: 1px solid rgba(255,255,255,.28); border-radius: 100px; padding: 6px 12px;
  backdrop-filter: blur(6px); transition: background .15s, transform .15s; }
.set-gallery-btn:hover { background: rgba(17,20,28,.82); transform: translateY(-1px); }
.set-gallery-btn .ic-cam { font-size: .82rem; }

/* the "not sure? let us match you" option - a clean full-width bar, not a photo card */
.set-auto2 { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; text-align: left; width: 100%;
  cursor: pointer; border: 1.5px dashed var(--line-2); background: var(--bg-2); border-radius: var(--radius);
  padding: 16px 18px; transition: border-color var(--t), background var(--t), box-shadow var(--t); color: var(--text); }
.set-auto2:hover { border-color: var(--violet); background: color-mix(in srgb, var(--violet) 5%, var(--bg-2)); }
.set-auto2.selected { border-style: solid; border-color: var(--violet); box-shadow: var(--glow);
  background: color-mix(in srgb, var(--violet) 7%, var(--surface)); }
.set-auto2 .sa-ic { font-size: 1.5rem; display: grid; place-items: center; width: 44px; height: 44px; flex: none;
  border-radius: 12px; background: var(--accent-soft); }
.set-auto2 .sa-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.set-auto2 .sa-txt b { font-family: var(--font-display); font-size: 1.02rem; }
.set-auto2 .sa-txt span { font-size: .84rem; color: var(--text-soft); line-height: 1.45; }
.set-auto2 .sa-check { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--line-2);
  display: grid; place-items: center; color: transparent; font-size: .82rem; font-weight: 700; transition: all var(--t); }
.set-auto2.selected .sa-check { background: var(--grad); border-color: transparent; color: #fff; }

.set-lightbox { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; padding: 18px;
  background: rgba(12,14,20,.82); backdrop-filter: blur(8px); animation: slbIn .18s ease; }
@keyframes slbIn { from { opacity: 0 } to { opacity: 1 } }
.slb-card { width: min(920px, 100%); max-height: 92vh; display: flex; flex-direction: column;
  background: var(--surface); border-radius: 18px; overflow: hidden; box-shadow: 0 24px 70px -20px rgba(0,0,0,.6); position: relative; }
.slb-x { position: absolute; top: 12px; right: 12px; z-index: 3; width: 36px; height: 36px; border-radius: 50%;
  border: 0; background: rgba(17,20,28,.6); color: #fff; font-size: 1rem; cursor: pointer; }
.slb-x:hover { background: rgba(17,20,28,.85); }
.slb-stage { position: relative; background: #0c0e14; aspect-ratio: 16/10; display: grid; place-items: center; min-height: 0; }
.slb-img { width: 100%; height: 100%; object-fit: contain; }
.slb-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.14); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; transition: background .15s; }
.slb-arrow:hover { background: rgba(255,255,255,.3); }
.slb-arrow.prev { left: 12px; } .slb-arrow.next { right: 12px; }
.slb-count { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); font-size: .76rem; color: #fff;
  background: rgba(17,20,28,.6); border-radius: 100px; padding: 4px 12px; font-variant-numeric: tabular-nums; }
.slb-foot { padding: 14px 16px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.slb-thumbs { display: flex; gap: 8px; overflow-x: auto; flex: 1; min-width: 0; }
.slb-thumb { flex: none; width: 66px; height: 46px; border-radius: 8px; overflow: hidden; border: 2px solid transparent;
  background: none; padding: 0; cursor: pointer; }
.slb-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slb-thumb.on { border-color: var(--violet); }
.slb-meta { display: flex; flex-direction: column; }
.slb-meta b { font-family: var(--font-display); font-size: .96rem; }
.slb-meta span { font-size: .78rem; color: var(--text-mute); }
.slb-pick { flex: none; }
@media (max-width: 560px) { .slb-foot { justify-content: space-between; } .slb-meta { display: none; } .slb-pick { flex: 1; } }

/* ===== preferred-engineer picker (step 5) ===== */
.eng-block { background:var(--bg-2); border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-top:4px; }
.eng-block .eng-head { font-size:.96rem; margin-bottom:8px; }
.eng-block .select { width:100%; }
.eng-block .eng-note { font-size:.8rem; color:var(--muted); line-height:1.45; margin:8px 0 0; }

/* ===== TY engineer line emphasis ===== */
.summary-row.eng-confirm b { color:var(--violet-2); }

/* ===== inline reschedule popup slots ===== */
.rebook-slots { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 14px; max-height:240px; overflow-y:auto; }
.rebook-slots .slot { flex:0 0 auto; }

/* ===== last-chance multi-select list ===== */
.last-chance-wrap { border:1px solid var(--line); border-radius:14px; padding:14px; margin:4px 0 16px; background:var(--bg-2); }
.last-chance-wrap .lc-head { font-size:.96rem; margin-bottom:10px; }
.last-chance-wrap .lc-head span { display:block; font-size:.8rem; color:var(--muted); font-weight:400; margin-top:2px; }
.lc-item { display:flex; align-items:center; gap:10px; padding:9px 10px; border:1px solid var(--line); border-radius:11px;
  background:var(--surface); cursor:pointer; margin-bottom:7px; transition:border-color .15s, background .15s; }
.lc-item:hover { border-color:var(--line-2); }
.lc-item:has(input:checked) { border-color:var(--violet); background:color-mix(in srgb, var(--violet) 6%, var(--surface)); }
.lc-item input { width:17px; height:17px; accent-color:var(--violet); flex:0 0 auto; }
.lc-item .lc-ic { font-size:1.15rem; }
.lc-item .lc-tx { flex:1; min-width:0; }
.lc-item .lc-tx b { display:block; font-size:.9rem; }
.lc-item .lc-tx small { display:block; color:var(--muted); font-size:.76rem; line-height:1.35; }
.lc-item .lc-pr { font-weight:700; font-size:.9rem; white-space:nowrap; }

/* ===== video-editing pack stepper ===== */
.edit-pack { border:1.5px solid var(--line); border-radius:13px; padding:12px 13px; background:var(--surface); margin-top:7px; transition:border-color .15s; }
.edit-pack.on { border-color:var(--violet); background:color-mix(in srgb, var(--violet) 6%, var(--surface)); }
.edit-pack .ep-top { display:flex; gap:10px; align-items:flex-start; }
.edit-pack .ep-top .emoji { font-size:1.25rem; }
.edit-pack .ep-body b { display:block; font-size:.92rem; }
.edit-pack .ep-body p { margin:2px 0 0; font-size:.78rem; color:var(--muted); line-height:1.4; }
.edit-pack .ep-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:11px; }
.ep-step { display:inline-flex; align-items:center; gap:2px; border:1px solid var(--line-2); border-radius:9px; overflow:hidden; }
.ep-btn { width:34px; height:34px; border:0; background:var(--bg-2); font-size:1.2rem; line-height:1; cursor:pointer; color:var(--text); }
.ep-btn:hover { background:var(--bg-3); }
.ep-h { min-width:54px; text-align:center; font-size:.86rem; }
.ep-pack { border:1px dashed var(--violet); color:var(--violet-2); background:transparent; border-radius:9px; padding:7px 11px;
  font-size:.8rem; font-weight:600; cursor:pointer; }
.ep-pack.on { background:var(--violet); color:#fff; border-style:solid; }
.ep-price { margin-left:auto; font-weight:700; font-size:.95rem; }
.ep-price s { color:var(--muted); font-weight:400; font-size:.82rem; }
.ep-note { margin-top:9px; font-size:.78rem; color:var(--muted); }
.ep-note.ok { color:var(--success); font-weight:600; }

/* ===== video-editing interest chooser (production step) ===== */
.edit-choose { border:1.5px solid var(--violet); border-radius:15px; padding:15px; margin:6px 0 18px;
  background:color-mix(in srgb, var(--violet) 5%, var(--surface)); }
.edit-choose .ec-head { font-size:1rem; margin-bottom:12px; }
.edit-choose .ec-head span { display:block; font-size:.83rem; color:var(--muted); font-weight:400; margin-top:3px; line-height:1.45; }
.ec-opts { display:flex; flex-direction:column; gap:9px; }
.ec-opt { display:flex; align-items:flex-start; gap:12px; text-align:left; width:100%; cursor:pointer;
  border:1.5px solid var(--line); border-radius:12px; padding:13px 14px; background:var(--surface); transition:border-color .15s, background .15s; }
.ec-opt:hover { border-color:var(--line-2); }
.ec-opt.on { border-color:var(--violet); background:color-mix(in srgb, var(--violet) 7%, var(--surface)); }
.ec-opt .ec-radio { flex:0 0 auto; width:20px; height:20px; margin-top:1px; border:2px solid var(--line-2); border-radius:50%; position:relative; }
.ec-opt.on .ec-radio { border-color:var(--violet); }
.ec-opt.on .ec-radio::after { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--violet); }
.ec-opt .ec-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.ec-opt .ec-title { font-size:.93rem; font-weight:600; display:flex; align-items:center; flex-wrap:wrap; gap:7px; line-height:1.3; }
.ec-opt .ec-sub { font-size:.8rem; color:var(--muted); line-height:1.45; }
.ec-opt .ec-tag { font-size:.7rem; font-weight:700; color:var(--violet-2); white-space:nowrap;
  background:color-mix(in srgb, var(--violet) 13%, transparent); border-radius:999px; padding:2px 9px; }

/* ===== video-editing page: check lists & step numbers ===== */
.check-list { list-style:none; padding:0; margin:14px 0 0; display:flex; flex-direction:column; gap:7px; }
.check-list li { position:relative; padding-left:24px; font-size:.9rem; color:var(--text); line-height:1.4; }
.check-list li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--violet-2); font-weight:700; }
.step-num { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:#fff;
  background:linear-gradient(135deg, var(--violet), var(--violet-2)); margin-bottom:6px; }

/* ---- Icon system: clean monochrome line symbols replacing emojis ---- */
.ic { width:1.05em; height:1.05em; display:inline-block; vertical-align:-0.15em; flex:none; }
.btn .ic, button .ic, a.btn .ic { margin-right:6px; vertical-align:-0.13em; }
.btn .ic:only-child, button .ic:only-child { margin-right:0; }
.tmpl-row button .ic, .seg button .ic { margin-right:5px; }
.msg-av .ic, .avatar .ic { width:1em; height:1em; vertical-align:-0.12em; color:#fff; }

/* Collapsible "upcoming automated messages" — tucked away so it doesn't clutter the live conversation */
.sched-wrap { margin:10px 0 4px; }
.sched-wrap > summary { cursor:pointer; list-style:none; user-select:none; opacity:.8; font-size:.82rem; padding:5px 2px; }
.sched-wrap > summary::-webkit-details-marker { display:none; }
.sched-wrap > summary::before { content:'▸'; margin-right:6px; font-size:.7rem; }
.sched-wrap[open] > summary::before { content:'▾'; }
.sched-wrap[open] > summary { margin-bottom:6px; }

/* Calendar: click a date to expand it (day detail) */
.dcal-day .dn { background:none; border:0; font:inherit; font-weight:700; color:inherit; cursor:pointer; padding:1px 5px; border-radius:6px; display:inline-flex; align-items:center; gap:5px; line-height:1.4; }
.dcal-day .dn:hover { background:rgba(124,58,237,.14); }
.dn-ct { background:var(--violet); color:#fff; font-size:.6rem; font-weight:700; border-radius:8px; padding:0 5px; min-width:15px; text-align:center; }
.dd-row { display:flex; gap:11px; align-items:center; padding:9px 10px; border:1px solid var(--line); border-radius:10px; margin-bottom:7px; cursor:pointer; }
.dd-row:hover { background:var(--bg-2); border-color:var(--line-2); }
.dd-gcal { cursor:default; }
.dd-time { font-weight:600; font-size:.8rem; min-width:78px; color:var(--text-soft); }
.dd-main { flex:1; min-width:0; }
.dd-main b { font-size:.92rem; }
.dd-sub { font-size:.77rem; color:var(--text-mute); margin-top:1px; }
.dd-go { color:var(--text-mute); text-decoration:none; font-weight:700; font-size:1rem; }

/* ===== Lead funnel (Overview / Remy) — proportional stage bars on the REAL pipeline ===== */
.funnel-card .funnel-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.funnel-card .funnel-head > b { font-family:var(--font-display); font-size:1rem; }
.funnel-stats { display:flex; gap:16px; flex-wrap:wrap; font-size:.74rem; color:var(--text-mute); }
.funnel-stats b { font-size:1rem; color:var(--text, var(--text)); }
.funnel-bars { display:flex; flex-direction:column; gap:7px; }
.funnel-band { display:grid; grid-template-columns:96px 1fr 2.2em auto; align-items:center; gap:12px; width:100%; background:transparent; border:0; padding:7px 8px; border-radius:10px; cursor:pointer; text-align:left; font:inherit; transition:background .12s ease; }
.funnel-band:hover { background:var(--bg-2, #f5f6f8); }
.funnel-band .fb-label { font-size:.82rem; font-weight:600; color:var(--text, var(--text)); }
.funnel-band .fb-track { height:14px; background:#edf0f5; border-radius:8px; overflow:hidden; }
.funnel-band .fb-fill { display:block; height:100%; border-radius:8px; min-width:0; transition:width .35s ease; }
.funnel-band .fb-count { font-size:1.05rem; font-weight:800; color:var(--text, var(--text)); text-align:right; }
.funnel-band .fb-val { font-size:.76rem; font-weight:600; color:var(--text-mute); text-align:right; min-width:52px; }
.funnel-foot { font-size:.73rem; margin-top:11px; }
@media (max-width:560px) { .funnel-band { grid-template-columns:78px 1fr 2em; } .funnel-band .fb-val { display:none; } }

/* Honest Drive states — shown when no REAL Google Drive folder is connected (no fake 404 links) */
.bk-drive-off { display:inline-block; color:var(--text-mute); background:#f4f5f7; border:1px dashed #d7dbe2; border-radius:9px; padding:8px 12px; font-size:.84rem; cursor:default; }
.sop-card-nolink { cursor:default; opacity:.88; }
.sop-card-nolink:hover { transform:none; box-shadow:none; }
.sop-card-nolink .sop-open { color:var(--text-mute); font-weight:600; }

/* ===== Clients multi-select bulk actions (real-CRM hygiene) ===== */
.col-check { width:36px; text-align:center; padding-left:10px !important; }
.row-check { width:16px; height:16px; cursor:pointer; accent-color:var(--violet); vertical-align:middle; }
#clientSelAll { width:16px; height:16px; cursor:pointer; accent-color:var(--violet); }
tr.row-sel > td { background:var(--violet-50, var(--violet-soft)); }
.bulk-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:var(--violet, var(--violet)); color:#fff; border-radius:11px; padding:9px 14px; margin:0 0 10px;
  box-shadow:0 6px 18px rgba(124,58,237,.28); animation:bulkIn .14s ease-out; }
@keyframes bulkIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
.bulk-bar .bulk-n { font-size:.92rem; }
.bulk-bar .bulk-actions { display:flex; gap:8px; align-items:center; }
.rm-line { font-size:.9rem; line-height:1.5; padding:9px 0; border-top:1px solid var(--line); }
.ov-card { background:var(--surface); border-radius:14px; width:100%; max-height:86vh; overflow:auto; padding:22px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
@media (max-width:640px){ .bulk-bar{ position:sticky; top:8px; z-index:5; } }

/* ===== Leads pipeline board — stage color accents + de-emphasized Tour ===== */
#leadBoard .kcol { border-top:3px solid var(--kcol, var(--line)); }
#leadBoard .kcol-head span:first-child { color:var(--kcol, var(--text-soft)); }
#leadBoard .kcol.kcol-dim { opacity:.72; background:var(--bg-2); }
#leadBoard .kcol.kcol-dim .kcol-head span:first-child { color:var(--text-mute); font-weight:500; }

/* ===== Calendar toolbar (mobile-friendly) + color-key legend ===== */
.cal-toolbar { margin-bottom: 16px; }
.cal-toolbar-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.cal-toolbar-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cal-label { font-family: var(--font-display); min-width: 170px; text-align: center; font-size: 1rem; }
.cal-toolbar-spacer { flex: 1 1 auto; }
.cal-legend { gap: 7px; }
.cal-key { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 500; padding: 4px 11px; border-radius: 100px;
  background: var(--bg-3, var(--bg-3)); border: 1.5px solid transparent; color: var(--text, var(--text)); cursor: pointer; transition: .12s; }
.cal-key:hover { border-color: var(--violet, var(--violet)); }
.cal-key.active { border-color: var(--violet, var(--violet)); background: var(--accent-soft, var(--violet-soft)); box-shadow: 0 0 0 2px var(--accent-soft, var(--violet-soft)); font-weight: 700; }
.cal-key.clear { background: none; color: var(--text-mute, var(--text-mute)); font-weight: 600; }
.cal-key.gcal.off { opacity: .55; }
.cal-dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 0 2px rgba(0,0,0,.04); }
@media (max-width: 760px) {
  .cal-toolbar-top { gap: 8px; margin-bottom: 10px; }
  .cal-toolbar-top h1 { font-size: 1.4rem; }
  .cal-toolbar-nav { gap: 6px; row-gap: 8px; }
  .cal-label { min-width: 0; flex: 1 1 auto; font-size: .95rem; }
  .cal-toolbar-spacer { display: none; }
  #cvToday, #cvNew { flex: 0 0 auto; }
  .cal-key { font-size: .78rem; padding: 5px 11px; }
}

/* ---- filter-chip count badge (Bug Reports) ---- */
.seg-chip .seg-n { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 2px;
  border-radius: 100px; font-size: .68rem; font-weight: 700; background: var(--bg-3, var(--bg-3)); color: var(--text-soft, var(--text-soft)); }
.seg-chip.on .seg-n { background: rgba(255,255,255,.28); color: #fff; }

/* ---- Bug Reports ---- */
.bug-card { background: var(--surface, #fff); border: 1px solid var(--line); border-radius: var(--radius, 14px); padding: 18px 20px; margin-bottom: 14px; box-shadow: var(--shadow-sm); }
.bug-top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.bug-pill { font-size: .68rem; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 100px; text-transform: capitalize; }
.bug-sev { font-size: .66rem; font-weight: 700; color: #fff; padding: 2px 9px; border-radius: 100px; text-transform: uppercase; letter-spacing: .03em; }
.bug-meta { font-size: .8rem; color: var(--text-mute, var(--text-mute)); }
.bug-meta code { background: var(--bg-3, var(--bg-3)); padding: 1px 6px; border-radius: 6px; font-size: .76rem; }
.bug-desc { font-size: .94rem; line-height: 1.5; margin: 0 0 12px; white-space: pre-wrap; }
.bug-ai { background: var(--accent-soft, var(--violet-soft)); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.bug-ai-h { font-family: var(--font-display); font-size: .82rem; font-weight: 700; color: var(--violet-2, var(--violet-2)); margin-bottom: 6px; }
.bug-ai-diag { font-size: .88rem; line-height: 1.5; margin: 0; }
.bug-ai-fix { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line-2); }
.bug-ai-fix b { font-size: .78rem; color: var(--text-soft, var(--text-soft)); display: block; margin-bottom: 3px; }
.bug-ai-fix p { font-size: .88rem; line-height: 1.5; margin: 0; }
.bug-ai-pending { font-size: .86rem; color: var(--violet-2, var(--violet-2)); font-style: italic; }
.bug-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.bug-act-sp { flex: 1 1 auto; }

/* ---- Analytics ---- */
.ana-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 760px) { .ana-grid { grid-template-columns: 1fr; } }
/* ---- Website analytics (rich) ---- */
.ana-grid2 { display: grid; grid-template-columns: 1.15fr .85fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 820px) { .ana-grid2 { grid-template-columns: 1fr; } }
.ana-kpis { margin-bottom: 16px; }
.ana-modebar { display: flex; align-items: center; gap: 7px; margin: -8px 0 18px; flex-wrap: wrap; }
.ana-mode { border: 1px solid var(--line); background: var(--surface); border-radius: 100px; padding: 4px 13px; font-size: .8rem; cursor: pointer; color: var(--text-soft); }
.ana-mode:hover { border-color: var(--line-2); }
.ana-mode.on { background: var(--violet, var(--violet)); color: #fff; border-color: var(--violet, var(--violet)); }
.ana-botnote { font-size: .78rem; }
.ana-kpis .kpi { position: relative; }
.ana-kpis .kpi span { font-size: .76rem; color: var(--text-mute); display: block; }
.ana-kpis .kpi b { font-size: 1.6rem; font-family: var(--font-display); display: block; margin-top: 2px; }
.ana-kpis .kpi .ana-up, .ana-kpis .kpi .ana-down, .ana-kpis .kpi .ana-flat { position: absolute; top: 15px; right: 15px; }
.ana-up, .ana-down, .ana-flat { font-size: .74rem; font-weight: 700; }
.ana-up { color: var(--success); } .ana-down { color: var(--danger); } .ana-flat { color: var(--text-mute); font-weight: 600; }
.ana-live { display: inline-flex; align-items: center; gap: 7px; font-size: .82rem; color: var(--text-mute); background: var(--surface); border: 1px solid var(--line); border-radius: 100px; padding: 6px 13px; white-space: nowrap; }
.ana-live b { color: var(--text); font-family: var(--font-display); }
.ana-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-2); flex: none; }
.ana-live.on .ana-live-dot { background: #10b981; animation: anaPulse 1.8s infinite; }
.ana-live.on b { color: var(--success); }
@keyframes anaPulse { 0% { box-shadow: 0 0 0 0 rgba(16,185,129,.5); } 70% { box-shadow: 0 0 0 7px rgba(16,185,129,0); } 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); } }
.ana-hero { margin-bottom: 16px; padding-bottom: 10px; }
.ana-hero-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.ana-hero-head h3 { display: flex; align-items: center; gap: 7px; }
.ana-legend { display: flex; gap: 14px; font-size: .76rem; color: var(--text-mute); }
.ana-legend span { display: inline-flex; align-items: center; gap: 5px; }
.ana-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.ana-dot.pv { background: var(--violet); } .ana-dot.vis { background: var(--text-mute); }
.ana-svg { width: 100%; height: auto; display: block; }
.ana-svg .ana-x { font-size: 10px; fill: var(--text-mute); }
.ana-svg .ana-pt { fill: var(--violet); opacity: 0; transition: opacity .12s; cursor: pointer; }
.ana-svg:hover .ana-pt { opacity: .9; }
.ana-chart-empty { text-align: center; color: var(--text-mute); font-size: .88rem; padding: 46px 12px; }
.ana-grid .card h3, .ana-grid2 .card h3 { display: flex; align-items: center; gap: 7px; margin-bottom: 14px; }
.ana-grid .card h3 .ic, .ana-grid2 .card h3 .ic, .ana-hero-head h3 .ic { color: var(--text-mute); }
.ana-sub { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); font-weight: 700; margin: 14px 0 8px; }
.empty-cta .ec-ic .ic { width: 40px; height: 40px; color: var(--violet); }
.ana-funnel { display: flex; flex-direction: column; gap: 11px; }
.ana-frow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ana-fbar { min-width: 0; color: #fff; border-radius: 8px; padding: 9px 13px; font-size: .9rem; white-space: nowrap; box-shadow: var(--shadow-sm); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.ana-fbar b { font-family: var(--font-display); font-size: 1.05rem; }
.ana-frate { font-size: .76rem; color: var(--text-mute); font-style: normal; }
.ana-frev { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 6px; padding-top: 12px; border-top: 1px dashed var(--line); }
.ana-frev span { font-size: .82rem; color: var(--text-mute); }
.ana-frev b { font-family: var(--font-display); font-size: 1.35rem; color: var(--success); }
.ana-hours { display: flex; align-items: flex-end; gap: 3px; height: 130px; padding-top: 8px; }
.ana-hour { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 4px; }
.ana-hour > span { width: 100%; max-width: 14px; background: var(--grad); border-radius: 4px 4px 0 0; min-height: 2px; transition: height .4s; }
.ana-hour i { font-size: .6rem; color: var(--text-mute); font-style: normal; height: 10px; }

/* ---- Floating "Report a bug" button ---- */
.bug-fab { position: fixed; right: 20px; bottom: 20px; z-index: 8000; display: inline-flex; align-items: center; gap: 7px;
  background: var(--surface, #fff); color: var(--text, var(--text)); border: 1px solid var(--line-2); border-radius: 100px;
  padding: 10px 16px; font-size: .86rem; font-weight: 600; cursor: pointer; box-shadow: var(--shadow, 0 12px 30px rgba(0,0,0,.14));
  transition: transform .12s, box-shadow .12s, border-color .12s; }
.bug-fab:hover { transform: translateY(-2px); border-color: var(--violet, var(--violet)); color: var(--violet-2, var(--violet-2)); box-shadow: 0 16px 36px rgba(0,0,0,.18); }
.bug-modal .field { margin-bottom: 14px; }
.bug-modal .bug-ctx { background: var(--bg-3, var(--bg-3)); border-radius: 8px; padding: 8px 11px; margin: 4px 0 4px; color: var(--text-mute, var(--text-mute)); }
@media (max-width: 760px) {
  .bug-fab { right: 14px; bottom: 78px; padding: 10px 13px; }   /* clear the mobile bottom bar / any FAB */
  .bug-fab .bug-fab-txt { display: none; }                       /* compact to just the icon on phones */
}

/* Tier-2 bug-fix diff (Remy's proposed code change) — colors read on the light <pre> the card uses */
.bug-diff-file { display:block; font-weight:700; color:var(--text-soft); margin-bottom:4px; }
.bug-diff-del { display:block; color:var(--danger); background:rgba(220,38,38,.08); }
.bug-diff-add { display:block; color:var(--success); background:rgba(22,163,74,.08); }

/* In-app bug screenshot capture + draw/circle annotation */
.bug-shot-wrap { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--bg-3); }
.bug-shot-thumb { position:relative; cursor:pointer; display:block; }
.bug-shot-thumb img { display:block; width:100%; height:auto; max-height:38vh; object-fit:contain; background:var(--surface); }
.bug-shot-thumb:active { opacity:.92; }
.bug-shot-ov { position:absolute; bottom:8px; right:8px; background:rgba(15,23,42,.82); color:#fff; font-size:.74rem; font-weight:600; padding:4px 9px; border-radius:100px; pointer-events:none; }
.bug-shot-empty { padding:20px 14px; text-align:center; color:var(--text-mute,var(--text-mute)); font-size:.82rem; }

/* ===== The Dialer ===== */
.dialer { position:fixed; right:22px; bottom:22px; width:362px; max-width:calc(100vw - 24px); background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:0 24px 60px -12px rgba(15,23,42,.45); z-index:10000; overflow:hidden; animation:dlrUp .28s cubic-bezier(.16,1,.3,1); }
@keyframes dlrUp { from { transform:translateY(24px) scale(.98); opacity:0; } to { transform:none; opacity:1; } }
.dlr-head { display:flex; align-items:center; gap:11px; padding:16px 16px 15px; background:linear-gradient(135deg,var(--violet),var(--violet)); color:#fff; position:relative; }
.dlr-head.dlr-live { background:linear-gradient(135deg,#0ea5e9,#2563eb); }
.dlr-head.dlr-wrap { background:linear-gradient(135deg,var(--text-soft),var(--text-soft)); }
.dlr-who { display:flex; align-items:center; gap:11px; flex:1; min-width:0; }
.dlr-who b { display:block; font-size:1rem; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dlr-who span { font-size:.78rem; opacity:.82; }
.dlr-av { width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.22); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.05rem; flex:none; position:relative; }
.dlr-precall .dlr-av::after { content:''; position:absolute; inset:-5px; border-radius:50%; border:2px solid rgba(255,255,255,.6); animation:dlrPulse 1.4s ease-out infinite; }
@keyframes dlrPulse { 0% { transform:scale(1); opacity:.8; } 100% { transform:scale(1.55); opacity:0; } }
.dlr-status { font-size:.8rem; text-align:right; padding-right:42px; }
.dlr-timer { font-variant-numeric:tabular-nums; font-size:1.05rem; font-weight:700; letter-spacing:.5px; }
.dlr-winbtns { display:flex; gap:3px; position:absolute; top:9px; right:9px; }
.dlr-icon { background:rgba(255,255,255,.16); border:0; color:#fff; width:24px; height:24px; border-radius:7px; cursor:pointer; font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center; }
.dlr-icon:hover { background:rgba(255,255,255,.32); }
.dlr-body { padding:15px 16px 17px; display:flex; flex-direction:column; gap:11px; }
.dlr-bignum { font-size:1.45rem; font-weight:700; text-align:center; color:var(--text); letter-spacing:.5px; padding:6px 0 2px; }
.dlr-hint { font-size:.76rem; color:var(--text-mute); text-align:center; line-height:1.45; background:var(--bg-soft,#f7f7fb); border-radius:10px; padding:9px 11px; }
.dlr-actions { display:flex; flex-direction:column; gap:8px; }
.dlr-ctx { display:flex; flex-wrap:wrap; gap:6px; }
.dlr-ctx span { font-size:.72rem; background:var(--bg-soft,#f3f4f8); border:1px solid var(--line); border-radius:999px; padding:4px 10px; color:var(--text-mute); }
.dlr-notes { width:100%; min-height:84px; border:1px solid var(--line); border-radius:11px; padding:10px 12px; font:inherit; font-size:.88rem; resize:vertical; background:var(--surface); box-sizing:border-box; }
.dlr-notes:focus { outline:none; border-color:var(--violet); }
.dlr-controls { display:flex; gap:8px; justify-content:center; }
.dlr-ctrl { flex:1; background:var(--bg-soft,#f3f4f8); border:1px solid var(--line); border-radius:12px; padding:9px 4px; font-size:.74rem; font-weight:600; color:var(--text-mute); cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:2px; }
.dlr-ctrl:hover { border-color:var(--violet); color:var(--text); }
.dlr-ctrl > span { font-size:1rem; }
.dlr-ctrl .rec-on { color:var(--danger); animation:dlrBlink 1.1s steps(2) infinite; }
@keyframes dlrBlink { 50% { opacity:.25; } }
.dlr-sec { font-size:.78rem; font-weight:700; color:var(--text-mute); }
.dlr-disp { display:flex; flex-wrap:wrap; gap:6px; }
.dlr-ai { background:linear-gradient(135deg,var(--violet),var(--violet)); color:#fff; border:0; }
.dlr-ai:hover { filter:brightness(1.08); }
.dlr-aiload { font-size:.84rem; color:var(--violet); text-align:center; padding:8px; }
.dlr-sumcard { background:linear-gradient(180deg,var(--violet-soft),#f5f3ff); border:1px solid #e9d5ff; border-radius:12px; padding:12px 13px; }
.dlr-sumlabel { font-size:.72rem; font-weight:700; color:var(--violet); margin-bottom:5px; letter-spacing:.3px; }
.dlr-sumcard p { margin:0; font-size:.86rem; line-height:1.5; color:var(--text); }
.dlr-next { margin-top:8px; font-size:.82rem; color:var(--text); background:var(--surface); border-radius:8px; padding:7px 9px; }
.dlr-mini { display:flex; align-items:center; gap:8px; background:linear-gradient(135deg,var(--violet),var(--violet)); color:#fff; border:0; padding:12px 15px; cursor:pointer; width:100%; font-size:.86rem; }
.dlr-mini b { font-weight:600; }
.dlr-mini span { margin-left:auto; opacity:.85; font-variant-numeric:tabular-nums; }
.c360-callsum { display:block; font-size:.76rem; color:var(--violet-2); background:var(--violet-soft); border-radius:7px; padding:5px 8px; margin-top:4px; line-height:1.4; }
.c360-callnext { display:block; font-size:.74rem; color:var(--text-mute); margin-top:3px; }
@media (max-width:560px) { .dialer { right:0; left:0; bottom:0; width:100%; max-width:100%; border-radius:18px 18px 0 0; } }

/* crawl-fix batch: hidden bulk bar, calendar h1 parity, schedule When column */
.bulk-bar[hidden] { display: none !important; }
.cal-toolbar-top h1 { font-size: 2rem; }
#schedRows td:nth-child(3) { white-space: nowrap; }

/* ===== Drive tab (clean list + client search) ===== */
.drv-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.drv-bar .input { max-width: 340px; flex: 1 1 220px; }
.drv-vault { font-size: .78rem; }
.drv-client { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); margin-bottom: 10px; }
.drv-client summary { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; list-style: none; min-width: 0; }
.drv-client summary::-webkit-details-marker { display: none; }
.drv-client summary::before { content: "›"; color: var(--text-mute); font-weight: 700; transition: transform .15s; flex: none; }
.drv-client[open] summary::before { transform: rotate(90deg); }
.drv-ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--violet-soft, rgba(124,58,237,.1)); color: var(--violet); flex: none; }
.drv-ic .ic { width: 15px; height: 15px; }
.drv-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drv-count { font-size: .74rem; color: var(--text-mute); background: var(--bg-3); border-radius: 100px; padding: 3px 9px; flex: none; }
.drv-open { font-size: .78rem; color: var(--violet); flex: none; }
.drv-open:hover { text-decoration: underline; }
.drv-sessions { padding: 2px 14px 12px 44px; display: flex; flex-direction: column; gap: 7px; }
.drv-session { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 10px; padding: 8px 11px; background: var(--bg-3); }
.drv-session .drv-sname { flex: 1; min-width: 0; font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drv-session .btn { flex: none; }
@media (max-width: 640px) {
  .drv-sessions { padding-left: 14px; }
  .drv-session { flex-wrap: wrap; }
  .drv-client summary { flex-wrap: wrap; }
}

/* ===== Automations page v2 (unified collapsible groups) ===== */
.auto-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.auto-bar .input { max-width: 340px; flex: 1 1 220px; }
.auto-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.auto-chip { font-size: .74rem; font-weight: 600; color: var(--text-mute); background: var(--bg-3); border-radius: 100px; padding: 4px 11px; }
.auto-chip.bad { color: #fff; background: var(--danger); }
.aug { border: 1px solid var(--line); border-radius: 13px; background: var(--surface); margin-bottom: 10px; }
.aug > summary { display: flex; align-items: center; gap: 11px; padding: 13px 15px; cursor: pointer; list-style: none; min-width: 0; }
.aug > summary::-webkit-details-marker { display: none; }
.aug > summary::before { content: "›"; color: var(--text-mute); font-weight: 700; transition: transform .15s; flex: none; }
.aug[open] > summary::before { transform: rotate(90deg); }
.aug-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: color-mix(in srgb, var(--gc, var(--violet)) 12%, transparent); color: var(--gc, var(--violet)); flex: none; }
.aug-ic .ic { width: 15px; height: 15px; }
.aug-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.aug-t b { font-size: .95rem; }
.aug-t small { font-size: .74rem; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aug-n { font-size: .74rem; font-weight: 600; color: var(--gc, var(--violet)); background: color-mix(in srgb, var(--gc, var(--violet)) 10%, transparent); border-radius: 100px; padding: 4px 11px; flex: none; }
.aug-journey { display: flex; align-items: stretch; gap: 4px; overflow-x: auto; padding: 4px 15px 10px; }
.ajs { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 0; background: none; cursor: pointer; padding: 6px 7px; border-radius: 10px; min-width: 74px; flex: none; }
.ajs:hover { background: var(--bg-3); }
.ajs i { width: 9px; height: 9px; border-radius: 50%; background: var(--gc, var(--violet)); }
.ajs b { font-size: .68rem; color: var(--text); font-weight: 600; max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ajs span { font-size: .64rem; color: var(--text-mute); }
.ajs-line { flex: none; align-self: center; width: 18px; height: 2px; background: var(--line-2); border-radius: 2px; }
.aug-rows { padding: 0 10px 10px; display: flex; flex-direction: column; gap: 6px; }
.aur { display: flex; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 11px; padding: 9px 12px; background: var(--bg-3); cursor: pointer; transition: border-color .12s; min-width: 0; }
.aur:hover { border-color: var(--gc, var(--violet)); }
.aur.off { opacity: .55; }
.aur .switch { flex: none; }
.aur-main { flex: 1; min-width: 0; }
.aur-name { font-weight: 600; font-size: .86rem; }
.aur-sub { font-size: .74rem; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aur-chip { font-size: .68rem; font-weight: 600; border-radius: 100px; padding: 3px 9px; flex: none; }
.aur-when { color: var(--gc, var(--violet)); background: color-mix(in srgb, var(--gc, var(--violet)) 10%, transparent); }
.aur-ch { color: var(--text-mute); background: var(--surface); border: 1px solid var(--line); }
.aur-test { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--text-mute); cursor: pointer; flex: none; }
.aur-test:hover { color: var(--violet); border-color: var(--violet); }
.aur-test .ic { width: 13px; height: 13px; }
.aug-plain { --gc: var(--text-mute); margin-top: 14px; }
.aug-pad { padding: 2px 15px 14px; }
.auto-sub-h { font-weight: 700; font-size: .86rem; margin: 0 0 8px; }
.auto-alertprefs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; margin-top: 12px; }
@media (max-width: 640px) {
  .aur { flex-wrap: wrap; }
  .aur-main { flex: 1 1 100%; order: -1; }
  .aug-t small { white-space: normal; }
}

/* ===== Platform billing gate + super-admin studio override ===== */
.studio-override-chip { position: fixed; bottom: 16px; left: 16px; z-index: 1200; border: 1px solid var(--line-2); background: var(--surface); color: var(--text); font-weight: 600; font-size: .8rem; border-radius: 100px; padding: 9px 15px; cursor: pointer; box-shadow: var(--shadow); }
.studio-override-chip:hover { border-color: var(--violet); color: var(--violet); }
.billing-banner { position: sticky; top: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; padding: 10px 16px; background: var(--danger); color: #fff; font-size: .86rem; }
.billing-banner .btn { background: #fff; color: var(--danger); border: 0; font-weight: 700; }
.paywall { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); padding: 20px; }
.paywall-card { max-width: 430px; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 34px 30px; box-shadow: var(--shadow); }
.paywall-card .pw-ic { font-size: 2rem; margin-bottom: 8px; }
.paywall-card h2 { margin-bottom: 8px; font-size: 1.3rem; }
.paywall-card p { color: var(--text-mute); font-size: .9rem; margin-bottom: 18px; }

/* ===== Analytics: bot footnote + peek panel (replaces the mode switcher) ===== */
.ana-botrow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 16px; font-size: .8rem; color: var(--text-mute); }
.ana-botrow .ic { width: 13px; height: 13px; flex: none; }
.ana-botrow .lnk { font-size: .8rem; }
.ana-botrow #anaBotPanel { flex-basis: 100%; }
.ana-botpanel { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); padding: 14px 16px; margin-top: 10px; }
.ana-botcols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }

/* ===== Books v2: reconciliation, review banner, bulk actions ===== */
.books-recon { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 10px 0 16px; font-size: .8rem; color: var(--text-mute); }
.books-recon .br-item { display: inline-flex; align-items: center; gap: 6px; cursor: help; }
.books-recon .ic { width: 13px; height: 13px; }
.books-recon .br-dot { opacity: .5; }
.books-review { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  background: var(--violet-soft, #f3effe); border: 1px solid color-mix(in srgb, var(--violet) 25%, transparent);
  border-radius: 13px; padding: 13px 16px; margin: 0 0 16px; }
.books-review.subtle { background: var(--bg-3); border-color: var(--line); }
.books-review .brv-l { display: flex; align-items: center; gap: 12px; min-width: 0; }
.books-review .brv-l > .ic { width: 22px; height: 22px; color: var(--violet); flex: none; }
.books-review.subtle .brv-l > .ic { color: var(--warning); }
.books-review .brv-l b { display: block; font-size: .92rem; }
.books-review .brv-l span { display: block; font-size: .78rem; color: var(--text-mute); }
.books-review .btn { flex: none; }
.books-bulk { display: flex; align-items: center; gap: 12px; background: var(--ink, #17151f); color: #fff;
  border-radius: 10px; padding: 8px 14px; margin-bottom: 10px; }
.books-bulk b { font-size: .85rem; }
.books-bulk .select { max-width: 200px; }
tr.bk-flag { background: color-mix(in srgb, var(--warning) 7%, transparent); }

/* ---- Phone: recent calls review (collapsible rows w/ recording + transcript) ---- */
.call-row{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--card,#fff);overflow:hidden}
.call-row summary{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none;flex-wrap:wrap}
.call-row summary::-webkit-details-marker{display:none}
.call-row[open] summary{border-bottom:1px solid var(--line)}
.call-when{font-size:.75rem;color:var(--muted);white-space:nowrap;min-width:86px}
.call-who{font-size:.88rem}
.call-prev{flex:1;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}
.call-chip{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.call-chip-good{background:#e7f6ec;color:#1c7c3c}
.call-chip-ok{background:#eef2ff;color:var(--violet,#5b5bd6)}
.call-chip-warn{background:#fff4e0;color:#9a6a00}
.call-chip-dim{background:#f1f1f4;color:#666}
.call-chip-live{background:#ffe9ec;color:#c02942}
.call-body{padding:12px 14px}
.call-sum{margin:0 0 6px;font-size:.88rem}
.call-next{margin:0 0 8px;font-size:.82rem;color:var(--violet,#5b5bd6)}
.call-txwrap{margin-top:6px}
.call-txwrap>summary{cursor:pointer;font-size:.8rem;font-weight:600;color:var(--muted);list-style:none}
.call-txwrap>summary::-webkit-details-marker{display:none}
.call-txwrap>summary::before{content:"▸ "}
.call-txwrap[open]>summary::before{content:"▾ "}
.call-tx{margin-top:8px;display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}
.ctx-line{font-size:.82rem;padding:7px 10px;border-radius:10px;max-width:88%}
.ctx-line b{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-bottom:2px}
.ctx-caller{background:#f1f1f4;align-self:flex-start}
.ctx-remy{background:#eef2ff;align-self:flex-end}

/* ---- Messages: call event card (GHL-style call in the thread) ---- */
.msg-b.call-card{background:#f6f5ff;border:1px solid #e4e1fb;border-radius:12px;padding:10px 12px;max-width:420px}
.call-card-head{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap;row-gap:4px}
.call-card-sum{font-size:.86rem;margin:4px 0 2px}
.msg-b.call-card audio{width:100%;max-width:360px;height:36px;margin-top:6px;display:block}
.call-card-emoji{font-size:1rem;line-height:1}
.msg-b.call-card{border-left:3px solid var(--violet,#5b5bd6)}
.call-card-note{font-size:.68rem;color:var(--muted,#888);margin-top:6px;text-transform:uppercase;letter-spacing:.03em}

/* ---- Call recordings tab ---- */
.cr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
.cr-stat{background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.cr-stat b{display:block;font-size:1.45rem;font-family:var(--display,inherit);color:var(--violet,#5b5bd6)}
.cr-stat span{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cr-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.cr-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden;transition:box-shadow .15s}
.cr-card:hover{box-shadow:0 2px 10px rgba(91,91,214,.08)}
.cr-card[open]{box-shadow:0 4px 18px rgba(91,91,214,.12);border-color:#d9d6f7}
.cr-card>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.cr-card>summary::-webkit-details-marker{display:none}
.cr-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--violet,#5b5bd6),#8b7cf0);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.cr-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cr-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cr-top b{font-size:.92rem}
.cr-dur{font-size:.72rem;color:var(--muted);background:#f4f4f7;padding:2px 8px;border-radius:99px}
.cr-sum{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-when{font-size:.74rem;color:var(--muted);white-space:nowrap;flex-shrink:0}
.cr-body{padding:4px 16px 16px 68px;border-top:1px solid var(--line);padding-top:12px}
.cr-body audio{width:100%;max-width:480px;height:40px;display:block;margin:0 0 10px}
.cr-next{margin:0 0 8px;font-size:.85rem;font-weight:600;color:var(--violet,#5b5bd6)}
.cr-meta{display:flex;gap:16px;font-size:.8rem;color:var(--muted);margin:0 0 10px;flex-wrap:wrap}
.cr-actions{display:flex;gap:8px;margin:0 0 6px;flex-wrap:wrap}
@media (max-width:640px){.cr-body{padding-left:16px}.cr-when{display:none}}

/* ---- Pre-session brief v2: lean, verified, professional ---- */
.bp2{background:var(--card,#fff);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.bp2-top{display:flex;align-items:flex-start;gap:10px}
.bp2-verdict{flex:1;font-size:1.02rem;font-weight:700;line-height:1.35;font-family:var(--display,inherit)}
.bp2-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.bp2-chips span{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:99px;background:#f4f4f8;color:#555}
.bp2-flag{margin:10px 0 0;padding:8px 12px;border-radius:9px;background:#fff7e8;color:#8a5a00;font-size:.8rem;border:1px solid #f3e2bb}
.bp2-who{margin:12px 0 0;font-size:.86rem;font-weight:600}
.bp2-who a{color:var(--violet,#5b5bd6);text-decoration:none;font-weight:500}
.bp2-why{margin:6px 0 0;font-size:.88rem;line-height:1.5;color:#333}
.bp2-label{margin:16px 0 6px;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.bp2-list{margin:0;padding:0 0 0 2px;list-style:none;display:flex;flex-direction:column;gap:6px}
.bp2-list li{font-size:.86rem;line-height:1.45;padding-left:16px;position:relative}
.bp2-list li::before{content:"";position:absolute;left:2px;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--violet,#5b5bd6)}
.bp2-cue{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:12px 14px;border-radius:11px;background:linear-gradient(135deg,#f4f2ff,#faf9ff);border:1px solid #e2ddfb}
.bp2-cue span{font-size:1.05rem;line-height:1}
.bp2-cue b{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--violet,#5b5bd6);margin-bottom:2px}
.bp2-cue div{font-size:.86rem;line-height:1.45}
.bp2-prep{display:flex;flex-direction:column;gap:2px}
.bp2-ups{margin:14px 0 0}
.bp2-ups>summary{cursor:pointer;font-size:.8rem;font-weight:600;color:var(--muted);list-style:none}
.bp2-ups>summary::-webkit-details-marker{display:none}
.bp2-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.bp2-links a{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:#444;text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:5px 12px 5px 7px;transition:border-color .15s}
.bp2-links a:hover{border-color:var(--violet,#5b5bd6)}
.bp2-links img{width:16px;height:16px;border-radius:4px}
.bp2-src{margin:12px 0 0}
.bp2-src>summary{cursor:pointer;font-size:.74rem;color:var(--muted);list-style:none}
.bp2-src>summary::-webkit-details-marker{display:none}
.bp2-src a{display:block;font-size:.76rem;color:var(--violet,#5b5bd6);text-decoration:none;padding:3px 0}
.bp2-foot{margin:12px 0 0;font-size:.7rem;color:var(--muted)}

/* Remy page: funnel arrows + demoted brain section */
.remy-funnel .rs span{white-space:nowrap}
.remy-brain{margin-top:22px}
.remy-brain>summary{cursor:pointer;font-size:.9rem;font-weight:700;color:var(--text-mute);list-style:none;display:flex;align-items:center;gap:7px}
.remy-brain>summary::-webkit-details-marker{display:none}
.remy-brain>summary::after{content:"▸";font-size:.8rem;transition:transform .15s}
.remy-brain[open]>summary::after{transform:rotate(90deg)}

/* Overview: marketing snapshot table */
.mkt-table{width:100%;border-collapse:collapse;font-size:.85rem}
.mkt-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:4px 8px 6px 0;border-bottom:1px solid var(--line)}
.mkt-table td{padding:7px 8px 7px 0;border-bottom:1px solid var(--line)}
.mkt-table tr:last-child td{border-bottom:0}
.mkt-table td:nth-child(n+2),.mkt-table th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}

/* SOPs: live training drive file list */
.train-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.train-file{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s}
.train-file:hover{border-color:var(--violet,#5b5bd6)}
.train-file b{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Studio sets page: uniform photo grid (no masonry scatter) */
.gallery-even{columns:unset;column-gap:unset;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-even img{aspect-ratio:4/3;object-fit:cover;width:100%;height:100%;margin:0}
@media (max-width:900px){.gallery-even{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.gallery-even{grid-template-columns:1fr}}

/* Set picker: inline photo browsing + full screen */
.set-photo .ph{position:relative}
.set-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:rgba(15,12,35,.55);color:#fff;font-size:1.25rem;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background .15s;z-index:2}
.set-nav:hover{background:rgba(15,12,35,.8)}
.set-prev{left:10px}
.set-next{right:10px}
.set-count{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(15,12,35,.6);color:#fff;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:99px;z-index:2}
.set-fs{position:absolute;bottom:8px;right:10px;width:32px;height:32px;border-radius:9px;border:0;background:rgba(15,12,35,.55);color:#fff;font-size:1rem;display:grid;place-items:center;cursor:pointer;transition:background .15s;z-index:2}
.set-fs:hover{background:rgba(15,12,35,.8)}

/* ---- Real Google reviews widget ---- */
.grev-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 22px;margin-bottom:16px}
.grev-brand{display:flex;align-items:center;gap:14px}
.grev-brand>svg{width:34px;height:34px;flex:none}
.grev-score{font-family:var(--font-display);font-size:1.9rem;line-height:1;display:block}
.grev-stars{display:block;line-height:1;margin-top:3px}
.grev-count{border-left:1px solid var(--line);padding-left:14px}
.grev-count b{display:block;font-family:var(--font-display)}
.grev-count span{font-size:.84rem;color:var(--text-soft)}
.grev-cta{display:flex;gap:8px;flex-wrap:wrap}
.grev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
@media (max-width:980px){.grev-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grev-grid{grid-template-columns:1fr}.grev-count{border-left:0;padding-left:0}}
.grev-card{padding:16px 18px}
.grev-top{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.grev-av,.grev-av-fb{width:40px;height:40px;border-radius:50%;flex:none;object-fit:cover}
.grev-av-fb{display:grid;place-items:center;background:var(--accent-soft);color:var(--violet-2);font-weight:700;font-family:var(--font-display)}
.grev-who{flex:1;min-width:0}
.grev-who b{display:block;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grev-when{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-mute)}
.grev-star{color:var(--line-2);font-size:.85rem}
.grev-star.on{color:#f59e0b}
.grev-gbadge{flex:none;opacity:.9}
.grev-gbadge svg{width:17px;height:17px}
.grev-text{font-size:.9rem;line-height:1.55;margin:0;white-space:pre-line}
.grev-text.clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.grev-more{background:none;border:0;color:var(--violet-2);font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 0 0;text-align:left}
.grev-photos{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}
.grev-photos img{width:76px;height:58px;object-fit:cover;border-radius:9px;border:1px solid var(--line);transition:transform .15s}
.grev-photos a:hover img{transform:scale(1.05)}
.grev-foot{text-align:center;font-size:.82rem;margin-top:14px}

/* ---- Business analytics additions ---- */
.ana-util{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.ana-util>b{font-family:var(--font-display);font-size:2.3rem;line-height:1}
.ana-util-meta{flex:1;display:flex;flex-direction:column;gap:7px}
.ana-util-meta>span:first-child{font-size:.82rem;color:var(--text-soft)}
.ana-util-meta .track{display:block;height:9px;border-radius:99px;background:var(--bg-3);overflow:hidden}
.ana-util-meta .fill{display:block;height:100%;border-radius:99px;background:var(--grad)}
.ana-days{display:flex;gap:6px;height:74px;align-items:flex-end;margin-top:4px}
.ana-day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}
.ana-day span{display:block;width:100%;max-width:30px;border-radius:5px 5px 2px 2px;background:var(--violet);opacity:.8}
.ana-day i{font-style:normal;font-size:.64rem;color:var(--text-mute)}
.ana-split{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ana-split>div{flex:1;min-width:110px;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;padding:10px 12px}
.ana-split>div span{display:block;font-size:.72rem;margin-bottom:2px}
.ana-split>div b{font-family:var(--font-display);font-size:1.15rem}
.ana-dropbox{margin-top:12px;padding:10px 13px;border-radius:11px;background:var(--warn-soft,#fef3c7);border:1px solid var(--warn,#f59e0b);font-size:.84rem}
.ana-webhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}

/* ---- Mobile action bar (public site, phones only) ---- */
.mab{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1200;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(15,12,35,.08)}
.mab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:12px 6px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);font-weight:700;font-size:.88rem;color:var(--text);white-space:nowrap}
.mab-primary{background:var(--grad);border-color:transparent;color:#fff}
@media (max-width:720px){
  .mab{display:flex}
  body.has-mab{padding-bottom:76px}
  body.has-mab .cf-chat-btn{bottom:84px}
  body.has-mab .cf-chat-panel{bottom:84px}
}

/* ---- Google trust strip at decision points ---- */
.trust-strip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:.84rem;color:var(--text-soft);box-shadow:var(--shadow-sm)}
.trust-strip b{font-family:var(--font-display);color:var(--text)}
.trust-strip .ts-stars{color:#f59e0b;letter-spacing:1px;font-size:.8rem}
