/* =========================================================================
   MyRingRing — mobile-first, app-like UI
   ========================================================================= */
:root{
  --bg:#f6f7fb; --card:#fff; --fg:#12142a; --muted:#6b7089; --line:#e8eaf2; --soft:#f0f1f7;
  --accent:#0071e3; --accent-2:#0071e3; --accent-soft:#e8f1fc; --green:#16a34a; --green-soft:#e6f6ec;
  --red:#e5484d; --red-soft:#fdeceb; --amber:#d98b06;
  --radius:18px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(18,20,42,.04),0 4px 16px rgba(18,20,42,.04);
  --shadow-lg:0 20px 60px rgba(18,20,42,.18);
  --tabbar-h:64px;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c0d16; --card:#151726; --fg:#eceefa; --muted:#9296b0; --line:#23263a; --soft:#1d2033;
  --accent-soft:#0b2541; --green-soft:#10291c; --red-soft:#341719;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 20px 60px rgba(0,0,0,.5);
}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
body{overscroll-behavior-y:none}
a{color:var(--accent);text-decoration:none}
h1{font-size:28px;line-height:1.15;letter-spacing:-.6px;margin:0 0 18px}
h2{font-size:20px;letter-spacing:-.3px;margin:0}
h3{font-size:13px;margin:0 0 10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
p{margin:0 0 10px}
.hidden{display:none!important}
body:not(.show-adv) .adv{display:none!important}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}
.err,.form-err{color:var(--red)}
.form-err{margin:0;min-height:1.2em;font-size:13px}

/* ---------- forms ---------- */
button,input,select,textarea{font-family:inherit}
input,select,textarea{font:inherit;color:var(--fg);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
textarea{resize:vertical}
fieldset{border:0;padding:0;margin:0;display:grid;gap:14px}
label{display:grid;gap:6px;font-size:14px;font-weight:600}
label small{color:var(--muted);font-weight:400}
label.check{display:flex;align-items:center;gap:10px;font-weight:400}label.check input{width:auto}

/* ---------- buttons ---------- */
.btn{font:inherit;font-weight:600;border:1.5px solid var(--line);background:var(--card);color:var(--fg);border-radius:var(--radius-sm);padding:10px 16px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s,background .15s,box-shadow .15s;min-height:42px}
@media (hover:hover){.btn:hover{background:var(--soft)}}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.5;cursor:default;transform:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 16px -6px rgba(0,0,0,.25)}
@media (hover:hover){.btn.primary:hover{background:#0062c4}}
.btn.call{background:var(--green);border-color:var(--green);color:#fff}
.btn.danger{color:var(--red)}
.btn.link{border:0;background:none;color:var(--muted);min-height:auto}
.btn.ghost{background:transparent}
.btn.white{background:#fff;color:var(--accent);border-color:#fff}
.btn.small{padding:6px 12px;font-size:13px;min-height:34px}
.btn.tiny{padding:2px 10px;font-size:12px;min-height:26px}
.btn.lg{padding:13px 22px;font-size:16px}
.btn.xl{padding:15px 26px;font-size:16px;border-radius:14px}
.btn.block{width:100%}

/* ---------- layout helpers ---------- */
.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}
.stack{display:grid;gap:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:16px;box-shadow:var(--shadow)}
.card.flush{padding:0;overflow:auto}
.pad{padding:14px}
.empty{padding:36px 20px;text-align:center;color:var(--muted);display:grid;gap:14px;justify-items:center}
.loading{padding:40px;color:var(--muted);text-align:center}
.badge{background:var(--red);color:#fff;font-size:11px;border-radius:999px;padding:0 6px;font-weight:700;line-height:18px;min-width:18px;text-align:center;font-style:normal}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.list li.active{background:var(--accent-soft);border-radius:12px}
.list li a{color:inherit}
.ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:220px}
.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;font-size:13px;flex:none}
.avatar.sm{width:40px;height:40px;font-size:13px}.avatar.lg{width:60px;height:60px;font-size:20px}
.pill{padding:8px 16px;border-radius:999px;color:var(--muted);background:var(--card);border:1px solid var(--line);margin-bottom:14px;font-weight:600}
.pill.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chip{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--soft);color:var(--muted)}
.chips{display:flex;gap:4px;flex-wrap:wrap}
.status-tag{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--muted);text-transform:capitalize;font-weight:600}
.status-tag.answered{background:var(--green-soft);color:var(--green)}
.status-tag.missed,.status-tag.failed,.status-tag.rejected{background:var(--red-soft);color:var(--red)}
.ci{font-weight:700}.ci.in{color:var(--green)}.ci.out{color:var(--accent)}.ci.miss{color:var(--red)}
.seg{display:inline-flex;background:var(--soft);border-radius:14px;padding:4px;gap:2px;margin-bottom:18px;max-width:100%;overflow-x:auto}
.seg a{padding:8px 16px;border-radius:10px;color:var(--muted);font-weight:600;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.seg a.on{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.seg.big a{padding:10px 18px}
.back{display:none;font-size:28px;line-height:1;color:var(--accent);padding:0 8px 0 0}
.back.inline{font-size:15px;font-weight:600;margin-bottom:10px}
.switch{position:relative;display:inline-block;width:46px;height:28px;flex:none}.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:var(--line);border-radius:28px;cursor:pointer;transition:.2s}
.switch span:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch input:checked+span{background:var(--green)}.switch input:checked+span:before{transform:translateX(18px)}

/* =========================================================================
   Public home page
   ========================================================================= */
.home{max-width:1160px;margin:0 auto;padding:0 20px}
.brand{font-weight:800;font-size:20px;letter-spacing:-.5px;color:var(--fg)}.brand span{color:var(--accent)}
.brand.big{font-size:28px}
.home-nav{display:flex;align-items:center;gap:24px;padding:18px 0;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px)}
.home-links{display:flex;gap:26px;margin-left:auto}.home-links a{color:var(--fg);font-weight:500}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;padding:56px 0 72px}
.eyebrow{display:inline-block;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:12px;padding:5px 12px;border-radius:999px;letter-spacing:.02em}
.hero h1{font-size:56px;line-height:1.03;letter-spacing:-1.8px;margin:18px 0}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:18px;color:var(--muted);max-width:540px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 14px}
.hero-note{font-size:14px!important}
.device{position:relative;width:290px;height:560px;border-radius:44px;background:linear-gradient(160deg,#1c1d33,#0f1022);padding:22px;color:#fff;display:flex;flex-direction:column;box-shadow:var(--shadow-lg),inset 0 0 0 8px #2a2c45}
.device-top{display:flex;justify-content:space-between;font-size:13px;padding:8px 10px}.dot-live{color:#4ade80}
.device-call{flex:1;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center}
.call-avatar{width:92px;height:92px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:32px;font-weight:700;margin-bottom:10px}
.device .call-name{font-size:26px;font-weight:700}
.device-actions{display:flex;justify-content:space-around;padding-bottom:22px}
.device-actions .cbtn{flex:none;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:24px;padding:0}
.float-chip{position:absolute;background:var(--card);color:var(--fg);padding:10px 14px;border-radius:14px;box-shadow:var(--shadow-lg);font-size:13px;font-weight:600;white-space:nowrap}
.float-chip.c1{top:22%;left:-4%}.float-chip.c2{bottom:18%;right:-4%}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,113,227,.35)}50%{box-shadow:0 0 0 18px rgba(0,113,227,0)}}
.section{padding:64px 0}
.section-head{text-align:center;max-width:640px;margin:0 auto 36px;display:grid;gap:12px;justify-items:center}
.section-head h2{font-size:36px;letter-spacing:-1px;line-height:1.1}
.how{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.how li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.how li b{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--accent);color:#fff;margin-bottom:12px}
.how li h3{text-transform:none;letter-spacing:0;color:var(--fg);font-size:17px;margin:0 0 4px}.how li p{color:var(--muted);margin:0}
.pricing{display:grid;grid-template-columns:repeat(2,minmax(0,360px));gap:18px;justify-content:center;margin-bottom:16px}
.plan{position:relative;background:var(--card);border:1.5px solid var(--line);border-radius:22px;padding:28px;display:grid;gap:14px;box-shadow:var(--shadow)}
.plan.featured{border-color:var(--accent);box-shadow:0 20px 40px -20px rgba(0,0,0,.2)}
.plan h3{text-transform:none;letter-spacing:0;color:var(--fg);font-size:18px;margin:0}
.plan-price{font-size:46px;font-weight:800;letter-spacing:-1.5px}.plan-price small{font-size:16px;color:var(--muted);font-weight:500;letter-spacing:0}
.plan-tag{position:absolute;top:-12px;right:20px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}
.ticks-list{padding:0;margin:0;list-style:none;display:grid;gap:8px}.ticks-list li:before{content:"✓  ";color:var(--green);font-weight:800}
.faq{max-width:720px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.faq summary{font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:var(--accent);font-size:20px;line-height:1}.faq details[open] summary:after{content:"−"}
.faq details p{color:var(--muted);margin:12px 0 0}
.final-cta{margin:40px 0;border-radius:28px;padding:56px 24px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;gap:22px;justify-items:center}
.final-cta h2{font-size:32px;letter-spacing:-.8px;max-width:620px}
.home-foot{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:28px 0 calc(28px + var(--safe-b));border-top:1px solid var(--line);flex-wrap:wrap}

/* =========================================================================
   Login
   ========================================================================= */
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px calc(24px + var(--safe-b));background:radial-gradient(1200px 600px at 10% -10%,rgba(0,113,227,.10),transparent),radial-gradient(900px 500px at 110% 110%,rgba(138,63,252,.16),transparent),var(--bg)}
.auth-main{width:100%;max-width:440px;display:grid;gap:22px;justify-items:center}
.auth-brand{display:block}
.auth-card{width:100%;display:grid;gap:14px;padding:30px;border-radius:24px;box-shadow:var(--shadow-lg);margin:0}
.auth-card h2{font-size:24px}
.otp-input{font-size:32px;letter-spacing:14px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700;padding:16px}
.demo-note{font-size:13px;color:var(--muted);text-align:center;margin:0;background:var(--soft);padding:10px;border-radius:10px}

/* =========================================================================
   App shell — desktop: sidebar · mobile: app bar + bottom tab bar
   ========================================================================= */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;min-height:100dvh}
.sidebar{background:var(--card);border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh}
.sidebar .brand{padding:0 12px;cursor:pointer}
.nav{display:grid;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;color:var(--fg);font-weight:600;font-size:15px}
.nav a i{font-style:normal;width:22px;text-align:center;color:var(--muted);font-size:18px}
.nav a .badge{margin-left:auto}
@media (hover:hover){.nav a:hover{background:var(--soft)}}
.nav a.active{background:var(--accent-soft);color:var(--accent)}.nav a.active i{color:var(--accent)}
.admin-link{margin-top:14px}
.content{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 28px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.page-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;font-weight:800;font-size:22px;letter-spacing:-.4px}
.topbar .page-title{margin:0}
.company{display:flex;align-items:center;gap:8px;font-weight:700}.company select{width:auto;padding:6px 10px}
.role-chip{font-size:11px;text-transform:capitalize;background:var(--soft);padding:3px 10px;border-radius:999px;color:var(--muted);font-weight:600}
.phone-status{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--soft)}
.phone-status i{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.phone-status.available{background:var(--green-soft);color:var(--green)}.phone-status.available i{background:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.2)}
.phone-status.connecting i{background:var(--amber)}
.phone-status.dnd,.phone-status.mic_denied,.phone-status.error,.phone-status.disconnected{background:var(--red-soft);color:var(--red)}
.phone-status.dnd i,.phone-status.mic_denied i,.phone-status.error i,.phone-status.disconnected i{background:var(--red)}
#availability{width:auto;font-size:13px;padding:6px 10px}
.user{display:flex;align-items:center;gap:6px}
.banner{flex-basis:100%;padding:10px 14px;border-radius:12px;font-size:13px;font-weight:600}.banner.err{background:var(--red-soft);color:var(--red)}
main{padding:28px;max-width:1180px;width:100%}
.tabbar{display:none}

/* ---------- Phone ---------- */
.phone-home{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:start}
.dialer{display:grid;gap:12px;padding:26px}
.from-line{font-size:14px;color:var(--muted);text-align:center;display:block;font-weight:500}
.from-line select{display:inline-block;width:auto;margin-left:6px;padding:6px 10px}
.dial-display{font-size:32px;font-weight:700;text-align:center;border:0!important;background:transparent;padding:6px;box-shadow:none!important;letter-spacing:.5px}
.dial-contact{text-align:center;font-size:14px;min-height:1.4em;margin-top:-8px}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 14px}
.keypad button{font:600 28px var(--font);border:0;background:var(--soft);color:var(--fg);border-radius:50%;aspect-ratio:1/1;width:100%;max-width:76px;justify-self:center;cursor:pointer;display:grid;place-content:center;line-height:1;transition:background .12s,transform .08s}
@media (hover:hover){.keypad button:hover{background:var(--accent-soft)}}.keypad button:active{transform:scale(.94);background:var(--accent-soft)}
.keypad button small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);font-weight:600;margin-top:2px}
.keypad.compact{gap:10px;margin-top:14px;padding:0}.keypad.compact button{max-width:58px;font-size:20px}
.dial-actions{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:8px}
.dial-actions .btn.link{justify-self:center;font-size:24px}
.round-call{width:74px;height:74px;border-radius:50%;font-size:28px;padding:0;box-shadow:0 10px 24px -8px rgba(22,163,74,.6)}
.recents{padding:22px}
.call-list li{padding:14px 4px;gap:14px}
.call-list li .grow{display:grid;gap:2px}
.call-list .note{margin-top:6px;font-size:13px;padding:6px 10px}
.ci-wrap{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--soft);font-size:17px;flex:none}
.miss-text{color:var(--red)}
.small-call{width:44px;height:44px;border-radius:50%;padding:0;font-size:17px;min-height:0}
.welcome{max-width:560px;margin:40px auto}
.demo-box{margin-top:16px;padding:14px;border:1.5px dashed var(--line);border-radius:14px;display:grid;gap:10px;font-size:13px}
.line-select{width:auto;min-width:150px}

/* ---------- Call screen (overlay) ---------- */
.call-ui{position:fixed;right:24px;bottom:24px;z-index:50}
.call-card{width:320px;background:linear-gradient(165deg,#1d1f38,#101124);color:#fff;border-radius:28px;padding:28px 24px;text-align:center;box-shadow:var(--shadow-lg)}
.call-state{font-size:12px;text-transform:uppercase;letter-spacing:.12em;opacity:.7}
.call-name{font-size:24px;font-weight:700;margin-top:8px}
.call-number{opacity:.8}.call-line{font-size:13px;margin-top:4px;color:#a5a8c8}
.call-timer{font-variant-numeric:tabular-nums;margin-top:10px;font-size:20px;font-weight:600}
.call-buttons{display:flex;gap:10px;justify-content:center;margin-top:22px}
.cbtn{flex:1;border:0;border-radius:16px;padding:14px 6px;font:600 14px var(--font);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;transition:background .15s,transform .08s}
.cbtn:active{transform:scale(.95)}
.cbtn.on{background:var(--accent)}
.cbtn.answer{background:var(--green)}.cbtn.decline{background:var(--red)}
.call-ui .ringing-only,.call-ui .active-only{display:none}
.call-ui[data-dir=inbound][data-state=ringing] .ringing-only{display:flex}
.call-ui:not([data-state=ringing][data-dir=inbound]):not([data-state=ended]) .active-only{display:flex}
.call-card .keypad button{background:rgba(255,255,255,.1);color:#fff}.call-card .keypad button small{color:#a5a8c8}

/* ---------- Messages ---------- */
.msg-layout{display:grid;grid-template-columns:340px 1fr;gap:18px;height:calc(100vh - 140px);height:calc(100dvh - 140px)}
.threads{display:flex;flex-direction:column;padding:14px;overflow:hidden;margin:0}
.threads .list{overflow:auto;margin-top:12px}
.threads .list li{border-radius:14px;border:0;justify-content:flex-start;padding:12px}
@media (hover:hover){.threads .list li:hover{background:var(--soft)}}
.threads .right{display:grid;justify-items:end;gap:4px}
.chat{display:flex;flex-direction:column;padding:0;overflow:hidden;margin:0}
.chat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.chat-head select{width:auto;padding:6px 10px}
.chat-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.bubble{max-width:75%;padding:10px 14px;border-radius:20px 20px 20px 6px;background:var(--card);border:1px solid var(--line);white-space:pre-wrap;word-wrap:break-word;align-self:flex-start}
.bubble.out{align-self:flex-end;background:var(--accent);color:#fff;border-color:var(--accent);border-radius:20px 20px 6px 20px}
.bubble small{display:block;font-size:11px;opacity:.7;margin-top:3px}
.mstatus.failed{color:#ffd0d0;font-weight:700}
.chat-input{display:flex;gap:10px;padding:12px;border-top:1px solid var(--line);align-items:flex-end}
.chat-input textarea{border-radius:22px;padding:10px 16px;max-height:140px;resize:none;overflow-y:auto}
.chat-input .btn{border-radius:22px}
.new-msg{padding:22px;display:grid;gap:14px;max-width:560px}

/* ---------- tables / lists ---------- */
.table{width:100%;border-collapse:collapse}
.table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table select{width:auto;max-width:190px;padding:7px 10px}
.table input.note{border-color:transparent;background:transparent;padding:6px 8px;min-width:120px}
@media (hover:hover){.table input.note:hover{border-color:var(--line);background:var(--card)}}.table input.note:focus{border-color:var(--line);background:var(--card)}
.presence{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px}.presence.dnd{background:var(--red)}

/* ---------- contacts ---------- */
.split{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}
.kv{display:grid;grid-template-columns:120px 1fr;gap:12px;margin:22px 0}
.kv dt{color:var(--muted)}.kv dd{margin:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---------- numbers / purchase flow ---------- */
.search-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end}
.num-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.num-card{display:grid;gap:8px;margin:0}.num-card b{font-size:19px;letter-spacing:-.3px}
.price{font-size:24px;font-weight:800}.price small{font-size:13px;color:var(--muted);font-weight:500}
.steps-bar{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 18px;flex-wrap:wrap}
.steps-bar li{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;padding:6px 14px 6px 6px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14px}
.steps-bar li b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--soft);font-size:12px}
.steps-bar li.on{color:var(--fg);border-color:var(--accent)}.steps-bar li.on b{background:var(--accent);color:#fff}
.steps-bar li.done b{background:var(--green);color:#fff}
.steps{display:flex;align-items:center;gap:4px}.steps i{width:10px;height:10px;border-radius:50%;background:var(--line)}.steps i.on{background:var(--accent)}.steps small{margin-left:6px;text-transform:capitalize;color:var(--muted)}
.checkout{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}
.big-num{font-size:38px;font-weight:800;letter-spacing:-1px;margin:6px 0}
.hold{background:var(--accent-soft);color:var(--accent);padding:8px 14px;border-radius:12px;display:inline-block;font-variant-numeric:tabular-nums;font-weight:600}
.summary{display:grid;gap:12px}
.summary .line{display:flex;justify-content:space-between;gap:12px}
.summary .total{border-top:1px solid var(--line);padding-top:12px;font-weight:800;font-size:18px}
.pay-box{border:1.5px dashed var(--line);border-radius:14px;padding:14px;display:grid;gap:4px}.pay-box p{margin:0}
.center-card{text-align:center;display:grid;justify-items:center;gap:10px;padding:44px 22px}
.center-row{justify-content:center}
.success-mark{width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:30px;font-weight:700}
.success-mark.err{background:var(--red)}
.spinner{width:44px;height:44px;border:4px solid var(--soft);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- settings ---------- */
.hours{display:grid;gap:10px}
.hrow{display:grid;grid-template-columns:110px 90px 1fr 24px 1fr;gap:10px;align-items:center}
.soon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.soon{border:1.5px dashed var(--line);border-radius:14px;padding:16px;font-weight:600;display:grid;gap:2px}.soon small{color:var(--muted);font-weight:400}
.adv-toggle{gap:16px}.adv-toggle p{margin:2px 0 0}
.invite-link input{font-size:13px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;color:var(--fg);display:grid}
.stat b{font-size:30px}.stat span{color:var(--muted);font-size:13px}

/* ---------- toasts ---------- */
#toasts{position:fixed;top:calc(16px + var(--safe-t));left:50%;transform:translateX(-50%);display:grid;gap:8px;z-index:60;width:max-content;max-width:92vw}
.toast{background:var(--fg);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);animation:toastIn .2s ease-out}
.toast.err{background:var(--red);color:#fff}.toast.ok{background:var(--green);color:#fff}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}}

/* =========================================================================
   Tablet & phone
   ========================================================================= */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;gap:20px;padding:28px 0 40px;text-align:center}
  .hero p{margin-inline:auto}.hero-cta{justify-content:center}
  .hero h1{font-size:42px;letter-spacing:-1.2px}
  .features{grid-template-columns:1fr 1fr}.how{grid-template-columns:1fr 1fr}
  .home-links{display:flex;gap:0;margin-left:auto}.home-links a:not([href="#pricing"]){display:none}.home-nav .btn{margin-left:0}
}
@media (max-width:900px){
  .shell{grid-template-columns:1fr;padding-bottom:calc(var(--tabbar-h) + var(--safe-b))}
  .sidebar{display:none}
  .topbar{padding:calc(10px + var(--safe-t)) 16px 10px;gap:10px;border-bottom:0;background:color-mix(in srgb,var(--bg) 85%,transparent)}
  .page-title{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}
  .company,.signout,#availability{display:none!important}
  .phone-status{font-size:12px;padding:5px 10px}
  main{padding:4px 14px 20px}
  main .view-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--line)}
  .tabbar a{display:grid;justify-items:center;align-content:center;gap:2px;color:var(--muted);font-size:11px;font-weight:600;position:relative}
  .tabbar a i{font-style:normal;font-size:22px;line-height:1}
  .tabbar a.active{color:var(--accent)}
  .tabbar a .badge{position:absolute;top:8px;left:calc(50% + 6px)}
  .card{border-radius:20px;padding:18px}
  .grid2{grid-template-columns:1fr}
  .hide-sm{display:none}

  .phone-home{grid-template-columns:1fr;gap:14px}
  .dialer{border:0;box-shadow:none;background:transparent;padding:4px 0}
  .keypad{gap:16px;padding:0 6%}
  .keypad button{max-width:84px;font-size:30px}
  .dial-display{font-size:34px}

  .msg-layout{grid-template-columns:1fr;height:auto;gap:0}
  .msg-layout .chat{display:none}
  .msg-layout.has-detail .threads{display:none}
  .msg-layout.has-detail .chat{display:flex;position:fixed;top:0;left:0;right:0;height:100vh;height:var(--vvh,100dvh);z-index:45;border-radius:0;border:0;padding-top:var(--safe-t);padding-bottom:var(--safe-b)}
  .threads{border:0;box-shadow:none;background:transparent;padding:0}
  .threads .list li{background:var(--card);margin-bottom:8px;border:1px solid var(--line)}
  .back{display:inline-block}
  .chat-head{padding:12px 14px}
  .split{grid-template-columns:1fr}
  .split.has-detail>section:first-child{display:none}
  .split:not(.has-detail)>section:last-child{display:none}

  .card.flush{border-radius:18px}
  .table th,.table td{padding:12px 10px;font-size:14px}
  .search-form{grid-template-columns:1fr 1fr}
  .search-form .btn{grid-column:1/-1}
  .checkout{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .steps-bar li{font-size:12px;padding:4px 10px 4px 4px}
  .steps-bar li b{width:22px;height:22px}
  .hrow{grid-template-columns:1fr 1fr;gap:6px 10px}.hrow>span:nth-child(4){display:none}

  .call-ui{inset:0;right:auto;bottom:auto;width:100%;height:100%}
  .call-card{width:100%;height:100%;border-radius:0;display:flex;flex-direction:column;justify-content:center;padding:calc(40px + var(--safe-t)) 28px calc(40px + var(--safe-b))}
  .call-name{font-size:34px}
  .call-buttons{margin-top:auto;gap:14px}
  .cbtn{padding:20px 6px;font-size:15px;border-radius:20px}
  .keypad.compact button{max-width:72px;font-size:24px}
}
@media (max-width:560px){
  .features,.how{grid-template-columns:1fr}
  .pricing{grid-template-columns:1fr}
  .hero h1{font-size:36px}
  .section{padding:44px 0}.section-head h2{font-size:28px}
  .device{width:250px;height:480px}
  .float-chip{display:none}
  .final-cta{border-radius:22px;padding:40px 20px}.final-cta h2{font-size:24px}
  .auth-card{padding:24px 20px}
  h1{font-size:24px}
}
.ci.vm{color:var(--accent)}
.rec{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.rec-play{width:30px;height:30px;border-radius:50%;border:0;background:var(--accent);color:#fff;cursor:pointer;font-size:12px;display:grid;place-items:center}
.rec audio{width:100%;max-width:340px;height:36px}
.rec-dl{color:var(--muted)}
#callset .switch{align-self:center}

/* tap-a-number → contact sheet */
.who{all:unset;cursor:pointer;font-weight:700;color:inherit;border-radius:6px}
@media (hover:hover){.who:hover{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}}
.who:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.who-add{font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 8px;border-radius:999px;margin-left:4px;white-space:nowrap}
.sheet{width:min(460px,92vw);background:var(--card);border-radius:24px;padding:22px;display:grid;gap:14px;box-shadow:var(--shadow-lg);transform:translateY(16px);opacity:0;transition:transform .2s,opacity .2s;max-height:90vh;max-height:min(90dvh,var(--vvh,90vh));overflow:auto}
.sheet-wrap.open .sheet{transform:none;opacity:1}
.sheet-grip{display:none;width:40px;height:5px;border-radius:5px;background:var(--line);margin:-8px auto 0}
.sheet-phone{display:flex;gap:14px;align-items:center;padding:12px;background:var(--soft);border-radius:16px}
.sheet-phone b{font-size:18px}
.sheet-actions{margin-top:6px}
@media (max-width:900px){
  .sheet{width:100%;border-radius:24px 24px 0 0;padding:20px 18px calc(20px + var(--safe-b));transform:translateY(100%)}
  .sheet-grip{display:block}
}
.contact-meta{color:var(--fg);opacity:.75;font-size:13px}

/* ===== Home page v3 (professional) ===== */
.brand{display:inline-flex;align-items:center;gap:0}
.brand-icon{width:30px;height:30px;border-radius:9px;margin-right:9px}
.home-nav-cta{display:flex;gap:8px;margin-left:24px}
.hero h1{font-size:60px}
.hero-points{list-style:none;padding:0;margin:0 0 22px;display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:14px;font-weight:500}
.hero-points li:before{content:"✓ ";color:var(--green);font-weight:800}
.store-badges{display:flex;gap:10px;flex-wrap:wrap}
.store-badge{display:inline-flex;align-items:center;gap:10px;background:#0f1022;color:#fff;border-radius:12px;padding:8px 16px 8px 12px;min-width:150px;border:1px solid #2a2c45}
.store-badge svg{width:24px;height:24px}
.store-badge span{display:grid;line-height:1.15;font-weight:700;font-size:15px}
.store-badge small{font-size:10px;font-weight:500;opacity:.75;text-transform:uppercase;letter-spacing:.06em}
@media (prefers-color-scheme:dark){.store-badge{background:#fff;color:#0f1022;border-color:#fff}}
.float-chip{display:grid;gap:2px;padding:12px 16px}.float-chip b{font-size:13px}.float-chip span{font-weight:500;color:var(--muted);font-size:13px}
.showcase{display:grid;gap:56px;margin-bottom:56px}
.showcase-row{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.showcase-row.reverse .showcase-copy{order:2}
.showcase-copy h3{text-transform:none;letter-spacing:-.6px;color:var(--fg);font-size:30px;line-height:1.15;margin:0 0 12px}
.showcase-copy p{color:var(--muted);font-size:17px;margin-bottom:18px}
.mock-window{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden}
.mock-dial{padding:12px}
.mock-row{display:flex;align-items:center;gap:14px;padding:12px;border-bottom:1px solid var(--line)}.mock-row:last-child{border-bottom:0}
.mock-row>span:nth-child(2){flex:1;display:grid}.mock-row small{color:var(--muted)}
.mock-ic{width:40px;height:40px;border-radius:50%;background:var(--soft);display:grid;place-items:center;color:var(--green);font-weight:700}
.mock-ic.miss{color:var(--red)}.mock-ic.vm{color:var(--accent)}
.mock-call{width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center}
.mock-flow{padding:24px;display:grid;gap:0}
.flow-step{display:flex;gap:14px;align-items:center}.flow-step>span:last-child{display:grid}.flow-step small{color:var(--muted)}
.flow-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:18px;background:var(--accent-soft);color:var(--accent);flex:none}
.flow-ic.s3{background:var(--green-soft);color:var(--green)}
.flow-line{width:2px;height:22px;background:var(--line);margin-left:21px}
.mock-chat{padding:20px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.usecases{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.usecase{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border-top:4px solid var(--accent)}
.usecase h3{text-transform:none;letter-spacing:-.2px;color:var(--fg);font-size:17px;margin:0 0 8px}.usecase p{color:var(--muted);margin:0}
.billing-toggle{margin:8px 0 0}.save{font-size:11px;background:var(--green-soft);color:var(--green);padding:2px 8px;border-radius:999px}
.plan p{margin:0}.plan-billed{margin-top:-8px!important}
.plan .ticks-list{margin-top:6px}
.apps-card{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center;background:linear-gradient(135deg,var(--accent-soft),var(--card));border:1px solid var(--line);border-radius:28px;padding:44px}
.apps-card h2{font-size:34px;letter-spacing:-1px;margin:12px 0}
.apps-card p{font-size:16px;margin-bottom:20px}
.apps-visual{display:grid;place-items:center}.apps-visual img{width:180px;height:180px;border-radius:44px;box-shadow:0 30px 60px -20px rgba(0,0,0,.25);transform:rotate(-6deg)}
.security{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center;background:#0f1022;color:#fff;border-radius:28px;padding:48px}
.security h2{font-size:34px;letter-spacing:-1px;margin-top:12px}.security .eyebrow{background:rgba(255,255,255,.12);color:#fff}
.security .ticks-list{gap:14px;font-size:16px}
.final-cta p{opacity:.9;margin:-8px 0 0;font-size:17px}
.home-foot{display:grid;grid-template-columns:1fr 2fr;gap:32px;padding:44px 0 calc(28px + var(--safe-b))}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.foot-cols div{display:grid;gap:8px;align-content:start}.foot-cols a{color:var(--muted)}@media (hover:hover){.foot-cols a:hover{color:var(--fg)}}
.foot-legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}
@media (max-width:980px){
  .hero h1{font-size:44px}.hero-points,.store-badges{justify-content:center}
  .showcase-row,.showcase-row.reverse{grid-template-columns:1fr;gap:22px}.showcase-row.reverse .showcase-copy{order:0}
  .usecases{grid-template-columns:1fr 1fr}
  .apps-card,.security{grid-template-columns:1fr;padding:32px}
  .apps-visual{display:none}
  .home-nav-cta{margin-left:auto}
}
@media (max-width:560px){
  .hero h1{font-size:36px}
  .home-nav-cta .ghost{display:none}
  .usecases{grid-template-columns:1fr 1fr}
  .usecases{grid-template-columns:1fr}
  .showcase-copy h3{font-size:24px}
  .home-foot{grid-template-columns:1fr}.foot-cols{grid-template-columns:1fr 1fr}
  .apps-card h2,.security h2{font-size:26px}
  .apps-card,.security{padding:26px 20px;border-radius:22px}
}

/* =========================================================================
   Design system v4 — Apple clarity, Tesla restraint
   ========================================================================= */
:root{
  --bg:#fbfbfd; --card:#ffffff; --fg:#1d1d1f; --muted:#6e6e73; --line:#e3e3e8; --soft:#f5f5f7;
  --accent:#0071e3; --accent-2:#0071e3; --accent-soft:#e8f1fc;
  --green:#28a745; --green-soft:#e9f7ee; --red:#ff3b30; --red-soft:#ffeceb;
  --ios-green:#34c759;
  --red-text:#d70015; --green-text:#1e7e34; --bubble-out:#0071e3; --line-strong:#86868b;
  --radius:22px; --radius-sm:14px;
  --shadow:0 1px 1px rgba(0,0,0,.02),0 2px 12px rgba(0,0,0,.04);
  --shadow-lg:0 30px 80px -20px rgba(0,0,0,.25);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",system-ui,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#000; --card:#1c1c1e; --fg:#f5f5f7; --muted:#a1a1a6; --line:#2c2c2e; --soft:#1c1c1e;
  --accent:#2997ff; --accent-2:#2997ff; --accent-soft:#0b2541; --green-soft:#0f2a18; --red-soft:#3a1412;
  --red-text:#ff453a; --green-text:#30d158; --line-strong:#6e6e73;
  --shadow:none; --shadow-lg:0 30px 80px -20px rgba(0,0,0,.8);
}}
html,body{font-family:var(--font);letter-spacing:-.01em}
h1,h2{letter-spacing:-.03em}
h3{letter-spacing:.08em}

/* brand */
.brand{font-weight:600;letter-spacing:-.02em;color:var(--fg)}
.brand span{color:inherit}
.brand-icon{border-radius:8px;width:28px;height:28px}
.brand.big .brand-icon{width:40px;height:40px;border-radius:11px}

/* buttons: Apple pills */
.btn{border-radius:980px;font-weight:500;border-color:var(--line)}
.btn.primary{background:var(--fg);border-color:var(--fg);color:var(--bg);box-shadow:none}
@media (hover:hover){.btn.primary:hover{background:var(--fg);opacity:.86}}
.btn.call{background:var(--ios-green);border-color:var(--ios-green)}
.btn.ghost{border-color:var(--line)}
.btn.link-arrow{border:0;background:none;color:var(--accent);padding-left:10px;padding-right:10px}
@media (hover:hover){.btn.link-arrow:hover{text-decoration:underline;background:none}}
.btn.white{background:#fff;color:#000;border-color:#fff}
.btn.xl{border-radius:980px;padding:14px 28px;font-size:17px}
input,select,textarea{border-radius:12px;border-width:1px}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}

/* neutral avatars (Apple Contacts style) */
.avatar{background:linear-gradient(180deg,#a8a8ad,#86868b);color:#fff}

/* Tesla-style kicker labels */
.eyebrow,.kicker{background:none;color:var(--muted);padding:0;border-radius:0;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.security .eyebrow,.final-cta .eyebrow{background:none;color:#a1a1a6}

/* ---------- home ---------- */
.home-nav{background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);margin:0 -20px;padding:14px 20px}
.home-links a{font-size:14px;color:var(--muted);font-weight:400}@media (hover:hover){.home-links a:hover{color:var(--fg)}}
.home-nav .btn{min-height:36px;padding:7px 16px;font-size:14px}
.hero-center{display:block;text-align:center;padding:84px 0 0}
.hero-center h1{font-size:84px;line-height:1.02;letter-spacing:-.045em;font-weight:700;margin:18px auto 22px;max-width:900px}
.hero-center h1 .soft{color:var(--muted)}
.hero-center p{font-size:21px;line-height:1.45;color:var(--muted);max-width:680px;margin:0 auto}
.hero-center .hero-cta{justify-content:center;margin:34px 0 22px}
.hero-center .store-badges{justify-content:center}
.store-badge{background:#000;border-color:#000;border-radius:12px}
@media (prefers-color-scheme:dark){.store-badge{background:#fff;color:#000;border-color:#fff}}

/* device mockups */
.devices{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:0;margin:64px auto 0;height:600px;max-width:820px}
.devices:before{content:"";position:absolute;inset:auto 5% -10px;height:60%;background:radial-gradient(closest-side,rgba(0,0,0,.12),transparent);z-index:-1}
.iphone,.android{position:relative;background:#111;padding:12px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #3a3a3c}
.iphone{width:290px;height:590px;border-radius:52px;z-index:2;margin-right:18px}
.android{width:270px;height:550px;border-radius:36px;transform:translateY(24px) rotate(3deg);margin-left:18px}
.island{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:96px;height:28px;border-radius:20px;background:#000;z-index:3}
.punch{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;background:#000;z-index:3}
.scr{position:relative;height:100%;border-radius:41px;background:#fff;color:#1d1d1f;overflow:hidden;padding:52px 18px 0;display:flex;flex-direction:column;text-align:left;font-family:var(--font)}
.android .scr{border-radius:26px;padding-top:44px}
.scr-status{position:absolute;top:16px;left:28px;right:24px;display:flex;justify-content:space-between;font-size:12px;font-weight:600}
.android .scr-status{top:14px;left:20px;right:18px}
.scr-title{font-size:26px;font-weight:700;letter-spacing:-.03em;margin-bottom:6px}
.scr-from{font-size:11px;color:#6e6e73;text-align:center}
.scr-num{font-size:26px;font-weight:600;text-align:center;margin:10px 0 14px;letter-spacing:-.01em}
.scr-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 10px}
.scr-pad i{font-style:normal;aspect-ratio:1/1;border-radius:50%;background:#f2f2f7;display:grid;place-items:center;font-size:22px;font-weight:500;max-width:58px;justify-self:center;width:100%}
.scr-call{width:58px;height:58px;border-radius:50%;background:var(--ios-green);color:#fff;display:grid;place-items:center;font-size:22px;margin:14px auto 0}
.scr-tabs{margin:auto -18px 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e5e5ea;padding:8px 0 18px;background:rgba(250,250,252,.95)}
.scr-tabs b{display:grid;justify-items:center;font-size:17px;color:#8e8e93;font-weight:400}
.scr-tabs b small{font-size:9px;font-weight:500}
.scr-tabs b.on{color:#0071e3}
.scr-thread{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f3}
.scr-thread .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(180deg,#a8a8ad,#86868b);color:#fff;font-size:12px;font-weight:600;display:grid;place-items:center;flex:none}
.scr-thread .tx{flex:1;display:grid;min-width:0}.scr-thread .tx b{font-size:13px}.scr-thread .tx small{font-size:11px;color:#6e6e73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scr-thread .tm{font-size:10px;color:#8e8e93;display:grid;justify-items:end;gap:4px}.scr-thread .tm em{width:8px;height:8px;border-radius:50%;background:#0071e3}

/* sections */
.section{padding:96px 0}
.section-head h2{font-size:52px;letter-spacing:-.04em;line-height:1.05}
.section-head p{font-size:19px}
.feature,.usecase,.how li,.plan,.faq details{border-radius:22px;box-shadow:none;border-color:var(--line)}
.usecase{border-top:1px solid var(--line)}
.showcase-copy h3{font-size:36px;letter-spacing:-.035em}
.mock-window{border-radius:22px;box-shadow:var(--shadow-lg)}
.flow-ic{background:var(--soft);color:var(--fg)}
.flow-ic.s3{background:var(--ios-green);color:#fff}
.mock-call{background:var(--ios-green)}
.plan.featured{border-color:var(--fg);box-shadow:none}
.plan-tag{background:var(--fg);color:var(--bg)}
.plan-price{font-size:52px;letter-spacing:-.04em;font-weight:700}
.apps-card{background:var(--soft);border:0}
.apps-visual img{border-radius:40px;transform:none;box-shadow:var(--shadow-lg)}
.final-cta{padding:88px 24px}
.final-cta h2{font-size:48px;letter-spacing:-.04em}
.save{background:var(--accent-soft);color:var(--accent)}
.ticks-list li:before{color:var(--fg)}
.hero-points li:before{color:var(--fg)}

/* login */
.auth{background:var(--bg)}
.auth-card{box-shadow:none;border:1px solid var(--line);border-radius:28px}

/* ---------- app (iOS feel) ---------- */
.sidebar{background:color-mix(in srgb,var(--soft) 70%,var(--card));border-right:1px solid var(--line)}
.nav a{font-weight:500;border-radius:10px;padding:10px 12px}
.nav a.active{background:var(--card);color:var(--fg);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.nav a.active i{color:var(--accent)}
.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 80%,transparent)}
.phone-status.available{background:transparent;color:var(--green);padding-left:0}
.card{box-shadow:none}
.keypad button{background:var(--soft);font-weight:400}
.keypad button small{letter-spacing:.18em}
.round-call{background:var(--ios-green);border-color:var(--ios-green);box-shadow:none}
.small-call{background:transparent;border:0;color:var(--accent)}
.ci-wrap{background:transparent}
.bubble{border-radius:20px;border:0;background:#e9e9eb;color:#000}
.bubble.out{background:#0b84ff;color:#fff}
@media (prefers-color-scheme:dark){.bubble{background:#262629;color:#fff}}
.chat-body{background:var(--card)}
.seg{border-radius:10px;background:color-mix(in srgb,var(--fg) 7%,transparent)}
.seg a{border-radius:8px;font-weight:500}
.seg a.on{box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04)}
.pill.active{background:var(--fg);color:var(--bg)}
.call-card{background:linear-gradient(180deg,#2c2c2e,#000);border-radius:32px}
.cbtn{border-radius:980px;font-weight:500}
.cbtn.answer{background:var(--ios-green)}.cbtn.decline{background:var(--red)}
.cbtn.on{background:#fff;color:#000}
.who-add{background:var(--accent-soft);color:var(--accent)}
.sheet{border-radius:28px}
.status-tag.answered{background:var(--green-soft)}
.toast{border-radius:980px}
@media (max-width:900px){
  .tabbar{background:color-mix(in srgb,var(--card) 85%,transparent);backdrop-filter:blur(10px)}
  .tabbar a{font-weight:500;font-size:10px}
  .tabbar a.active{color:var(--accent)}
  .page-title{font-size:30px;letter-spacing:-.03em}
  .sheet{border-radius:28px 28px 0 0}
  .call-card{border-radius:0}
}

/* responsive home */
@media (max-width:980px){
  .hero-center h1{font-size:60px}
  .devices{height:520px;transform:scale(.88);transform-origin:top center;margin-bottom:-60px}
  .section-head h2{font-size:40px}
  .final-cta h2{font-size:36px}
}
@media (max-width:560px){
  .hero-center{padding-top:48px}
  .hero-center h1{font-size:44px}
  .hero-center p{font-size:18px}
  .devices{height:470px;transform:scale(.72);margin:30px -40px -120px}
  .android{display:none}.iphone{margin:0}
  .section{padding:64px 0}
  .section-head h2{font-size:32px}
  .final-cta h2{font-size:28px}
  .home-nav{margin:0 -20px}
}
@media (max-width:560px){
  .devices{height:auto;align-items:flex-start;transform:none;margin:40px 0 0;justify-content:center}
  .iphone{width:250px;height:510px;border-radius:46px;margin:0}
  .iphone .scr{border-radius:36px}
  .scr-pad i{font-size:18px}
}

/* app icon on iPhone + Android home screens */
.apps-card{grid-template-columns:1fr 1.1fr}
.homescreens{display:flex;justify-content:center;gap:22px;align-items:flex-end}
.hs{position:relative;background:#111;padding:9px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #3a3a3c;display:grid}
.iphone-hs{width:200px;height:410px;border-radius:40px}
.android-hs{width:190px;height:390px;border-radius:28px}
.hs .island{top:16px;width:64px;height:20px}
.hs .punch{top:16px;width:9px;height:9px}
.hs-scr{position:relative;border-radius:31px;overflow:hidden;padding:40px 14px 12px;display:flex;flex-direction:column;
  background:linear-gradient(160deg,#c9d6ff 0%,#e2e2e2 45%,#f6d5c9 100%)}
.android-hs .hs-scr{border-radius:20px;background:linear-gradient(180deg,#1f2a44,#3b4a6b 60%,#6b7a99)}
.hs-status{position:absolute;top:12px;left:20px;right:16px;display:flex;justify-content:space-between;font-size:9px;font-weight:600;color:#1d1d1f}
.android-hs .hs-status{color:#fff;left:16px;top:10px}
.hs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 8px}
.hs-app{display:grid;justify-items:center;gap:3px}
.hs-app i,.hs-app img{width:34px;height:34px;border-radius:9px;display:block}
.hs-app small{font-size:7px;font-weight:500;color:#1d1d1f;height:9px;white-space:nowrap}
.hs-app:not(.me) small{width:24px;height:4px;border-radius:2px;background:rgba(0,0,0,.18);margin-top:3px}
.hs-app.me img{box-shadow:0 0 0 3px rgba(255,255,255,.9),0 6px 18px rgba(0,0,0,.35)}
.hs-app.me small{font-weight:700}
@keyframes hsPop{50%{transform:scale(1.08)}}
@media (prefers-reduced-motion:no-preference){.apps.in .hs-app.me img{animation:hsPop .9s ease-in-out .4s both}}
.hs-dock{margin-top:auto;display:flex;justify-content:space-around;align-items:center;padding:8px;border-radius:20px;background:rgba(255,255,255,.35);backdrop-filter:blur(10px)}
.hs-dock i,.hs-dock img{width:32px;height:32px;border-radius:9px;display:block}
.android-hs .hs-clock{color:#fff;font-size:34px;font-weight:300;letter-spacing:-.03em;line-height:1;margin:14px 0 22px;display:grid;gap:4px}
.android-hs .hs-clock small{font-size:9px;font-weight:500;letter-spacing:0;opacity:.85}
.hs-grid.four{margin-top:auto}
.hs-app.round i,.hs-app.round img{border-radius:50%}
.android-hs .hs-app small{color:#fff}
.android-hs .hs-app:not(.me) small{background:rgba(255,255,255,.3)}
.hs-search{margin-top:14px;background:rgba(255,255,255,.9);color:#5f6368;border-radius:999px;padding:7px 12px;font-size:9px;font-weight:600}
.hs-label{position:absolute;bottom:-28px;left:0;right:0;text-align:center;font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.homescreens{padding-bottom:28px}
@media (max-width:980px){.apps-card{grid-template-columns:1fr}.homescreens{margin-top:10px}}
@media (max-width:560px){.iphone-hs{width:160px;height:330px;border-radius:32px}.android-hs{width:150px;height:310px}
  .hs-scr{padding:34px 10px 10px;border-radius:24px}.hs-app i,.hs-app img{width:26px;height:26px;border-radius:7px}.hs-grid{gap:9px 5px}
  .hs-dock i,.hs-dock img{width:24px;height:24px}.android-hs .hs-clock{font-size:26px}.homescreens{gap:14px}}
.hs-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.hs-app{min-width:0}
.hs-app small{max-width:none;overflow:visible}

/* ===== static home: new sections, motion, mobile fixes ===== */
.skip{position:absolute;left:-999px;top:8px;background:var(--fg);color:var(--bg);padding:8px 14px;border-radius:980px;z-index:100}
.skip:focus{left:12px}
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}.call-avatar,.hs-app.me img,.call-ui[data-state=ringing][data-dir=inbound] .call-card{animation:none!important}}
.story{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:center;margin:72px 0 0}
.story picture,.story img{display:block;width:100%;height:auto;border-radius:28px;object-fit:cover;aspect-ratio:3/2;background:var(--soft)}
.story-copy h2{font-size:40px;letter-spacing:-.04em;line-height:1.08;margin:12px 0 16px}
.story-copy p{font-size:18px;color:var(--muted)}
.photo-cases{grid-template-columns:repeat(4,1fr)}
.photo-cases .usecase{padding:0;overflow:hidden;color:var(--fg);display:flex;flex-direction:column;border-top:1px solid var(--line);transition:transform .25s,box-shadow .25s}
@media (hover:hover){.photo-cases .usecase:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}}
.photo-cases img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;background:var(--soft)}
.photo-cases .usecase div{padding:18px 20px 22px}
.photo-cases h3{margin:0 0 6px}
.security{position:relative;overflow:hidden}
.security-art{position:absolute;right:-40px;bottom:-60px;width:360px;height:360px;opacity:.9;pointer-events:none;border-radius:50%}
.security>div{position:relative}
.pricing.three{grid-template-columns:repeat(3,minmax(0,340px))}
.billing-toggle button{font:inherit;border:0;background:none;cursor:pointer;padding:8px 16px;border-radius:10px;color:var(--muted);font-weight:600;display:inline-flex;gap:6px;align-items:center}
.billing-toggle button.on{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.plan .btn{margin-top:4px}
@media (max-width:980px){.story{grid-template-columns:1fr;gap:22px;margin-top:48px}.story-copy h2{font-size:30px}.photo-cases{grid-template-columns:1fr 1fr}.pricing.three{grid-template-columns:1fr;max-width:420px;margin-inline:auto}.security-art{width:240px;height:240px;right:-60px;bottom:-80px;opacity:.5}}
@media (max-width:900px){input,select,textarea{font-size:16px}.dial-display{font-size:34px}.otp-input{font-size:28px}}
@media (max-width:560px){.photo-cases{grid-template-columns:1fr}}
.trial-pill{margin-left:auto;font-size:12px;font-weight:600;padding:5px 12px;border-radius:980px;background:var(--accent-soft);color:var(--accent)}
.trial-pill+.phone-status{margin-left:0}
.paywall{text-align:center;padding:32px}.paywall h2{font-size:28px;margin-bottom:8px}

/* static home: hide for signed-in boots (set by the inline head script) and offset anchors for the sticky nav */
html.app #root>.home{display:none}
#home section[id]{scroll-margin-top:72px}

/* ===== accessibility ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.toast{display:flex;align-items:center;gap:10px}
.toast-close{background:transparent;border:0;color:inherit;font-size:18px;min-width:32px;min-height:32px;border-radius:999px;cursor:pointer}
.threads .list li{padding:0}
.threads .list li>a{display:flex;align-items:center;gap:12px;width:100%;padding:12px;color:inherit;text-decoration:none;border-radius:inherit}
:root{--ios-green:#1a7f37}
.err,.form-err,.miss-text,.btn.danger,.status-tag.missed,.status-tag.failed,.status-tag.rejected,.banner.err,.ci.miss{color:var(--red-text)}
.status-tag.answered,.phone-status.available,.ci.in{color:var(--green-text)}
.who-add,.save{font-size:13px;font-weight:600;color:var(--accent);background:transparent;border:1px solid var(--line)}
.bubble.out{background:var(--bubble-out);border-color:var(--bubble-out);color:#fff}
.bubble small{opacity:1;color:inherit}
.bubble.out small{color:#e9f2ff}
.bubble.in small{color:var(--muted)}
.mstatus.failed{color:#fff;background:#b3261e;padding:0 6px;border-radius:999px;font-weight:600}
input,select,textarea{border:1px solid var(--line-strong);border-radius:12px}
@media (hover:hover){.table input.note:hover{border-color:var(--line-strong);background:var(--card)}}.table input.note:focus{border-color:var(--line-strong);background:var(--card)}
dialog.sheet-wrap{position:fixed;z-index:55;border:0;padding:0;margin:0;background:transparent;color:inherit;max-width:none;max-height:none;inset:0;width:100%;height:100%;display:grid;place-items:center}
dialog.sheet-wrap::backdrop{background:rgba(0,0,0,0);transition:background .2s}
dialog.sheet-wrap.open::backdrop{background:rgba(0,0,0,.4)}
dialog.sheet-wrap:not([open]){display:none}
@media (max-width:900px){dialog.sheet-wrap{place-items:end center}}
@media (max-width:900px){
  .back:not(.inline){display:inline-grid;place-items:center;min-width:44px;min-height:44px;margin-left:-12px;font-size:28px}
  .btn.small{min-height:40px}
}
.rec-play{width:36px;height:36px;position:relative}
.rec-play::before{content:'';position:absolute;inset:-6px}
.btn.tiny{min-height:36px;min-width:44px;padding:4px 12px}
.sheet button.btn.link[data-close]{min-height:44px;min-width:44px;padding:0;display:grid;place-items:center}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:focus:not(:focus-visible){outline:0}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}
.call-card :focus-visible,.cbtn:focus-visible,.band :focus-visible{outline-color:#fff}
.band.soft :focus-visible{outline-color:var(--accent)}
html{scroll-padding-top:80px}
.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}

/* ---- Mobile audit: iOS no-zoom inputs, short-phone dialer, touch feedback, stacked tables ---- */
@media (max-width:900px){
  input,select,textarea,.invite-link input{font-size:16px}
  .chat-input textarea{line-height:1.35;padding:9px 14px}
  .dialer{gap:clamp(6px,1.4svh,12px)}
  .keypad{gap:clamp(8px,1.8svh,16px)}
  .keypad button{max-width:clamp(56px,10svh,84px);font-size:clamp(24px,4.5svh,30px)}
  .round-call{width:clamp(60px,10.5svh,74px);height:clamp(60px,10.5svh,74px);font-size:clamp(22px,4svh,28px)}
  .dial-display{font-size:clamp(26px,5svh,34px);padding:2px 6px}
  .dial-contact{min-height:0}
  .phone-home{display:flex;flex-direction:column}
  .dialer{min-height:calc(100svh - var(--tabbar-h,64px) - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 70px);justify-content:center}
  .table,.table tbody,.table tr,.table td{display:block;width:100%}
  .table thead{display:none}
  .table tr{display:grid;gap:8px;padding:14px;border-bottom:1px solid var(--line)}
  .table tr:last-child{border-bottom:0}
  .table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:0;font-size:15px}
  .table td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:13px;flex-shrink:0}
  .table td:first-child{font-size:17px;font-weight:600}
  .table td:empty{display:none}
  .table select{max-width:60%}
}
.threads .list li:active,.list li a:active,.tabbar a:active,.seg a:active,.faq summary:active{background:var(--soft)}
.who:active{opacity:.6}
button,a,.keypad button,.cbtn,.tabbar a{touch-action:manipulation}
.account-card .avatar{flex-shrink:0}
.ios-hint{text-align:center;margin:0}

/* ===== home-visual-motion audit ===== */
.ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;flex:none}
.ci .ic{width:18px;height:18px}
/* full-bleed bands */
.home{overflow-x:clip}
.band{margin:0 calc(50% - 50vw);width:100vw;border-radius:0;padding:var(--s-section,96px) 20px;background:var(--fg);color:var(--bg)}
.band.soft{background:var(--soft);color:var(--fg)}
.band>.inner{max-width:1160px;margin:0 auto}
.band .eyebrow{background:none;color:var(--bg);opacity:.6}
.band.soft .eyebrow{color:var(--fg)}
.band .ticks-list li:before{color:var(--bg)}
.band.soft .ticks-list li:before{color:var(--fg)}
.band .btn.white{background:var(--bg);color:var(--fg);border-color:var(--bg)}
.band .muted{color:var(--bg);opacity:.7}
.band.soft .muted{color:var(--muted);opacity:1}
.final-cta.band{display:block;text-align:center}
.final-cta.band>.inner{display:grid;gap:22px;justify-items:center}
.band .security{display:block;background:none;color:inherit;padding:0;border-radius:0;max-width:720px;margin:0 auto;text-align:center;overflow:visible}
.band .security h2{margin:12px 0 28px}
.band .security .ticks-list{grid-template-columns:1fr 1fr;gap:14px 28px;font-size:17px;text-align:left}
.band .security-art{position:static;display:block;width:100%;max-width:420px;height:auto;margin:40px auto 0;opacity:1}
.apps.band .apps-card{background:none;border:0;border-radius:0;padding:0}
@media (max-width:700px){.band{padding:64px 20px}.band .security .ticks-list{grid-template-columns:1fr}}
@media (prefers-color-scheme:dark){.devices:before{background:radial-gradient(closest-side,rgba(255,255,255,.08),transparent)}}
/* LQIP photos */
.ph{aspect-ratio:3/2;border-radius:var(--r-card,22px);overflow:hidden;background-size:cover}
.photo-cases .ph{border-radius:0}
.story .ph{border-radius:28px}
.ph img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s}
.ph img.loaded{opacity:1}
html:not(.js) .ph img{opacity:1}
/* phone-panel mock windows */
.mock-window{position:relative;max-width:320px;width:100%;justify-self:center;border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow-lg);padding-top:30px}
.scr-status.mini{top:10px;left:20px;right:18px;font-size:11px;color:var(--muted)}
.mock-ic .ic,.mock-call .ic{width:16px;height:16px}
.flow-ic .ic{width:20px;height:20px}
.scr-call .ic{width:24px;height:24px}
.scr-tabs b .ic{display:block;margin:0 auto;width:18px;height:18px}
.scr-num i{font-style:normal}
.bubble.typing{display:none}
/* nav icons */
.nav a i .ic,.tabbar a i .ic{width:20px;height:20px}
.round-call .ic,.small-call .ic{width:22px;height:22px}
/* hero entrance (translate prop so it never fights responsive transforms) */
@keyframes rise{from{opacity:0;translate:0 28px}}
@keyframes settle{from{transform:translateY(24px) rotate(0)}to{transform:translateY(24px) rotate(3deg)}}
@keyframes digit{from{opacity:0}}
@keyframes keyHit{0%{background:#d1d1d6}100%{background:#f2f2f7}}
@keyframes ringPulse{0%{box-shadow:0 0 0 0 rgba(26,127,55,.45)}100%{box-shadow:0 0 0 14px rgba(26,127,55,0)}}
@keyframes threadIn{from{transform:translateY(-100%);opacity:0}}
@keyframes dotPulse{50%{transform:scale(1.6)}}
@keyframes stepIn{to{opacity:1;transform:none}}
@keyframes grow{to{transform:scaleY(1)}}
@keyframes greenPulse{0%{box-shadow:0 0 0 0 rgba(52,199,89,.5)}100%{box-shadow:0 0 0 12px rgba(52,199,89,0)}}
@keyframes bubbleIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes typingShow{0%,100%{opacity:0;max-height:0;padding:0 14px}8%,92%{opacity:1;max-height:40px;padding:12px 14px}}
@keyframes fadeIn{to{opacity:1}}
@keyframes connectFlash{0%{color:var(--green-text)}100%{color:inherit}}
@keyframes authIn{from{opacity:0;transform:translateY(6px)}}
@keyframes borderPulse{50%{border-color:var(--accent)}}
@keyframes breathe{50%{opacity:.35}}
@media (prefers-reduced-motion:no-preference){
  .devices{animation:rise .9s cubic-bezier(.2,.7,.2,1) .15s both}
  .android{animation:settle 1s cubic-bezier(.2,.7,.2,1) .25s both;will-change:transform}
  .devices.live .scr-num i{animation:digit .01s both;animation-delay:calc(var(--d)*90ms)}
  .devices.live .scr-pad i[data-k]{animation:keyHit .25s both}
  .devices.live .scr-pad i[data-k="4"]{animation-delay:0ms}.devices.live .scr-pad i[data-k="1"]{animation-delay:90ms}.devices.live .scr-pad i[data-k="6"]{animation-delay:180ms}
  .devices.live .scr-pad i[data-k="5"]{animation-delay:540ms}.devices.live .scr-pad i[data-k="0"]{animation-delay:900ms}.devices.live .scr-pad i[data-k="8"]{animation-delay:1170ms}
  .devices.live .scr-pad i[data-k="2"],.devices.live .scr-pad i[data-k="3"],.devices.live .scr-pad i[data-k="7"],.devices.live .scr-pad i[data-k="9"],.devices.live .scr-pad i[data-k="*"],.devices.live .scr-pad i[data-k="#"]{animation:none}
  .devices.live .scr-call{animation:ringPulse 1.2s ease-out 1.4s 1}
  .devices.live .android .scr-thread:first-of-type{animation:threadIn .4s cubic-bezier(.2,.7,.2,1) .6s both}
  .devices.live .tm em{animation:dotPulse .6s ease-in-out 1.1s 2}
  html.js .showcase-row .flow-step{opacity:0;transform:translateX(-6px)}
  html.js .showcase-row.in .flow-step{animation:stepIn .35s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*220ms)}
  html.js .showcase-row .flow-line{transform:scaleY(0);transform-origin:top}
  html.js .showcase-row.in .flow-line{animation:grow .22s linear forwards;animation-delay:calc(var(--i)*220ms + 120ms)}
  html.js .showcase-row.in .flow-ic.s3{animation:greenPulse .8s ease-out .9s 1}
  html.js .showcase-row .mock-chat .bubble:not(.typing){opacity:0}
  html.js .showcase-row.in .mock-chat .bubble[style*="--i:0"]{animation:bubbleIn .26s .1s forwards}
  html.js .showcase-row.in .mock-chat .bubble[style*="--i:1"]{animation:bubbleIn .26s 1.3s forwards}
  html.js .showcase-row.in .mock-chat .bubble[style*="--i:2"]{animation:bubbleIn .26s 2.6s forwards}
  html.js .showcase-row .mock-chat .bubble.typing{display:flex;gap:4px;opacity:0;max-height:0;padding:0 14px;overflow:hidden;border:0}
  html.js .showcase-row.in .mock-chat .bubble.typing{animation:typingShow .8s .5s both}
  .bubble.typing i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}
  html.js .showcase-row .delivered{opacity:0}
  html.js .showcase-row.in .delivered{animation:fadeIn .3s 2.1s forwards}
  .call-ui[data-state=ringing][data-dir=inbound] .cbtn.answer{animation:ringPulse 1.4s ease-out infinite}
  .call-ui[data-state=active] #cu-state{animation:connectFlash .6s both}
  .auth-step.enter{animation:authIn .16s ease-out}
  .otp-input.busy{animation:borderPulse 1s ease-in-out infinite}
  .bubble.new{animation:bubbleIn .22s cubic-bezier(.2,.7,.2,1)}
  .phone-status.connecting i{animation:breathe 1.2s ease-in-out infinite}
}
/* call overlay fade */
.call-ui{opacity:0;visibility:hidden;transform:translateY(16px) scale(.98);pointer-events:none;transition:opacity .22s,transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s .3s}
.call-ui.show{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
/* iOS-style in-call controls */
.call-ui:not([data-state=ringing][data-dir=inbound]):not([data-state=ended]) .call-buttons.active-only{display:grid;grid-template-columns:repeat(3,72px);gap:18px 24px;justify-content:center;margin-top:28px}
.call-ui .call-buttons.active-only .cbtn{width:72px;height:72px;padding:0;border-radius:50%;display:grid;place-items:center;font:500 13px var(--font);background:rgba(255,255,255,.14);color:#fff;flex:none}
.call-ui .cbtn.on{background:#fff;color:#000;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.call-ui .call-buttons.active-only #cu-hangup{grid-column:2;margin-top:14px;background:var(--red);color:#fff;font-weight:600}
.call-ui[data-dir=inbound][data-state=ringing] .call-buttons.ringing-only{display:flex;justify-content:center;gap:56px;margin-top:28px}
.call-ui .call-buttons.ringing-only .cbtn{flex:none;width:72px;height:72px;padding:0;border-radius:50%;display:grid;place-items:center;font:500 13px var(--font)}
/* micro-interactions */
.keypad button{touch-action:manipulation}
.keypad button.press{transform:scale(.94);background:var(--accent-soft)}
.mstatus{transition:color .3s,opacity .3s}
.toast{transition:opacity .2s,transform .2s}
.toast.out{opacity:0;transform:translateY(-6px)}
.faq summary:after{content:"+";transition:transform .2s}
.faq details[open] summary:after{content:"+";transform:rotate(45deg)}
@media (max-width:980px){.home-nav,.topbar{backdrop-filter:none;background:var(--bg)} .tabbar{backdrop-filter:none;background:var(--card)} .hs-dock{backdrop-filter:none;background:rgba(255,255,255,.55)}}
/* global reduced-motion gate (keep last) */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .call-ui[data-state=ringing][data-dir=inbound] .call-card{outline:2px solid var(--accent)}
  .bubble.typing{display:none!important}
  .flow-step,.flow-line,.bubble,.delivered,.flow-ic,.scr-num i{opacity:1;transform:none}
  .devices{translate:none}
  .bubble.new,.phone-status i,.toast,.faq summary:after,.auth-step.enter,.otp-input.busy,.keypad button.press{animation:none!important;transition:none!important;transform:none}
}

/* home screens: real-looking icons + labels */
.hs-app i,.hs-dock i{display:grid!important;place-items:center;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.hs-app i svg,.hs-dock i svg{width:66%;height:66%}
.hs-app small,.hs-app:not(.me) small{width:auto!important;height:auto!important;background:none!important;margin:0!important;font-size:7px;line-height:9px;max-width:100%;overflow:hidden!important;text-overflow:ellipsis;text-align:center;color:#1d1d1f}
.android-hs .hs-app small{color:#fff!important}
.iphone-hs .hs-scr{background:linear-gradient(160deg,#cfe3ff,#f4d9ef 55%,#ffe7c7)}
.hs-widget{display:grid;gap:2px;padding:8px 10px;margin-bottom:12px;border-radius:14px;background:rgba(255,255,255,.55);backdrop-filter:blur(8px);font-size:8px;color:#1d1d1f}
.hs-widget b{font-size:9px}.hs-widget span{opacity:.7}
.hs-app.me{position:relative;z-index:1}
.hs-search{display:flex;align-items:center;gap:6px}

/* Hero: tighter vertical rhythm */
.hero-center{padding-top:44px}
.hero-center h1{font-size:76px;margin:12px auto 18px}
.hero-center .hero-cta{margin:26px 0 16px}
.hero-center .hero-points{justify-content:center;margin-bottom:0}
.hero-center .devices{margin-top:36px}
@media (max-width:760px){.hero-center{padding-top:28px}.hero-center h1{font-size:46px}}

/* Mobile apps section */
.apps-copy h2{margin:10px 0 12px}
.apps-copy>p{max-width:520px;margin:0 0 22px}
.apps-feats{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:14px}
.apps-feats li{display:grid;gap:2px;padding-left:28px;position:relative}
.apps-feats li:before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--fg);color:var(--bg);font-size:12px;font-weight:800;display:grid;place-items:center}
.apps-feats b{font-size:16px}.apps-feats span{color:var(--muted);font-size:15px}
.apps-steps{counter-reset:s;list-style:none;padding:14px 16px;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:8px 18px;border:1px solid var(--line);border-radius:14px;font-size:14px;color:var(--muted)}
.apps-steps li{counter-increment:s;display:flex;align-items:center;gap:8px}
.apps-steps li:before{content:counter(s);width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--fg)}
.apps-steps b{color:var(--fg);font-weight:600}
.apps-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.apps-actions .store-badges{display:contents}

/* Footer store badges */
.foot-badges{margin-top:14px}
.foot-badges .store-badge{transform:scale(.86);transform-origin:left center;margin-right:-14px}
.hero-center .hero-badges{justify-content:center;margin-top:18px}
.photo-cases .usecase .ph{padding:0}
@media (max-width:560px){
  .store-badges{flex-wrap:nowrap;justify-content:center;gap:8px}
  .store-badge{padding:7px 12px;gap:8px}.store-badge svg{width:18px;height:18px}
  .store-badge span{font-size:14px}.store-badge small{font-size:8px}
  .apps-actions{justify-content:flex-start}.apps-actions #install-btn{flex-basis:100%}
  .foot-badges .store-badge{transform:none;margin-right:0}.foot-badges{justify-content:flex-start}
}
@media (max-width:560px){.store-badge{min-width:0}}

/* ===== Dashboard layout: centered, calm widths ===== */
main#main{margin-inline:auto}
body[data-view=contacts] main#main,body[data-view=numbers] main#main,body[data-view=settings] main#main{max-width:820px}
.page-back{display:inline-flex;align-items:center;gap:4px;color:var(--accent,#0071e3);font-weight:500;margin:0 0 14px;text-decoration:none}
.steps-bar{justify-content:center}

/* Form cards (contact edit etc.) */
.form-card{padding:28px;display:grid;gap:24px}
.form-head{display:flex;gap:18px;align-items:center}
.form-head h2{margin:0 0 4px;font-size:24px}.form-head p{margin:0}
.form-head .avatar.xl{width:64px;height:64px;font-size:22px;flex:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.field{display:grid;gap:6px;font-size:14px}
.field>span{font-weight:600}.field em{color:#ff3b30;font-style:normal}
.field input,.field textarea,.field select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--fg);font:inherit;font-size:15px}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in srgb,var(--fg) 10%,transparent)}
.field small{color:var(--muted);font-size:12px}
.field.full{grid-column:1/-1}
.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}.form-card{padding:20px}.form-actions .btn{flex:1}}

/* Number picker */
.pick{max-width:680px;margin:0 auto;display:grid;gap:18px}
.pick-head{text-align:center}.pick-head h2{margin:8px 0 6px;font-size:28px}.pick-head p{margin:0 auto;max-width:520px}
.pick-search{padding:16px;display:grid;gap:12px}
.pick-search .seg{display:inline-grid;grid-auto-flow:column;background:var(--soft);border-radius:12px;padding:3px;justify-self:start}
.pick-search .seg button{border:0;background:none;padding:8px 18px;border-radius:9px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}
.pick-search .seg button.on{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.pick-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px}
.pick-row select,.pick-row input{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--fg);font:inherit;font-size:15px;min-width:0}
.pick-count{margin:0;text-align:center}
.pick-list{display:grid;gap:8px}
.pick-item{display:grid;grid-template-columns:1fr auto;grid-template-areas:"num go" "loc go" "feat go";gap:2px 16px;align-items:center;text-align:left;width:100%;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--fg);font:inherit;cursor:pointer;transition:border-color .15s,transform .15s}
.pick-item:hover:not(:disabled){border-color:var(--fg);transform:translateY(-1px)}
.pick-item:disabled{opacity:.55;cursor:default}.pick-item.busy{opacity:1;border-color:var(--fg)}
.pick-num{grid-area:num;font-size:20px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.pick-loc{grid-area:loc;font-size:14px}.pick-feat{grid-area:feat;display:flex;gap:6px;margin-top:6px}
.pick-feat .chip{font-size:11px;padding:2px 8px}
.pick-go{grid-area:go;font-weight:600;color:var(--accent,#0071e3);white-space:nowrap}
.pick-item.skel{height:92px;cursor:default;display:block;background:linear-gradient(90deg,var(--soft) 25%,var(--card) 50%,var(--soft) 75%);background-size:200% 100%;animation:skel 1.2s linear infinite}
.pick-item.skel i{display:none}
@keyframes skel{to{background-position:-200% 0}}
.pick-msg{text-align:center;padding:32px 20px;border:1px dashed var(--line);border-radius:16px;display:grid;gap:8px;justify-items:center}
.pick-msg p{margin:0}.pick-msg.err b{color:#d70015}
@media (max-width:560px){.pick-row{grid-template-columns:1fr 1fr}.pick-row input{grid-column:1/-1;order:-1}.pick-head h2{font-size:24px}}
.form-grid{align-items:start}
.field input::placeholder,.field textarea::placeholder,.pick-row input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}
.pick-item{grid-template-columns:1fr auto auto;grid-template-areas:"num feat go" "loc feat go";padding:14px 18px}
.pick-feat{margin-top:0}
@media (max-width:560px){.pick-item{grid-template-columns:1fr auto;grid-template-areas:"num go" "loc go" "feat go"}.pick-feat{margin-top:6px}}
.empty-state{display:grid;justify-items:center;text-align:center;gap:10px;padding:64px 24px;margin:auto;max-width:360px}
.empty-state b{font-size:18px}.empty-state p{margin:0}
.es-ic{width:56px;height:56px;border-radius:16px;background:var(--soft);display:grid;place-items:center}
.es-ic .ic{width:26px;height:26px}
.chat:has(>.empty-state){display:flex}

/* Numbers tab */
.nums-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 18px;flex-wrap:wrap}
.nums-head h2{margin:0 0 4px;font-size:26px}.nums-head p{margin:0}
.num-cards{display:grid;gap:14px}
.num-card2{display:grid;gap:14px;padding:20px 22px;color:var(--fg);text-decoration:none;transition:border-color .15s,box-shadow .15s;border:1px solid var(--line)}
.num-card2:hover{border-color:var(--fg)}
.nc-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.nc-name{display:block;font-size:19px;letter-spacing:-.01em}
.nc-num{color:var(--muted);font-variant-numeric:tabular-nums}
.nc-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.nc-status{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--muted)}
.nc-status.on{background:color-mix(in srgb,#34c759 15%,transparent);color:#1f8f3a}
.nc-status.bad{background:color-mix(in srgb,#ff3b30 14%,transparent);color:#d70015}
.nc-err{margin:0;color:#d70015;font-size:14px}
.nc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px;margin:0;padding-top:14px;border-top:1px solid var(--line)}
.nc-grid .full{grid-column:1/-1}
.nc-grid dt{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.nc-grid dd{margin:0;font-size:14px;overflow:hidden;text-overflow:ellipsis}
.nc-grid .full dd{white-space:nowrap}
.nc-edit{color:var(--accent,#0071e3);font-weight:600;font-size:14px;justify-self:end}
.add-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.add-choice{display:grid;gap:8px;align-content:start;padding:24px;color:var(--fg);text-decoration:none;border:1px solid var(--line)}
.add-choice:hover{border-color:var(--fg)}
.add-choice b{font-size:18px}.add-choice p{margin:0}
.add-choice .es-ic{font-size:22px;font-weight:600}
@media (max-width:640px){.nc-grid{grid-template-columns:1fr 1fr}.add-choices{grid-template-columns:1fr}}
body[data-view=numbers] .split{grid-template-columns:1fr;max-width:640px;margin:0 auto}
body[data-view=numbers] #port-form h3{font-size:22px;text-transform:none;letter-spacing:-.01em;color:var(--fg)}
@media (max-width:760px){.nums-head h2{display:none}}

/* Settings */
.set-head{margin:0 0 18px}.set-head h2{margin:0 0 4px;font-size:26px;letter-spacing:-.01em}.set-head p{margin:0}
.set-section>.card>h3:first-child{display:none}
.set-section>.card{padding:24px}
.set-section .form-actions .btn{width:auto}
body[data-view=settings] main#main>.view-title{font-size:26px;margin:0 0 18px}
.hrow.closed input[type=time],.hrow.closed>span:not(:first-child){opacity:.35;pointer-events:none}
body[data-view=settings] .set-group{border-radius:16px}
body[data-view=settings] .set-row{padding-block:14px}

/* Make editable things look editable */
.edit-hint{margin:0 0 14px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent,#0071e3) 8%,transparent);color:var(--fg);font-size:14px}
.set-field input:not(:disabled):not([type=checkbox]),.set-field textarea:not(:disabled),.set-field select:not(:disabled),
.set-row select:not(:disabled),.set-section input:not([type=checkbox]):not([type=time]),.set-section textarea,.set-section select{border:1px solid var(--line)!important;border-radius:10px!important;background-color:var(--card)!important;padding:9px 12px!important;transition:border-color .15s,box-shadow .15s}
.set-field input:not(:disabled):not([type=checkbox]):hover,.set-field textarea:not(:disabled):hover,.set-section input:hover,.set-section textarea:hover{border-color:color-mix(in srgb,var(--fg) 40%,transparent)!important}
.set-field input:focus,.set-field textarea:focus,.set-section input:focus,.set-section textarea:focus,.set-section select:focus{outline:none;border-color:var(--fg)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--fg) 10%,transparent)}
.set-field input[type=text]:not(:disabled),.set-field input:not([type]):not(:disabled),.set-field textarea:not(:disabled){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px top 11px!important;padding-right:32px!important}
.edit-btn{font-weight:600}

/* Phone page */
.from-line{display:flex;align-items:baseline;justify-content:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:14px}
.from-line b{overflow:hidden;text-overflow:ellipsis}
.recents-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.recents-head h2{margin:0;white-space:nowrap}
.recents{min-width:0}
.call-list li{min-width:0}
@media (max-width:560px){.recents-head{flex-direction:column;align-items:stretch}.recents-head .seg{display:flex;width:100%}.recents-head .seg a{flex:1;text-align:center;white-space:nowrap}}
.dial-display::-webkit-calendar-picker-indicator,.dial-display::-webkit-list-button{display:none!important;opacity:0}

/* Billing: invoices + cards */
.inv-status{font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px;background:var(--line);color:var(--muted);white-space:nowrap}
.inv-status.ok{background:color-mix(in srgb,#34c759 18%,transparent);color:#1f8f3d}
.inv-status.err{background:color-mix(in srgb,#ff3b30 16%,transparent);color:#d70015}
button.set-row{width:100%;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
@media print{body *{visibility:hidden}.card.invoice,.card.invoice *{visibility:visible}.card.invoice{position:absolute;inset:0 auto auto 0;width:100%}.card.invoice .row .btn{display:none}}

/* Payment trust signals (homepage pricing + billing page) */
.lock{width:14px;height:14px;flex:none;color:var(--green)}
.trust-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;margin:18px auto 6px;padding:12px 16px;max-width:820px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:13px;color:var(--muted)}
.trust-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.trust-item b{color:var(--fg)}
.card-brands{display:inline-flex;gap:6px;align-items:center}
.cb{display:inline-grid;place-items:center;height:22px;min-width:34px;padding:0 5px;border-radius:4px;border:1px solid var(--line);background:#fff;font:italic 800 9px/1 system-ui,sans-serif;letter-spacing:.02em}
.cb.visa{color:#1a1f71;font-size:11px}
.cb.amex{background:#2e77bc;border-color:#2e77bc;color:#fff;font-style:normal}
.cb.disc{color:#231f20;font-size:7px;font-style:normal}
.cb.mc{position:relative;display:inline-flex;justify-content:center}
.cb.mc b{width:12px;height:12px;border-radius:50%;background:#eb001b;display:block}
.cb.mc b+b{background:#f79e1b;margin-left:-5px;mix-blend-mode:multiply}
.secure-box{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:12px;background:var(--green-soft);margin:12px 0}
.secure-box .lock{width:20px;height:20px;margin-top:2px}
.secure-box ul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
.secure-box b{font-size:14px}
.card-row-brand{display:inline-flex;align-items:center;gap:10px}
.bill-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.bill-summary .stat{display:grid;gap:4px;margin:0}
.bill-summary .stat small{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.bill-summary .stat b{font-size:24px}
@media (max-width:640px){.bill-summary{grid-template-columns:1fr}}
.how-billing li{margin-bottom:8px;line-height:1.45}
body[data-view=billing] main#main{max-width:820px}
body[data-view=billing] main#main>.view-title{font-size:26px;margin:0 0 18px}

/* Number settings: one glance, tap a row to edit */
.nd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:6px 0 16px}
.nd-head h2{margin:0;font-size:26px}
.nd-num{color:var(--muted);font-size:15px}
.nd-chips{display:flex;gap:6px;flex-wrap:wrap}
.nd-chip{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--muted)}
.nd-chip.ok{background:var(--green-soft);color:var(--green)}
.nd-chip.off{background:var(--red-soft,#fdecec);color:#d70015}
.nd-list{padding:4px 0;overflow:hidden}
.nd-list form{margin:0}
.nd-row{display:block;border-bottom:1px solid var(--line)}
.nd-list>.nd-row:last-child{border-bottom:0}
.nd-row>summary,.nd-toggle{display:flex;align-items:center;gap:12px;padding:15px 18px;cursor:pointer;list-style:none}
.nd-row>summary::-webkit-details-marker{display:none}
.nd-row>summary:hover,.nd-toggle:hover{background:var(--soft)}
.nd-ic{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--soft);font-size:15px;flex:none}
.nd-row b{font-weight:600}
.nd-val{margin-left:auto;color:var(--muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}
.nd-row[open] .set-chev{transform:rotate(90deg)}
.nd-toggle .nd-val{margin-right:4px}
.nd-edit{display:grid;gap:10px;padding:0 18px 16px 58px}
.nd-edit select,.nd-edit input:not([type=checkbox]):not([type=time]),.nd-edit textarea{width:100%}
.nd-inline{display:flex;justify-content:space-between;align-items:center}
.nd-sub{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.nd-release{color:#d70015;margin-top:14px}
@media (max-width:560px){.nd-edit{padding-left:18px}}
.nd-edit small:empty{display:none}

/* Delete-number dialog */
.del-sheet{max-width:460px;text-align:left}
.del-sheet h2{margin:6px 0 2px;text-align:center}
.del-icon{width:48px;height:48px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--red-soft,#fdecec);color:#d70015;font-weight:800;font-size:24px}
.del-num{text-align:center;color:var(--muted);margin:0 0 14px}
.del-terms{display:grid;gap:10px;padding:14px;border-radius:12px;background:var(--soft);margin-bottom:14px}
.del-terms label.check{align-items:flex-start;font-size:14px;line-height:1.4}
.del-terms input{margin-top:3px;flex:none}
.del-type{display:grid;gap:6px;font-size:14px}
.del-keep{font-size:13px;color:var(--muted);margin:10px 0 14px}
.del-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.del-sheet .btn.danger{background:#d70015;border-color:#d70015;color:#fff}
.del-sheet .btn.danger:disabled{opacity:.4;cursor:not-allowed}

/* In-app card form (Stripe Elements) */
.card-sheet{max-width:440px}
.card-sheet h2{margin:4px 0 6px}
.card-field{padding:14px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);min-height:48px;margin:12px 0 4px}
.card-field.StripeElement--focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.card-field.StripeElement--invalid{border-color:#d70015}
.card-secure{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--muted);margin:12px 0 6px;text-align:center}
.card-brands-row{display:flex;justify-content:center;margin-bottom:4px}

/* Recent calls: avatar, name + time, one status line; missed in red, new ones dotted once */
.line-filter{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 6px}
.lf-chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.lf-chip.on{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.call-list li.call-row{display:flex;align-items:flex-start;gap:12px;padding:12px 8px;border-radius:12px;position:relative}
@media (hover:hover){.call-list li.call-row:hover{background:var(--soft)}}
.cr-av{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:14px}
.cr-av.anon{background:var(--soft);color:var(--muted)}
.cr-av .ic{width:18px;height:18px}
.call-row.is-miss .cr-av{background:var(--red-soft,#fdecec);color:#d70015}
.cr-top{display:flex;align-items:baseline;gap:8px;min-width:0}
.cr-top .who{font-weight:600;font-size:15px;padding:0;background:none;border:0;color:var(--fg);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-row.is-miss .cr-top .who{color:#d70015}
.cr-time{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.cr-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.cr-sub .ci{width:14px;height:14px}
.call-row.is-miss .cr-sub>span:first-of-type{color:#d70015;font-weight:600}
.cr-sub .who-add{color:var(--accent);cursor:pointer;font-weight:600}
.call-row .contact-meta{font-size:12px;color:var(--muted)}
.call-row .line-tag{font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}
.call-row.is-new::before{content:'';position:absolute;left:-2px;top:28px;width:8px;height:8px;border-radius:50%;background:#d70015}
.call-row .small-call{align-self:center}
.call-row .rec{margin-top:4px}

/* Shared "who" avatar: one colour per person, everywhere */
.who-av{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:hsl(var(--h) 85% 87%);color:hsl(var(--h) 65% 30%)}
.who-av.anon{background:var(--soft);color:var(--muted)}
.who-av.anon .ic{width:18px;height:18px}
.who-av.lg{width:52px;height:52px;font-size:18px}
.who-av.xl{width:84px;height:84px;font-size:30px;margin:0 auto 10px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .who-av:not(.anon){background:hsl(var(--h) 35% 24%);color:hsl(var(--h) 80% 82%)}}
:root[data-theme=dark] .who-av:not(.anon){background:hsl(var(--h) 35% 24%);color:hsl(var(--h) 80% 82%)}
/* missed calls: red ring around the person's avatar */
.call-row.is-miss .who-av{box-shadow:0 0 0 2px #d70015}

/* Message threads: same row shape as calls */
.thread-row>a{display:flex;align-items:flex-start;gap:12px;padding:12px 10px;position:relative}
.thread-row .grow{display:grid;gap:2px;min-width:0}
.thread-row .who-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thread-row .cr-sub{flex-wrap:nowrap}
.thread-row .cr-sub .ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.thread-row .line-tag{justify-self:start;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}
.thread-row.is-unread .who-name{font-weight:800}
.thread-row.is-unread .cr-sub .ellipsis{color:var(--fg);font-weight:600}
.thread-row.is-unread>a::before{content:'';position:absolute;left:0;top:28px;width:8px;height:8px;border-radius:50%;background:var(--accent)}

/* Voicemail rows reuse the call row */
.vm.call-row{display:flex;gap:12px}
.vm.call-row.unread .who{font-weight:800}
.vm.call-row.is-new::before{background:var(--accent)}
.vm-new{font-size:11px;color:var(--accent)}
.contact-row .set-txt{display:grid;gap:2px}
.c-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.c-tools .set-search{flex:1;min-width:200px;margin:0}
.c-sort button{font:inherit}
.c-sort{margin:0}
.c-sort button{padding:8px 14px;border-radius:8px;border:0;background:none;color:var(--muted);font-weight:500;cursor:pointer;white-space:nowrap}
.c-sort button.on{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.contact-row .line-tag,.ccard .line-tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.contact-row .line-tag{margin-left:auto;margin-right:6px}

/* Mobile: show the MyRingRing logo in the top bar (page name stays for screen readers) */
.top-brand{display:none}
@media (max-width:900px){
  .top-brand{display:inline-flex;align-items:center;gap:8px;color:var(--fg);font-weight:800;font-size:18px;letter-spacing:-.3px;flex-shrink:0;text-decoration:none}
  .top-brand img{width:28px;height:28px;border-radius:8px}
  .topbar .page-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
}
@media (max-width:340px){.top-brand span{display:none}}

/* Mobile top bar: one tidy row (logo · trial · status), problems shown as a full-width strip underneath */
@media (max-width:900px){
  .topbar{flex-wrap:wrap;row-gap:8px;min-height:56px}
  .topbar>*{min-width:0}
  .topbar .phone-status,.topbar .trial-pill{white-space:nowrap;flex-shrink:0}
  .topbar .phone-status{gap:6px;padding:5px 10px}
  .topbar .phone-status button{padding:3px 10px;font-size:12px;min-height:0}
  .topbar .banner{order:10;flex:1 0 100%;margin:0;padding:8px 12px;font-size:13px;line-height:1.35;border-radius:10px;white-space:normal}
  .topbar .trial-pill{margin-left:auto}
  .topbar .trial-pill+.phone-status{margin-left:0}
}
@media (max-width:400px){
  .topbar .trial-pill{font-size:11px;padding:4px 9px}
}

/* Phone on mobile: Keypad · Recents · Voicemail tabs; settings gear in the top bar; 3-tab bottom bar */
.phone-seg,.top-gear{display:none}
@media (max-width:900px){
  .phone-seg{display:flex;width:100%;margin:0 0 12px}
  .phone-seg button{flex:1;justify-content:center;display:inline-flex;align-items:center;gap:6px;padding:9px 6px;border:0;border-radius:8px;background:none;font:inherit;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer}
  .phone-seg button.on{background:var(--card);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.08)}
  .phone-home[data-pane=keypad] .recents{display:none}
  .phone-home[data-pane=recents] .dialer,.phone-home[data-pane=voicemail] .dialer{display:none}
  .recents-head .seg a[href="#/phone/voicemail"]{display:none}
  .phone-home[data-pane=voicemail] .recents-head .seg{display:none}
  .top-gear{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--fg);background:var(--soft);flex-shrink:0}
  .top-gear .ic{width:19px;height:19px}
  .topbar .phone-status{margin-left:auto}
  .topbar .trial-pill+.phone-status{margin-left:0}
  .tabbar{grid-template-columns:repeat(4,1fr)!important}
}
/* Mobile keypad sized so the whole pad and the call button fit on one screen */
@media (max-width:900px){
  .phone-home[data-pane=keypad] .dialer{padding:10px 12px 14px;border:0;background:transparent;box-shadow:none}
  .phone-home .line-tabs{margin-bottom:4px}
  .phone-home .line-tab{padding:6px 10px}
  .phone-home .dial-display{font-size:28px;padding:2px}
  .phone-home .dial-contact{margin-top:-4px;min-height:1.2em}
  .phone-home .keypad{gap:min(10px,1.3vh) 18px;padding:0 12%}
  .phone-home .keypad button{max-width:min(70px,7.8vh);font-size:24px}
  .phone-home .keypad button small{font-size:8px}
  .phone-home .line-tab small{font-size:11px}
  .phone-home .dial-display{line-height:1.2}
  .phone-home .dial-contact{min-height:16px;font-size:13px}
  .phone-home .round-call{width:60px;height:60px}
  .phone-home .dial-actions{margin-top:6px}
  .phone-home[data-pane=keypad]{padding-bottom:8px}
}
@media (max-width:900px){
  .phone-home #dialer{gap:6px!important;align-content:start}
  .phone-home #dialer .line-tab{padding:6px 10px!important}
  .phone-home #dialer .dial-display{height:42px!important;padding:0!important;font-size:26px!important}
  .phone-home #dialer .dial-contact{min-height:0!important;height:18px;margin:0!important;line-height:18px}
  .phone-home #dialer .dial-actions{margin:4px 0 0!important;padding:0!important;min-height:0!important}
}
@media (max-width:900px){.phone-home .recents-head h2{display:none}.phone-home .recents{padding-top:12px}}

/* Mobile account button (top right): your initials with a small gear badge → Settings */
.top-me{display:none}
@media (max-width:900px){
  .top-gear{display:none!important}
  .top-me{display:block;position:relative;flex-shrink:0;text-decoration:none}
  .top-me .who-av{width:36px;height:36px;font-size:13px}
  .top-me-gear{position:absolute;right:-3px;bottom:-3px;width:17px;height:17px;border-radius:50%;background:var(--card);display:grid;place-items:center;box-shadow:0 0 0 1.5px var(--card),0 1px 3px rgba(0,0,0,.18);color:var(--muted)}
  .top-me-gear .ic{width:11px;height:11px;stroke-width:2.4}
  /* Keypad centred, never stretched or pushed to one side */
  .phone-home{display:block}
  .phone-home .dialer{max-width:400px;margin:0 auto;width:100%}
  .phone-home .recents{max-width:640px;margin:0 auto}
  /* Messages list: no empty "pick a conversation" panel on phones */
  .msg-layout:not(.has-detail) #chat{display:none!important}
  #conv-search.set-search{margin:0;height:44px}
  .threads .row{gap:10px;align-items:center}
  .threads #new-conv{width:44px;height:44px;padding:0;border-radius:50%;flex-shrink:0}
}
#conv-search.set-search{margin:0}
@media (max-width:900px){.phone-seg{max-width:480px;margin-left:auto!important;margin-right:auto!important}}

/* Call card never wider than the screen: long names/numbers shrink with "…" so Answer/Decline stay visible */
.call-card{max-width:100vw;box-sizing:border-box;overflow:hidden}
.call-name,.call-number,.call-line{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-buttons{flex-wrap:nowrap}
.cbtn:disabled{opacity:.6}

/* Billing date: calendar tile + plain sentence */
.bill-date{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.bill-date h3{margin:2px 0 4px;font-size:18px;letter-spacing:-.2px}
.bill-date p{margin:0;font-size:14px}
.bill-date small.muted{text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.bd-cal{width:62px;flex:none;border-radius:12px;overflow:hidden;text-align:center;background:var(--card);border:1px solid var(--line);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.bd-cal small{display:block;background:#e5484d;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;padding:3px 0}
.bd-cal b{display:block;font-size:26px;line-height:1;padding:8px 0 9px}
.bill-date h3{text-transform:none!important;letter-spacing:-.2px!important;color:var(--fg)!important;font-weight:700}
.price-note{display:block;margin-top:4px;font-size:13px;color:var(--muted);white-space:normal;line-height:1.4}

/* =========================================================================
   One business-number system (matches the iOS app)
   ========================================================================= */
/* Number bar: All + one card per number; the picked one gets a thick border in its colour. */
.numbar{display:flex;gap:8px;margin:0 0 12px;align-items:stretch}
.numbar button,.nb-drop{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:12px;min-height:50px;cursor:pointer;transition:border-color .15s,background .15s}
.nb-all{flex:0 0 56px;font-weight:700}
.nb-all.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.nb-card{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:9px;padding:6px 12px;text-align:left;position:relative}
.nb-card.on{border:2px solid var(--lc);background:color-mix(in srgb,var(--lc) 12%,var(--card))}
.nb-card.on::after{content:"✓";position:absolute;top:-7px;right:-7px;width:18px;height:18px;border-radius:50%;background:var(--lc);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}
.nb-txt{display:grid;min-width:0;line-height:1.2}
.nb-txt b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-txt small{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-drop{flex:1;display:flex;align-items:center;gap:10px;padding:6px 12px;position:relative;border-width:2px;border-color:var(--lc)}
.nb-drop.on{background:color-mix(in srgb,var(--lc) 12%,var(--card))}
.nb-drop select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;border:0}
.nb-drop .nb-chev{margin-left:auto;color:var(--muted);font-weight:700}
.nb-stack{font-style:normal;color:var(--muted)}
/* Live status dot per number: green live (pulses), amber closed/connecting/DND, grey rings a teammate, red offline. */
.live-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--red);position:relative;font-style:normal}
.live-dot.live{background:#34c759}
.live-dot.live::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:#34c759;opacity:.35;animation:livePulse 1.6s ease-out infinite}
.live-dot.closed,.live-dot.connecting,.live-dot.dnd{background:#f5a524}
.live-dot.elsewhere{background:var(--muted)}
@keyframes livePulse{from{transform:scale(.6);opacity:.5}to{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.live-dot.live::after{animation:none}}
/* "● Hussein Farm client" */
.client-of{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--lc);margin-top:2px}
.client-of i{width:6px;height:6px;border-radius:50%;background:var(--lc)}
.line-tag[style*="--lc"]{color:var(--lc);background:color-mix(in srgb,var(--lc) 14%,transparent);border-color:transparent}
/* Keypad waits for a picked number under All */
.dialer{position:relative}
.dialer.needs-pick > :not(.pick-first){opacity:.3;pointer-events:none}
.pick-first{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:6px;text-align:center;background:var(--card);border-radius:18px;padding:22px 26px;box-shadow:var(--shadow-lg);width:min(320px,90%)}
.pick-first .pf-ic{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px}
.pick-first b{font-size:18px}.pick-first small{color:var(--muted)}
/* Voicemail folders + action buttons */
.vm-boxes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.vm-trash-note{flex-basis:100%}
.vm-card{transition:opacity .18s,transform .18s}
.vm-out{opacity:0;transform:translateX(12px)}
.vm-days{display:block;color:#d98b06;font-size:11px;font-weight:700}
.vm-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vm-btn{font:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;border-radius:10px;border:0;cursor:pointer;text-decoration:none;background:var(--soft);color:var(--fg)}
.vm-btn.amber{background:color-mix(in srgb,#f5a524 16%,transparent);color:#b36b00}
.vm-btn.blue{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.vm-btn.red{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red-text,var(--red))}
.vm-btn.green{background:color-mix(in srgb,#34c759 16%,transparent);color:var(--green-text,#1e7e34)}
.vm-btn.grey{color:var(--muted)}
/* Photo texts */
.chat-input{align-items:flex-end}
.attach-btn{flex:none;min-width:44px;padding:0 10px;font-size:18px;cursor:pointer}
.attach-strip{display:flex;align-items:center;gap:12px;padding:10px 14px 0}
.attach-strip[hidden]{display:none}
.attach-thumb{position:relative;width:76px;height:76px;border-radius:12px;overflow:hidden;background:var(--soft);flex:none}
.attach-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.attach-x{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:11px;cursor:pointer}
.bubble.has-photo{padding:4px;width:min(260px,72%);max-width:min(260px,72%)}
.bubble-photo{display:block;border-radius:14px;overflow:hidden;background:var(--soft);min-height:120px}
.bubble-photo img{display:block;width:100%;max-height:320px;object-fit:cover}
.bubble-photo.broken{min-height:60px;display:grid;place-items:center}
.bubble-photo.broken img{display:none}.bubble-photo.broken::after{content:"Photo — tap to open";font-size:13px;color:var(--muted)}
.bubble.has-photo .bubble-text{display:block;padding:6px 8px 0}
.bubble.has-photo small{padding:2px 8px 4px}
.mstatus{letter-spacing:-2px;margin-left:2px}
/* My Numbers: Number 1 / Number 2 in each number's colour */
.num-card2{border-top:4px solid var(--lc)}
.nc-index{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
/* Number settings: status card + "Ready / Needs attention" checklist */
.nd-status{padding:18px;margin-bottom:12px}
.nd-status-top{display:flex;gap:12px;align-items:center}
.nd-bar{width:6px;align-self:stretch;min-height:44px;border-radius:3px;background:var(--lc)}
.nd-status h2{margin:0}
.nd-live{display:inline-flex;align-items:center;gap:8px;margin:14px 0 10px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,#f5a524 14%,transparent)}
.nd-live.live{background:color-mix(in srgb,#34c759 14%,transparent)}
.nd-live.offline{background:color-mix(in srgb,var(--red) 12%,transparent)}
.nd-live.elsewhere{background:var(--soft)}
.nd-check{padding:14px 16px;margin-bottom:12px}
.nd-check h3{margin:0 0 8px}
.nd-check.ok .nd-ok{color:var(--green-text,#1e7e34);font-weight:600;margin:0}
.nd-prob{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.nd-prob:first-of-type{border-top:0}
.nd-prob .grow{display:grid}
.nd-warn{color:#f5a524;font-size:18px}
@media (max-width:520px){.nb-card{padding:6px 9px;gap:7px}.nb-txt b{font-size:13px}.nb-txt small{font-size:11px}}
