:root{
  --deep:#0a3341; --teal:#0b6e75; --gold:#f2b84b; --ink:#10242b; --muted:#5b6f76; --line:#e3eaec; --bg:#ffffff; --soft:#f4f8f8;
  --biz:#c2410c; --ok:#15803d; --danger:#dc2626;
  --r:16px; --shadow:0 10px 30px -12px rgba(10,51,65,.25), 0 2px 6px rgba(10,51,65,.06);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color:var(--ink); background:var(--bg);
}
*{box-sizing:border-box} html,body{margin:0}
body{min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(68px + env(safe-area-inset-bottom))}
button{font:inherit;cursor:pointer} input,select{font:inherit}
.muted{color:var(--muted)} .grow{flex:1}
[hidden]{display:none!important}

/* shell header */
.shell-head{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--deep);color:#fff}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}
.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.brand-text b{font-size:16px;letter-spacing:.2px}
.brand-text small{font-size:11px;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill-demo{background:var(--gold);color:var(--deep);font-weight:800;font-size:11px;letter-spacing:.8px;padding:3px 8px;border-radius:99px;margin-left:auto}
.icon-btn{background:transparent;border:0;color:inherit;padding:6px;border-radius:10px;display:grid;place-items:center}
.icon-btn:hover{background:rgba(255,255,255,.1)}

/* tabs: bottom bar on mobile */
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px rgba(10,51,65,.06)}
.tabs button{background:none;border:0;padding:8px 2px 9px;font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:600}
.tabs button span{font-size:19px;filter:grayscale(1);opacity:.7}
.tabs button.active{color:var(--teal)} .tabs button.active span{filter:none;opacity:1}

main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:18px 14px 8px}
.tab{display:none;animation:fade .25s ease} .tab.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.intro h1,.dash-head h1{font-size:clamp(24px,6vw,36px);line-height:1.1;margin:4px 0 8px;color:var(--deep);letter-spacing:-.5px}
.intro h1 em{font-style:normal;color:var(--teal)}
.intro p{margin:0 0 16px;color:var(--muted);font-size:15.5px;line-height:1.5;max-width:680px}

/* call */
.call-grid{display:grid;gap:16px}
.phone-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;min-height:520px}
.biz-bar{display:flex;gap:12px;align-items:center;padding:14px 16px;background:var(--biz);color:#fff}
.biz-icon{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:22px}
.biz-meta{display:flex;flex-direction:column;min-width:0} .biz-meta b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .biz-meta small{opacity:.85;font-size:12px}
.call-status{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdf4;color:#166534;font-size:13px;font-weight:600;border-bottom:1px solid var(--line)}
.call-status .dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:ping 1.6s infinite}
.call-status.ended{background:var(--soft);color:var(--muted)} .call-status.ended .dot{background:#94a3b8;animation:none}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.chip-btn{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 10px;font-size:12px;color:var(--ink)}
.end-btn{border:0;background:var(--danger);color:#fff;border-radius:99px;padding:5px 14px;font-weight:700;font-size:12.5px}
.start-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px 18px;text-align:center}
.avatar-ring{padding:8px;border-radius:50%;background:conic-gradient(from 0deg,var(--teal),var(--gold),var(--teal));animation:spin 6s linear infinite}
.avatar{width:96px;height:96px;border-radius:50%;background:var(--deep);color:var(--gold);display:grid;place-items:center;font-weight:800;font-size:30px;letter-spacing:1px;animation:spin 6s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.start-hint{color:var(--muted);font-size:14px;max-width:320px;margin:0}
.call-btn{display:inline-flex;align-items:center;gap:10px;background:#16a34a;color:#fff;border:0;border-radius:99px;padding:14px 28px;font-size:17px;font-weight:700;box-shadow:0 8px 20px -6px rgba(22,163,74,.6)}
.call-btn:active{transform:scale(.98)}
.toggle{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted)}
.toggle input{accent-color:var(--teal);width:17px;height:17px}

.msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;max-height:56vh;min-height:300px;background:linear-gradient(#fff,#fafcfc)}
.msg{max-width:86%;padding:10px 13px;border-radius:18px;font-size:15px;line-height:1.42;white-space:pre-wrap;animation:pop .2s ease}
@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.msg.ai{background:var(--soft);border:1px solid var(--line);border-bottom-left-radius:6px;align-self:flex-start}
.msg.me{background:var(--teal);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}
.msg .who{display:block;font-size:11px;font-weight:700;color:var(--teal);margin-bottom:2px;letter-spacing:.3px}
.msg.speaking{box-shadow:0 0 0 2px var(--gold)}
.msg.sys{align-self:center;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:12.5px;border-radius:99px;padding:5px 12px}
.msg.safety{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.typing{display:inline-flex;gap:4px;padding:12px 14px} .typing i{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:blink 1s infinite} .typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{50%{opacity:.25}}
.chips{display:flex;gap:8px;overflow-x:auto;padding:8px 12px;scrollbar-width:none;border-top:1px solid var(--line)} .chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:1px solid #b9dcdf;background:#effafa;color:var(--deep);border-radius:99px;padding:7px 13px;font-size:13.5px;font-weight:600;white-space:nowrap}
.composer{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line);background:#fff}
.composer input{flex:1;min-width:0;border:1px solid var(--line);border-radius:99px;padding:11px 15px;font-size:16px;outline:none;background:var(--soft)}
.composer input:focus{border-color:var(--teal);background:#fff}
.mic,.send{width:46px;height:46px;flex:none;border-radius:50%;border:0;display:grid;place-items:center}
.mic{background:var(--deep);color:#fff} .mic.listening{background:var(--danger);animation:micpulse 1.2s infinite}
@keyframes micpulse{50%{box-shadow:0 0 0 8px rgba(220,38,38,.18)}}
.send{background:var(--teal);color:#fff}
.mic-note{font-size:12px;color:var(--muted);margin:0;padding:0 14px 10px}

.ticket{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);align-self:start}
.ticket-head{display:flex;justify-content:space-between;align-items:center}
.ticket-badge{font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:99px;background:var(--soft);color:var(--muted)}
.ticket-badge.live{background:#ecfeff;color:var(--teal)} .ticket-badge.emergency{background:#fef2f2;color:var(--danger)} .ticket-badge.booked{background:#f0fdf4;color:var(--ok)}
.ticket-sub{font-size:12.5px;color:var(--muted);margin:4px 0 10px}
.fields{list-style:none;margin:0;padding:0}
.fields li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px dashed var(--line);font-size:14px}
.fields li span{color:var(--muted)} .fields li b{text-align:right;font-weight:600;color:#9aa9ae}
.fields li.filled b{color:var(--ink)} .fields li.filled span::before{content:"✓ ";color:var(--ok);font-weight:800}
.fields li.flash{animation:flash 1s ease}
@keyframes flash{from{background:#fef3c7}to{background:transparent}}
.sms-preview{margin-top:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:10px 12px}
.sms-preview small{font-weight:700;color:var(--ok)} .sms-preview p{margin:4px 0 0;font-size:13.5px;line-height:1.4}

/* sms */
.sms-grid{display:grid;gap:18px;justify-items:center}
.iphone{width:100%;max-width:380px;height:640px;border-radius:44px;border:10px solid #0f172a;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.iphone-top{display:flex;justify-content:space-between;align-items:center;padding:8px 22px 4px;font-size:12.5px;font-weight:700}
.notch{width:90px;height:22px;background:#0f172a;border-radius:99px}
.iphone-head{display:flex;flex-direction:column;align-items:center;padding:6px 0 10px;border-bottom:1px solid var(--line);background:#f8fafc}
.iph-av{width:44px;height:44px;border-radius:50%;background:var(--biz);color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:4px}
.iphone-head b{font-size:14px} .iphone-head small{font-size:11px;color:var(--muted)}
.thread{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:7px}
.thread-empty{margin:auto;text-align:center;color:var(--muted);font-size:14.5px;padding:0 10px}
.thread-empty .call-btn{background:var(--danger);box-shadow:0 8px 20px -6px rgba(220,38,38,.5);font-size:15.5px}
.bub{max-width:80%;padding:8px 12px;border-radius:18px;font-size:14.5px;line-height:1.38;white-space:pre-wrap;animation:pop .2s ease}
.bub.in{background:#e9e9eb;align-self:flex-start;border-bottom-left-radius:5px}
.bub.out{background:#0a84ff;color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
.bub-sys{align-self:center;font-size:11.5px;color:var(--muted);text-align:center;margin:4px 0}
.missed{align-self:center;display:flex;gap:8px;align-items:center;background:#fef2f2;color:#991b1b;border-radius:12px;padding:8px 12px;font-size:13px;font-weight:600}
.ringing{align-self:center;background:#0f172a;color:#fff;border-radius:16px;padding:14px 18px;text-align:center;font-size:13.5px;animation:shake .5s infinite}
@keyframes shake{25%{transform:rotate(-1deg)}75%{transform:rotate(1deg)}}
.sms-chips{border-top:1px solid var(--line)} .sms-chips button{background:#fff;border-color:#cbd5e1;font-size:12.5px;padding:6px 11px}
.iph-composer{display:flex;gap:6px;padding:8px 10px 12px}
.iph-composer input{flex:1;min-width:0;border:1px solid #cbd5e1;border-radius:99px;padding:9px 14px;font-size:16px;outline:none}
.iph-composer button{width:36px;height:36px;border-radius:50%;border:0;background:#0a84ff;color:#fff;font-weight:900;font-size:17px}
.owner-side{width:100%;max-width:480px}
.owner-side h3{margin:0 0 10px;color:var(--deep)}
.owner-feed{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.alert{background:var(--deep);color:#fff;border-radius:14px;padding:11px 13px;font-size:13.5px;line-height:1.4;animation:pop .25s ease;border-left:4px solid var(--gold)}
.alert small{display:block;color:#9fd3d6;font-size:11px;margin-bottom:2px;font-weight:700;letter-spacing:.3px}
.alert.good{border-left-color:#22c55e} .alert.bad{border-left-color:#ef4444}
.how-card{background:var(--soft);border-radius:var(--r);padding:14px 16px;font-size:14px} .how-card ol{margin:8px 0 0;padding-left:20px;line-height:1.6}
.ghost-btn{background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 14px;font-weight:600;color:var(--deep);margin-top:12px}
.primary-btn{background:var(--teal);color:#fff;border:0;border-radius:99px;padding:9px 18px;font-weight:700}

/* dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px} .dash-head p{margin:0 0 14px}
.pill-sample{background:#fef3c7;color:#92400e;font-weight:800;font-size:11px;letter-spacing:.8px;padding:5px 10px;border-radius:99px;margin-top:10px;white-space:nowrap}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.kpi b{display:block;font-size:26px;color:var(--deep);letter-spacing:-.5px} .kpi span{font-size:12.5px;color:var(--muted)}
.kpi.alert-k b{color:var(--danger)}
.rev-card{margin:12px 0;background:linear-gradient(135deg,var(--deep),var(--teal));color:#fff;border-radius:var(--r);padding:16px 18px;display:grid;gap:6px}
.rev-card .big{font-size:34px;font-weight:800;color:var(--gold);letter-spacing:-.5px}
.rev-card small{color:#cde7e8;font-size:12.5px;line-height:1.45}
.rev-card input{width:80px;border-radius:8px;border:0;padding:3px 6px;font-weight:700;color:var(--deep)}
.dash-cols{display:grid;gap:12px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:6px 0;overflow:hidden}
.card-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 14px;gap:8px} .card-head small{font-size:12px}
.calls,.jobs{list-style:none;margin:0;padding:0}
.calls li,.jobs li{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font-size:14px}
.calls li{cursor:pointer} .calls li:hover{background:var(--soft)}
.calls .t,.jobs .t{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.calls .who b,.jobs .who b{display:block;font-weight:650} .calls .who small,.jobs .who small{color:var(--muted);font-size:12.5px}
.tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap}
.tag.booked{background:#f0fdf4;color:var(--ok)} .tag.emergency{background:#fef2f2;color:var(--danger)} .tag.faq{background:#eff6ff;color:#1d4ed8} .tag.textback{background:#f5f3ff;color:#6d28d9} .tag.spam{background:#f1f5f9;color:#64748b} .tag.msg{background:#fff7ed;color:#c2410c}
.tag.live{background:var(--gold);color:var(--deep);margin-left:6px}
.fineprint{font-size:12.5px;color:var(--muted);margin:14px 2px}
.tr-head{display:flex;justify-content:space-between;align-items:center} .tr-head h2{margin:0;font-size:19px}
.tr-meta{font-size:13px;color:var(--muted);margin:6px 0 10px;line-height:1.5}
.tr-body{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}
.tr-body .msg{max-width:92%;font-size:14px}

/* plans */
.stat-card{display:flex;gap:16px;align-items:center;background:var(--deep);color:#fff;border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.stat-num{font-size:44px;font-weight:800;color:var(--gold);letter-spacing:-1px}
.stat-card b{display:block;font-size:15.5px;line-height:1.35} .stat-card small{color:#9fd3d6;font-size:12px}
.plan{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:18px;background:#fff}
.plan.featured{border:2px solid var(--teal);box-shadow:var(--shadow)}
.plan-tag{position:absolute;top:-11px;left:16px;background:var(--gold);color:var(--deep);font-size:11px;font-weight:800;padding:3px 10px;border-radius:99px}
.plan h3{margin:0;color:var(--deep)} .price{font-size:34px;font-weight:800;color:var(--teal);margin:4px 0} .price small{font-size:14px;color:var(--muted);font-weight:600}
.plan-sub{margin:0 0 6px;font-weight:600;font-size:14px}
.plan ul{margin:0;padding-left:18px;line-height:1.7;font-size:14.5px}
.trust{display:grid;gap:10px;margin:16px 0} .trust div{background:var(--soft);border-radius:14px;padding:12px 14px} .trust p{margin:4px 0 0;font-size:14px;color:var(--muted);line-height:1.45}
.cta{display:block;text-align:center;background:var(--gold);color:var(--deep);font-weight:800;text-decoration:none;border-radius:99px;padding:15px;font-size:16px;margin:8px 0 18px}

/* footer */
.shell-foot{text-align:center;font-size:12px;color:var(--muted);padding:14px 16px 18px;border-top:1px solid var(--line);line-height:1.5}
.shell-foot p{margin:2px 0} .shell-foot a{color:var(--teal);font-weight:700}

/* dialogs */
dialog{border:0;border-radius:20px;padding:0;width:min(520px,94vw);box-shadow:0 30px 80px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(10,51,65,.55);backdrop-filter:blur(2px)}
.sheet{padding:20px;display:flex;flex-direction:column;gap:12px} .sheet h2{margin:0;color:var(--deep)} .sheet p{margin:0}
.sheet label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}
.sheet input,.sheet select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;color:var(--ink);background:#fff}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sheet-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap} .sheet-actions .ghost-btn{margin:0}

/* desktop */
@media (min-width:860px){
  body{padding-bottom:0}
  .tabs{position:sticky;top:58px;bottom:auto;display:flex;justify-content:center;gap:6px;border-top:0;border-bottom:1px solid var(--line);box-shadow:none;padding:8px}
  .tabs button{flex-direction:row;font-size:14px;padding:8px 16px;border-radius:99px;gap:7px}
  .tabs button span{font-size:16px} .tabs button.active{background:#effafa}
  .call-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr)}
  .ticket{position:sticky;top:130px}
  .sms-grid{grid-template-columns:auto 1fr;align-items:start;justify-items:start}
  .kpis{grid-template-columns:repeat(5,1fr)}
  .dash-cols{grid-template-columns:1.4fr 1fr}
  .agents{grid-template-columns:repeat(3,1fr)} .trust{grid-template-columns:repeat(3,1fr)}
  .msgs{max-height:60vh}
}

.prog{font-size:12px;font-weight:700;color:var(--teal);text-decoration:none;background:#fff;border:1px solid #b9dcdf;border-radius:99px;padding:3px 8px}
.prog.done{background:#f0fdf4;color:var(--ok);border-color:#bbf7d0}
.alert{white-space:pre-line}
@media (min-width:860px){.prog{display:none}}
.phone-card,.ticket{scroll-margin-top:70px}

/* modular agents */
.sec-h{font-size:18px;color:var(--deep);margin:18px 0 10px}
.agents,.team{display:grid;gap:12px}
.team{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px}
.agent{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:14px;background:#fff;display:flex;flex-direction:column;gap:4px}
.agent.on{border:2px solid var(--teal);background:#f2fafa}
.agent-top{display:flex;align-items:center;gap:10px}
.agent-top b{color:var(--deep);display:block;line-height:1.2} .agent-top small{color:var(--muted);font-size:12px}
.agent-ico{font-size:22px;width:38px;height:38px;border-radius:10px;background:#eef6f6;display:grid;place-items:center;flex:none}
.agent .plan-tag{top:-11px;left:auto;right:12px}
.agent-price{font-size:22px;font-weight:800;color:var(--teal);margin:4px 0 0}
.agent-price small{font-size:12px;font-weight:600;color:var(--muted)}
.agent p{margin:0;font-size:13.5px;line-height:1.45}
.agent ul{margin:4px 0 0;padding-left:18px;line-height:1.6;font-size:14px}
.agent-act{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.team .agent p{font-size:12.5px}
.add-btn{border:1.5px dashed var(--teal);background:#fff;color:var(--teal);font-weight:700;border-radius:99px;padding:7px 12px;font-size:13px;cursor:pointer}
.add-btn:hover{background:var(--teal);color:#fff;border-style:solid}
.link-btn{border:0;background:none;color:var(--teal);font-weight:700;padding:0;cursor:pointer;font-size:14px;text-decoration:underline}
.bundle,.bundle-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:var(--r);background:var(--deep);color:#fff}
.bundle b,.bundle-strip b{color:var(--gold);display:block} .bundle small,.bundle-strip small{display:block;opacity:.85;font-size:12.5px}
.bundle-price{font-size:24px;font-weight:800;text-align:right} .bundle-price small{font-size:12px;font-weight:600}
.agent-does{padding-left:18px;line-height:1.7}
.demo-note{background:#fff7e6;border:1px solid var(--gold);border-radius:10px;padding:10px;font-size:13px}
.team-card{margin-top:14px}
@media (min-width:860px){.team{grid-template-columns:repeat(3,1fr)}}
