:root{
  /* Brand palette — sampled from the Tossker logo, via the design system tokens */
  --teal-900:#022B33; --teal-800:#005564; --teal-700:#008693; --teal-600:#0298A2;
  --teal-500:#04A6AD; --teal-300:#5FD3D8; --teal-100:#D6F2F4; --teal-50:#F0FAFB;
  --gold-700:#A87218; --gold-600:#CC9024; --gold-500:#E09A2C; --gold-100:#FBF0DC;
  --orange-500:#DB5D1C;
  --navy-900:#04262D; --navy-800:#083C46; --navy-700:#0E5361;
  --slate-600:#4A6670; --slate-500:#6B848D; --slate-400:#9BB0B7; --slate-300:#C8D8DC;
  --slate-200:#E1EBEE; --slate-100:#F0F6F7;
  --cloud:#F7FBFC; --white:#fff;
  --green-500:#12A47C; --green-100:#D3F2E7; --red-500:#DC2626;

  /* Semantic */
  --surface-page:var(--cloud); --surface-card:var(--white); --surface-sunken:var(--slate-100);
  --text-heading:var(--navy-900); --text-body:var(--navy-800); --text-muted:var(--slate-500);
  --text-on-dark:#E2E8F0;
  --border-subtle:var(--slate-200); --border-default:var(--slate-300);
  --brand-primary:var(--teal-700); --brand-primary-hover:var(--teal-800);
  --brand-accent:var(--gold-600); --brand-accent-soft:var(--gold-100);
  --status-success:var(--green-500);

  /* Channel color contract */
  --channel-phone:var(--teal-700); --channel-sms:var(--gold-600);
  --channel-chat:var(--teal-500); --channel-ticket:var(--navy-800);

  --gradient-night:linear-gradient(160deg,#04262D 0%,#005564 100%);
  --gradient-brand:linear-gradient(135deg,#005564 0%,#008693 55%,#04A6AD 100%);

  --shadow-sm:0 1px 3px rgba(4,38,45,.08),0 1px 2px rgba(4,38,45,.04);
  --shadow-md:0 4px 12px rgba(4,38,45,.08),0 1px 3px rgba(4,38,45,.04);
  --shadow-lg:0 12px 32px rgba(4,38,45,.12),0 2px 8px rgba(4,38,45,.06);
  --shadow-brand:0 8px 24px rgba(0,134,147,.26);
  --ring-focus:0 0 0 3px rgba(4,166,173,.35);

  --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-pill:999px;
  --tracking-wide:0.06em;
  --max-w:1180px;

  /* Type. System stack keeps the page at zero external requests (Cloudflare Pages
     rule: no CDN, no Google Fonts). To use the brand faces, self-host Montserrat +
     Inter as local .woff2 via @font-face and set these two vars — nothing else changes. */
  --font-display:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--surface-page); color:var(--text-body);
  font:400 16px/1.65 var(--font-body);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3{margin:0;color:var(--text-heading);font-family:var(--font-display);letter-spacing:-.02em;line-height:1.2}
p{margin:0}
a{color:var(--brand-primary);text-decoration:none}
a:hover{color:var(--brand-primary-hover)}
img,svg{display:block}
button{font-family:inherit}
:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:6px}
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 32px}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;
  font:600 14px/1 var(--font-body);text-decoration:none;white-space:nowrap;
  padding:0 16px;height:40px;transition:background .14s,box-shadow .14s,transform .14s,border-color .14s;
}
.btn:active{transform:translateY(1px) scale(.99)}
.btn svg{width:16px;height:16px}
.btn-lg{height:48px;padding:0 22px;font-size:15px}
.btn-sm{height:36px;padding:0 14px;font-size:13px}
.btn-primary{background:var(--brand-primary);color:#fff}
.btn-primary:hover{background:var(--brand-primary-hover);box-shadow:var(--shadow-brand);color:#fff}
.btn-gold{background:var(--gold-600);color:#fff}
.btn-gold:hover{background:var(--gold-700);box-shadow:0 6px 20px rgba(204,144,36,.30);color:#fff}
.btn-secondary{background:var(--surface-card);color:var(--text-body);border-color:var(--border-default)}
.btn-secondary:hover{background:var(--surface-sunken)}
.btn-ghost-dark{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.24)}
.btn-ghost-dark:hover{background:rgba(255,255,255,.16);color:#fff}
.btn-full{width:100%}

/* ---------- eyebrow / badge ---------- */
.eyebrow{font:600 11px/1 var(--font-body);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--brand-primary)}
.badge{
  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);
  font:600 12px/1 var(--font-body);
}
.badge svg{width:13px;height:13px}
.badge-gold{background:var(--gold-100);color:var(--gold-700)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:30;background:rgba(247,251,252,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle)}
.site-header .wrap{height:68px;display:flex;align-items:center;gap:32px}
.lockup{display:flex;align-items:center;gap:9px;flex:none}
.lockup img{height:30px;width:auto}
.wordmark{position:relative;display:inline-block;padding-bottom:6px}
.wordmark b{display:block;font:600 22px/1 var(--font-display);letter-spacing:-.04em;color:var(--navy-900)}
.wordmark::after{content:"";position:absolute;left:0;bottom:0;width:24px;height:3px;border-radius:var(--radius-pill);background:var(--gold-600)}
.wordmark.light b{color:#fff}
.main-nav{display:flex;gap:26px;flex:1;align-items:center}
.main-nav a{font:500 14px/1 var(--font-body);color:var(--text-body)}
.main-nav a:hover{color:var(--brand-primary)}
.signin{font:500 14px/1 var(--font-body);color:var(--text-body)}
.nav-tail{display:flex;align-items:center;gap:18px;flex:none}

/* ---------- hero ---------- */
.hero{background:var(--gradient-night);color:#fff;padding:84px 32px 96px;position:relative;overflow:hidden}
.hero-inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:56px;align-items:center}
.hero h1{font:800 52px/1.08 var(--font-display);letter-spacing:-.03em;color:#fff;margin:18px 0}
.hero .lede{font:400 18px/1.6 var(--font-body);color:var(--text-on-dark);max-width:460px;margin-bottom:28px}
.hero-actions{display:flex;gap:12px;margin-bottom:26px;flex-wrap:wrap}
.hero-psa{display:flex;gap:20px;flex-wrap:wrap;font:400 12px/1.4 var(--font-body);color:var(--slate-400)}
.hero-psa span{display:inline-flex;align-items:center;gap:6px}
.hero-psa svg{width:13px;height:13px;color:var(--teal-300)}
.hero-visual{position:relative}
.hero-visual .mascot{position:absolute;right:-72px;bottom:-108px;height:208px;z-index:2;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}

/* ---------- product card (hero) ---------- */
.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}

.chan-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex:none}
.chan-phone{background:rgba(0,134,147,.12);color:var(--channel-phone)}
.chan-sms{background:rgba(204,144,36,.14);color:var(--channel-sms)}
.chan-chat{background:rgba(4,166,173,.14);color:var(--channel-chat)}
.chan-ticket{background:rgba(8,60,70,.10);color:var(--channel-ticket)}

.bubble-row{display:flex;flex-direction:column;gap:3px}
.bubble-row.me{align-items:flex-end}
.bubble{max-width:80%;padding:9px 13px;font:400 14px/1.45 var(--font-body);border-radius:16px 16px 16px 4px;background:var(--surface-card);border:1px solid var(--border-subtle);color:var(--text-body)}
.bubble-row.me .bubble{background:var(--brand-primary);border-color:transparent;color:#fff;border-radius:16px 16px 4px 16px}
.bubble-meta{display:inline-flex;align-items:center;gap:5px;font:400 11px/1.3 var(--font-body);color:var(--text-muted)}
.bubble-row.me .bubble-meta{align-self:flex-end}

.time-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:var(--radius-pill);font:600 13px/1 var(--font-body);border:1px solid transparent}
.time-chip svg{width:13px;height:13px}
.time-chip.synced{background:var(--green-100);color:var(--green-500)}
.time-chip.running{background:var(--gold-100);color:var(--gold-700);border-color:rgba(204,144,36,.5)}
.time-chip .b{padding:0 5px;border-radius:var(--radius-pill);background:var(--gold-600);color:#fff;font:700 10px/16px var(--font-body)}
.time-chip .sub{opacity:.75;font-weight:500}

/* ---------- generic section ---------- */
.section{padding:80px 32px}
.bg-page{background:var(--surface-page)}
.bg-card{background:var(--surface-card)}
.sec-head{max-width:620px;margin:0 auto 44px;text-align:center}
.sec-head.left{margin:0 0 36px;text-align:left}
.sec-head .eyebrow{display:block;margin-bottom:12px}
.sec-head h2{font:700 36px/1.18 var(--font-display);letter-spacing:-.02em;margin-bottom:12px}
.sec-head p{font:400 17px/1.65 var(--font-body);color:var(--text-muted)}

/* ---------- channel strip ---------- */
.channel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.feature-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:transform .22s,box-shadow .22s}
.feature-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.feature-card h3{font:600 18px/1.3 var(--font-display);margin:14px 0 6px}
.feature-card p{font:400 14px/1.6 var(--font-body);color:var(--text-muted)}

/* ---------- time section ---------- */
.time-grid{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.checklist{display:flex;flex-direction:column;gap:14px}
.check-item{display:flex;gap:12px;align-items:flex-start}
.check-item .ic{width:30px;height:30px;flex:none;border-radius:var(--radius-md);background:var(--brand-accent-soft);display:flex;align-items:center;justify-content:center}
.check-item .ic svg{width:16px;height:16px;color:var(--gold-700)}
.check-item span.t{font:400 15px/1.6 var(--font-body);color:var(--text-body)}
.psa-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:26px;display:flex;flex-direction:column;gap:14px}
.psa-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card)}
.psa-row .ic{width:34px;height:34px;flex:none;border-radius:var(--radius-md);background:var(--teal-100);display:flex;align-items:center;justify-content:center}
.psa-row .ic svg{width:16px;height:16px;color:var(--brand-primary)}
.psa-row .meta{flex:1;min-width:0}
.psa-row .meta .n{display:block;font:600 14px/1.3 var(--font-body);color:var(--text-heading)}
.psa-row .meta .s{display:block;font:400 12px/1.4 var(--font-body);color:var(--text-muted)}

/* ---------- proof ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}
.stat{text-align:center;padding:28px 20px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-page)}
.stat .n{font:800 42px/1 var(--font-display);letter-spacing:-.02em;color:var(--brand-primary);margin-bottom:8px}
.stat .l{font:400 14px/1.5 var(--font-body);color:var(--text-muted)}
.quote-card{position:relative;max-width:760px;margin:0 auto;background:var(--surface-card);border:1px solid var(--border-subtle);border-top:3px solid var(--gold-600);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:34px;text-align:center}
.quote-card p.q{font:500 22px/1.5 var(--font-display);letter-spacing:-.01em;color:var(--text-heading);margin-bottom:20px}
.quote-by{display:flex;align-items:center;justify-content:center;gap:10px}
.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:var(--teal-100);color:var(--brand-primary);font:600 14px/1 var(--font-body);width:40px;height:40px;flex:none}
.quote-by .who{text-align:left}
.quote-by .who .n{display:block;font:600 14px/1.3 var(--font-body);color:var(--text-heading)}
.quote-by .who .s{display:block;font:400 12px/1.4 var(--font-body);color:var(--text-muted)}

/* ---------- pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.plan{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:26px}
.plan.featured{border-top:3px solid var(--gold-600);box-shadow:var(--shadow-lg);transform:translateY(-8px)}
.plan-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.plan-head h3{font:600 18px/1.3 var(--font-display)}
.plan-price{display:flex;align-items:baseline;gap:4px;margin-bottom:6px}
.plan-price .amt{font:800 36px/1 var(--font-display);letter-spacing:-.02em;color:var(--text-heading)}
.plan-price .unit{font:400 12px/1.4 var(--font-body);color:var(--text-muted)}
.plan .desc{font:400 14px/1.5 var(--font-body);color:var(--text-muted);margin-bottom:18px}
.plan-features{display:flex;flex-direction:column;gap:9px;margin-bottom:22px}
.plan-features span{display:flex;gap:9px;align-items:center;font:400 14px/1.4 var(--font-body);color:var(--text-body)}
.plan-features svg{width:15px;height:15px;color:var(--status-success);flex:none}

/* ---------- CTA ---------- */
.cta{background:var(--gradient-brand);padding:72px 32px;text-align:center;position:relative;overflow:hidden}
.cta .mascot{position:absolute;left:60px;bottom:-30px;height:230px;opacity:.95}
.cta-inner{max-width:620px;margin:0 auto;position:relative}
.cta h2{font:800 38px/1.15 var(--font-display);letter-spacing:-.02em;color:#fff;margin-bottom:14px}
.cta p{font:400 17px/1.6 var(--font-body);color:rgba(255,255,255,.9);margin-bottom:26px}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-900);color:var(--text-on-dark);padding:56px 32px 32px}
.footer-grid{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px}
.footer-brand p{font:400 12px/1.7 var(--font-body);color:var(--slate-400);max-width:250px;margin-top:12px}
.footer-col .h{font:600 11px/1 var(--font-body);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--slate-400);margin-bottom:14px}
.footer-col .links{display:flex;flex-direction:column;gap:9px}
.footer-col .links a{font:500 14px/1.3 var(--font-body);color:var(--text-on-dark)}
.footer-col .links a:hover{color:#fff}
.footer-bottom{max-width:var(--max-w);margin:40px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;gap:20px;flex-wrap:wrap;font:400 12px/1.5 var(--font-body);color:var(--slate-400)}
.footer-bottom .copy{flex:1;min-width:220px}
.footer-bottom a{color:var(--slate-400)}
.footer-bottom a:hover{color:#fff}

/* ---------- responsive ---------- */
@media (max-width:920px){
  .hero{padding:56px 24px 72px}
  .hero-inner{grid-template-columns:1fr;gap:64px}
  .hero h1{font-size:42px}
  .hero-visual .mascot{height:172px;right:-58px;bottom:-94px}
  .channel-grid{grid-template-columns:1fr 1fr}
  .time-grid{grid-template-columns:1fr;gap:40px}
  .stat-grid{grid-template-columns:1fr}
  .price-grid{grid-template-columns:1fr}
  .plan.featured{transform:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .main-nav,.signin{display:none}
}
@media (max-width:560px){
  .wrap,.section{padding-left:20px;padding-right:20px}
  .section{padding-top:56px;padding-bottom:56px}
  .hero h1{font-size:34px}
  .sec-head h2{font-size:28px}
  .channel-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .cta .mascot{display:none}
  .btn-lg{width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}

/* ---------- nav dropdown ---------- */
.nav-dd{position:relative}
.nav-dd-trigger{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;cursor:pointer;font:500 14px/1 var(--font-body);color:var(--text-body)}
.nav-dd-trigger:hover{color:var(--brand-primary)}
.nav-dd-trigger .chev{width:15px;height:15px;transition:transform .14s}
.nav-dd[data-open="true"] .nav-dd-trigger .chev{transform:rotate(180deg)}
.nav-dd-menu{position:absolute;top:calc(100% + 14px);left:-12px;min-width:230px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px;display:none;flex-direction:column;gap:2px;z-index:40}
.nav-dd[data-open="true"] .nav-dd-menu{display:flex}
.nav-dd-menu a{display:block;padding:9px 12px;border-radius:var(--radius-md);font:600 14px/1.3 var(--font-body);color:var(--text-heading)}
.nav-dd-menu a:hover{background:var(--surface-sunken);color:var(--brand-primary)}
.nav-dd-menu a .m{display:block;font:400 12px/1.4 var(--font-body);color:var(--text-muted)}

/* ---------- icon tile color variants ---------- */
.chan-teal{background:var(--teal-100);color:var(--teal-700)}
.chan-gold{background:var(--gold-100);color:var(--gold-700)}

/* ---------- interior centered hero ---------- */
.hero.center .hero-inner{grid-template-columns:1fr;max-width:720px;text-align:center;justify-items:center;gap:0}
.hero.center .lede{max-width:560px}
.hero.center .hero-actions{justify-content:center}

/* ---------- integrations ---------- */
.int-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.int-logo{width:52px;height:52px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font:700 17px/1 var(--font-display);letter-spacing:-.02em;margin-bottom:16px}
.int-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.int-head h3{font:600 18px/1.3 var(--font-display)}
.int-tag{display:block;font:600 11px/1 var(--font-body);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}
.int-grid .feature-card p{margin:0}
.badge-soon{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--slate-600);font:600 11px/1 var(--font-body);white-space:nowrap}
@media (max-width:920px){.int-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.int-grid{grid-template-columns:1fr}}

/* ============================================================
   Product console mockup (hero, index.html)
   Recovered from the original placeholder page (commit 909729a).
   All classes are cs-* prefixed and the palette is scoped to
   .cs-console, so nothing here can collide with the site styles.
   Data is invented — no real client or staff names.
   ============================================================ */
.cs-console{
  --page:#04262D; --sunken:#022B33; --card:#083C46; --raised:#0E5361;
  --border:#1C4A55; --border-strong:#2B5C68;
  --heading:#F8FAFC; --body:#E2E8F0; --muted:#9BB0B7; --subtle:#7E979E;
  --brand:#0298A2; --brand-hover:#04A6AD; --brand-soft:rgba(4,166,173,.16); --link:#5FD3D8;
  --gold:#CC9024; --gold-ink:#E9AE4B; --gold-soft:rgba(204,144,36,.16);
  --chat:#5FD3D8; --chat-soft:rgba(95,211,216,.14);
  --phone:#04A6AD; --phone-soft:rgba(4,166,173,.16);
  --sms:#E9AE4B; --sms-soft:rgba(204,144,36,.16);
  --ticket:#9BB0B7; --ticket-soft:rgba(155,176,183,.14);
  --green:#3ECFA4; --green-soft:rgba(18,164,124,.18);
  --font:var(--font-body); --mono:var(--font-mono);
  --radius-card:12px; --radius-control:8px; --radius-bubble:16px;
}
.cs-console *{box-sizing:border-box}
.cs-console .cs-mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.cs-console .cs-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:var(--radius-pill);background:var(--gold-soft);color:var(--gold-ink);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cs-console h3{margin:0}
.cs-console{
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius-card); overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.42);
}
.cs-console-bar{display:flex; align-items:center; gap:12px; padding:11px 14px; background:var(--sunken); border-bottom:1px solid var(--border)}
.cs-console-bar .cs-mini{font-size:14px; font-weight:700; letter-spacing:-.04em; color:#fff}
.cs-console-bar .cs-rule{width:1px; height:16px; background:var(--border-strong)}
.cs-console-body{display:grid; grid-template-columns:272px minmax(0,1fr) 264px}
.cs-pane{min-width:0}
.cs-rail{border-right:1px solid var(--border); background:var(--page)}
.cs-ctx{border-left:1px solid var(--border); background:var(--page); padding:16px; display:flex; flex-direction:column; gap:18px}
.cs-thread{display:flex; flex-direction:column; background:var(--page)}

.cs-band{
  display:flex; justify-content:space-between; gap:8px;
  padding:11px 14px 7px; background:var(--sunken); border-bottom:1px solid var(--border);
  font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--subtle);
}
.cs-row{display:flex; gap:11px; padding:12px 14px; border-bottom:1px solid var(--border); border-left:3px solid transparent}
.cs-row.cs-is-selected{background:var(--brand-soft); border-left-color:var(--brand)}
.cs-row-avatar{position:relative; flex:none}
.cs-avatar{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:var(--radius-pill);
  background:var(--raised); color:var(--link);
  font-size:13px; font-weight:600; letter-spacing:.02em; flex:none;
}
.cs-avatar.cs-sm{width:30px; height:30px; font-size:11px}
.cs-avatar.cs-xs{width:24px; height:24px; font-size:9px}
.cs-chan{
  position:absolute; right:-4px; bottom:-4px;
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:6px; box-shadow:0 0 0 2px var(--page);
}
.cs-chan.lg{position:static; width:34px; height:34px; border-radius:8px; box-shadow:none}
.cs-chan-phone{background:var(--phone-soft); color:var(--phone)}
.cs-chan-sms{background:var(--sms-soft); color:var(--sms)}
.cs-chan-chat{background:var(--chat-soft); color:var(--chat)}
.cs-chan-ticket{background:var(--ticket-soft); color:var(--ticket)}
.cs-row-main{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px}
.cs-row-top{display:flex; align-items:baseline; gap:8px}
.cs-row-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600; color:var(--heading)}
.cs-row-time{flex:none; font-size:12px; color:var(--subtle)}
.cs-row-time.cs-warn{color:var(--gold-ink); font-weight:600}
.cs-row-co,.cs-row-preview{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--muted)}
.cs-row-preview{font-size:13px; color:var(--subtle)}
.cs-tag{
  align-self:flex-start; margin-top:4px; padding:2px 8px; border-radius:var(--radius-pill);
  background:rgba(220,38,38,.16); color:#FCA5A5; font-size:11px; font-weight:600;
}

.cs-thread-head{display:flex; align-items:center; gap:12px; padding:12px 16px; background:var(--card); border-bottom:1px solid var(--border)}
.cs-thread-who{flex:1; min-width:0}
.cs-thread-who .n{display:flex; align-items:center; gap:7px; min-width:0}
.cs-thread-who .n b{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600; color:var(--heading)}
.cs-thread-who .n svg{color:var(--green); flex:none}
.cs-thread-who .c{margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--muted)}
.cs-thread-actions{display:flex; gap:6px; flex:none}
.cs-icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; padding:0; border-radius:6px;
  background:var(--card); border:1px solid var(--border-strong); color:var(--body); cursor:pointer;
}
.cs-icon-btn:hover{background:var(--raised); color:#fff}
.cs-messages{flex:1; display:flex; flex-direction:column; gap:14px; padding:18px 16px}
.cs-sysline{
  align-self:center; max-width:88%; text-align:center;
  padding:6px 14px; border-radius:var(--radius-pill);
  background:var(--sunken); color:var(--muted); font-size:12px;
}
.cs-msg{display:flex; gap:10px; align-items:flex-end}
.cs-msg.cs-mine{flex-direction:row-reverse}
.cs-msg-col{display:flex; flex-direction:column; gap:4px; min-width:0; max-width:min(460px,78%)}
.cs-msg.cs-mine .cs-msg-col{align-items:flex-end}
.cs-bubble{
  padding:10px 14px; font-size:14px; line-height:1.5;
  background:var(--card); border:1px solid var(--border); color:var(--body);
  border-radius:var(--radius-bubble) var(--radius-bubble) var(--radius-bubble) 4px;
}
.cs-msg.cs-mine .cs-bubble{
  background:var(--brand); border-color:transparent; color:#fff;
  border-radius:var(--radius-bubble) var(--radius-bubble) 4px var(--radius-bubble);
}
.cs-msg-meta{display:inline-flex; align-items:center; gap:5px; font-size:12px; color:var(--subtle)}
.cs-time-chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 11px; border-radius:var(--radius-pill);
  font-size:13px; font-weight:600; border:1px solid transparent;
}
.cs-time-chip.cs-synced{background:var(--green-soft); color:var(--green)}
.cs-time-chip.cs-running{background:var(--gold-soft); color:var(--gold-ink); border-color:rgba(204,144,36,.5)}
.cs-time-chip .b{padding:0 6px; border-radius:var(--radius-pill); background:var(--gold); color:#04262D; font-size:10px; font-weight:700; line-height:16px}
.cs-composer{margin:0 16px 16px; padding:10px; background:var(--card); border:1px solid var(--border); border-radius:10px}
.cs-composer-tabs{display:flex; gap:4px; margin-bottom:8px}
.cs-tab{
  display:inline-flex; align-items:center; gap:6px; padding:5px 10px;
  border:0; border-radius:var(--radius-pill); background:transparent;
  color:var(--muted); font:600 13px/1 var(--font); cursor:pointer;
}
.cs-tab.cs-is-on{background:var(--brand-soft); color:var(--link)}
.cs-composer .cs-field{padding:2px 4px; min-height:44px; color:var(--subtle); font-size:14px}
.cs-composer-foot{display:flex; align-items:center; gap:8px; margin-top:6px}
.cs-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:32px; padding:0 14px; border:1px solid transparent; border-radius:var(--radius-control);
  background:var(--brand); color:#fff; font:600 13px/1 var(--font); cursor:pointer;
}
.cs-btn:hover{background:var(--brand-hover)}
.cs-ctx h3{font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--subtle); margin-bottom:9px}
.cs-ctx-card{padding:12px; background:var(--card); border:1px solid var(--border); border-radius:10px}
.cs-ctx-card .t{display:flex; align-items:center; gap:8px; margin-bottom:7px}
.cs-ctx-card .t .id{font-family:var(--mono); font-size:12px; color:var(--link)}
.cs-pill{margin-left:auto; padding:2px 8px; border-radius:var(--radius-pill); background:var(--ticket-soft); color:var(--muted); font-size:11px; font-weight:600}
.cs-ctx-card p{font-size:12px; line-height:1.5; color:var(--body)}
.cs-kv{display:flex; justify-content:space-between; gap:10px; font-size:12px; line-height:1.7; color:var(--muted)}
.cs-kv b{color:var(--body); font-weight:500; text-align:right}
.cs-ctx-chips{display:flex; flex-direction:column; gap:7px; align-items:flex-start}
.cs-ctx-people{display:flex; gap:7px}

/* hero placement: the console is wider than its column and bleeds off
   the right edge, clipped by .hero's overflow:hidden. Crop is intentional. */
@media (min-width:1240px){
  .hero-visual .cs-console{width:900px}
}
@media (max-width:900px){
  .cs-console-body{grid-template-columns:minmax(0,1fr)}
  .cs-rail,.cs-ctx{display:none}
}

/* Below the split-hero breakpoint the console needs the full row: 272px rail +
   264px context leave nothing for the thread inside a half-width column. */
@media (max-width:1239px){
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:44px}
}
