@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(index.php?asset=font&v=f1&n=inter) format('woff2');unicode-range:U+0020-007E,U+00A0-00AC,U+00AE-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-200B,U+2010-2027,U+202F-2055,U+2057,U+205F,U+20AC,U+2122,U+2190-2193,U+21A9,U+2212,U+221E,U+2248,U+2264-2265,U+2713}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500 800;font-display:swap;src:url(index.php?asset=font&v=f1&n=jakarta) format('woff2');unicode-range:U+0020-007E,U+00A0-00AC,U+00AE-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2002-2003,U+2007-200B,U+2010,U+2012-2015,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2032-2033,U+2039-203A,U+2044,U+20AC,U+2122,U+2190-2193,U+21A9,U+2212,U+221E,U+2248,U+2264-2265}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(index.php?asset=font&v=f1&n=mono) format('woff2');unicode-range:U+0020-007E,U+00A0,U+00B7,U+00D7,U+2013-2014,U+2018-2019,U+201C-201D,U+2022,U+2026,U+2192}
@font-face{font-family:'Noto Sans Ethiopic';font-style:normal;font-weight:400 600;font-display:swap;src:url(index.php?asset=font&v=f1&n=eth) format('woff2');unicode-range:U+1209,U+120B,U+120D,U+1218,U+121B,U+121D,U+121F,U+122C-122E,U+1230,U+1233,U+123B,U+1240,U+1242-1243,U+1263,U+1270,U+1273,U+1275,U+1277,U+127D,U+1290,U+129B,U+12A0,U+12A5,U+12A8,U+12AD,U+12B3,U+12CB,U+12CD-12CE,U+12D3,U+12D5,U+12D8,U+12DB,U+12DD,U+12EC-12ED,U+12F0,U+12F5,U+1305,U+1308,U+130B,U+1320-1321,U+1360-1368}
@font-face{font-family:'Noto Sans Ethiopic';font-style:normal;font-weight:400 600;font-display:swap;src:url(index.php?asset=font&v=f1&n=eth2) format('woff2');unicode-range:U+1200-1206,U+1208,U+120A,U+120C,U+120E-1211,U+1219-121A,U+121C,U+121E,U+1220,U+1228-122B,U+1231-1232,U+1234-1238,U+123A,U+123D-123E,U+1241,U+1244-1246,U+124B,U+1260-1262,U+1264-1266,U+126A,U+126C,U+1271-1272,U+1274,U+1276,U+1278-127C,U+1280,U+128B,U+1291-1296,U+1299,U+129D-129E,U+12A2-12A4,U+12A6,U+12A9-12AC,U+12AE,U+12B8,U+12C8,U+12CA,U+12CC,U+12D0,U+12D9-12DA,U+12DC,U+12DF,U+12E3,U+12E8,U+12EB,U+12EE,U+12F1-12F3,U+12F6-12F7,U+1300,U+1302-1304,U+1306,U+1309-130A,U+130C-130E,U+1313,U+1322-1326,U+1328,U+132A-132B,U+132D-132E,U+1334-1335,U+1338,U+133B,U+133D,U+1340,U+1343,U+1348-134B,U+134D-134F,U+1352-1354,U+1356}
/* =====================================================================
   SMSHub design system — clean, modern product UI
   Bright surfaces, tonal blue-grey containers, one confident blue,
   pill buttons, generously rounded cards. Plus Jakarta Sans + Inter.
   ===================================================================== */
:root{
  --page:#ffffff;--bg:#f8fafd;--surface:#fff;--surface-2:#f0f4f9;--surface-3:#f8fafd;--surface-hi:#e9eef6;
  --border:#e3e8ef;--border-strong:#c9d0da;--hairline:#eef1f5;
  --ink:#1f1f1f;--text:#1f1f1f;--text-2:#444746;--text-3:#5f6368;--text-4:#9aa0a6;
  --brand:#0b57d0;--brand-600:#0842a0;--brand-50:#ecf3fe;--brand-100:#d3e3fd;--on-brand-c:#041e49;
  --violet:#8e5cf6;--pink:#e8618c;
  --ok:#146c2e;--ok-bg:#e6f4ea;--ok-border:#b7e1c1;
  --warn:#8c4a00;--warn-bg:#fef7e0;--warn-border:#f9dc8f;
  --err:#b3261e;--err-bg:#fce8e6;--err-border:#f6c1bb;
  --info:#0b57d0;--info-bg:#ecf3fe;--info-border:#c2d7fb;
  --r-sm:8px;--radius:12px;--radius-lg:20px;--radius-xl:28px;
  --shadow-sm:0 1px 2px rgba(60,64,67,.08);
  --shadow:0 1px 2px rgba(60,64,67,.10),0 2px 6px 2px rgba(60,64,67,.06);
  --shadow-lg:0 2px 6px rgba(60,64,67,.10),0 12px 32px -6px rgba(60,64,67,.18);
  --shadow-xl:0 8px 16px rgba(60,64,67,.10),0 32px 64px -16px rgba(60,64,67,.28);
  --font:'Inter','Noto Sans Ethiopic',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --display:'Plus Jakarta Sans','Inter','Noto Sans Ethiopic',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,0,0,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.bg-muted{background:var(--bg)}
img,svg{display:block;max-width:100%}
a{color:var(--brand);text-decoration:none;transition:color .15s}
a:hover{color:var(--brand-600);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4,h5{margin:0;font-family:var(--display);line-height:1.2;letter-spacing:-.015em;font-weight:700;color:var(--text)}
p,ul,ol,dl,dd{margin:0}
code,pre,kbd{font-family:var(--mono);font-size:.875em}
button{font:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px}
::selection{background:var(--brand-100);color:var(--on-brand-c)}
.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}
.skip-link{position:absolute;left:-9999px;top:10px;z-index:200;background:#fff;padding:10px 16px;border-radius:999px;box-shadow:var(--shadow-lg);font-weight:600}
.skip-link:focus{left:16px}

/* icons */
svg.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-4px}
svg.i-fill{fill:currentColor;stroke:none}
svg.i-sm{width:16px;height:16px;vertical-align:-3px}
svg.i-xs{width:12px;height:12px}
svg.i-lg{width:26px;height:26px}

/* layout */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.container-sm{max-width:760px}.container-md{max-width:1000px}.container-wide{max-width:1360px}
.stack>*+*{margin-top:20px}
.stack-sm>*+*{margin-top:10px}
.stack-btns{display:grid;gap:10px}
.row{display:flex;align-items:center;gap:10px}
.row-wrap{flex-wrap:wrap}
.between{justify-content:space-between}
.grow{flex:1 1 auto;min-width:0}.min0{min-width:0}
.grid{display:grid;gap:20px}
.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}.container{padding:0 18px}}
.d-block{display:block}
.muted{color:var(--text-3)}.muted-2{color:var(--text-2)}.err-text{color:var(--err)}
.small{font-size:13.5px}.xs{font-size:12px}.strong{font-weight:600}.mono{font-family:var(--mono);font-size:.88em}
.nowrap{white-space:nowrap}.text-right{text-align:right}.center{text-align:center}.num{text-align:right;font-variant-numeric:tabular-nums}
.pre-wrap{white-space:pre-wrap}.break{word-break:break-all}
.truncate{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.truncate-lg{max-width:460px}
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:40px}
.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.pb-0{padding-bottom:0!important}
.show-md{display:none}
@media (max-width:640px){.hide-sm{display:none!important}}
@media (max-width:900px){.show-md{display:block}}

/* typography */
.display{font-family:var(--display);font-weight:800;font-size:clamp(40px,5.4vw,68px);line-height:1.04;letter-spacing:-.035em}
.h2{font-family:var(--display);font-weight:700;font-size:clamp(30px,3.4vw,44px);line-height:1.1;letter-spacing:-.03em}
.h3{font-size:24px;letter-spacing:-.02em}
.h4{font-size:18px}.h5{font-size:15.5px}
.lead{font-size:18.5px;line-height:1.65;color:var(--text-2);margin-top:20px;max-width:620px}
.lead-sm{font-size:17px;line-height:1.7;color:var(--text-2);margin-top:14px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 14px;border-radius:999px;background:var(--brand-50);color:var(--brand);font-size:13px;font-weight:600;margin-bottom:18px}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:.005em;line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none!important;transition:background-color .2s var(--ease),border-color .2s,color .2s,box-shadow .2s var(--ease),transform .2s var(--ease);user-select:none;color:var(--text);background:transparent;overflow:hidden}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-600);color:#fff;box-shadow:0 1px 2px rgba(11,87,208,.3),0 2px 8px rgba(11,87,208,.25)}
.btn-secondary{background:#fff;border-color:var(--border-strong);color:var(--brand)}
.btn-secondary:hover{background:var(--brand-50);border-color:var(--border-strong);color:var(--brand-600)}
.btn-ghost{color:var(--brand)}
.btn-ghost:hover{background:var(--brand-50);color:var(--brand-600)}
.btn-dark{background:var(--brand-100);color:var(--on-brand-c)}
.btn-dark:hover{background:#c2d7fb;color:var(--on-brand-c);box-shadow:var(--shadow-sm)}
.btn-danger{background:var(--err);color:#fff}
.btn-danger:hover{background:#8c1d18;color:#fff}
.btn-danger-outline{background:#fff;color:var(--err);border-color:var(--border-strong)}
.btn-danger-outline:hover{background:var(--err-bg);color:var(--err);border-color:var(--err-border)}
.btn-light{background:#fff;color:var(--brand)}
.btn-light:hover{background:#f1f5fe;color:var(--brand-600)}
.btn-outline-light{color:#fff;border-color:rgba(255,255,255,.5)}
.btn-outline-light:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-sm{height:34px;padding:0 15px;font-size:13px}
.btn-lg{height:50px;padding:0 26px;font-size:15px}
.btn-block{width:100%}
.btn[disabled],.btn.is-loading,.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.icon-btn{position:relative;width:40px;height:40px;display:inline-grid;place-items:center;border-radius:50%;border:0;background:transparent;color:var(--text-2);cursor:pointer;flex:none;transition:background .15s,color .15s}
.icon-btn:hover{background:rgba(68,71,70,.08);color:var(--text);text-decoration:none}
.has-dot::after{content:"";position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--err);box-shadow:0 0 0 2px var(--bg)}
@media (prefers-reduced-motion:no-preference){[data-sms-status].is-updated .badge{animation:live-pop .9s ease}@keyframes live-pop{0%{transform:scale(.85);opacity:.4}60%{transform:scale(1.06)}100%{transform:none;opacity:1}}}
.chat-typing{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted,#6b7280);padding:4px 2px}
.chat-dots{display:inline-flex;gap:3px}.chat-dots i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4}
@media (prefers-reduced-motion:no-preference){.chat-dots i{animation:chat-dot 1.2s infinite ease-in-out}.chat-dots i:nth-child(2){animation-delay:.15s}.chat-dots i:nth-child(3){animation-delay:.3s}
@keyframes chat-dot{0%,80%,100%{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}.tmsg.is-new{animation:chat-in .35s ease}@keyframes chat-in{from{opacity:0;transform:translateY(8px)}}}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex:none}
.spinner-lg{width:30px;height:30px;border-width:3px;color:var(--brand)}
@keyframes spin{to{transform:rotate(360deg)}}

/* forms */
.field{display:block}
.field+.field{margin-top:18px}
.label{display:block;font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:7px}
.label .opt{font-weight:400;color:var(--text-3)}
.input,.select,.textarea{display:block;width:100%;height:48px;padding:0 16px;font:inherit;font-size:15px;color:var(--text);background:#fff;border:1px solid var(--border-strong);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s;appearance:none}
.input:hover,.select:hover,.textarea:hover{border-color:#8e949b}
.textarea{height:auto;min-height:112px;padding:13px 16px;line-height:1.55;resize:vertical}
.select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23444746' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.input::placeholder,.textarea::placeholder{color:var(--text-4)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 0 0 4px rgba(11,87,208,.10)}
.input:disabled,.input[readonly]{background:var(--surface-2);color:var(--text-3);border-color:var(--surface-2)}
.input.is-invalid,.textarea.is-invalid{border-color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}
.input[type=file]{height:auto;padding:9px;font-size:13px;background:transparent;border-style:dashed}
.input-otp{height:64px;font-family:var(--mono);font-size:28px;letter-spacing:.5em;text-align:center;padding-left:.5em;border-radius:16px}
.hint{font-size:12.5px;color:var(--text-3);margin-top:7px}
.input-wrap{position:relative}
.input-wrap>svg.i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}
.input-wrap>svg.i+.input{padding-left:44px}
.input-wrap .input-action{position:absolute;right:6px;top:50%;transform:translateY(-50%)}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.check input{margin:2px 0 0;width:18px;height:18px;accent-color:var(--brand);flex:none}
.upload{display:block;border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:20px;background:var(--surface-3);cursor:pointer;transition:border-color .15s,background .15s}
.upload:hover{border-color:var(--brand);background:var(--brand-50)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start}
.filters .input,.filters .select{height:40px;width:auto;font-size:13.5px;border-radius:999px;padding-left:16px}
.filters .select{padding-right:38px}
.filter-search{flex:1 1 240px}
.filter-search .input{width:100%;padding-left:42px;background:var(--surface-2);border-color:transparent}
.filter-search .input:focus{background:#fff}

/* cards */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 16px}
.card-h+.card-b,.card-h+.table-wrap,.card-h+.empty{border-top:1px solid var(--hairline)}
.card-t{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em}
.card-d{font-size:13px;color:var(--text-3);margin-top:3px}
.card-b{padding:22px 24px}
.card-section{border-top:1px solid var(--hairline)}
.card-f{padding:14px 24px;border-top:1px solid var(--hairline);background:var(--surface-3);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.stat{padding:22px 24px;transition:box-shadow .2s var(--ease)}
.stat:hover{box-shadow:var(--shadow)}
.stat-l{display:flex;align-items:center;justify-content:space-between;font-size:13.5px;font-weight:500;color:var(--text-3)}
.stat-l svg{width:34px;height:34px;padding:8px;border-radius:50%;background:var(--brand-50);color:var(--brand);vertical-align:middle}
.stat-v{font-family:var(--display);font-weight:700;font-size:34px;line-height:1.1;letter-spacing:-.03em;margin-top:10px;font-variant-numeric:tabular-nums}
.stat-v-sm{font-size:19px;margin-top:16px;letter-spacing:-.01em}
.stat-unit{font-family:var(--font);font-size:14px;font-weight:500;color:var(--text-3);letter-spacing:0}
.stat-s{font-size:13px;color:var(--text-3);margin-top:6px}

/* badges */
.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;border:0;white-space:nowrap;line-height:1}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.b-ok{color:var(--ok);background:var(--ok-bg)}
.b-warn{color:var(--warn);background:var(--warn-bg)}
.b-err{color:var(--err);background:var(--err-bg)}
.b-info{color:var(--info);background:var(--info-bg)}
.b-neutral{color:var(--text-2);background:var(--surface-2)}
.b-brand{color:var(--on-brand-c);background:var(--brand-100)}

/* alerts */
.alert{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid transparent;border-radius:16px;font-size:14px;line-height:1.55}
.alert>svg.i{margin-top:0}
.alert-t{font-weight:600;font-family:var(--display)}
.alert p{margin-top:3px}
.alert-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.a-ok{background:var(--ok-bg);color:#0d4f21}.a-ok>svg{color:var(--ok)}
.a-warn{background:var(--warn-bg);color:#5c3100}.a-warn>svg{color:var(--warn)}
.a-err{background:var(--err-bg);color:#601410}.a-err>svg{color:var(--err)}
.a-info{background:var(--info-bg);color:var(--on-brand-c)}.a-info>svg{color:var(--brand)}
.a-neutral{background:var(--surface-2);color:var(--text-2)}.a-neutral .alert-t{color:var(--text)}
.alert .btn-secondary{background:rgba(255,255,255,.7)}

/* tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:12.5px;font-weight:600;color:var(--text-3);background:#fff;padding:12px 24px;border-bottom:1px solid var(--border);white-space:nowrap}
.table td{padding:14px 24px;border-bottom:1px solid var(--hairline);vertical-align:top}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .12s}
.table tbody tr:hover td{background:var(--surface-3)}
.table th.num,.table td.num{text-align:right}

/* empty & misc */
.empty{text-align:center;padding:56px 24px}
.load-error .empty-i{background:var(--err-bg);color:var(--err)}
.data-error-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:760px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--err);box-shadow:0 12px 32px rgba(16,24,40,.18);color:var(--text)}
.data-error-bar>svg{color:var(--err);flex:none}
.sys-fail-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:100000;max-width:760px;margin:0 auto;padding:14px 18px;border-radius:14px;background:#fff;border:1px solid #f1b8b4;color:#601410;font:14px/1.5 Inter,system-ui,sans-serif;box-shadow:0 12px 32px rgba(16,24,40,.18)}
.sys-fail-bar a{font-weight:600;margin-left:6px}
.sys-fail-ic{width:64px;height:64px;margin:0 auto;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:700;background:var(--err-bg);color:var(--err)}
.sys-fail-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.sys-fail-meta span{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}
.center-row{justify-content:center;flex-wrap:wrap}
.api-alert .api-meta{display:block;margin-top:4px;font-size:12px;opacity:.8;font-family:var(--mono,monospace)}
.api-alert .btn{margin-top:10px}
.empty-sm{padding:32px 16px}
.empty-i{width:56px;height:56px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:var(--brand-50);color:var(--brand)}
.empty h3{font-size:16px}
.empty p{color:var(--text-3);font-size:14px;margin:6px auto 0;max-width:380px}
.empty .btn{margin-top:20px}
.checklist{list-style:none;padding:0}
.checklist li{display:flex;gap:12px;align-items:flex-start;padding:6px 0;color:var(--text-2)}
.checklist li>svg{margin-top:2px;width:20px;height:20px;padding:3px;border-radius:50%;background:var(--ok-bg);color:var(--ok)}
.link-list{list-style:none;padding:0}
.link-list li{padding:6px 0}
.kv{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px 16px;font-size:14px}
.kv dt{color:var(--text-3)}
.kv-compact{grid-template-columns:110px minmax(0,1fr);gap:9px 12px;font-size:13.5px}
.kv-box{text-align:left;background:var(--surface-2);border-radius:16px;padding:18px 20px}
.progress{height:8px;background:var(--surface-hi);border-radius:999px;overflow:hidden}
.progress>span{display:block;height:100%;background:var(--brand);border-radius:999px}
.key-reveal{padding:20px;border-radius:16px;background:var(--warn-bg);border:1px solid var(--warn-border)}
.key-reveal .secret{background:#fff}
.key-empty{display:flex;align-items:center;gap:16px}
.key-empty .empty-i{margin:0}

/* dialog + toast */
dialog.modal{border:0;padding:0;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:min(440px,calc(100vw - 32px));color:var(--text);background:#fff}
dialog.modal[open]{animation:pop .25s var(--ease)}
dialog.modal::backdrop{background:rgba(31,31,31,.4);backdrop-filter:blur(2px)}
.modal-b{padding:28px 28px 20px}
.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:12px 24px 24px}
.modal-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--err-bg);color:var(--err);margin-bottom:16px}
@keyframes pop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.toast-region{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:120;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(520px,calc(100vw - 32px))}
.toast{pointer-events:auto;background:#313033;color:#f4eff4;padding:14px 20px;border-radius:12px;font-size:14px;box-shadow:var(--shadow-xl);animation:toastIn .25s var(--ease)}
.toast-err{background:#601410}
.toast.is-leaving{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* site header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header .container{height:72px;display:flex;align-items:center;gap:28px}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:18px;color:var(--text);letter-spacing:-.03em;flex:none}
.brand:hover{text-decoration:none;color:var(--text)}
.brand img{border-radius:9px!important}
.nav{display:flex;gap:4px}
.nav a{padding:9px 16px;border-radius:999px;color:var(--text-2);font-size:14.5px;font-weight:500}
.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}
.nav a.is-active{background:var(--brand-50);color:var(--brand)}
.header-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.menu-btn{display:none}
.mobile-nav{display:none;border-top:1px solid var(--border);padding:10px 20px 20px;background:#fff}
.mobile-nav.is-open{display:block}
.mobile-nav a{display:block;padding:13px 14px;border-radius:12px;color:var(--text);font-weight:500}
.mobile-nav a:hover{background:var(--surface-2);text-decoration:none}
@media (max-width:900px){.nav{display:none}.menu-btn{display:inline-grid}}
@media (min-width:901px){.mobile-nav.is-open{display:none}}

/* site footer */
.site-footer{background:var(--bg);padding:72px 0 32px;font-size:14px;border-top:1px solid var(--border)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:36px}
.footer-grid h4{font-size:14px;font-weight:700;margin-bottom:14px}
.footer-grid a:not(.brand):not(.play-badge){display:block;padding:5px 0;color:var(--text-2)}
.footer-grid a:not(.brand):not(.play-badge):hover{color:var(--brand)}
.footer-bottom{margin-top:52px;padding-top:24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--text-3);font-size:13px}
@media (max-width:800px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* hero */
.hero{position:relative;padding:88px 0 104px;background:#fff;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;width:900px;height:900px;right:-260px;top:-420px;border-radius:50%;background:radial-gradient(circle at 30% 60%,rgba(66,133,244,.20),transparent 55%),radial-gradient(circle at 65% 40%,rgba(142,92,246,.16),transparent 55%),radial-gradient(circle at 55% 75%,rgba(232,97,140,.12),transparent 50%);filter:blur(20px)}
.hero::after{content:"";position:absolute;z-index:-1;width:700px;height:700px;left:-320px;bottom:-460px;border-radius:50%;background:radial-gradient(circle,rgba(66,133,244,.12),transparent 60%);filter:blur(10px)}
.hero-sm{padding:80px 0 88px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr;gap:48px}}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-facts{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px;font-size:13.5px;color:var(--text-2)}
.hero-facts span{display:inline-flex;gap:8px;align-items:center;height:36px;padding:0 14px 0 10px;border-radius:999px;background:var(--surface-2)}
.hero-facts svg{color:var(--ok)}
.pill{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:500;color:var(--text-2);border:1px solid var(--border);border-radius:999px;padding:4px 16px 4px 4px;background:#fff;box-shadow:var(--shadow-sm)}
.pill b{background:var(--brand);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}

/* sections */
.section{padding:112px 0}
.section-sm{padding:72px 0}
.section-alt{background:var(--bg)}
.section-head{max-width:700px;margin-bottom:56px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .lead{margin-left:auto;margin-right:auto}
@media (max-width:640px){.section{padding:76px 0}.hero{padding:56px 0 72px}}
.feature{position:relative;padding:28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.section-alt .feature{border-color:transparent;box-shadow:var(--shadow-sm)}
.feature-plain{background:var(--surface-2);border-color:transparent}
.feature-plain:hover{background:#fff}
.feature-i{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);margin-bottom:20px}
.feature h3{font-size:17px;font-weight:700;letter-spacing:-.015em}
.feature p{margin-top:8px;color:var(--text-2);font-size:14.5px;line-height:1.65}
.sample{margin-top:18px;padding:12px 16px;border-radius:18px 18px 18px 6px;background:var(--surface-2);font-size:13px;color:var(--text-2);line-height:1.5}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.steps li{padding:28px;border-radius:var(--radius-lg);background:var(--surface-2)}
.step-n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:16px;background:var(--brand);color:#fff;margin-bottom:18px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.dev-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:center}
@media (max-width:980px){.dev-grid{grid-template-columns:1fr}}
.price{position:relative;display:flex;flex-direction:column;padding:28px;border:1px solid var(--border);border-radius:var(--radius-xl);background:#fff;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.price:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.price-amt{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.1;letter-spacing:-.035em;margin-top:16px;font-variant-numeric:tabular-nums}
.price-amt span{font-family:var(--font);font-size:15px;font-weight:500;color:var(--text-3);letter-spacing:0}
.price-unit{font-size:13.5px;color:var(--text-3);margin-top:4px}
.price .btn{margin-top:auto}
.price .price-unit+.btn{margin-top:24px}
.price.is-featured{border:2px solid var(--brand);background:linear-gradient(180deg,var(--brand-50),#fff 60%);box-shadow:var(--shadow-lg)}
.faq details{border-radius:18px;background:var(--surface-2);padding:20px 24px;margin-top:10px;transition:background .2s}
.faq details[open]{background:#fff;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-family:var(--display);font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:32px;height:32px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230b57d0' stroke-width='2.2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center no-repeat;transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(180deg);background-color:var(--brand-50)}
.faq p{margin-top:12px;color:var(--text-2);line-height:1.7;max-width:640px}
.cta-band{position:relative;overflow:hidden;background:linear-gradient(120deg,#0b57d0 0%,#3b6ff0 45%,#7c5cf0 100%);color:#fff;border-radius:32px;padding:64px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;isolation:isolate}
.cta-band::before{content:"";position:absolute;z-index:-1;width:520px;height:520px;right:-120px;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 60%)}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.85)}
@media (max-width:640px){.cta-band{padding:40px 28px;border-radius:24px}}

/* code */
.code,.code-win{border-radius:var(--radius-lg);overflow:hidden;background:#1e1f20;color:#e3e3e3}
.code{margin-top:18px}
.code-h,.code-win-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 18px;background:#282a2c;font-size:12.5px;color:#9aa0a6;font-family:var(--font)}
.code-win-h{justify-content:flex-start}
.code pre,.code-win pre{margin:0;padding:20px 22px;overflow-x:auto;font-size:13px;line-height:1.75;tab-size:2}
.code-win{border-radius:24px;box-shadow:var(--shadow-xl)}
.code-win pre{min-height:290px}
.tabs{display:flex;gap:4px;overflow-x:auto}
.tab{padding:6px 14px;border-radius:999px;cursor:pointer;background:none;border:0;color:#9aa0a6;font-size:12.5px;font-weight:500;white-space:nowrap;transition:color .15s,background .15s}
.tab:hover{color:#fff}
.tab.is-active{background:#3c4043;color:#fff}
.copy{display:inline-flex;align-items:center;gap:6px;color:#9aa0a6;background:transparent;border:0;cursor:pointer;font-size:12.5px;padding:6px 12px;border-radius:999px;flex:none;transition:color .15s,background .15s}
.copy:hover{background:#3c4043;color:#fff}
.dots{display:inline-flex;gap:7px;margin-right:12px}
.dots i{width:11px;height:11px;border-radius:50%}
.dots i:nth-child(1){background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.tok-k{color:#c58af9}.tok-s{color:#81c995}.tok-p{color:#8ab4f8}.tok-c{color:#9aa0a6}.tok-n{color:#fcad70}

/* auth + centred pages */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);background:#fff}
.auth-aside{position:relative;margin:16px 0 16px 16px;border-radius:32px;background:var(--surface-2);padding:40px 44px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow:hidden;isolation:isolate}
.auth-aside::before{content:"";position:absolute;z-index:-1;width:600px;height:600px;right:-260px;top:-260px;border-radius:50%;background:radial-gradient(circle at 40% 60%,rgba(66,133,244,.22),transparent 55%),radial-gradient(circle at 65% 40%,rgba(142,92,246,.18),transparent 55%);filter:blur(10px)}
.auth-aside h2{font-size:40px;line-height:1.1;letter-spacing:-.035em;font-weight:800}
.auth-main{display:flex;align-items:center;justify-content:center;padding:56px 24px}
.auth-box{width:100%;max-width:420px}
.auth-box h1.h2{font-size:34px}
@media (max-width:900px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-main{align-items:flex-start;padding-top:36px}}
.center-page{position:relative;min-height:100vh;display:flex;justify-content:center;padding:48px 16px;overflow:hidden;isolation:isolate}
.center-page::before{content:"";position:absolute;z-index:-1;width:800px;height:800px;left:50%;top:-520px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(66,133,244,.14),transparent 60%)}
.center-box{width:100%;max-width:480px}
.center-box.is-wide{max-width:760px}
.powered{text-align:center;font-size:12px;color:var(--text-3);margin-top:20px}.powered a{color:inherit;text-decoration:none;font-weight:600}.powered a:hover{color:var(--brand)}
.tx-hero{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}
.tx-hero strong{display:block;font-size:30px;line-height:1.15;letter-spacing:-.02em}.tx-hero strong span{font-size:15px;color:var(--text-3);font-weight:600}
.tx-actions{display:flex;flex-wrap:wrap;gap:8px}
.tx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}
.tx-h{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--border)}
.tx-grid .kv{grid-template-columns:130px minmax(0,1fr);gap:10px 12px}
.link-quiet{color:inherit;text-decoration:none}.link-quiet:hover{color:var(--brand);text-decoration:underline}
@media (max-width:640px){.tx-grid{grid-template-columns:1fr}.tx-hero{padding:16px}.tx-hero strong{font-size:26px}.tx-actions,.tx-actions form,.tx-actions .btn{width:100%}}
.center-box-wide{max-width:660px}
.center-box .card{border-color:transparent;box-shadow:var(--shadow-lg);border-radius:var(--radius-xl)}
.center-brand{display:flex;justify-content:center;margin-bottom:28px}
.back-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--text-2);margin-bottom:16px}
.status-ring{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);margin:0 auto}
.status-ring.ok{background:var(--ok-bg);color:var(--ok)}
.status-ring.err{background:var(--err-bg);color:var(--err)}
.center-box .card-b>.status-ring{margin:0}
.center-box .card-b.center>.status-ring{margin:0 auto}
.center-box h1.h3{font-size:28px;letter-spacing:-.03em}
.total-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.total-row strong{font-family:var(--display);font-weight:800;font-size:32px;letter-spacing:-.03em}
.balance{display:flex;flex-direction:column;align-items:center;gap:2px}
.balance strong{font-family:var(--display);font-weight:800;font-size:48px;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}

/* app shell */
.app{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh;background:var(--bg)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;z-index:60}
.sidebar-top{height:72px;flex:none;display:flex;align-items:center;padding:0 24px}
.side-nav{padding:4px 12px 18px;flex:1}
.side-label{font-size:12px;font-weight:600;color:var(--text-3);padding:18px 16px 8px}
.side-nav a{position:relative;display:flex;align-items:center;gap:14px;height:44px;padding:0 16px;border-radius:999px;color:var(--text-2);font-size:14px;font-weight:500;transition:background .15s,color .15s}
.side-nav a svg{color:var(--text-2)}
.side-nav a:hover{background:rgba(68,71,70,.08);color:var(--text);text-decoration:none}
.side-nav a.is-active{background:var(--brand-100);color:var(--on-brand-c);font-weight:700}
.side-nav a.is-active svg{color:var(--on-brand-c)}
.side-nav .count{margin-left:auto}
.sidebar-foot{padding:12px}
.user-chip{display:flex;align-items:center;gap:12px;padding:10px;border-radius:20px;background:#fff;border:1px solid var(--border)}
.truncate.small,.d-block.truncate{max-width:150px}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#4285f4,#8e5cf6);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}
.scrim{display:none}
.app-main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;height:72px;background:rgba(248,250,253,.85);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);display:flex;align-items:center;gap:10px;padding:0 32px 0 20px}
.topbar-title{font-family:var(--display);font-weight:700;font-size:15px;color:var(--text-2)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.menu-btn-app{display:none}
.credit-chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:999px;color:var(--on-brand-c);font-size:14px;font-weight:700;background:var(--brand-100);font-variant-numeric:tabular-nums;transition:box-shadow .2s,background .2s}
.credit-chip svg{color:var(--brand)}
.credit-chip .muted{color:#3c5a8f;font-weight:500}
.credit-chip:hover{text-decoration:none;color:var(--on-brand-c);box-shadow:var(--shadow)}
.content{padding:8px 32px 64px 20px;max-width:1300px;width:100%}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:8px 0 28px}
.page-head h1{font-size:32px;line-height:1.15;letter-spacing:-.035em;font-weight:800}
.page-head p{color:var(--text-3);margin-top:6px;font-size:15px}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;align-items:start}
.send-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.test-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px}
@media (max-width:1100px){.dash-grid,.send-grid,.test-grid{grid-template-columns:1fr}}
@media (max-width:960px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;width:296px;transform:translateX(-100%);transition:transform .3s var(--ease);box-shadow:var(--shadow-xl);border-radius:0 24px 24px 0;background:#fff}
  .sidebar.is-open{transform:none}
  .scrim.is-open{display:block;position:fixed;inset:0;background:rgba(31,31,31,.35);z-index:55}
  .menu-btn-app{display:inline-grid}
  .content{padding:8px 16px 56px}
  .topbar{padding:0 12px}
  .page-head h1{font-size:28px}
}
.secret{display:flex;align-items:center;gap:8px;border-radius:999px;padding:6px 6px 6px 18px;background:var(--surface-2)}
.secret code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text)}
.steps-list{list-style:none;padding:0}
.steps-list li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;font-size:14px}
.steps-list .ck{width:26px;height:26px;border-radius:50%;border:2px solid var(--border-strong);display:grid;place-items:center;flex:none;font-size:12px;font-weight:700;color:var(--text-3);background:#fff}
.steps-list li.is-done .ck{background:var(--brand);border-color:var(--brand);color:#fff}
.steps-list li.is-done>span:last-child,.steps-list li.is-done>a{color:var(--text-3)}
.steps-list:not(.numbered) li.is-done>span:last-child{text-decoration:line-through;text-decoration-color:var(--text-4)}
.notes{list-style:none;padding:0}
.notes li{display:flex;gap:14px;padding:16px 24px;border-top:1px solid var(--hairline)}
.note-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);flex:none}
.note-ic.warn{background:var(--warn-bg);color:var(--warn)}
.note-ic.ok{background:var(--ok-bg);color:var(--ok)}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.mini-stats div{background:var(--surface-2);border-radius:16px;padding:14px 4px}
.mini-stats dt{font-size:12px;color:var(--text-3)}
.mini-stats dd{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.phone-preview{position:relative;border-radius:28px;padding:28px 18px 22px;background:linear-gradient(160deg,#eef3fd,#f3eefd)}
.phone-preview::before{content:"";position:absolute;top:11px;left:50%;transform:translateX(-50%);width:48px;height:5px;border-radius:5px;background:rgba(31,31,31,.12)}
.bubble{background:#fff;border-radius:20px 20px 20px 6px;padding:12px 16px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word;min-height:46px;max-width:320px;box-shadow:var(--shadow-sm)}
.counter{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--text-3);margin-top:8px;font-variant-numeric:tabular-nums}
.counter.is-over{color:var(--err)}
.test-out{border-radius:var(--radius-lg);background:var(--surface-2);min-height:290px;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.test-out pre{margin:0;padding:18px 20px;font-size:12.5px;line-height:1.7;overflow:auto;max-height:360px;background:#1e1f20;color:#e3e3e3;flex:1}
.test-out .test-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:#fff;font-size:13px}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;border-top:1px solid var(--hairline);font-size:13px}
.method{display:inline-block;font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok);vertical-align:1px}
.state-hero{display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:var(--radius-lg)}
.state-hero>svg{flex:none;width:44px;height:44px;padding:10px;border-radius:50%;background:#fff}
.state-hero.ok{background:var(--ok-bg)}.state-hero.ok>svg{color:var(--ok)}
.state-hero.info{background:var(--info-bg)}.state-hero.info>svg{color:var(--brand)}
.state-hero.err{background:var(--err-bg)}.state-hero.err>svg{color:var(--err)}
.timeline{list-style:none;padding:8px 24px 18px;position:relative}
.timeline li{position:relative;display:flex;gap:14px;padding:10px 0}
.timeline li:not(:last-child)::after{content:"";position:absolute;left:5px;top:26px;bottom:-6px;width:2px;border-radius:2px;background:var(--surface-hi)}
.tl-dot{position:relative;z-index:1;width:12px;height:12px;border-radius:50%;background:var(--border-strong);margin-top:5px;flex:none;box-shadow:0 0 0 3px #fff}
.tl-dot.ok{background:var(--ok)}.tl-dot.err{background:var(--err)}
.support-link{display:flex;align-items:center;gap:14px;padding:14px 20px;color:var(--text);transition:background .12s}
.support-link+.support-link{border-top:1px solid var(--hairline)}
.support-link:hover{background:var(--surface-3);text-decoration:none;color:var(--text)}
.support-ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:none}
.support-ic.tg{background:#e3f2fd;color:#1e88e5}

/* chart */
.chart{width:100%;height:auto;overflow:visible}
.chart .grid{stroke:var(--hairline);stroke-width:1}
.chart text{fill:var(--text-3);font-size:11px;font-family:var(--font)}
.chart .bar{fill:var(--brand);transition:fill .15s;transform-origin:bottom;transform-box:fill-box;animation:barUp .5s var(--ease) both;animation-delay:calc(var(--i,0) * 25ms)}
.chart .hit{fill:transparent}
.chart .bar-g:hover .bar{fill:var(--brand-600)}
.chart .bar-g:hover .hit{fill:rgba(11,87,208,.05)}
@keyframes barUp{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* support widget (extended FAB) */
.support-fab{position:fixed;right:24px;bottom:24px;z-index:50;height:56px;padding:0 22px 0 18px;border-radius:18px;background:var(--brand-100);color:var(--on-brand-c);border:0;display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:700;box-shadow:0 1px 3px rgba(60,64,67,.3),0 4px 8px 3px rgba(60,64,67,.15);cursor:pointer;transition:box-shadow .2s,transform .2s var(--ease)}
.support-fab:hover{box-shadow:0 2px 3px rgba(60,64,67,.3),0 6px 10px 4px rgba(60,64,67,.15);transform:translateY(-1px)}
.support-panel{position:fixed;right:24px;bottom:92px;z-index:50;width:min(360px,calc(100vw - 48px));background:#fff;border-radius:24px;box-shadow:var(--shadow-xl);display:none;overflow:hidden}
.support-panel.is-open{display:block;animation:pop .25s var(--ease)}
.support-panel-h{padding:18px 16px 14px 20px;background:linear-gradient(135deg,#eef3fd,#f3eefd)}
.site-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--brand);color:#fff;font-size:13.5px;font-weight:500;text-align:center}
.site-banner svg{flex:none}
.preview-bar{background:var(--warn);color:#1f1f1f}
.ticket-row{display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid var(--hairline);color:inherit;text-decoration:none;transition:background .12s}
.ticket-row:hover{background:var(--surface-3);text-decoration:none}
.ticket-row .t-ic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand)}
.thread{display:flex;flex-direction:column;gap:16px;padding:22px 24px}
.tmsg{display:flex;flex-direction:column;max-width:min(640px,92%)}
.tmsg .tmeta{font-size:12px;color:var(--text-3);margin:0 6px 4px}
.tmsg .tbody{padding:12px 16px;border-radius:18px;background:var(--surface-3);font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.tmsg.me{align-self:flex-end;align-items:flex-end}
.tmsg.me .tbody{background:var(--brand);color:#fff;border-bottom-right-radius:6px}
.tmsg.them .tbody{border-bottom-left-radius:6px;border:1px solid var(--hairline);background:var(--surface)}
.tevent{align-self:center;font-size:12px;color:var(--text-3);background:var(--surface-2);border:1px solid var(--hairline);padding:5px 14px;border-radius:999px;text-align:center;max-width:92%}
.ticket-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.support-row{display:flex;align-items:center;gap:6px;padding-right:14px}
.support-row+.support-row,.support-panel-h+.support-row{border-top:1px solid var(--hairline)}
.support-row .support-link{flex:1;min-width:0;border-top:0!important}
.copy-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;flex:none;transition:background .15s,border-color .15s}
.copy-chip:hover{background:var(--brand-50);border-color:var(--brand-100)}
.copy-chip-sm{height:26px;padding:0 9px;font-size:11.5px;margin-left:6px}
@media (max-width:640px){
  body{padding-bottom:84px}
  .support-fab{right:16px;bottom:16px;width:56px;height:56px;padding:0;justify-content:center;border-radius:18px}
  .support-fab span{display:none}
  .support-panel{right:16px;bottom:84px;width:calc(100vw - 32px)}
  .hero-cta .btn{width:100%}
  .lead{font-size:17px}
  .pill{font-size:12.5px}
}
@media print{.support-fab,.support-panel,.sidebar,.topbar{display:none!important}}

/* docs */
.docs{display:grid;grid-template-columns:280px minmax(0,1fr);max-width:1320px;margin:0 auto}
.docs-nav{position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto;padding:24px 16px 48px 20px}
.docs-nav h5{font-size:12.5px;font-weight:700;color:var(--text);margin:22px 0 6px 16px}
.docs-nav h5:first-child{margin-top:4px}
.docs-nav a{display:block;padding:7px 16px;border-radius:999px;color:var(--text-2);font-size:14px;transition:background .12s,color .12s}
.docs-nav a:hover{background:var(--surface-2);text-decoration:none;color:var(--text)}
.docs-nav a.is-active{color:var(--on-brand-c);background:var(--brand-100);font-weight:600}
.docs-main{padding:48px 64px 110px;min-width:0}
.docs-menu{display:none;margin-bottom:20px}
@media (max-width:900px){
  .docs{grid-template-columns:1fr}
  .docs-nav{display:none;position:fixed;top:72px;left:0;right:0;height:auto;max-height:calc(100vh - 72px);z-index:35;background:#fff;box-shadow:var(--shadow-xl);border-radius:0 0 24px 24px}
  .docs-nav.is-open{display:block}
  .docs-main{padding:24px 18px 72px}
  .docs-menu{display:inline-flex}
}
.prose{max-width:780px}
.prose h1{font-size:46px;line-height:1.08;letter-spacing:-.04em;font-weight:800}
.prose h2{font-size:28px;line-height:1.2;letter-spacing:-.03em;margin-top:72px;padding-top:32px;border-top:1px solid var(--border)}
.prose>section:first-child h2{margin-top:0}
.prose h3{font-size:17px;margin-top:32px;letter-spacing:-.015em}
.prose p,.prose ul,.prose ol{margin-top:15px;color:var(--text-2);line-height:1.75}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin-top:7px}
.prose li::marker{color:var(--brand)}
.prose strong{color:var(--text);font-weight:600}
.prose :not(pre)>code{background:var(--surface-2);padding:2px 7px;border-radius:6px;font-size:.84em;color:var(--on-brand-c)}
.prose .table-wrap{margin-top:18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff}
.prose .table{font-size:14px}
.prose .table th,.prose .table td{padding-left:18px;padding-right:18px}
.prose .table th[scope=row]{background:var(--surface-3);width:180px;color:var(--text-2);font-size:13px}
.prose .legal-h{font-size:20px;margin-top:40px;padding-top:0;border-top:0}
.callout{margin-top:20px;display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--info-bg);color:var(--on-brand-c);font-size:14.5px;line-height:1.6}
.callout>svg{color:var(--brand);margin-top:1px}
.callout-warn{background:var(--warn-bg);color:#5c3100}
.callout-warn>svg{color:var(--warn)}
.endpoint{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px 18px;border-radius:999px;background:var(--surface-2);font-family:var(--mono);font-size:13.5px;overflow-x:auto;white-space:nowrap}
.faq-docs{margin-top:18px}

/* admin */
.admin-main{padding-top:32px;padding-bottom:72px}
.flagged-msg{white-space:pre-wrap;word-break:break-word;padding:18px 20px;background:var(--err-bg);border-radius:16px;font-size:15px;line-height:1.65}
.signal-list{display:grid;gap:7px}
.signal-list code{background:var(--surface-2);padding:1px 7px;border-radius:6px;font-size:12px}

/* ---------- hero visual: code window + phone + delivered chip ---------- */
.hero-visual{position:relative;padding:0 0 64px 0}
.hero-visual .code-win{margin-right:72px;transform:rotate(-1deg)}
.hero-phone{position:absolute;right:0;bottom:0;width:250px;padding:14px 14px 18px;border-radius:34px;background:#fff;border:8px solid #1f1f1f;box-shadow:0 30px 60px -20px rgba(31,31,31,.45),0 0 0 1px rgba(0,0,0,.05);transform:rotate(3deg);animation:floatY 6s ease-in-out infinite}
.hp-top{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;font-weight:700;color:var(--text);padding:0 6px 10px}
.hp-notch{width:64px;height:16px;border-radius:10px;background:#1f1f1f}
.hp-app{display:flex;align-items:center;gap:10px;padding:8px 6px 12px;border-bottom:1px solid var(--hairline)}
.hp-app strong{display:block;font-size:13px}
.hp-app small{display:block;font-size:11px;color:var(--text-3)}
.hp-av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#34a853,#0b57d0)}
.hp-bubble{margin-top:12px;padding:10px 12px;border-radius:18px 18px 18px 6px;background:var(--surface-2);font-size:12.5px;line-height:1.45;color:var(--text)}
.hp-bubble b{letter-spacing:.06em}
.hp-am{font-family:'Noto Sans Ethiopic',var(--font)}
.hero-float{position:absolute;left:-18px;bottom:28px;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 14px;border-radius:18px;background:#fff;box-shadow:var(--shadow-xl);animation:floatY 7s ease-in-out infinite reverse}
.hero-float strong{display:block;font-size:13.5px}
.hero-float small{display:block;font-size:11.5px;color:var(--text-3)}
.hf-dot{width:34px;height:34px;border-radius:50%;background:var(--ok-bg);position:relative;flex:none}
.hf-dot::after{content:"";position:absolute;left:11px;top:9px;width:8px;height:13px;border:solid var(--ok);border-width:0 3px 3px 0;transform:rotate(45deg)}
@keyframes floatY{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media (max-width:980px){.hero-visual{max-width:600px}.hero-visual .code-win{margin-right:120px}.hero-phone{width:220px}}
@media (max-width:640px){.hero-visual{padding-bottom:40px}.hero-visual .code-win{margin-right:0;transform:none}.hero-phone{width:200px;right:-8px;bottom:-10px;border-width:6px;font-size:12px}.hero-float{left:0;bottom:-6px}}

/* ---------- trust strip + facts band ---------- */
.pay-strip{padding:28px 0 8px}
.pay-card{position:relative;border:1px solid var(--border);border-radius:28px;background:linear-gradient(180deg,#fff 0%,var(--surface-3) 100%);box-shadow:var(--shadow-sm);padding:22px 26px 20px;overflow:hidden}
.pay-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#0b57d0,#1e8e3e 45%,#f4b400 75%,#d93025)}
.pay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.pay-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.pay-kicker svg{color:#1e8e3e}
.pay-secured{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-3)}
.pay-chapa{height:20px;width:auto;display:block}
.pay-chips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pay-chip{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 16px;border:1px solid var(--border);border-radius:18px;background:#fff;transition:transform .18s cubic-bezier(.2,0,0,1),box-shadow .18s,border-color .18s}
.pay-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border-strong)}
.pay-logo{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);overflow:hidden}
.pay-logo img{max-width:30px;max-height:30px;width:auto;height:auto;display:block}
.pay-name{font-weight:700;font-size:14.5px;letter-spacing:-.01em;color:var(--text);line-height:1.2}
.pay-banks{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}
.pay-banks-label{font-size:12.5px;color:var(--text-3);white-space:nowrap}
.pay-bank-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pay-bank-list img{height:26px;width:auto;display:block;filter:grayscale(.4) saturate(.9);opacity:.92;transition:filter .2s,opacity .2s,transform .2s}
.pay-bank-list img:hover{filter:none;opacity:1;transform:scale(1.06)}
.pay-more{font-size:12.5px;font-weight:600;color:var(--text-3)}
@media (max-width:900px){.pay-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.pay-card{padding:18px 16px;border-radius:22px}.pay-chip{min-height:54px;padding:8px 12px;gap:10px}.pay-logo{width:34px;height:34px}.pay-logo img{max-width:26px;max-height:26px}.pay-name{font-size:13.5px}.pay-bank-list{gap:16px}.pay-bank-list img{height:20px}}
@media (prefers-reduced-motion:reduce){.pay-chip,.pay-bank-list img{transition:none}.pay-chip:hover{transform:none}}
.facts-band{padding:56px 0 0}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.fact{padding:24px;border-radius:var(--radius-lg);background:var(--surface-2)}
.fact strong{display:block;font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.04em;line-height:1.1;background:linear-gradient(120deg,#0b57d0,#8e5cf6);-webkit-background-clip:text;background-clip:text;color:transparent}
.fact span{display:block;margin-top:6px;font-size:13.5px;color:var(--text-2)}
@media (max-width:900px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- bento feature grid ---------- */
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.bento .feature{display:flex;flex-direction:column}
.bento-a{grid-column:span 4;background:linear-gradient(135deg,#eef3fd,#f5f0ff)!important;border-color:transparent!important}
.bento-b{grid-column:span 2}
.bento-c{grid-column:span 2}
.bento-d{grid-column:span 2}
.bento-e{grid-column:span 2;grid-row:span 2}
.bento-f{grid-column:span 4}
.bento-code{margin-top:auto;font-family:var(--mono);font-size:13px;background:#1e1f20;color:#e3e3e3;border-radius:14px;padding:14px 18px}
.bento-a p{margin-bottom:22px}
.bento-flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px}
.bento-rows{margin-top:auto;padding-top:18px;display:grid;gap:8px}
.bento-rows div{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:12px;background:var(--surface-2);font-size:13px}
.feature code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:.85em}
@media (max-width:980px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.bento>.feature{grid-column:span 1!important;grid-row:auto!important}.bento-a{grid-column:span 2!important}}
@media (max-width:600px){.bento{grid-template-columns:1fr}.bento-a{grid-column:auto!important}}

/* ---------- API key box ---------- */
.secret-lg{padding:8px 8px 8px 16px}
.secret-lg>svg{color:var(--text-3)}
.secret-lg code{font-size:14px}
.key-new{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:14px;background:var(--ok-bg);color:#0d4f21;font-size:13.5px}
.key-new svg{margin-top:1px}
.key-warn{background:var(--warn-bg);color:#5c3100}
.inline-form{display:inline-flex;margin:0}
.secret .btn[disabled]{opacity:.4}

/* ---------- docs: search, quick links, anchors ---------- */
.docs-search{position:relative;display:flex;align-items:center;margin:0 0 8px}
.docs-search svg{position:absolute;left:14px;color:var(--text-3);pointer-events:none}
.docs-search input{width:100%;height:42px;padding:0 44px 0 40px;border-radius:999px;border:1px solid transparent;background:var(--surface-2);font:inherit;font-size:14px;color:var(--text);transition:background .15s,border-color .15s,box-shadow .15s}
.docs-search input:focus{outline:none;background:#fff;border-color:var(--brand);box-shadow:0 0 0 4px rgba(11,87,208,.10)}
.docs-search kbd{position:absolute;right:12px;font-size:11px;padding:2px 7px;border-radius:6px;background:#fff;border:1px solid var(--border);color:var(--text-3)}
.docs-noresult{font-size:13px;color:var(--text-3);padding:8px 16px}
.docs-nav a[hidden],.docs-nav h5[hidden]{display:none}
.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.quick-link{display:flex;align-items:center;gap:14px;padding:18px;border-radius:18px;background:#fff;border:1px solid var(--border);color:var(--text);transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.quick-link:hover{text-decoration:none;color:var(--text);border-color:transparent;box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.quick-link strong{display:block;font-family:var(--display);font-size:15px}
.quick-link small{display:block;font-size:13px;color:var(--text-3);margin-top:2px}
.ql-i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);flex:none}
.ql-arrow{margin-left:auto;color:var(--text-4);transition:transform .2s var(--ease),color .2s}
.quick-link:hover .ql-arrow{transform:translateX(3px);color:var(--brand)}
@media (max-width:640px){.quick-links{grid-template-columns:1fr}}
.prose h2{position:relative}
.h-anchor{margin-left:10px;font-weight:600;color:var(--text-4);opacity:0;text-decoration:none!important;transition:opacity .15s,color .15s}
.prose h2:hover .h-anchor,.h-anchor:focus{opacity:1}
.h-anchor:hover{color:var(--brand)}
.docs-main{background:#fff}
@media (min-width:901px){.docs{background:var(--bg)}.docs-main{margin:12px 12px 12px 0;border-radius:28px;box-shadow:0 0 0 1px var(--border)}}
.prose .code{box-shadow:none}

/* =====================================================================
   r3 additions — loading states, dashboard widgets, polish
   ===================================================================== */
/* top navigation progress bar */
.nav-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:300;background:linear-gradient(90deg,var(--brand),var(--violet));box-shadow:0 0 8px rgba(11,87,208,.4);opacity:0;transition:width .3s var(--ease),opacity .3s}
.nav-progress.is-active{opacity:1;width:72%;transition:width 8s cubic-bezier(.1,.6,.2,1),opacity .2s}
.nav-progress.is-done{opacity:0;width:100%;transition:width .2s,opacity .4s .2s}
/* full-page preloader (payment redirects, uploads) */
.preloader{position:fixed;inset:0;z-index:250;display:grid;place-items:center;background:rgba(248,250,253,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fadeIn .2s var(--ease)}
.preloader-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:32px 40px;border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-xl);max-width:calc(100vw - 32px)}
.preloader-mark{position:relative;width:76px;height:76px;display:grid;place-items:center;margin-bottom:12px}
.preloader-ring{position:absolute;inset:0;border-radius:50%;border:3px solid var(--brand-100);border-top-color:var(--brand);animation:spin .9s linear infinite}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
/* skeletons */
.sk{display:block;border-radius:8px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-hi) 40%,var(--surface-2) 80%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}
.sk-line{height:12px}.sk-title{height:28px;width:40%}.sk-num{height:34px;width:55%;margin-top:14px}
.sk-circle{width:36px;height:36px;border-radius:50%;flex:none}
.sk-block{height:180px;border-radius:16px}
.w-20{width:20%}.w-25{width:25%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-65{width:65%}.w-80{width:80%}.w-100{width:100%}
.sk-wrap{padding:8px 0}
.sk-row{display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid var(--hairline)}
.sk-row:first-child{border-top:0}
.sk-page{animation:fadeIn .15s}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
/* content entrance */
.content>*{animation:rise .35s var(--ease) both}
.content>*:nth-child(2){animation-delay:.03s}.content>*:nth-child(3){animation-delay:.06s}.content>*:nth-child(4){animation-delay:.09s}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* flash dismiss */
.alert-flash{align-items:center}
.alert-x{border:0;background:transparent;color:inherit;opacity:.6;cursor:pointer;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none}
.alert-x:hover{opacity:1;background:rgba(0,0,0,.06)}
.alert.is-leaving{opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s}
/* cards + buttons polish */
.card{transition:box-shadow .2s var(--ease),border-color .2s}
.btn:focus-visible,.icon-btn:focus-visible,.copy-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.btn-secondary:active,.btn-primary:active{transform:scale(.97)}
.stat-hero{background:linear-gradient(150deg,#fff 40%,var(--brand-50))}
.stat-s.row{gap:8px;flex-wrap:wrap}
.ch-credit-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;font-size:12.5px;font-weight:700;color:#7a4b00;background:#fff4d6;text-decoration:none!important}
.ch-credit-chip span{font-weight:600}
html[data-theme=dark] .ch-credit-chip{background:#2a2412;color:#fdd663}
.credit-chip.is-low{background:var(--warn-bg);color:#5c3100}.credit-chip.is-low svg{color:var(--warn)}
.side-nav a.is-active::before{content:"";position:absolute;left:-12px;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--brand)}
/* quick actions */
.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.quick-action{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid var(--border);color:var(--text);transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.quick-action:hover{text-decoration:none;color:var(--text);transform:translateY(-2px);box-shadow:var(--shadow);border-color:transparent}
.quick-action.is-disabled{opacity:.5;pointer-events:none}
.qa-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);flex:none}
.qa-arrow{margin-left:auto;color:var(--text-4);transition:transform .2s,color .2s}
.quick-action:hover .qa-arrow{transform:translateX(3px);color:var(--brand)}
.quick-action .truncate{max-width:none}
@media (max-width:1024px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.quick-actions{grid-template-columns:1fr}}
/* account & security list + transactions mini list */
.status-list,.tx-list{list-style:none;padding:0;border-top:1px solid var(--hairline)}
.status-row,.tx-list li{display:flex;align-items:center;gap:12px;padding:12px 24px;border-top:1px solid var(--hairline)}
.status-row:first-child,.tx-list li:first-child{border-top:0}
.status-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:none}
.status-go{color:var(--text-4);display:grid;place-items:center;width:28px;height:28px;border-radius:50%}
.status-go:hover{background:var(--surface-2);color:var(--brand)}
.status-row .truncate{max-width:200px}
.mini-stats .dd-sm{font-size:14px;font-family:var(--font);font-weight:700;padding-top:6px}
/* notifications dropdown */
.notif-wrap{position:relative}
.notif-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 24px));max-height:min(520px,75vh);overflow:auto;background:#fff;border-radius:20px;box-shadow:var(--shadow-xl);display:none;z-index:70}
.notif-panel.is-open{display:block;animation:pop .2s var(--ease)}
.notif-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px 20px;position:sticky;top:0;background:#fff;z-index:1}
.notif-panel .notes li{padding:14px 20px}
.notif-panel .notes li.is-unread{background:var(--brand-50)}
.notif-panel .empty{padding:32px 20px}
/* billing */
.seg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--surface-2);flex-wrap:wrap}
.seg a{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--text-2)}
.seg a:hover{text-decoration:none;color:var(--text);background:rgba(255,255,255,.6)}
.seg a.is-active{background:#fff;color:var(--brand);box-shadow:var(--shadow-sm)}
.pay-flow{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--text-2)}
.pay-flow li{display:inline-flex;align-items:center;gap:8px}
.pay-flow span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);font-size:11px;font-weight:700}
.poll-steps{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;font-size:12px}
.poll-steps span{padding:4px 12px;border-radius:999px;background:var(--surface-2);color:var(--text-3)}
.poll-steps .is-done{background:var(--ok-bg);color:var(--ok)}
.poll-steps .is-active{background:var(--brand-50);color:var(--brand);font-weight:600}
.status-ring.pulse{animation:pulse 2s ease-in-out infinite}
.status-ring.pop{animation:popIn .45s var(--ease)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(11,87,208,.25)}50%{box-shadow:0 0 0 12px rgba(11,87,208,0)}}
@keyframes popIn{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}100%{transform:none;opacity:1}}
/* signature request */
.state-hero.warn{background:var(--warn-bg)}.state-hero.warn>svg{color:var(--warn)}
.quote{padding:14px 16px;border-left:3px solid var(--brand-100);background:var(--surface-3);border-radius:0 12px 12px 0;font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-2)}
/* composer + password meter */
.counter-bar,.pw-meter{height:4px;border-radius:4px;background:var(--surface-hi);margin-top:6px;overflow:hidden}
.counter-bar span,.pw-meter span{display:block;height:100%;width:0;background:var(--brand);border-radius:4px;transition:width .2s var(--ease),background .2s}
.counter-bar.is-near span{background:var(--warn)}.counter-bar.is-over span{background:var(--err)}
.pw-meter[data-score="1"] span{width:25%;background:var(--err)}.pw-meter[data-score="2"] span{width:50%;background:var(--warn)}
.pw-meter[data-score="3"] span{width:75%;background:#3c8c4a}.pw-meter[data-score="4"] span{width:100%;background:var(--ok)}
/* tables on phones: rows become cards */
@media (max-width:640px){
  .table-stack thead{display:none}
  .table-stack,.table-stack tbody,.table-stack tr,.table-stack td{display:block;width:100%}
  .table-stack tr{padding:12px 18px;border-top:1px solid var(--hairline)}
  .table-stack tbody tr:first-child{border-top:0}
  .table-stack td{padding:3px 0;border:0;text-align:left!important}
  .table-stack td[data-label]:not([data-label=""])::before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em}
  .table-stack .truncate,.table-stack .truncate-lg{max-width:100%;white-space:normal}
  .table-stack tbody tr:hover td{background:transparent}
  .page-head .row .btn{flex:1}
  .card-h,.card-b{padding-left:18px;padding-right:18px}
}

/* ---- r8: links, landing polish ---- */
.auto-link{color:var(--brand);text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.auto-link:hover{text-decoration-thickness:2px}
.site-banner .auto-link{color:inherit;font-weight:600}
.bubble a{color:inherit;text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.track-links code{font-size:11.5px}.track-links svg{vertical-align:-2px;color:var(--brand)}
.grad-text{background:linear-gradient(90deg,#0b57d0 0%,#1a73e8 45%,#4285f4 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
a.pill{text-decoration:none;color:inherit;transition:box-shadow .2s var(--ease),transform .2s var(--ease)}
a.pill:hover{box-shadow:0 4px 14px rgba(11,87,208,.14);transform:translateY(-1px)}a.pill svg{vertical-align:-2px}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.price:hover{transform:translateY(-3px)}

/* ---- r5 polish: small refinements, same identity ---- */
.hero-note{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:13px;color:var(--text-3)}
.hero-note svg{color:var(--ok)}
.hero-cta .btn svg{transition:transform .2s var(--ease)}.hero-cta .btn:hover svg{transform:translateX(2px)}
.dev-endpoint{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;max-width:100%}
.dev-endpoint code{font-size:13px;word-break:break-all}
.price-list{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--hairline);display:grid;gap:8px;font-size:13.5px;color:var(--text-2)}
.price-list li{display:flex;gap:8px;align-items:center}.price-list svg{color:var(--ok);flex:none}
.price .btn{margin-top:auto}.price .price-list+.btn{margin-top:20px}
.feature:hover{border-color:var(--brand-100,var(--border))}
.powered-inline a,.powered-side a{color:inherit;font-weight:600;text-decoration:none}.powered-inline a:hover{color:var(--brand)}
.powered-side{margin:12px 0 0;text-align:left;padding-left:4px}
.card-h{gap:12px}
.card-t{letter-spacing:-.01em}
.stat-v{font-variant-numeric:tabular-nums}
.table td.num,.table th.num{font-variant-numeric:tabular-nums}
.table td .btn+.btn,.table td .inline-form+.btn{margin-left:4px}
.badge{letter-spacing:.01em}
.badge .dot{flex:none}
.empty{padding:48px 24px}.empty p{max-width:420px;margin-left:auto;margin-right:auto}
.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.btn.is-disabled{opacity:.6}
@media (max-width:720px){
  .hero-cta .btn{width:100%;justify-content:center}
  .hero-note{align-items:flex-start}
  .table-stack td.text-right{text-align:left}
  .table-stack td .btn{margin:4px 4px 0 0}
  .footer-bottom{flex-direction:column}
}

/* =====================================================================
   r9 — responsive layout system, dashboard density, guide, docs
   ===================================================================== */
/* One set of width tokens for the whole user side. Content grows with the screen
   (no 100%-wide stretch): laptop → efficient, desktop → wider, 4K → capped. */
:root{--gutter:clamp(16px,2.2vw,40px);--site-max:1200px;--content-max:1360px;--docs-max:1440px}
@media (min-width:1440px){:root{--site-max:1280px;--content-max:1480px;--docs-max:1560px}}
@media (min-width:1680px){:root{--site-max:1360px;--content-max:1600px;--docs-max:1680px}}
@media (min-width:1920px){:root{--site-max:1440px;--content-max:1760px;--docs-max:1800px}}
@media (min-width:2400px){:root{--site-max:1560px;--content-max:1960px;--docs-max:1960px}}

.container{max-width:calc(var(--site-max) + 2 * var(--gutter));padding:0 var(--gutter)}
.container.container-sm{max-width:760px}.container.container-md{max-width:1000px}
.container.container-wide{max-width:calc(var(--site-max) + 160px + 2 * var(--gutter))}
.is-docs .site-header .container{max-width:calc(var(--docs-max) + 2 * var(--gutter))}

/* dashboard: centred content that uses the available width; the topbar lines up with it */
.content{max-width:calc(var(--content-max) + 2 * var(--gutter));margin:0 auto;padding:8px var(--gutter) 112px}
.topbar{padding:0 max(var(--gutter), calc((100% - var(--content-max)) / 2))}
@media (max-width:960px){.content{padding:8px 16px 104px}.topbar{padding:0 12px}}
.dash-grid{grid-template-columns:minmax(0,1fr) minmax(320px,400px)}
@media (min-width:1680px){.dash-grid{grid-template-columns:minmax(0,1fr) minmax(380px,440px);gap:24px}.grid.cols-4{gap:20px}}
@media (max-width:1100px){.dash-grid,.test-grid{grid-template-columns:minmax(0,1fr)}}
.send-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr)}
@media (max-width:1100px){.send-grid{grid-template-columns:minmax(0,1fr)}}
@media (min-width:1600px){#packages .grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.page-head h1{font-size:clamp(26px,2.1vw,34px)}

/* trust & density: consistent cards, borders, focus states */
.card{border-color:var(--border);border-radius:var(--radius-lg)}
.card:hover{border-color:var(--border)}
.stat{padding:clamp(18px,1.4vw,24px)}
.quick-action:focus-visible,.side-nav a:focus-visible,.side-nav .side-link:focus-visible,.credit-chip:focus-visible,.icon-btn:focus-visible,.guide-btn:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.input:focus-visible,.textarea:focus-visible,.select:focus-visible{outline:none}
.sidebar-foot{padding-bottom:14px}
.powered-side{margin:10px 0 2px}
/* Google Play badge + Powered by Hizcore */
.play-badge{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 18px 0 14px;border-radius:12px;background:#000;color:#fff;border:1px solid #3c4043;text-decoration:none!important;transition:transform .2s var(--ease),box-shadow .2s}
.play-badge:hover{color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
.play-badge svg{width:24px;height:26px;flex:none}
.play-badge span{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.play-badge small{font-size:9.5px;font-weight:600;letter-spacing:.06em;opacity:.85}
.play-badge b{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-.01em}
.play-badge-sm{height:40px;padding:0 14px 0 11px;gap:8px;border-radius:10px}.play-badge-sm svg{width:19px;height:21px}.play-badge-sm b{font-size:15px}.play-badge-sm small{font-size:8.5px}
.hero-app{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px;font-size:13.5px;color:var(--text-3)}
.hero-app span{max-width:300px}
.side-app{margin:12px 0 0 4px}
.hz-powered{display:inline-flex;align-items:center;gap:10px;color:var(--text-3);font-size:12px;font-weight:600;text-decoration:none!important}
.hz-powered img{height:32px;width:auto;display:block}
.hz-powered:hover{color:var(--text)}
.hz-sm img{height:26px}.hz-sm{font-size:11px;gap:8px}
.powered .hz-powered{justify-content:center}
@media (max-width:720px){.hero-app{flex-direction:column;align-items:flex-start}.hero-app .play-badge{width:auto}}

/* help button: compact in the dashboard so it never covers content */
.is-app .support-fab{height:48px;width:48px;padding:0;justify-content:center;border-radius:16px;right:20px;bottom:20px}
.is-app .support-fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.is-app .support-panel{right:20px;bottom:80px}

/* topbar Guide button + sidebar "Help & guide" */
.guide-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 12px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-2);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.guide-btn svg{color:var(--brand)}
.guide-btn:hover{border-color:transparent;background:var(--brand-50);color:var(--on-brand-c);box-shadow:var(--shadow)}
@media (max-width:640px){.guide-btn{width:40px;padding:0;justify-content:center}.guide-btn span{display:none}}
.side-nav .side-link{width:100%;border:0;background:transparent;font:inherit;cursor:pointer;text-align:left;display:flex;align-items:center;gap:14px;height:44px;padding:0 16px;border-radius:999px;color:var(--text-2);font-size:14px;font-weight:500;transition:background .15s,color .15s}
.side-nav .side-link svg{color:var(--text-2)}
.side-nav .side-link:hover{background:rgba(68,71,70,.08);color:var(--text)}

/* ---------- interactive guide ---------- */
.tour{position:fixed;inset:0;z-index:200}
.tour[hidden]{display:none}
.tour-veil{position:absolute;inset:0;background:transparent}
.tour.is-center .tour-veil{background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.tour-spot{position:fixed;left:0;top:0;width:0;height:0;border-radius:14px;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(15,23,42,.55),0 0 0 2px #fff,0 0 0 6px rgba(66,133,244,.45),0 0 32px 10px rgba(66,133,244,.30);
  transition:transform .38s cubic-bezier(.2,.8,.2,1),width .38s cubic-bezier(.2,.8,.2,1),height .38s cubic-bezier(.2,.8,.2,1),opacity .2s}
.tour-spot.is-hidden{opacity:0}
.tour-spot::after{content:"";position:absolute;inset:-6px;border-radius:18px;border:2px solid rgba(66,133,244,.65);animation:tourPulse 1.8s ease-out infinite}
@keyframes tourPulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.10)}}
.tour-card{position:fixed;left:0;top:0;width:340px;max-width:calc(100vw - 24px);background:#fff;border-radius:20px;padding:16px 18px 16px;outline:none;
  box-shadow:0 24px 60px -12px rgba(15,23,42,.45),0 0 0 1px rgba(15,23,42,.06)}
.tour-card.is-in{animation:tourIn .32s cubic-bezier(.2,.8,.2,1)}
@keyframes tourIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.tour-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tour-step{font-size:12px;font-weight:700;color:var(--brand);letter-spacing:.02em}
.tour-x{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--text-3);font-size:22px;line-height:1;cursor:pointer}
.tour-x:hover{background:var(--surface-2);color:var(--text)}
.tour-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin-top:8px;color:#fff;background:linear-gradient(135deg,#0b57d0,#4285f4 60%,#7c3aed);box-shadow:0 8px 20px -8px rgba(11,87,208,.6)}
.tour-ic svg{width:20px;height:20px}
.tour-title{font-family:var(--display);font-size:17px;line-height:1.3;margin-top:12px;letter-spacing:-.01em}
.tour-body{font-size:14px;line-height:1.6;color:var(--text-2);margin-top:6px}
.tour-progress{height:4px;margin-top:16px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.tour-progress span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#0b57d0,#4285f4,#7c3aed);transition:width .35s ease}
.tour-actions{display:flex;align-items:center;gap:8px;margin-top:14px}
.tour-actions .grow{flex:1}
.tour-arrow{position:absolute;width:14px;height:14px;background:#fff;transform:rotate(45deg)}
.tour-card[data-side=right] .tour-arrow{left:-7px;margin-top:-7px}
.tour-card[data-side=left] .tour-arrow{right:-7px;margin-top:-7px}
.tour-card[data-side=bottom] .tour-arrow{top:-7px;margin-left:-7px}
.tour-card[data-side=top] .tour-arrow{bottom:-7px;margin-left:-7px}
.tour.is-center .tour-arrow,.tour-card.is-sheet .tour-arrow{display:none}
.tour.is-center .tour-card{left:50%;top:50%;width:min(440px,calc(100vw - 24px));padding:28px 26px 20px;text-align:center;transform:translate(-50%,-50%)}
.tour.is-center .tour-card.is-in{animation:tourInC .36s cubic-bezier(.2,.8,.2,1)}
@keyframes tourInC{from{opacity:0;transform:translate(-50%,-46%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%)}}
.tour.is-center .tour-top{position:absolute;left:18px;right:12px;top:12px}
.tour.is-center .tour-ic{width:56px;height:56px;border-radius:18px;margin:14px auto 0}
.tour.is-center .tour-ic svg{width:26px;height:26px}
.tour.is-center .tour-title{font-size:22px}
.tour.is-center .tour-actions{justify-content:center}
.tour-card.is-sheet{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-width:none}
.tour-card.is-sheet[data-side=top]{top:12px;bottom:auto}
.tour.no-motion *,.tour.no-motion *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.tour *,.tour *::after{animation:none!important;transition:none!important}}

/* =====================================================================
   Documentation — modern developer docs
   ===================================================================== */
.docs{max-width:var(--docs-max);grid-template-columns:268px minmax(0,1fr)}
@media (min-width:1280px){.docs{grid-template-columns:268px minmax(0,1fr) 252px}}
.docs-main{padding:48px clamp(24px,4vw,80px) 120px;overflow-x:clip}
.prose{max-width:880px;margin:0 auto}
@media (max-width:900px){.docs{grid-template-columns:minmax(0,1fr)}.docs-main{padding:20px 16px 72px}}
.prose h1{font-size:clamp(32px,5.6vw,46px)}
@media (min-width:901px){.docs-main{background:radial-gradient(900px 360px at 0% 0%,rgba(66,133,244,.10),transparent 60%),radial-gradient(700px 300px at 100% 0%,rgba(124,58,237,.06),transparent 60%),#fff}}
.docs-progress{position:fixed;left:0;top:0;height:3px;width:0;z-index:120;background:linear-gradient(90deg,#0b57d0,#4285f4,#7c3aed);box-shadow:0 0 12px rgba(66,133,244,.6);pointer-events:none}
.docs-nav{scrollbar-width:thin}
.docs-nav h5{text-transform:uppercase;font-size:11px;letter-spacing:.08em;color:var(--text-3)}
.docs-nav a{position:relative}
.docs-nav a.is-active::before{content:"";position:absolute;left:4px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(11,87,208,.12)}
.docs-search-btn{width:100%;display:flex;align-items:center;gap:10px;height:42px;padding:0 10px 0 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text-3);font:inherit;font-size:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.docs-search-btn:hover{border-color:var(--brand);box-shadow:0 0 0 4px rgba(11,87,208,.08)}
.docs-search-btn kbd,.dsearch kbd{margin-left:auto;font-family:var(--font);font-size:11px;padding:2px 7px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-3)}
.docs-topbar{display:none;gap:8px;margin-bottom:20px}
@media (max-width:900px){.docs-topbar{display:flex}.docs-menu{margin-bottom:0}.docs-topbar .docs-search-btn{width:auto;flex:1}}
.prose h1{background:linear-gradient(90deg,var(--text) 0%,#1f3b7a 60%,#0b57d0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.prose h2{scroll-margin-top:88px}
.prose h2::after{content:"";display:block;width:44px;height:3px;margin-top:12px;border-radius:3px;background:linear-gradient(90deg,#0b57d0,#7c3aed)}
.prose h3{scroll-margin-top:88px}
#introduction{position:relative}
#introduction::before{content:"";position:absolute;inset:-48px -40px auto -40px;height:360px;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(11,87,208,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(11,87,208,.06) 1px,transparent 1px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse at 30% 0%,#000 30%,transparent 70%);mask-image:radial-gradient(ellipse at 30% 0%,#000 30%,transparent 70%)}
.prose .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:var(--brand-50);border:1px solid rgba(11,87,208,.15)}
.prose .eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:#1e8e3e;box-shadow:0 0 0 3px rgba(30,142,62,.18)}
.quick-link{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,var(--border),var(--border)) border-box;border:1px solid transparent}
.quick-link:hover{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#4285f4,#7c3aed) border-box;box-shadow:0 12px 32px -14px rgba(66,133,244,.55)}
.quick-link .ql-i{background:linear-gradient(135deg,var(--brand-50),#f1ecfe)}
.endpoint{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,rgba(11,87,208,.45),rgba(124,58,237,.45)) border-box;border:1px solid transparent;border-radius:14px;box-shadow:0 6px 20px -12px rgba(11,87,208,.45)}
.endpoint .method{background:#e6f4ea;color:#137333}
.endpoint .ep-copy{margin-left:auto;flex:none;border:0;background:var(--surface-2);color:var(--text-2);border-radius:8px;padding:4px 9px;font:inherit;font-family:var(--font);font-size:12px;cursor:pointer}
.endpoint .ep-copy:hover{background:var(--brand-50);color:var(--on-brand-c)}
.prose .code{border-radius:16px;overflow:hidden;box-shadow:0 14px 34px -18px rgba(11,40,100,.55)}
.prose .code-h{background:linear-gradient(180deg,#2d3033,#26282b);border-bottom:1px solid rgba(255,255,255,.06)}
.prose .code .tab.is-active{color:#fff;background:rgba(138,180,248,.16)}
.prose .callout{border:1px solid rgba(11,87,208,.12);position:relative;overflow:hidden}
.prose .callout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand)}
.prose .callout-warn{border-color:rgba(176,96,0,.18)}.prose .callout-warn::before{background:var(--warn)}
.prose .table thead th{background:var(--surface-3);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.prose section[data-section]{transition:opacity .5s ease,transform .5s ease}
.prose section.is-pre{opacity:0;transform:translateY(14px)}
@media (prefers-reduced-motion:reduce){.prose section.is-pre{opacity:1;transform:none}}
/* flow diagram (How it works / OTP) */
.flow{list-style:none;padding:0!important;margin-top:20px;display:grid;gap:12px;counter-reset:none}
.flow li{position:relative;display:flex;gap:16px;align-items:flex-start;padding:16px 18px;margin:0;border-radius:16px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcff)}
.flow li::marker{content:none}
.flow li:not(:last-child)::after{content:"";position:absolute;left:35px;bottom:-13px;width:2px;height:12px;background:linear-gradient(#4285f4,#7c3aed)}
.flow .flow-n{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;background:linear-gradient(135deg,#0b57d0,#4285f4 60%,#7c3aed);box-shadow:0 6px 16px -6px rgba(11,87,208,.6)}
.flow strong{display:block;font-size:15px;color:var(--text)}
.flow p{margin-top:4px!important;font-size:14px}
.do-dont{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.do-dont>div{padding:16px 18px;border-radius:16px;border:1px solid var(--border)}
.do-dont .do{background:linear-gradient(180deg,#f3fbf5,#fff)}.do-dont .dont{background:linear-gradient(180deg,#fdf3f2,#fff)}
.do-dont h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.do-dont .do h4{color:#137333}.do-dont .dont h4{color:#b3261e}
.do-dont ul{margin-top:8px!important}
@media (max-width:640px){.do-dont{grid-template-columns:1fr}}
.http-code{display:inline-block;min-width:44px;text-align:center;font-family:var(--mono);font-weight:700;font-size:12.5px;padding:2px 8px;border-radius:8px}
.http-code.c2{background:#e6f4ea;color:#137333}.http-code.c4{background:#fef7e0;color:#8a5300}.http-code.c5{background:#fce8e6;color:#b3261e}
.retry-yes{color:#137333;font-weight:600}.retry-no{color:var(--text-3)}
/* right rail */
.docs-toc{display:none}
@media (min-width:1280px){.docs-toc{display:block;position:sticky;top:72px;height:calc(100vh - 72px);overflow:auto;padding:36px 20px 40px 4px;scrollbar-width:thin}}
.toc-h{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:10px}
.toc-sec{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:6px}
#docsToc a{display:block;padding:5px 0 5px 12px;border-left:2px solid var(--border);color:var(--text-3);font-size:13px;line-height:1.4;transition:color .15s,border-color .15s}
#docsToc a:hover{color:var(--text);text-decoration:none}
#docsToc a.is-on{color:var(--on-brand-c);border-color:var(--brand);font-weight:600}
.toc-card{margin-top:24px;padding:16px;border-radius:16px;background:linear-gradient(160deg,#fff,var(--brand-50));border:1px solid rgba(11,87,208,.12)}
.toc-k{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-top:10px}
.toc-k:first-child{margin-top:0}
.toc-card code{display:block;margin-top:4px;font-size:12px;word-break:break-all;color:var(--on-brand-c)}
.toc-help{margin-top:16px;font-size:13px;color:var(--text-3)}
/* search palette */
.dsearch{position:fixed;inset:0;z-index:150;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.dsearch[hidden]{display:none}
.dsearch-box{width:min(640px,100%);background:#fff;border-radius:20px;box-shadow:0 30px 80px -20px rgba(15,23,42,.55),0 0 0 1px rgba(15,23,42,.06);overflow:hidden;animation:pop .2s var(--ease)}
.dsearch-in{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--hairline)}
.dsearch-in svg{color:var(--brand);flex:none}
.dsearch-in input{flex:1;height:56px;border:0;outline:none;font:inherit;font-size:16px;background:transparent;color:var(--text)}
.dsearch-list{list-style:none;margin:0;padding:8px;max-height:min(56vh,460px);overflow:auto}
.dsearch-list li a{display:block;padding:10px 12px;border-radius:12px;color:var(--text)}
.dsearch-list li a:hover,.dsearch-list li.is-sel a{background:var(--brand-50);text-decoration:none}
.dsearch-list .ds-g{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.dsearch-list .ds-t{display:block;font-weight:600;font-size:14.5px;margin-top:1px}
.dsearch-list .ds-s{display:block;font-size:13px;color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsearch-list mark{background:rgba(66,133,244,.18);color:inherit;border-radius:3px;padding:0 1px}
.dsearch-empty{padding:28px 16px;text-align:center;color:var(--text-3);font-size:14px}
.dsearch-f{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--hairline);font-size:12px;color:var(--text-3)}
.dsearch-f kbd{margin:0 2px}
@media (max-width:640px){.dsearch{padding-top:8px}.dsearch-f{display:none}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* r31 — dashboard polish: network tags, credits column, denser phone layout */
.rcpt{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.net-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 7px;border-radius:999px;font:600 11px/1.5 var(--font);letter-spacing:.01em;white-space:nowrap}
.net-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.net-ethio{background:#e9f7ee;color:#137a3a}.net-safaricom{background:#fff0f2;color:#c0123c}
.cell-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.cr-cell{font-variant-numeric:tabular-nums;font-weight:600}
.price-eq{font-size:12.5px;line-height:1.5;color:var(--text-3);margin-top:12px;padding-top:12px;border-top:1px dashed var(--hairline)}
@media (min-width:641px){.table .truncate-lg{max-width:clamp(220px,28vw,460px)}}
@media (max-width:640px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .stat-grid.cols-3>.stat-hero{grid-column:1/-1}
  .stat-grid .stat{padding:14px 16px}
  .stat-grid .stat-v{font-size:26px;margin-top:6px}
  .stat-grid .stat-s{font-size:12px;margin-top:4px}
  #packages .grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  #packages .price{padding:16px 16px 14px}
  #packages .price-amt{font-size:26px;margin-top:8px}
  #packages .price-unit{font-size:12px}
  #packages .price-eq{display:none}
  #packages .price .btn{height:40px;margin-top:12px}
  .table-stack tr{padding:12px 16px}
  .table-stack td[data-label]:not([data-label=""]){display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:10px;align-items:baseline;padding:3px 0}
  .table-stack td[data-label]:not([data-label=""])::before{grid-column:1;grid-row:1;align-self:start;padding-top:2px}
  .table-stack td[data-label]:not([data-label=""])>*{grid-column:2;min-width:0;justify-self:start;max-width:100%}
  .table-stack td.num{text-align:left!important}
}
/* =====================================================================
   r36 — refunds (Billing, payment page, /refund-request) + "no business license" page
   ===================================================================== */
.rf-hero{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}
.rf-hero strong{display:block;font-size:30px;line-height:1.15;letter-spacing:-.02em}.rf-hero strong span{font-size:15px;color:var(--text-3);font-weight:600}
.rf-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--text-2)}
.rf-steps li{display:flex;align-items:center;gap:8px}
.rf-steps span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-50);color:var(--brand);font-size:12px;font-weight:700}
.rf-form fieldset{border:0;margin:0;padding:0;min-width:0}
.rf-form fieldset.field+.field,.rf-form .field+fieldset.field{margin-top:22px}
.rf-chips{display:flex;flex-wrap:wrap;gap:8px}
.rf-chip{position:relative;cursor:pointer}
.rf-chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.rf-chip span{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid var(--border-strong);border-radius:999px;font-size:14px;font-weight:500;background:#fff;transition:border-color .15s,background .15s,color .15s}
.rf-chip:hover span{border-color:#8e949b}
.rf-chip input:checked+span{border-color:var(--brand);background:var(--brand-50);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.rf-chip input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.rf-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.rf-opt{position:relative;display:block;cursor:pointer}
.rf-opt input{position:absolute;top:16px;left:16px;width:18px;height:18px;margin:0;accent-color:var(--brand)}
.rf-opt span{display:block;height:100%;padding:14px 14px 14px 44px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;transition:border-color .15s,background .15s}
.rf-opt b{display:block;font-size:14.5px}
.rf-opt small{display:block;margin-top:2px;font-size:12.5px;color:var(--text-3)}
.rf-opt:hover span{border-color:#8e949b}
.rf-opt input:checked+span{border-color:var(--brand);background:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand)}
.rf-acct{margin-top:18px;padding:18px;border-radius:var(--radius-lg);background:var(--surface-3);border:1px solid var(--hairline)}
.rf-form:has(input[name=payout_type][value=original]:checked) .rf-acct{display:none}
.rf-form:not(:has(input[name=payout_type][value=bank]:checked)) .rf-bank{display:none}
.rf-notes{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;font-size:13.5px;color:var(--text-2)}
.rf-notes li{display:flex;gap:10px;align-items:flex-start}
.rf-notes svg{flex:none;margin-top:2px;color:var(--brand)}
.rf-list{list-style:none;margin:0;padding:0}
.rf-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;padding:14px 0;border-top:1px solid var(--hairline)}
.rf-item:first-child{border-top:0}
.rf-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brand-50);color:var(--brand)}
.rf-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.rf-amt{font-weight:700;white-space:nowrap;text-align:right}.rf-amt span{font-size:12px;color:var(--text-3);font-weight:600}
.rf-act{display:flex;gap:6px}
.card-b>.rf-list{margin:-14px 0}
@media (max-width:640px){
  .rf-item{grid-template-columns:36px minmax(0,1fr) auto}
  .rf-act{grid-column:2/-1}
  .rf-hero strong{font-size:26px}
}
.legal-h{scroll-margin-top:90px}
#refunds .card-h{flex-wrap:wrap}#refunds .card-h>.btn{flex:none}

/* "no business license" landing page */
.nl-hero{padding:56px 0 36px;background:radial-gradient(1200px 400px at 50% -120px,var(--brand-50),transparent 70%)}
.nl-hero .display{margin-top:14px}
.nl-crumb{display:inline-block;font-size:13px;color:var(--text-3);margin-right:10px}
.nl-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--text-2)}
.nl-badge svg{color:var(--ok)}
.nl-mark{color:var(--brand)}
.nl-ticks{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;margin:22px 0 0;padding:0;font-size:14px;color:var(--text-2)}
.nl-ticks li{display:flex;align-items:center;gap:7px}.nl-ticks svg{color:var(--ok)}
.nl-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.nl-col{padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border)}
.nl-col h2{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.nl-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:15px}
.nl-col li{padding-left:22px;position:relative}
.nl-col li::before{content:"";position:absolute;left:4px;top:.6em;width:8px;height:8px;border-radius:50%}
.nl-yes{background:var(--ok-bg);border-color:transparent}.nl-yes h2 svg,.nl-yes li::before{color:var(--ok);background:currentColor}
.nl-yes h2 svg{background:none}
.nl-no{background:var(--surface-2);border-color:transparent}.nl-no li{color:var(--text-2);text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25)}
.nl-no li::before{background:var(--text-4)}.nl-no h2 svg{color:var(--err)}
.nl-steps{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nl-steps li{display:flex;gap:14px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff}
.nl-steps li>span{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700}
.nl-steps p{font-size:14px;color:var(--text-2);margin-top:4px}
.nl-steps-sec{background:var(--surface-3)}
.nl-trust{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;align-items:center}
.nl-trust p{color:var(--text-2);line-height:1.7;margin-top:10px}
.nl-sms{padding:22px;border-radius:24px;background:var(--surface-2);text-align:center}
.nl-bubble{display:inline-block;max-width:290px;text-align:left;padding:14px 16px;border-radius:18px 18px 18px 6px;background:#fff;box-shadow:var(--shadow-sm);font-size:14.5px;line-height:1.55}
.nl-bubble b{display:block;margin-top:6px;color:var(--brand)}
.nl-sms small{display:block;margin-top:12px;font-size:12.5px;color:var(--text-3)}
.nl-faq details{border-bottom:1px solid var(--border);padding:4px 0}
.nl-faq summary{cursor:pointer;padding:14px 0;font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.nl-faq summary::-webkit-details-marker{display:none}
.nl-faq summary::after{content:"+";color:var(--brand);font-size:20px;line-height:1}
.nl-faq details[open] summary::after{content:"–"}
.nl-faq p{padding:0 0 16px;color:var(--text-2);line-height:1.7}
.nl-final{margin-top:40px;padding:32px;border-radius:var(--radius-lg);background:var(--brand);color:#fff;text-align:center}
.nl-final p{opacity:.9;margin:8px 0 18px}
.nl-final .btn-primary{background:#fff;color:var(--brand)}
@media (max-width:760px){
  .nl-compare,.nl-steps,.nl-trust{grid-template-columns:1fr}
  .nl-hero{padding:36px 0 24px}
}
/* =====================================================================
   r37 — bulk & scheduled, contacts, templates, team, keys & webhooks, two-step sign-in, status & security pages
   ===================================================================== */
.step-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.step-h span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-size:12.5px;font-weight:700}
.step-h strong{font-size:15px}
.chk-list{display:grid;gap:6px;max-height:160px;overflow:auto;padding-right:4px}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.var-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.chip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;font:500 12.5px/1 var(--font-mono,monospace);color:var(--text-2);cursor:pointer}
.chip:hover{border-color:var(--brand);color:var(--brand)}
.when-opts{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:6px}
#bulkForm:not(:has(input[name=when][value=later]:checked)) .when-at{display:none}
.bulk-samples{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.bulk-sample .phone-preview{min-height:0}
.check-rows{list-style:none;margin:0;padding:0}
.check-rows li{display:flex;gap:12px;padding:14px 20px;border-top:1px solid var(--hairline)}
.check-rows li:first-child{border-top:0}
.check-rows li>svg{flex:none;margin-top:2px}
.check-rows li div{min-width:0}
.check-rows strong{display:block;font-size:14px}
.check-rows span{font-size:13px;color:var(--text-2)}
.check-rows .is-ok>svg{color:var(--ok)}.check-rows .is-warn>svg{color:var(--warn)}.check-rows .is-bad>svg{color:var(--err)}
.check-rows .is-bad strong{color:var(--err)}
.bulk-confirm{position:sticky;top:84px}
.bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;border-bottom:1px solid var(--hairline);padding-top:12px;padding-bottom:12px}
.bulkbar .justify-end{justify-content:flex-end}
.select-sm,.input-sm{height:34px;font-size:13px;padding-top:4px;padding-bottom:4px}
.w-check{width:36px}
.group-list{list-style:none;margin:0;padding:6px 0}
.group-list>li{position:relative;padding:0 12px}
.group-list>li>a{display:flex;align-items:center;gap:10px;padding:9px 34px 9px 10px;border-radius:10px;font-size:14px;color:var(--text);text-decoration:none}
.group-list>li>a:hover{background:var(--surface-2)}
.group-list>li.is-active>a{background:var(--brand-50);color:var(--brand);font-weight:600}
.group-edit{padding:0 10px}
.group-edit>summary{position:absolute;right:16px;top:6px;list-style:none;cursor:pointer;color:var(--text-3);padding:4px;border-radius:8px}
.group-edit>summary::-webkit-details-marker{display:none}
.group-edit>summary:hover{color:var(--brand);background:var(--surface-2)}
.group-edit[open]{padding-bottom:10px}
.tpl-card .quote{max-height:150px;overflow:auto}
.ws-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--hairline)}
.ws-row:first-child{border-top:0;padding-top:0}
.ws-row.is-invite{background:var(--brand-50);margin:0 -12px;padding:10px 12px;border-radius:12px;border:0}
.role-opts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.ws-switch{margin:10px 12px 0;padding:10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--hairline)}
.ws-switch label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px}
.ws-switch select{width:100%}
.ws-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 16px;margin-bottom:18px;border-radius:12px;background:#0f172a;color:#fff;font-size:13.5px}
.ws-banner strong{color:#fff}.ws-banner form{margin-left:auto}
.ws-banner .btn{background:rgba(255,255,255,.12);color:#fff;border-color:transparent}
.keys-table td{vertical-align:top}
.keys-table tr.is-new td{background:var(--ok-bg)}
.secret-sm{padding:4px 4px 4px 10px;gap:4px}.secret-sm code{font-size:12.5px}
.ip-edit{margin-top:4px}.ip-edit summary{cursor:pointer;list-style:none;display:inline}.ip-edit summary::-webkit-details-marker{display:none}
.ip-edit .textarea{min-height:56px}
.link{color:var(--brand)}
.ok-text{color:var(--ok)}
.hook-list{list-style:none;margin:0;padding:0}
.hook-list li{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;padding:14px 22px;border-top:1px solid var(--hairline)}
.hook-act{justify-content:flex-end}
.deliveries>summary{cursor:pointer}
.backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:14px 0;padding:14px 18px 14px 34px;background:var(--surface-2);border-radius:12px;font-size:14px}
.qr-box{display:inline-block;padding:10px;background:#fff;border:1px solid var(--border);border-radius:14px;margin-top:6px}
.qr-box svg{display:block;width:180px;height:180px}
.break{word-break:break-all}
.stack-sm>*+*{margin-top:8px}
.ana-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.ana-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:10px}
.hbar{display:grid;grid-template-columns:96px minmax(0,1fr) 54px;align-items:center;gap:10px;font-size:13px;margin-top:8px}
.hbar>span:first-child{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar i{display:block;height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}
.hbar i b{display:block;height:100%;border-radius:999px;background:var(--brand)}
.hbar.saf i b{background:#16a34a}.hbar.fail i b{background:var(--err)}
.hbar>span:last-child{text-align:right;font-variant-numeric:tabular-nums}
.range-seg{margin-left:auto}
.steps-list li .opt{font-weight:400}
@media (max-width:760px){.ana-grid,.when-opts,.backup-codes{grid-template-columns:1fr}.bulk-confirm{position:static}.hbar{grid-template-columns:80px minmax(0,1fr) 46px}}

/* public status page */
.st-hero{display:flex;align-items:center;gap:16px;padding:22px 24px;border-radius:var(--radius-lg);background:var(--ok-bg)}
.st-hero.st-warn{background:#fef3c7}.st-hero.st-err{background:#fee2e2}
.st-hero>.st-dot{width:14px;height:14px}
.st-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}
.st-warn .st-dot,.st-badge.st-warn .st-dot{background:var(--warn)}.st-err .st-dot,.st-badge.st-err .st-dot{background:var(--err)}.st-badge.st-unknown .st-dot{background:var(--text-4)}
.st-list{list-style:none;margin:22px 0 0;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.st-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-top:1px solid var(--hairline);background:#fff}
.st-list li:first-child{border-top:0}
.st-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;white-space:nowrap}
.st-bars{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px;margin-top:12px;height:38px}
.st-bar{border-radius:3px;background:var(--surface-3)}
.st-bar.st-ok{background:#22c55e}.st-bar.st-warn{background:#f59e0b}.st-bar.st-err{background:#ef4444}
.st-note{display:flex;gap:10px;padding:16px;border-radius:12px;background:var(--surface-2)}
.st-note svg{flex:none;margin-top:2px;color:var(--brand)}
/* public security page */
.sec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sec-card{padding:22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff}
.sec-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-50);color:var(--brand);margin-bottom:12px}
.sec-card ul{margin:10px 0 0;padding-left:18px;display:grid;gap:7px;font-size:14px;color:var(--text-2);line-height:1.55}
.sec-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding:22px;border-radius:var(--radius-lg);background:var(--surface-2)}
@media (max-width:760px){.sec-grid{grid-template-columns:1fr}}
/* live counter on the home page */
.live-count{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:13px;color:var(--text-2)}
.live-count b{color:var(--text);font-variant-numeric:tabular-nums}
.live-count .st-dot{animation:livePulse 2s ease-in-out infinite}
@keyframes livePulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.live-count .st-dot{animation:none}}
/* language switch + Amharic */
.lang-switch{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:999px;border:1px solid var(--border);background:#fff}
.lang-switch a{padding:4px 9px;border-radius:999px;font-size:12px;font-weight:600;color:var(--text-3);text-decoration:none}
.lang-switch a.is-active{background:var(--brand);color:#fff}
.sidebar .lang-switch{margin:10px 12px 0}
html[lang=am] body{font-family:'Noto Sans Ethiopic',Inter,system-ui,sans-serif}
html.i18n-pending body{visibility:hidden}
@media print{.sidebar,.topbar,.support-fab,.ws-banner{display:none!important}}
/* r37 layout touches */
.sidebar .lang-switch{align-self:flex-start;width:auto}
#bLineCount{white-space:nowrap}
.bulkbar .select-sm{width:auto;min-width:150px}
.key-new-form .grid>.field,.grid-tight>.field{margin-top:0}
.card fieldset.field{border:0;padding:0;min-width:0;margin-left:0;margin-right:0}
.card fieldset.field>legend{padding:0;margin-bottom:8px}
.mobile-nav .lang-switch{margin:10px 16px}
@media (max-width:640px){.header-actions .lang-switch{display:none}}
.status-page .section:first-child{padding-top:40px}
.st-hero>.st-dot{align-self:flex-start;margin-top:16px}
/* =====================================================================
   r38 — e-mail confirmation, legal pages
   ===================================================================== */
.state-hero.warn{background:var(--warn-bg)}
.state-hero.warn>svg{color:var(--warn)}
.ev-panel{display:block}
.ev-addr{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fff}
.ev-addr>svg{flex:none;color:var(--brand)}
.ev-code-row{display:flex;gap:10px;margin-top:6px}
.ev-code-row .input-otp{flex:1;min-width:0;height:52px;font-size:22px}
.ev-code-row .btn{flex:none;height:52px}
.ev-change>summary{cursor:pointer;color:var(--brand);list-style:none;display:inline}
.ev-change>summary::-webkit-details-marker{display:none}
.ev-change[open]{padding:14px 16px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface-2)}
.ev-change .field:first-child{margin-top:0}
.status-ring.mb-4{margin:0 0 16px}
.email-state{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:6px;font-size:13px}
.legal-intro{font-size:16px;color:var(--text-2)}
.legal-toc{margin:28px 0 8px;padding:18px 22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}
.legal-toc strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}
.legal-toc ol{margin:10px 0 0;padding-left:20px;columns:2;column-gap:28px;font-size:14px;line-height:1.9}
.legal-toc a{text-decoration:none}
.legal-sum{margin-top:28px;padding:4px 22px 10px;border-radius:var(--radius-lg);background:var(--brand-50)}
.legal-sum .legal-h{margin-top:16px}
.legal-sec ul,.legal-sum ul{padding-left:20px}
.legal-sec li,.legal-sum li{margin:6px 0}
.legal-h3{font-size:15px;margin:22px 0 4px}
.legal-links{margin-top:48px;padding-top:20px;border-top:1px solid var(--hairline)}
@media (max-width:640px){.legal-toc ol{columns:1}.ev-code-row{flex-direction:column}.ev-code-row .btn{width:100%}}
/* =====================================================================
   r39 — SMSHub Buildathon (/challenge)
   ===================================================================== */
.ch-page .h6{font-family:var(--display);font-size:14px;font-weight:700}
.ch-k{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.ch-hero{padding:56px 0 44px;background:radial-gradient(900px 420px at 10% -140px,var(--brand-50),transparent 70%),radial-gradient(700px 380px at 100% -60px,#f3ecff,transparent 70%)}
.ch-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:44px;align-items:center}
.ch-hero .display{font-size:clamp(34px,4.6vw,58px)}
.ch-hero .lead strong{color:var(--text)}
.ch-badge svg{color:var(--brand)}
.ch-hero-card{padding:26px;border-radius:var(--radius-xl);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-lg)}
.ch-count{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.ch-count-u{padding:12px 4px;border-radius:16px;background:linear-gradient(160deg,var(--brand),#3b2fc9);color:#fff;text-align:center}
.ch-count-u b{display:block;font-family:var(--display);font-size:32px;font-weight:800;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ch-count-u span{font-size:11.5px;opacity:.85}
.ch-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}
.ch-stats div{padding:12px 14px;border-radius:14px;background:var(--surface-2)}
.ch-stats b{display:block;font-family:var(--display);font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.ch-stats span{font-size:12.5px;color:var(--text-3)}
.ch-sec{padding:64px 0}
.ch-sec-tint{background:var(--surface-3)}
.ch-narrow{max-width:640px}
.ch-danger{color:var(--err)!important}
.ch-danger:hover{background:var(--err-bg)!important}
.ch-ok{display:inline-flex;align-items:center;gap:4px;color:var(--ok)}
.ch-err{color:var(--err)}
.ch-bar{height:8px;border-radius:99px;background:var(--surface-hi);overflow:hidden}
.ch-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--violet))}
/* your team */
.ch-team{padding:26px}
.ch-team-h{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}
.ch-code{display:grid;gap:4px;min-width:230px;padding:14px 16px;border-radius:16px;background:var(--brand-50)}
.ch-code b{font-size:26px;letter-spacing:.18em;color:var(--on-brand-c)}
.ch-team-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;margin-top:18px}
.ch-members{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.ch-members li{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:14px}
.ch-av{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brand-100);color:var(--on-brand-c);font-weight:700}
.ch-pts-big{font-family:var(--display);font-size:26px;font-weight:800}
.ch-pts-big small{font-size:13px;font-weight:500;color:var(--text-3)}
.ch-quests{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ch-quests li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface-2)}
.ch-quests li>b{flex:none;font-size:13px;color:var(--text-3)}
.ch-q-ic{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--text-3)}
.ch-quests li.is-done{background:var(--ok-bg)}
.ch-quests li.is-done .ch-q-ic{background:var(--ok);color:#fff}
.ch-quests li.is-done>b{color:var(--ok)}
.ch-quests-pub li{background:#fff;border:1px solid var(--border)}
.ch-quests-pub .ch-q-ic{background:var(--brand-50);color:var(--brand)}
.ch-more{margin-top:22px;padding-top:14px;border-top:1px solid var(--border)}
.ch-more summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--text-2)}
.ch-more-b{padding-top:14px}
.ch-form-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.ch-form-row .field{flex:1 1 200px}
.ch-form-row .field+.field,.ch-form-2 .field+.field{margin-top:0}
.ch-form-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.ch-sub-form>.field{margin-top:16px}
.ch-sub-form .ch-form-2+.field,.ch-sub-form .field+.ch-form-2{margin-top:16px}
/* join */
.ch-join{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);overflow:hidden}
.ch-join-side{padding:30px;background:linear-gradient(160deg,var(--brand),#3b2fc9);color:#fff}
.ch-join-side .ch-k{color:rgba(255,255,255,.8)}
.ch-join-side h2{color:#fff}
.ch-steps{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:18px}
.ch-steps li{display:flex;gap:14px}
.ch-steps li>span{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);font-weight:700}
.ch-steps p{margin-top:2px;font-size:13.5px;opacity:.85}
.ch-join-main{padding:30px}
.ch-mode{margin:24px 0 0;padding:0;border:0;min-width:0}
.ch-mode-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ch-mode-o{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid var(--border-strong);border-radius:14px;cursor:pointer;transition:background .15s,border-color .15s}
.ch-mode-o input{flex:none;margin:3px 0 0;accent-color:var(--brand)}
.ch-mode-o small{display:block;font-size:12.5px;color:var(--text-3)}
.ch-mode-o:has(input:checked){border-color:var(--brand);background:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand)}
.ch-join-form:has(input[name=mode][value=create]:checked) .ch-joincode{display:none}
.ch-join-form:has(input[name=mode][value=join]:checked) .ch-create{display:none}
.ch-code-in{font-size:18px;letter-spacing:.2em;text-transform:uppercase}
.ch-checks{display:grid;gap:12px;font-size:14px}
.ch-join-form .hint svg{display:inline-block;vertical-align:-2px;color:var(--ok)}
/* prizes, tracks */
.ch-prizes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.ch-prize{padding:20px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff}
.ch-prize-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface-2);color:var(--text-2)}
.ch-prize-t{margin-top:14px;font-size:13px;font-weight:600;color:var(--text-3)}
.ch-prize-v{margin:2px 0 4px;font-family:var(--display);font-size:26px;font-weight:800;letter-spacing:-.02em}
.ch-prize.is-p0{border-color:#f3d27a;background:linear-gradient(160deg,#fff8e1,#fff 60%)}
.ch-prize.is-p0 .ch-prize-ic{background:#f6c343;color:#5c3d00}
.ch-prize.is-p1 .ch-prize-ic{background:#dfe4ea;color:#374151}
.ch-prize.is-p2 .ch-prize-ic{background:#f1d3bd;color:#6b3a16}
.ch-prize.is-p3 .ch-prize-ic{background:var(--brand-50);color:var(--brand)}
.ch-prize.is-p4 .ch-prize-ic{background:#f3ecff;color:var(--violet)}
.ch-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ch-track{padding:22px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff}
.ch-track .sec-ic{margin:0}
.ch-track-k{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}
.ch-ex{margin:12px 0 0;padding-left:18px;display:grid;gap:6px;font-size:13.5px;color:var(--text-2)}
/* timeline, deliverables, judging */
.ch-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.ch-two-lb{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.ch-time{list-style:none;margin:0;padding:0}
.ch-time li{position:relative;display:flex;gap:16px;padding-bottom:22px}
.ch-time li::before{content:"";position:absolute;left:7px;top:18px;bottom:-2px;width:2px;background:var(--border)}
.ch-time li:last-child::before{display:none}
.ch-time-dot{position:relative;z-index:1;flex:none;width:16px;height:16px;margin-top:3px;border-radius:50%;background:#fff;border:2px solid var(--border-strong)}
.ch-time li.is-done::before{background:var(--ok)}
.ch-time li.is-done .ch-time-dot{background:var(--ok);border-color:var(--ok)}
.ch-time li.is-next .ch-time-dot{border-color:var(--brand);box-shadow:0 0 0 5px var(--brand-100)}
.ch-time-d{font-size:12.5px;font-weight:600;color:var(--text-3)}
.ch-time li.is-next .ch-time-d{color:var(--brand)}
.ch-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ch-list li{display:flex;gap:14px;align-items:flex-start}
.ch-list li>svg{flex:none;width:40px;height:40px;padding:10px;border-radius:12px;background:var(--brand-50);color:var(--brand)}
.ch-crit{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ch-crit .ch-bar{margin-top:6px}
/* leaderboard, gallery, rules */
.ch-board{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ch-board li{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#fff}
.ch-board li.is-me{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.ch-rank{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-2);font-size:13.5px;font-weight:700}
.ch-rank.is-top{background:var(--brand);color:#fff}
.ch-board li:first-child .ch-rank{background:#f6c343;color:#5c3d00}
.ch-tname{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-qi{flex:none;display:flex;gap:3px}
.ch-qi span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-2);color:var(--text-4)}
.ch-qi span.is-done{background:var(--ok-bg);color:var(--ok)}
.ch-qi svg{width:13px;height:13px}
.ch-pts{flex:none;min-width:52px;text-align:right;font-family:var(--display);font-size:18px;font-weight:800}
.ch-pts small{margin-left:2px;font-size:11px;font-weight:500;color:var(--text-3)}
.ch-empty{display:flex;gap:12px;align-items:center;padding:22px;border:1px dashed var(--border-strong);border-radius:16px;color:var(--text-2)}
.ch-empty svg{flex:none;color:var(--brand)}
.ch-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ch-proj{padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff}
.ch-proj.is-p0{border-color:#f3d27a;background:linear-gradient(160deg,#fff8e1,#fff 60%)}
.ch-award{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:var(--brand-50);color:var(--brand);font-size:12px;font-weight:700}
.ch-proj.is-p0 .ch-award{background:#f6c343;color:#5c3d00}
.ch-rules{margin:0;padding-left:22px;display:grid;gap:12px;color:var(--text-2);line-height:1.65}
.ch-rules li::marker{font-weight:700;color:var(--brand)}
@media (max-width:1100px){.ch-prizes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){
  .ch-hero-grid,.ch-team-grid,.ch-two,.ch-two-lb,.ch-join,.ch-tracks,.ch-gallery{grid-template-columns:minmax(0,1fr)}
  .ch-two{gap:40px}
}
@media (max-width:640px){
  .ch-hero{padding:32px 0 28px}
  .ch-sec{padding:44px 0}
  .ch-prizes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ch-prize.is-p0{grid-column:1/-1}
  .ch-form-2,.ch-mode-g{grid-template-columns:minmax(0,1fr)}
  .ch-team,.ch-join-side,.ch-join-main,.ch-hero-card{padding:20px}
  .ch-count-u b{font-size:26px}
  .ch-qi{display:none}
  .ch-code{min-width:0;width:100%}
  .ch-prize-v{font-size:22px}
}
/* r40 — phones: button rows in page headings wrap; on small phones (≤380 px) the header drops the language switch and the
   dashboard bar drops the Guide button — both are in the menu too — so nothing sticks out past the screen */
.page-head>.row{flex-wrap:wrap}
@media (max-width:380px){
  .header-actions>.lang-switch{display:none}
  .site-header .container{gap:10px}
  .header-actions{gap:6px}
  .header-actions>.btn-sm{padding:0 12px}
  .topbar-actions .guide-btn{display:none}
  .topbar-actions{gap:6px}
}
/* =====================================================================
   r47 — pay by telebirr / bank transfer (/pay), payment-method buttons in Billing, delivery badges
   ===================================================================== */
.mp-amount{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}
.mp-amount>span{flex-basis:100%}
.mp-amount strong{font-size:32px;line-height:1.1;letter-spacing:-.02em;color:var(--text)}
.mp-amount strong span{font-size:15px;color:var(--text-3);font-weight:600}
.mp-steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:22px}
.mp-steps h3{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:16px;letter-spacing:-.01em}
.mp-n{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:700}
.mp-accts{display:grid;gap:10px}
.mp-acct{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}
.mp-acct img{flex:none;width:40px;height:40px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid var(--hairline)}
.mp-num{font-size:20px;font-weight:700;letter-spacing:.02em;color:var(--text);margin:2px 0}
.mp-banks{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0}
.mp-banks legend{margin-bottom:8px}
.mp-bank{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;font-weight:600;font-size:14px}
.mp-bank input{position:absolute;opacity:0;pointer-events:none}
.mp-bank img{border-radius:6px}
.mp-bank:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50);color:var(--brand)}
.mp-bank:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.mp-form:not(:has(input[name=bank][value=boa]:checked)) .mp-sfx{display:none}
.mp-fine{display:flex;gap:8px;align-items:flex-start}.mp-fine svg{flex:none;margin-top:2px}
.mp-wait{display:flex;gap:14px;align-items:flex-start;margin-top:18px;padding:16px 18px;border:1px solid var(--info-border);border-radius:var(--radius-lg);background:var(--info-bg)}
.mp-wait p{margin:4px 0 0}
.mp-spin{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;border:3px solid var(--brand-100);border-top-color:var(--brand);animation:mpSpin .8s linear infinite}
@keyframes mpSpin{to{transform:rotate(360deg)}}
.mp-done{margin-top:18px;padding:22px 18px;text-align:center;border:1px solid var(--ok-border);border-radius:var(--radius-lg);background:var(--ok-bg)}
.mp-done-i{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ok);color:#fff}
.mp-done-i svg{width:22px;height:22px}
.mp-done h2{margin:10px 0 4px;font-size:20px}.mp-done p{margin:0 0 14px;color:var(--text-2)}
.center-row{justify-content:center}
.mp-hist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mp-hist li{padding:10px 12px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface)}
.mp-card .alert{margin-top:18px}
.price .pay-alt{font-weight:600}
.pay-methods{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:12px;font-size:13px;color:var(--text-3)}
.pay-methods img{width:20px;height:20px;border-radius:5px;vertical-align:-5px;margin-right:6px}
@media (prefers-reduced-motion:reduce){.mp-spin{animation:none}}
@media (max-width:480px){.mp-acct{flex-wrap:wrap}.mp-acct .copy-chip{margin-left:54px}.mp-num{font-size:18px}}
/* =====================================================================
   r48 — announcement bar colours (Admin → Settings → Announcement banner)
   ===================================================================== */
.sb{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;padding:9px 52px;font-size:13.5px;font-weight:500;line-height:1.45;text-align:center;color:#fff;overflow:hidden;isolation:isolate;transition:opacity .3s,transform .3s}
.sb.is-gone{opacity:0;transform:translateY(-100%)}
.sb-ic{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;flex:none}
.sb-ic svg{position:relative;width:16px;height:16px}
.sb-pulse{position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:.35;animation:sbPulse 1.6s ease-out infinite}
.sb-tag{flex:none;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.2);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.sb-text{min-width:0}
.sb-text .auto-link,.sb-text a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.sb-link{flex:none;display:inline-flex;align-items:center;gap:4px;padding:3px 11px;border-radius:999px;background:#fff;color:#0b1324!important;font-size:12.5px;font-weight:700;text-decoration:none!important;transition:transform .2s,box-shadow .2s}
.sb-link:hover{transform:translateY(-1px);box-shadow:0 6px 16px -8px rgba(0,0,0,.45)}
.sb-link svg{width:14px;height:14px;transition:transform .2s}.sb-link:hover svg{transform:translateX(2px)}
.sb-x{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:9px;background:transparent;color:inherit;opacity:.8;cursor:pointer}
.sb-x:hover{background:rgba(255,255,255,.18);opacity:1}
.sb-x svg{width:16px;height:16px}
.sb-info{background:linear-gradient(90deg,#0b57d0,#2f6fe4)}
.sb-success{background:linear-gradient(90deg,#067647,#17b26a)}
.sb-warning{background:linear-gradient(90deg,#f79009,#fdb022);color:#3b2300}
.sb-warning .sb-tag{background:rgba(59,35,0,.12)}.sb-warning .sb-x:hover{background:rgba(59,35,0,.1)}
.sb-danger{background:linear-gradient(90deg,#b42318,#f04438)}
.sb-danger::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.07) 0 14px,transparent 14px 28px);background-size:40px 40px;animation:sbStripes 1.4s linear infinite}
.sb-maintenance{background:linear-gradient(90deg,#3e1c96,#6938ef)}
.sb-promo{background:linear-gradient(90deg,#0b57d0,#7c5cff,#0b57d0);background-size:200% 100%;animation:sbShine 7s linear infinite}
.sb.preview-bar,.site-banner.preview-bar{background:#101828}
@keyframes sbPulse{0%{transform:scale(.55);opacity:.55}100%{transform:scale(1.7);opacity:0}}
@keyframes sbStripes{to{background-position:40px 0}}
@keyframes sbShine{to{background-position:200% 0}}
@media (max-width:640px){.sb{justify-content:flex-start;padding:9px 46px 9px 14px;text-align:left;font-size:13px}.sb-text{flex:1 1 60%}}
@media (prefers-reduced-motion:reduce){.sb-pulse,.sb-danger::before,.sb-promo{animation:none}.sb{transition:none}}
/* =====================================================================
   PUBLIC LANDING (r19) — premium developer-SaaS look in the SMSHub / Hizcore blue
   ===================================================================== */
.is-landing{--lx-navy:#071330;--lx-navy-2:#0b1d4a;--lx-ink:#0f172a;--lx-blue:#0b57d0;--lx-sky:#38bdf8;--lx-violet:#7c5cff}
.is-landing .site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(15,23,42,.06)}
.lx{overflow-x:clip}
.lx .container{max-width:calc(var(--site-max) + 80px + 2 * var(--gutter))}
.lx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 24px;border-radius:999px;font-weight:700;font-size:15px;letter-spacing:-.005em;text-decoration:none!important;border:1px solid transparent;transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}
.lx-btn:hover{transform:translateY(-2px)}.lx-btn:active{transform:translateY(0)}
.lx-btn-primary{color:#fff!important;background:linear-gradient(135deg,#0b57d0,#4f46e5);box-shadow:0 10px 24px -10px rgba(11,87,208,.8),inset 0 1px 0 rgba(255,255,255,.2)}
.lx-btn-primary:hover{box-shadow:0 16px 32px -12px rgba(79,70,229,.85),inset 0 1px 0 rgba(255,255,255,.25)}
.lx-btn-glass{color:#fff!important;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);backdrop-filter:blur(6px)}
.lx-btn-glass:hover{background:rgba(255,255,255,.16)}
.lx-btn-line{color:var(--lx-blue)!important;background:#fff;border-color:#c9d6ee}.lx-btn-line:hover{border-color:var(--lx-blue);box-shadow:0 8px 20px -12px rgba(11,87,208,.5)}
.lx-btn-white{color:var(--lx-navy)!important;background:#fff}.lx-btn-white:hover{box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
.lx-btn-block{width:100%}
.lx-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.lx-cta-c{justify-content:center}
.lx-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--lx-blue)}
.lx-eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
.lx-h2{font-family:var(--display);font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.035em;font-weight:800;margin-top:14px;color:var(--lx-ink)}
.lx-sub{font-size:clamp(16px,1.25vw,18px);line-height:1.65;color:#475569;margin-top:16px;max-width:640px}
.lx-head{max-width:760px;margin-bottom:48px}.lx-head-c{text-align:center;margin-left:auto;margin-right:auto}.lx-head-c .lx-sub{margin-left:auto;margin-right:auto}.lx-head-c .lx-eyebrow::after{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
.lx-sec{position:relative;padding:clamp(72px,9vw,128px) 0}
.lx-tint{background:linear-gradient(180deg,#f6f9ff,#eef3fd)}
.lx code{font-family:var(--mono)}
/* animated gradient mesh */
.lx-mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.lx-mesh i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;will-change:transform;animation:lxDrift 22s ease-in-out infinite alternate}
.lx-mesh .m1{width:52vw;height:52vw;max-width:820px;max-height:820px;left:-12%;top:-30%;background:radial-gradient(circle,#1d4ed8 0,transparent 65%)}
.lx-mesh .m2{width:44vw;height:44vw;max-width:700px;max-height:700px;right:-10%;top:-12%;background:radial-gradient(circle,#7c3aed 0,transparent 65%);animation-duration:26s;animation-delay:-6s}
.lx-mesh .m3{width:40vw;height:40vw;max-width:640px;max-height:640px;left:30%;bottom:-40%;background:radial-gradient(circle,#0ea5e9 0,transparent 65%);animation-duration:30s;animation-delay:-12s}
.lx-mesh-soft i{opacity:.4}
@keyframes lxDrift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6%,4%,0) scale(1.08)}100%{transform:translate3d(-4%,7%,0) scale(.96)}}
/* hero */
.lx-hero{position:relative;isolation:isolate;background:radial-gradient(120% 90% at 50% 0,#0d2563 0,var(--lx-navy) 58%);color:#e2e8f0;padding:clamp(56px,8vw,112px) 0 0;overflow:hidden}
.lx-gridlines{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%)}
.lx-hero .lx-mesh{z-index:-1}
.lx-hero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.lx-badge{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#e2e8f0!important;font-size:13px;font-weight:600;text-decoration:none!important;transition:background .2s}
.lx-badge:hover{background:rgba(255,255,255,.12)}
.lx-badge img{width:26px;height:26px;border-radius:8px;background:#fff;padding:2px}
.lx-badge b{font-weight:600;color:#93c5fd;font-size:12px;padding-left:10px;border-left:1px solid rgba(255,255,255,.2)}
.lx-h1{font-family:var(--display);font-size:clamp(40px,6vw,80px);line-height:1.02;letter-spacing:-.045em;font-weight:800;color:#fff;margin-top:26px}
.lx-grad{background:linear-gradient(100deg,#60a5fa 0%,#a78bfa 45%,#38bdf8 90%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:lxShine 8s linear infinite}
@keyframes lxShine{to{background-position:200% center}}
.lx-lead{font-size:clamp(16.5px,1.35vw,19px);line-height:1.7;color:#cbd5e1;margin-top:24px;max-width:600px}
.lx-proof{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;padding:0;margin:30px 0 0;font-size:14px;color:#cbd5e1}
.lx-proof li{display:inline-flex;align-items:center;gap:7px}.lx-proof svg{color:#4ade80}
.lx-hero-copy>*{animation:lxUp .8s var(--ease) both}
.lx-hero-copy>:nth-child(2){animation-delay:.08s}.lx-hero-copy>:nth-child(3){animation-delay:.16s}.lx-hero-copy>:nth-child(4){animation-delay:.24s}.lx-hero-copy>:nth-child(5){animation-delay:.32s}
.lx-hero-art{position:relative;animation:lxUp 1s .2s var(--ease) both;padding:24px 0 40px}
@keyframes lxUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.lx-term,.lx-code{position:relative;background:rgba(9,17,40,.82);border:1px solid rgba(148,163,184,.18);border-radius:20px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(10px);overflow:hidden}
.lx-term-h,.lx-code-h{display:flex;align-items:center;gap:4px;padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.14);background:rgba(255,255,255,.02)}
.lx-term-h .dots{display:flex;gap:6px;margin-right:10px}.lx-term-h .dots i{width:11px;height:11px;border-radius:50%;background:#334155}.lx-term-h .dots i:nth-child(1){background:#f87171}.lx-term-h .dots i:nth-child(2){background:#fbbf24}.lx-term-h .dots i:nth-child(3){background:#4ade80}
.lx-term .tab,.lx-code .tab{border:0;background:transparent;color:#94a3b8;font-size:12.5px;font-weight:600;height:30px;padding:0 12px;border-radius:8px;cursor:pointer;font-family:var(--font)}
.lx-term .tab:hover,.lx-code .tab:hover{color:#e2e8f0;background:rgba(255,255,255,.05)}
.lx-term .tab.is-active,.lx-code .tab.is-active{color:#fff;background:rgba(96,165,250,.16)}
.lx-copy{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:transparent;color:#cbd5e1;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.lx-copy:hover{background:rgba(255,255,255,.08);color:#fff}
.lx-term pre,.lx-code pre{margin:0;padding:22px 24px;font-size:13.5px;line-height:1.75;color:#e2e8f0;overflow:auto;white-space:pre;tab-size:2}
.lx-code pre{min-height:330px;max-height:440px}
.lx .tok-k{color:#c4b5fd}.lx .tok-s{color:#86efac}.lx .tok-p{color:#93c5fd}.lx .tok-n{color:#fca5a5}.lx .tok-c{color:#64748b;font-style:italic}.lx .tok-v{color:#fcd34d}
.lx-typing .ln{display:inline-block;min-width:1px;animation:lxType .5s var(--ease) both}
.lx-typing .ln:nth-child(1){animation-delay:.5s}.lx-typing .ln:nth-child(2){animation-delay:.65s}.lx-typing .ln:nth-child(3){animation-delay:.8s}.lx-typing .ln:nth-child(4){animation-delay:.9s}
.lx-typing .ln:nth-child(5){animation-delay:1s}.lx-typing .ln:nth-child(6){animation-delay:1.15s}.lx-typing .ln:nth-child(7){animation-delay:1.3s}.lx-typing .ln:nth-child(8){animation-delay:1.45s}
@keyframes lxType{from{opacity:0;transform:translateX(-8px);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
.lx-toast{position:absolute;display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:14px;background:rgba(255,255,255,.96);color:var(--lx-ink);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);font-size:13px;animation:lxPop .6s var(--ease) both,lxFloat 6s ease-in-out infinite}
.lx-toast strong{display:block;font-size:13px}.lx-toast small{color:#64748b;font-size:11.5px}
.lx-toast-a{left:-18px;bottom:6px;animation-delay:1.8s,2.4s}.lx-toast-b{left:-22px;top:2px;animation-delay:2.2s,3s}
.lx-ic{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#e0e7ff;color:#4f46e5}
.lx-dot{width:10px;height:10px;border-radius:50%;flex:none;background:#94a3b8}.lx-dot.ok{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.18)}
@keyframes lxPop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes lxFloat{50%{translate:0 -6px}}
.lx-phone{position:absolute;right:-24px;top:150px;width:210px;padding:14px 12px 90px;border-radius:30px;background:#0b1224;border:1px solid rgba(148,163,184,.25);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);display:none}
.lx-phone-bar{display:flex;justify-content:space-between;font-size:11px;color:#94a3b8;padding:0 8px 10px}
.lx-sms{background:#1e293b;color:#e2e8f0;border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:12.5px;line-height:1.45;margin-top:8px}.lx-sms b{display:block;font-size:11.5px;color:#93c5fd;margin-bottom:2px}.lx-sms u{text-decoration:none;font-weight:700;color:#fff}
.lx-sms-2{font-family:'Noto Sans Ethiopic',var(--font)}
.lx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(40px,6vw,80px);border-top:1px solid rgba(148,163,184,.16)}
.lx-stats div{padding:26px 8px 34px;text-align:center;border-left:1px solid rgba(148,163,184,.12)}.lx-stats div:first-child{border-left:0}
.lx-stats strong{display:block;font-family:var(--display);font-size:clamp(22px,2.4vw,32px);font-weight:800;letter-spacing:-.03em;color:#fff}
.lx-stats span{font-size:13px;color:#94a3b8}
/* reveal */
.lx-rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
.lx-rv.is-in{opacity:1;transform:none}
/* features */
.lx-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.lx-card{position:relative;padding:28px 26px 30px;border-radius:22px;background:#fff;border:1px solid #e5eaf3;box-shadow:0 1px 2px rgba(15,23,42,.04);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s,opacity .7s var(--ease)}
.lx-card::before,.lx-price::before{content:"";position:absolute;inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0),rgba(11,87,208,.09),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}
.lx-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -26px rgba(15,23,42,.35);border-color:#c9d8f5}
.lx-card:hover::before,.lx-price:hover::before{opacity:1}
.lx-card-ic{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0b57d0,#6d5dfc);box-shadow:0 10px 20px -10px rgba(11,87,208,.8);transition:transform .35s var(--ease)}
.lx-card:hover .lx-card-ic{transform:rotate(-6deg) scale(1.06)}
.lx-card-ic svg{width:22px;height:22px}
.lx-card h3{font-size:17.5px;letter-spacing:-.02em;margin-top:20px;color:var(--lx-ink)}
.lx-card p{font-size:14.5px;line-height:1.65;color:#5b6b82;margin-top:8px}
/* developers */
.lx-dark{background:var(--lx-navy);color:#cbd5e1;overflow:hidden;isolation:isolate}
.lx-dark .lx-mesh{z-index:-1}
.lx-dark .lx-h2{color:#fff}.lx-dark .lx-sub{color:#cbd5e1}.lx-dark .lx-eyebrow{color:#93c5fd}
.lx-dark .lx-sub code,.lx-checks code{background:rgba(255,255,255,.08);padding:1px 7px;border-radius:6px;font-size:.88em;color:#e2e8f0}
.lx-dev{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center}
.lx-endpoint{display:inline-flex;align-items:center;gap:12px;margin-top:28px;padding:8px 16px 8px 8px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(148,163,184,.2);max-width:100%;overflow:hidden}
.lx-endpoint span{font-size:12px;font-weight:800;letter-spacing:.06em;color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);padding:5px 10px;border-radius:9px}
.lx-endpoint code{font-size:14px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lx-checks{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;font-size:15px}
.lx-checks li{display:flex;gap:10px;align-items:center}.lx-checks svg{color:#4ade80}
.lx-code-f{display:flex;align-items:center;gap:10px;padding:12px 22px;border-top:1px solid rgba(148,163,184,.14);font-family:var(--mono);font-size:12.5px;color:#94a3b8;background:rgba(255,255,255,.02)}
/* timeline */
.lx-steps{--fill:0;position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.lx-steps::before,.lx-steps::after{content:"";position:absolute;top:31px;left:10%;right:10%;height:3px;border-radius:3px;background:#e2e8f0}
.lx-steps::after{background:linear-gradient(90deg,#0b57d0,#7c5cff);transform-origin:left;transform:scaleX(var(--fill));transition:transform .2s linear}
.lx-step{position:relative;z-index:1;text-align:center;padding:0 6px}
.lx-step-n{position:relative;width:64px;height:64px;margin:0 auto;border-radius:20px;display:grid;place-items:center;background:#fff;border:1px solid #dbe4f3;color:var(--lx-blue);box-shadow:0 12px 26px -16px rgba(11,87,208,.55);transition:transform .3s var(--ease),background .3s,color .3s}
.lx-step:hover .lx-step-n{transform:translateY(-4px);background:var(--lx-blue);color:#fff}
.lx-step-n svg{width:24px;height:24px}
.lx-step-n b{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:var(--lx-ink);color:#fff;font-size:12px;display:grid;place-items:center;border:2px solid #fff}
.lx-step h3{font-size:16.5px;margin-top:20px;letter-spacing:-.02em;color:var(--lx-ink)}
.lx-step p{font-size:14px;line-height:1.6;color:#5b6b82;margin-top:8px}
/* pricing */
.lx-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;align-items:stretch}
.lx-price{position:relative;display:flex;flex-direction:column;padding:30px 26px 26px;border-radius:24px;background:#fff;border:1px solid #e2e8f3;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,opacity .7s var(--ease)}
.lx-price:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(15,23,42,.35)}
.lx-price.is-featured{background:linear-gradient(160deg,#0b1d4a,#071330);border-color:transparent;color:#cbd5e1;box-shadow:0 30px 60px -28px rgba(11,87,208,.7)}
.lx-price.is-featured .lx-price-q,.lx-price.is-featured .lx-price-a{color:#fff}.lx-price.is-featured li{color:#cbd5e1}
.lx-price-q{font-weight:700;color:var(--lx-ink);font-size:15px}
.lx-price-a{font-family:var(--display);font-size:clamp(34px,3.2vw,44px);font-weight:800;letter-spacing:-.04em;color:var(--lx-ink);margin-top:14px;line-height:1}
.lx-price-a span{font-size:15px;font-weight:600;margin-left:6px;color:#94a3b8;letter-spacing:0}
.lx-price-u{font-size:13.5px;color:#64748b;margin-top:8px}.lx-price.is-featured .lx-price-u{color:#93c5fd}
.lx-price ul{list-style:none;padding:0;margin:22px 0 26px;display:grid;gap:10px;font-size:14px;color:#475569;flex:1}
.lx-price li{display:flex;gap:8px;align-items:center}.lx-price li svg{color:#16a34a}
.lx-ribbon,.lx-save{position:absolute;top:22px;right:22px;font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:999px}
.lx-ribbon{background:linear-gradient(135deg,#60a5fa,#a78bfa);color:#0b1d4a}.lx-save{background:#dcfce7;color:#15803d}
.lx-note{text-align:center;color:#64748b;font-size:14px;margin-top:30px}
/* trust */
.lx-trust{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start}
.lx-trust .lx-head{margin-bottom:0;position:sticky;top:110px}
.lx-trust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lx-trust-item{display:flex;gap:16px;padding:22px;border-radius:20px;border:1px solid #e5eaf3;background:linear-gradient(180deg,#fff,#fafcff);transition:border-color .3s,box-shadow .3s,opacity .7s var(--ease),transform .7s var(--ease)}
.lx-trust-item:hover{border-color:#c9d8f5;box-shadow:0 18px 40px -26px rgba(15,23,42,.3)}
.lx-trust-item>span{flex:none;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#ecf3fe;color:var(--lx-blue)}
.lx-trust-item h3{font-size:15.5px;color:var(--lx-ink);letter-spacing:-.015em}.lx-trust-item p{font-size:14px;line-height:1.6;color:#5b6b82;margin-top:5px}
/* final CTA */
.lx-sec-cta{padding-top:0}
.lx-final{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:clamp(56px,7vw,96px) clamp(20px,5vw,72px);border-radius:32px;background:radial-gradient(100% 120% at 50% 0,#123a9c 0,#071330 70%);color:#cbd5e1}
.lx-final .lx-mesh{z-index:-1}
.lx-final .lx-h2{color:#fff;margin-top:22px}.lx-final .lx-sub{color:#cbd5e1;margin-left:auto;margin-right:auto}
.lx-final-logo{margin:0 auto;width:64px;height:64px;border-radius:18px;background:#fff;padding:6px;box-shadow:0 18px 40px -16px rgba(0,0,0,.6)}
.lx-final-app{display:flex;justify-content:center;margin-top:26px}
/* /app — Android app page */
.ap-hero{padding-bottom:clamp(48px,7vw,96px)}
.ap-soon{display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 13px;border-radius:999px;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.35);color:#bbf7d0;font-size:13px;font-weight:700;letter-spacing:.01em}
.ap-pulse{position:relative;width:9px;height:9px;border-radius:50%;background:#4ade80;flex:none}
.ap-pulse::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #4ade80;animation:apPing 1.8s ease-out infinite}
@keyframes apPing{0%{opacity:.9;transform:scale(.5)}100%{opacity:0;transform:scale(1.7)}}
.ap-note{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:14px;color:#94a3b8}.ap-note svg{color:#fbbf24}
.ap-art{position:relative;display:grid;place-items:center;min-height:600px;padding:20px 0}
.ap-glow{position:absolute;width:440px;height:440px;max-width:100%;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.42),transparent 65%);filter:blur(24px)}
.ap-phone{position:relative;width:286px;height:584px;border-radius:48px;padding:12px;background:linear-gradient(160deg,#1e293b,#0b1224);box-shadow:0 0 0 2px rgba(148,163,184,.28),0 50px 90px -30px rgba(0,0,0,.85),inset 0 0 0 1px rgba(255,255,255,.07);animation:apFloat 7s ease-in-out infinite}
@keyframes apFloat{50%{transform:translateY(-10px)}}
.ap-notch{position:absolute;top:21px;left:50%;width:88px;height:24px;margin-left:-44px;border-radius:14px;background:#020617;z-index:2}
.ap-screen{position:relative;height:100%;border-radius:37px;overflow:hidden;background:#f5f7fc;color:#0f172a;padding:52px 16px 78px}
.ap-status{position:absolute;top:16px;left:28px;right:28px;display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:#0f172a}
.ap-top{display:flex;justify-content:space-between;align-items:center}
.ap-top small{display:block;font-size:11px;color:#64748b}.ap-top strong{font-size:17px;letter-spacing:-.02em}
.ap-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:14px;background:linear-gradient(135deg,#0b57d0,#7c5cff)}
.ap-balance{margin-top:14px;padding:16px;border-radius:22px;color:#fff;background:linear-gradient(140deg,#0b57d0,#4f46e5 60%,#7c3aed);box-shadow:0 18px 30px -18px rgba(79,70,229,.9)}
.ap-balance small{font-size:11px;opacity:.85}
.ap-balance strong{display:block;font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.ap-bars{display:flex;align-items:flex-end;gap:5px;height:40px;margin-top:10px}
.ap-bars i{flex:1;height:var(--h);border-radius:4px 4px 2px 2px;background:rgba(255,255,255,.5);transform-origin:bottom;animation:apGrow .9s var(--ease) both;animation-delay:var(--d)}
.ap-bars i:last-child{background:#fff}
@keyframes apGrow{from{transform:scaleY(0)}}
.ap-actions{display:flex;gap:8px;margin-top:12px}
.ap-actions span{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;height:34px;border-radius:12px;background:rgba(255,255,255,.17);font-size:11.5px;font-weight:700;white-space:nowrap}
.ap-actions span:last-child{background:#fff;color:#0b57d0}
.ap-actions svg{width:14px;height:14px}
.ap-list-h{margin:16px 2px 4px;font-size:12px;font-weight:800;color:#475569}
.ap-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.06);margin-top:7px}
.ap-row>div{flex:1;min-width:0}.ap-row b{display:block;font-size:12px}
.ap-row small{display:block;font-size:10.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font),'Noto Sans Ethiopic'}
.ap-row em{font-style:normal;font-size:10px;font-weight:800;color:#15803d;background:#dcfce7;padding:3px 8px;border-radius:999px}
.ap-dot{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#ecf3fe;color:#0b57d0;flex:none}.ap-dot svg{width:14px;height:14px}
.ap-tabs{position:absolute;left:10px;right:10px;bottom:10px;height:56px;border-radius:22px;background:#fff;box-shadow:0 10px 24px -14px rgba(15,23,42,.45);display:flex;align-items:center;justify-content:space-around;color:#94a3b8}
.ap-tabs svg{width:18px;height:18px}
.ap-tabs .is-on{color:#fff;background:#0b57d0;width:42px;height:32px;border-radius:999px;display:grid;place-items:center}
.ap-push{position:absolute;top:34px;left:50%;width:308px;margin-left:-154px;display:flex;gap:11px;align-items:center;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.97);color:#0f172a;box-shadow:0 24px 50px -18px rgba(0,0,0,.65);z-index:3;animation:apPush 7s var(--ease) 1.2s infinite both}
.ap-push img{width:36px;height:36px;border-radius:10px;flex:none;object-fit:contain}
.ap-push b{display:block;font-size:12.5px}.ap-push b small{font-weight:600;color:#94a3b8;margin-left:4px}
.ap-push span{display:block;font-size:12px;color:#334155;line-height:1.35;margin-top:1px}
@keyframes apPush{0%{opacity:0;transform:translateY(-22px) scale(.96)}9%,72%{opacity:1;transform:none}84%,100%{opacity:0;transform:translateY(-22px) scale(.96)}}
.ap-chip{position:absolute;display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:14px;background:rgba(255,255,255,.96);color:var(--lx-ink);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);z-index:3;animation:lxPop .6s var(--ease) both,lxFloat 6s ease-in-out infinite}
.ap-chip strong{display:block;font-size:13px}.ap-chip small{display:block;color:#64748b;font-size:11.5px}
.ap-chip-a{left:-6px;top:52%;animation-delay:1.8s,2.4s}.ap-chip-b{right:-6px;bottom:70px;animation-delay:2.3s,3s}
.ap-features{grid-template-columns:repeat(3,minmax(0,1fr))}
.ap-steps{grid-template-columns:repeat(3,minmax(0,1fr));max-width:980px;margin:0 auto}
.ap-steps::before,.ap-steps::after{left:17%;right:17%}
.play-badge.is-soon small{color:#fbbf24;opacity:1}
.ap-play-live{height:50px}
@media (max-width:1100px){.ap-features{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-steps::before,.ap-steps::after{display:none}}
@media (max-width:960px){.ap-art{min-height:620px}}
@media (max-width:640px){.ap-features,.ap-steps{grid-template-columns:1fr}.ap-art{min-height:600px}.ap-chip-a{display:none}.ap-chip-b{right:0;bottom:24px}.ap-push{width:280px;margin-left:-140px;top:20px}.ap-phone{width:270px;height:560px}}
/* responsive — phones to ultra-wide */
@media (min-width:1200px){.lx-phone{display:block}.lx-hero-art .lx-term{margin-right:170px}.lx-hero-art{padding-bottom:70px}}
@media (min-width:1800px){.lx-h1{font-size:88px}.lx-features{gap:22px}}
@media (max-width:1100px){.lx-features{grid-template-columns:repeat(2,minmax(0,1fr))}.lx-steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}.lx-steps::before,.lx-steps::after{display:none}}
@media (max-width:960px){.lx-hero-in,.lx-dev,.lx-trust{grid-template-columns:1fr}.lx-hero-art{max-width:620px;width:100%;margin:0 auto}.lx-trust .lx-head{position:static}.lx-stats{grid-template-columns:repeat(2,1fr)}.lx-stats div:nth-child(3){border-left:0}.lx-stats div{border-top:1px solid rgba(148,163,184,.12)}}
@media (max-width:640px){.lx-features,.lx-trust-grid{grid-template-columns:1fr}.lx-cta .lx-btn{flex:1 1 100%}.lx-toast-b{display:none}.lx-toast-a{left:auto;right:8px;bottom:-6px}.lx-copy span{display:none}.lx-term .tab,.lx-code .tab{padding:0 9px}.lx-term pre{font-size:12px;padding:18px}.lx-code pre{font-size:12px;min-height:0}
  .lx-steps{grid-template-columns:1fr;gap:0}.lx-step{display:grid;grid-template-columns:64px 1fr;gap:4px 18px;text-align:left;padding:0 0 30px}.lx-step-n{grid-row:span 2;margin:0}.lx-step h3{margin-top:6px}
  .lx-step:not(:last-child)::after{content:"";position:absolute;left:31px;top:70px;bottom:6px;width:2px;background:linear-gradient(#c7d7fb,#e2e8f0)}.lx-badge b{display:none}}
@media (prefers-reduced-motion:reduce){.lx *,.lx *::before,.lx *::after{animation:none!important;transition:none!important}.lx-rv{opacity:1;transform:none}}

/* =====================================================================
   HOME (r46, top part from r47) — light hero with a phone, live "try it", bento product grid, steps, developers,
   pricing, trust, FAQ. The hero and networks strip use the lp- styles below.
   ===================================================================== */
.is-nx{--nx-ink:#070d1f;--nx-ink-2:#0e1730;--nx-text:#0b1324;--nx-text-2:#475467;--nx-text-3:#667085;--nx-line:#e6e9f0;--nx-soft:#f6f8fc;--nx-blue:#0b57d0;--nx-blue-2:#2f6fe4;background:#fff}
.nx{overflow-x:clip;color:var(--nx-text)}
.nx .container,.is-nx .site-header .container{max-width:calc(var(--site-max) + 2 * var(--gutter))}
.nx code,.nx-mono{font-family:var(--mono)}
.nx [id]{scroll-margin-top:84px}

/* buttons */
.nx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 24px;border-radius:14px;font-weight:700;font-size:15px;letter-spacing:-.01em;text-decoration:none!important;border:1px solid transparent;transition:transform .18s var(--ease),box-shadow .18s,background .18s,border-color .18s;white-space:nowrap;cursor:pointer}
.nx-btn:hover{transform:translateY(-1px)}.nx-btn:active{transform:none}
.nx-btn-primary{background:linear-gradient(180deg,#3477ff,#0b57d0);color:#fff!important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 26px -10px rgba(47,111,228,.9)}
.nx-btn-primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 16px 34px -12px rgba(47,111,228,1)}
.nx-btn-glass{background:rgba(255,255,255,.07);color:#fff!important;border-color:rgba(255,255,255,.2)}.nx-btn-glass:hover{background:rgba(255,255,255,.14)}
.nx-btn-white{background:#fff;color:var(--nx-ink)!important}.nx-btn-white:hover{box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
.nx-btn-line{background:#fff;color:var(--nx-blue)!important;border-color:#cddaf3}.nx-btn-line:hover{border-color:var(--nx-blue)}
.nx-btn-block{width:100%}
.nx-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* ---------- sections ---------- */
.nx-sec{position:relative;padding:clamp(72px,8.5vw,124px) 0}
.nx-soft{background:var(--nx-soft)}
.nx-head{max-width:660px}
.nx-head-c{text-align:center;margin:0 auto}
.nx-head-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px 64px;align-items:end;max-width:none}
.nx-head-split .nx-sub{margin:0 0 6px}
.nx-kicker{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--nx-blue)}
.nx-kicker::before{content:'';width:18px;height:2px;border-radius:2px;background:currentColor}
.nx-head-c .nx-kicker::after{content:'';width:18px;height:2px;border-radius:2px;background:currentColor}
.nx-kicker.is-dark{color:#7cc4ff}
.nx-h2{font-family:var(--display);font-weight:800;font-size:clamp(30px,4vw,52px);line-height:1.06;letter-spacing:-.042em;margin:16px 0 0;color:var(--nx-text)}
.nx-sub{font-size:clamp(15.5px,1.15vw,18px);line-height:1.62;color:var(--nx-text-2);margin:16px 0 0}
.nx-head-c .nx-sub{margin-left:auto;margin-right:auto;max-width:640px}
.nx-sub a{font-weight:600}

/* reveal (only when the script runs) */
.nx-js .nx-rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
.nx-js .nx-rv.is-in{opacity:1;transform:none}

/* ---------- try it ---------- */
.nx-demo{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,64px);align-items:center;margin-top:52px}
.nx-console{background:#fff;border:1px solid var(--nx-line);border-radius:24px;box-shadow:0 40px 70px -48px rgba(15,23,42,.45),0 2px 6px rgba(15,23,42,.04);overflow:hidden}
.nx-console-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--nx-line);background:#fbfcfe}
.nx-seg{display:inline-flex;padding:4px;border-radius:12px;background:#eef1f6}
.nx-seg button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;border:0;background:none;font:inherit;font-weight:600;font-size:13.5px;color:var(--nx-text-2);cursor:pointer}
.nx-seg button.is-on{background:#fff;color:var(--nx-text);box-shadow:0 1px 3px rgba(15,23,42,.14)}
.nx-safe{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--nx-text-3)}.nx-safe i{width:7px;height:7px;border-radius:50%;background:#22c55e}
.nx-console-b{padding:20px 22px 22px}
.nx-l{display:block;font-size:12.5px;font-weight:700;color:var(--nx-text-2);margin:18px 0 8px}.nx-console-b>.nx-l:first-child{margin-top:0}
.nx-in{width:100%;border:1px solid #d9dfea;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.4;color:var(--nx-text);background:#fff;font-family:var(--font);transition:border-color .15s,box-shadow .15s}
.nx-in:focus{outline:none;border-color:var(--nx-blue);box-shadow:0 0 0 4px rgba(11,87,208,.12)}
textarea.nx-in{resize:vertical;min-height:100px;line-height:1.5}
.nx-to{display:flex;gap:10px;align-items:stretch}.nx-to .nx-in{flex:1;min-width:0}
.nx-net{display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-radius:12px;background:#effaf2;border:1px solid #cdeed6;font-size:13px;white-space:nowrap;transition:background .2s,border-color .2s}
.nx-net i{width:8px;height:8px;border-radius:50%;background:#16a34a}.nx-net b{font-weight:700}.nx-net em{font-style:normal;color:var(--nx-text-3)}
.nx-net[data-net=safaricom]{background:#fff1f3;border-color:#fecdd6}.nx-net[data-net=safaricom] i{background:#e11d48}
.nx-net[data-net=typing]{background:var(--nx-soft);border-color:var(--nx-line)}.nx-net[data-net=typing] i{background:#94a3b8}
.nx-net[data-net=bad]{background:#fff7ed;border-color:#fed7aa}.nx-net[data-net=bad] i{background:#f97316}
.nx-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.nx-quick button{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--nx-line);background:#fff;font:inherit;font-size:12.5px;font-weight:600;color:var(--nx-text-2);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.nx-quick button:hover{border-color:#b9c6dc;color:var(--nx-text);background:var(--nx-soft)}
.nx-meter{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--nx-text-3);margin-top:16px}
#hxCount{font-family:var(--mono);font-weight:600;color:var(--nx-text-2)}#hxCount.is-over{color:#dc2626}
.nx-track{height:5px;border-radius:999px;background:#edf0f5;margin-top:8px;overflow:hidden}
.nx-track span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#2f6fe4,#22d3ee);transition:width .25s var(--ease)}.nx-track span.is-over{background:#dc2626}
.nx-sig{display:flex;gap:8px;align-items:flex-start;margin:16px 0 0;padding:11px 13px;border-radius:12px;background:#f3f7ff;color:var(--nx-text-2);font-size:13px;line-height:1.45}
.nx-sig svg{flex:none;margin-top:2px;color:var(--nx-blue)}
.nx-console-api{padding:0;background:#0b1222}
.nx-pre{margin:0;padding:18px 20px;font-family:var(--mono);font-size:12.8px;line-height:1.68;color:#d6e2ff;white-space:pre-wrap;word-break:break-word;background:#0b1222}
.nx-pre-res{border-top:1px solid rgba(255,255,255,.08);background:#0d1630}
.nx-device{justify-self:center;width:288px;border-radius:46px;padding:11px;background:linear-gradient(155deg,#2a3449,#0b1020 45%,#1a2236);box-shadow:0 46px 80px -40px rgba(15,23,42,.6),0 0 0 1px rgba(15,23,42,.08)}
.nx-device-in{border-radius:36px;background:#f3f5fa;min-height:460px;padding:12px 14px 20px;color:var(--nx-text)}
.nx-device .nx-ls-top{color:var(--nx-text)}
.nx-thread-h{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 0;border-bottom:1px solid #e1e6ef;margin:0 -14px 16px}
.nx-av{width:46px;height:46px;border-radius:50%;background:linear-gradient(180deg,#a3aec3,#6b778f);color:#fff;display:grid;place-items:center}
.nx-thread-h b{font-size:14px}.nx-thread-h small{font-size:11.5px;color:#6b7280}
.nx-bubble{max-width:90%;padding:11px 14px;border-radius:20px 20px 20px 6px;background:#e5e9f1;color:var(--nx-text);font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.nx-delivered{display:flex;align-items:center;gap:5px;margin:8px 0 0 4px;font-size:11.5px;color:#6b7280;opacity:0;transition:opacity .3s}.nx-delivered.is-on{opacity:1}.nx-delivered svg{color:#16a34a}

/* ---------- product bento ---------- */
.nx-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:52px}
.nx-card{position:relative;background:#fff;border:1px solid var(--nx-line);border-radius:22px;padding:26px;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s,opacity .7s var(--ease)}
.nx-card:hover{transform:translateY(-3px);box-shadow:0 26px 50px -34px rgba(15,23,42,.4);border-color:#d5ddeb}
.nx-card h3{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.02em;margin:18px 0 0;color:var(--nx-text)}
.nx-card p{color:var(--nx-text-2);font-size:14.5px;line-height:1.55;margin:8px 0 0}
.nx-c-otp{grid-column:span 4}.nx-c-am{grid-column:span 2}.nx-c-bulk,.nx-c-orders,.nx-c-hooks{grid-column:span 2}
.nx-c-where{grid-column:span 6;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic h chips" "ic p chips";column-gap:18px;align-items:center}
.nx-c-where .nx-ic{grid-area:ic}.nx-c-where h3{grid-area:h;margin:0}.nx-c-where p{grid-area:p;margin:4px 0 0}.nx-c-where .nx-where{grid-area:chips}
.nx-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:13px}
.nx-ic.is-blue{background:#e8f0ff;color:#0b57d0}.nx-ic.is-amber{background:#fff3d6;color:#b45309}.nx-ic.is-violet{background:#f0ebff;color:#6d4aff}
.nx-ic.is-green{background:#e5f6ea;color:#15803d}.nx-ic.is-teal{background:#dff6f5;color:#0f766e}.nx-ic.is-rose{background:#ffe8ee;color:#be123c}
.nx-otp{display:flex;gap:10px;margin-top:24px}
.nx-otp span{width:56px;height:68px;border-radius:15px;border:1px solid #d6e0f2;background:linear-gradient(180deg,#fff,#f3f7ff);display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:30px;color:var(--nx-text);box-shadow:0 1px 0 #fff inset,0 8px 18px -12px rgba(11,87,208,.55)}
.nx-otp span:nth-child(4){margin-left:10px}
.nx-otp-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;font-size:12.5px;color:var(--nx-text-3)}
.nx-otp-meta span{display:inline-flex;align-items:center;gap:6px}.nx-otp-meta span:last-child svg{color:#16a34a}
.nx-am{margin-top:22px;font-size:27px;font-weight:600;line-height:1.4;background:linear-gradient(90deg,#b45309,#f59e0b);-webkit-background-clip:text;background-clip:text;color:transparent}
.nx-camp{margin-top:18px;padding:14px;border-radius:14px;background:var(--nx-soft);border:1px solid var(--nx-line)}
.nx-camp-h{display:flex;justify-content:space-between;gap:8px;font-size:13px}.nx-camp-h small{color:var(--nx-text-3)}
.nx-camp-bar{height:7px;border-radius:999px;background:#e4e8f1;margin:12px 0 8px;overflow:hidden}.nx-camp-bar span{display:block;width:77%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d4aff,#a78bfa)}
.nx-camp-f{display:flex;justify-content:space-between;font-size:12px;color:var(--nx-text-3)}
.nx-steps-mini{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.nx-steps-mini li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--nx-text-3)}
.nx-steps-mini li::before{content:'';flex:none;width:18px;height:18px;border-radius:50%;border:2px solid #cfd6e3;box-sizing:border-box}
.nx-steps-mini li.is-done{color:var(--nx-text);font-weight:600}.nx-steps-mini li.is-done::before{border-color:#16a34a;background:#16a34a;box-shadow:inset 0 0 0 3px #fff}
.nx-log{margin-top:18px;border-radius:14px;border:1px solid var(--nx-line);overflow:hidden;font-family:var(--mono);font-size:12.5px}
.nx-log div{display:flex;align-items:center;gap:10px;padding:9px 12px}.nx-log div+div{border-top:1px solid var(--nx-line)}
.nx-log i{width:7px;height:7px;border-radius:50%}.nx-log i.ok{background:#16a34a}.nx-log i.rf{background:#f59e0b}
.nx-log span{margin-left:auto;font-family:var(--font);font-size:11.5px;font-weight:600;color:var(--nx-text-3)}
.nx-where{display:flex;flex-wrap:wrap;gap:8px}
.nx-where span{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 15px;border-radius:12px;background:var(--nx-soft);border:1px solid var(--nx-line);font-weight:600;font-size:13.5px;color:var(--nx-text)}

/* ---------- how it works ---------- */
.nx-flow{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;position:relative}
.nx-flow::before{content:'';position:absolute;top:28px;left:17%;right:17%;height:2px;background:repeating-linear-gradient(90deg,#c6d3ee 0 8px,transparent 8px 16px)}
.nx-flow li{position:relative;text-align:center;padding:0 10px}
.nx-flow-n{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;margin:0 auto;border-radius:18px;font-family:var(--display);font-weight:800;font-size:22px;color:#fff;background:linear-gradient(140deg,#3d7bff,#0b57d0);box-shadow:0 16px 30px -14px rgba(11,87,208,.85),0 0 0 8px #fff}
.nx-flow h3{font-family:var(--display);font-size:20px;letter-spacing:-.02em;margin:22px 0 0}
.nx-flow p{color:var(--nx-text-2);font-size:15px;line-height:1.58;margin:8px auto 0;max-width:330px}

/* ---------- developers ---------- */
.nx-dark{background:var(--nx-ink);color:#fff;overflow:hidden}
.nx-dark .nx-h2{color:#fff}.nx-dark .nx-sub{color:rgba(255,255,255,.66)}
.nx-dark-glow{position:absolute;right:-10%;bottom:-45%;width:80%;height:90%;background:radial-gradient(closest-side,rgba(47,111,228,.36),rgba(47,111,228,0));pointer-events:none}
.nx-dev{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(32px,5vw,72px);align-items:center}
.nx-devlist{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:16px}
.nx-devlist li{display:flex;gap:12px;align-items:flex-start}.nx-devlist svg{flex:none;margin-top:3px;color:#7cc4ff}
.nx-devlist b{display:block;font-size:15px;color:#fff}.nx-devlist span{font-size:14px;line-height:1.5;color:rgba(255,255,255,.62)}
.nx-devlist code{font-size:12.5px;padding:1px 6px;border-radius:6px;background:rgba(255,255,255,.08);color:#cfe0ff}
.nx-code{border-radius:22px;background:#0b1222;border:1px solid rgba(255,255,255,.1);box-shadow:0 44px 90px -44px rgba(0,0,0,.85),0 0 0 1px rgba(47,111,228,.14);overflow:hidden}
.nx-code-h{display:flex;align-items:center;gap:4px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02);overflow-x:auto}
.nx-tl{display:flex;gap:6px;margin-right:12px}.nx-tl i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.nx-tl i:nth-child(2){background:#febc2e}.nx-tl i:nth-child(3){background:#28c840}
.nx-code-h .tab{height:30px;padding:0 12px;border-radius:8px;border:0;background:none;font:inherit;font-weight:600;font-size:13px;color:rgba(255,255,255,.6);cursor:pointer;white-space:nowrap}
.nx-code-h .tab:hover{color:#fff}.nx-code-h .tab.is-active{background:rgba(255,255,255,.1);color:#fff}
.nx-copy{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:none;font:inherit;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.78);cursor:pointer}
.nx-copy:hover{background:rgba(255,255,255,.08);color:#fff}
.nx-endpoint{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;color:#cfe0ff;overflow-x:auto}
.nx-endpoint span{font-family:var(--mono);font-weight:700;font-size:11.5px;color:#052e16;background:#4ade80;border-radius:6px;padding:2px 7px}
.nx-code pre{margin:0;padding:20px;font-family:var(--mono);font-size:13px;line-height:1.7;color:#d6e2ff;overflow:auto;min-height:230px}
.nx-code-f{padding:12px 18px;border-top:1px solid rgba(255,255,255,.07);font-family:var(--mono);font-size:12.5px;color:#cbd5e1;background:rgba(255,255,255,.02);overflow-x:auto;white-space:nowrap}

/* ---------- pricing ---------- */
.nx-nets{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}
.nx-nets span{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:999px;background:#fff;border:1px solid var(--nx-line);font-size:14px;color:var(--nx-text-2)}.nx-nets b{color:var(--nx-text)}
.nx-prices{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:16px;margin-top:36px;align-items:stretch}
.nx-price{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--nx-line);border-radius:22px;padding:24px;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s,opacity .7s var(--ease)}
.nx-price:hover{transform:translateY(-3px);box-shadow:0 26px 50px -34px rgba(15,23,42,.4)}
.nx-price.is-featured{background:linear-gradient(180deg,#10204a,#0a1228);border-color:transparent;color:#fff;box-shadow:0 34px 64px -34px rgba(11,87,208,.75)}
.nx-price.is-fit{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e,0 22px 44px -32px rgba(22,163,74,.6)}
.nx-price.is-fit::before{content:'Fits your estimate';position:absolute;top:-11px;left:22px;padding:3px 10px;border-radius:999px;background:#16a34a;color:#fff;font-size:11.5px;font-weight:700}
.nx-price-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px}
.nx-price-q{font-weight:700;font-size:14.5px;color:var(--nx-text-2)}.is-featured .nx-price-q{color:rgba(255,255,255,.75)}
.nx-tag{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:#e5f6ea;color:#15803d;white-space:nowrap}
.nx-tag.is-pop{background:linear-gradient(90deg,#2f6fe4,#22d3ee);color:#fff}.nx-tag.is-best{background:#fff3d6;color:#b45309}
.nx-price-a{font-family:var(--display);font-weight:800;font-size:44px;letter-spacing:-.045em;line-height:1.05;margin-top:18px;color:var(--nx-text)}
.nx-price-a span{font-size:15px;font-weight:700;letter-spacing:0;color:var(--nx-text-3)}
.is-featured .nx-price-a{color:#fff}.is-featured .nx-price-a span,.is-featured .nx-price-u{color:rgba(255,255,255,.62)}
.nx-price-u{font-size:13.5px;color:var(--nx-text-3);margin-top:6px}
.nx-price-eq{list-style:none;margin:18px 0 22px;padding:16px 0 0;border-top:1px solid var(--nx-line);display:grid;gap:8px;font-size:13.5px;color:var(--nx-text-2)}
.nx-price-eq li{display:flex;align-items:center;gap:9px}
.is-featured .nx-price-eq{border-top-color:rgba(255,255,255,.12);color:rgba(255,255,255,.78)}
.nx-price .nx-btn{margin-top:auto;height:46px}
.nx-est{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:16px;margin-top:20px;padding:20px;border-radius:22px;background:var(--nx-soft);border:1px solid var(--nx-line)}
.nx-est-in{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;align-items:end}
.nx-est-in h3{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:0;font-family:var(--display);font-size:16px;letter-spacing:-.01em}
.nx-est-f label{display:block;font-size:12.5px;font-weight:700;color:var(--nx-text-2);margin-bottom:8px}
.nx-est-f input[type=range]{width:100%;accent-color:var(--nx-blue);height:44px}
.nx-est-out{display:block;align-self:stretch;padding:16px 18px;border-radius:16px;background:#fff;border:1px solid var(--nx-line);font-size:14.5px;line-height:1.55;color:var(--nx-text-2)}
.nx-est-out b{color:var(--nx-text)}
.nx-paynote{display:flex;gap:10px;align-items:flex-start;margin:22px auto 0;max-width:880px;font-size:13.5px;line-height:1.55;color:var(--nx-text-3)}
.nx-paynote svg{flex:none;margin-top:2px;color:#16a34a}.nx-paynote b{color:var(--nx-text-2)}

/* ---------- trust ---------- */
.nx-trust-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:start}
.nx-trust-wrap>.nx-head{position:sticky;top:110px}
.nx-trust-wrap .nx-cta{flex-direction:column;align-items:flex-start;gap:10px;margin-top:26px}
.nx-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14.5px;color:var(--nx-blue)!important;text-decoration:none!important}
.nx-link:hover svg{transform:translateX(2px)}.nx-link svg{transition:transform .2s}
.nx-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nx-trust-i{display:flex;gap:14px;padding:22px;border-radius:18px;background:#fff;border:1px solid var(--nx-line);transition:box-shadow .25s,transform .25s var(--ease),opacity .7s var(--ease)}
.nx-trust-i:hover{box-shadow:0 22px 44px -32px rgba(15,23,42,.4)}
.nx-trust-i .nx-ic{flex:none;width:40px;height:40px;border-radius:12px}
.nx-trust-i h3{margin:0;font-family:var(--display);font-size:15.5px;letter-spacing:-.01em}
.nx-trust-i p{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--nx-text-2)}

/* ---------- FAQ ---------- */
.nx-faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,72px);align-items:start}
.nx-faq{display:grid;gap:10px}
.nx-faq details{border:1px solid var(--nx-line);border-radius:16px;background:#fff;transition:border-color .2s,box-shadow .2s,opacity .7s var(--ease),transform .7s var(--ease)}
.nx-faq details[open]{border-color:#c9d6ee;box-shadow:0 16px 34px -26px rgba(15,23,42,.4)}
.nx-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;font-weight:700;font-size:15.5px;line-height:1.4;color:var(--nx-text)}
.nx-faq summary::-webkit-details-marker{display:none}
.nx-faq-ic{flex:none;position:relative;width:28px;height:28px;border-radius:9px;background:#f1f4f9;transition:background .2s}
.nx-faq-ic::before,.nx-faq-ic::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:2px;border-radius:2px;background:var(--nx-text-2);transform:translate(-50%,-50%);transition:transform .25s var(--ease)}
.nx-faq-ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.nx-faq details[open] .nx-faq-ic{background:#e8f0ff}.nx-faq details[open] .nx-faq-ic::after{transform:translate(-50%,-50%) rotate(0)}
.nx-faq details p{margin:0;padding:0 20px 20px;color:var(--nx-text-2);font-size:14.5px;line-height:1.68}

/* ---------- final call to action ---------- */
.nx-sec-cta{padding-top:0}
.nx-final{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:32px 48px;align-items:center;padding:clamp(40px,6vw,76px) clamp(28px,6vw,76px) calc(clamp(40px,6vw,76px) + 14px);border-radius:32px;background:var(--nx-ink);color:#fff}
.nx-final-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.nx-final-bg .nx-g1{left:-200px;top:-360px}.nx-final-bg .nx-g2{right:-260px;top:-200px}
.nx-final .nx-h2{color:#fff;max-width:660px}
.nx-final p{margin:16px 0 0;font-size:17px;line-height:1.6;color:rgba(255,255,255,.7);max-width:560px}
.nx-final-apps{display:grid;gap:12px;justify-items:start}
.nx-final-tg{display:flex;align-items:center;gap:12px;padding:9px 16px 9px 9px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff!important;text-decoration:none!important;transition:background .2s}
.nx-final-tg:hover{background:rgba(255,255,255,.12)}
.nx-final-tg>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#229ed9}
.nx-final-tg b{display:block;font-size:14px}.nx-final-tg small{color:rgba(255,255,255,.6);font-size:12.5px}
.nx-tilet{position:absolute;left:0;right:0;bottom:0;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14'%3E%3Crect width='48' height='14' fill='%230b57d0'/%3E%3Crect width='48' height='1.6' fill='%23f5b324'/%3E%3Crect y='12.4' width='48' height='1.6' fill='%23f5b324'/%3E%3Cpath d='M12 3.2 15.8 7 12 10.8 8.2 7Z' fill='%23f5b324'/%3E%3Cpath d='M12 5.4 13.6 7 12 8.6 10.4 7Z' fill='%230b57d0'/%3E%3Cpath d='M36 4.6 38.4 7 36 9.4 33.6 7Z' fill='%23fff'/%3E%3Cpath d='M0 4.4 2.6 7 0 9.6ZM48 4.4 45.4 7 48 9.6Z' fill='%2322d3ee'/%3E%3Cpath d='M24 4.4 26.6 7 24 9.6 21.4 7Z' fill='%2322d3ee'/%3E%3C/svg%3E") repeat-x;background-size:48px 14px;opacity:.95}

/* ---------- motion ---------- */
@keyframes nxDrop{from{opacity:0;transform:translateY(-14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes nxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes nxPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (prefers-reduced-motion:reduce){.nx *,.nx *::before,.nx *::after{animation:none!important;transition:none!important}.nx-js .nx-rv{opacity:1;transform:none}}

/* ---------- smaller screens ---------- */
@media (max-width:1100px){
  .nx-hero-in{grid-template-columns:minmax(0,1fr)}
  .nx-hero-copy{max-width:720px}
  .nx-stage{height:auto;padding:40px 0 8px}
  .nx-phone{transform:none}
  .nx-chip-a{left:max(0px,calc(50% - 300px))}.nx-chip-b{right:max(0px,calc(50% - 320px))}.nx-chip-c{right:max(0px,calc(50% - 300px))}
  .nx-demo,.nx-dev,.nx-trust-wrap,.nx-faq-wrap,.nx-head-split{grid-template-columns:minmax(0,1fr)}
  .nx-trust-wrap>.nx-head{position:static}
  .nx-prices{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nx-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nx-c-otp,.nx-c-where{grid-column:1/-1}.nx-c-am,.nx-c-bulk,.nx-c-orders,.nx-c-hooks{grid-column:span 1}
  .nx-final{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .nx-flow{grid-template-columns:minmax(0,1fr);gap:26px}
  .nx-flow::before{display:none}
  .nx-flow li{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;text-align:left;padding:0}
  .nx-flow-n{grid-row:span 2;margin:0;box-shadow:0 16px 30px -14px rgba(11,87,208,.85)}
  .nx-flow h3{margin:4px 0 0}.nx-flow p{margin:6px 0 0;max-width:none}
  .nx-est,.nx-est-in{grid-template-columns:minmax(0,1fr)}
  .nx-trust{grid-template-columns:minmax(0,1fr)}
  .nx-c-where{display:block}.nx-c-where .nx-where{margin-top:16px}.nx-c-where h3{margin-top:18px}
  .nx-device{width:270px}
}
@media (max-width:560px){
  .nx-h1{font-size:clamp(38px,11vw,48px)}
  .nx-cta .nx-btn{flex:1 1 100%}
  .nx-stage{padding-top:28px}
  .nx-phone{width:262px;height:540px;border-radius:44px;padding:10px}.nx-ls{border-radius:35px}
  .nx-ls-time{font-size:60px}.nx-ls-date{margin-top:34px}.nx-notes{margin-top:22px}
  .nx-chip{padding:8px 11px;font-size:12px}.nx-chip-a,.nx-chip-c{display:none}.nx-chip-b{right:0;top:4%}
  .nx-strip{flex-direction:column;align-items:flex-start}
  .nx-prices,.nx-bento{grid-template-columns:minmax(0,1fr)}
  .nx-c-am,.nx-c-bulk,.nx-c-orders,.nx-c-hooks{grid-column:1/-1}
  .nx-otp{gap:6px}.nx-otp span{width:42px;height:54px;font-size:23px;border-radius:12px}.nx-otp span:nth-child(4){margin-left:6px}
  .nx-to{flex-direction:column}.nx-net{height:40px;align-self:flex-start}
  .nx-device{display:none}
  .nx-console-b{padding:18px 16px}
  .nx-card,.nx-price,.nx-trust-i{padding:20px}
  .nx-final{border-radius:24px}
}

/* ---------- r47 hero + networks strip (the rest of the page is r46) ---------- */
.is-lp{--lp-ink:#0b1220;--lp-text:#101828;--lp-text-2:#475467;--lp-text-3:#667085;--lp-line:#e6e9f0;--lp-soft:#f6f8fc;--lp-blue:#0b57d0;--lp-blue-2:#2f6fe4;--lp-navy:#081229;background:#fff}
/* buttons */
.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:12px;border:1px solid transparent;font-weight:700;font-size:15px;letter-spacing:-.01em;text-decoration:none;transition:transform .15s var(--ease),box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}
.lp-btn:hover{transform:translateY(-1px)}.lp-btn:active{transform:none}
.lp-btn-primary{background:var(--lp-blue);color:#fff!important;box-shadow:0 10px 24px -12px rgba(11,87,208,.8)}
.lp-btn-primary:hover{background:#0a4fbd;box-shadow:0 14px 30px -12px rgba(11,87,208,.85)}
.lp-btn-line{background:#fff;color:var(--lp-ink)!important;border-color:#d0d5dd}.lp-btn-line:hover{border-color:var(--lp-blue);color:var(--lp-blue)!important}
.lp-btn-white{background:#fff;color:var(--lp-ink)!important}.lp-btn-white:hover{box-shadow:0 14px 30px -14px rgba(0,0,0,.6)}
.lp-btn-glass{background:rgba(255,255,255,.08);color:#fff!important;border-color:rgba(255,255,255,.22)}.lp-btn-glass:hover{background:rgba(255,255,255,.15)}
.lp-btn-block{width:100%}
.lp-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* hero */
.lp-hero{position:relative;isolation:isolate;padding:clamp(40px,6vw,88px) 0 clamp(44px,6vw,84px);background:linear-gradient(180deg,#f3f7ff 0%,#fff 78%)}
.lp-hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.lp-hero-bg i{position:absolute;border-radius:50%}
.lp-g1{width:620px;height:620px;right:-140px;top:-220px;background:radial-gradient(closest-side,rgba(47,111,228,.16),rgba(47,111,228,0))}
.lp-g2{width:520px;height:520px;left:-200px;bottom:-260px;background:radial-gradient(closest-side,rgba(124,92,255,.10),rgba(124,92,255,0))}
.lp-hero-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.lp-pill{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:5px 12px 5px 5px;border-radius:999px;background:#fff;border:1px solid #dbe4f5;color:var(--lp-text-2);font-size:13.5px;font-weight:600;text-decoration:none;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.lp-pill span{padding:3px 9px;border-radius:999px;background:#e8f0fe;color:var(--lp-blue);font-size:12px;font-weight:700}
.lp-pill:hover{border-color:#b9cdf3;color:var(--lp-ink)}
.lp-pill svg{flex:none}
.lp-h1{margin:22px 0 0;font-family:var(--display);font-size:clamp(36px,5.4vw,62px);line-height:1.04;letter-spacing:-.035em;font-weight:800;color:var(--lp-ink);text-wrap:balance}
.lp-lead{margin:20px 0 0;max-width:560px;font-size:clamp(16px,1.6vw,18.5px);line-height:1.6;color:var(--lp-text-2)}
.lp-ticks{display:flex;flex-wrap:wrap;gap:8px 20px;margin:24px 0 0;padding:0;list-style:none;font-size:14px;color:var(--lp-text-2)}
.lp-ticks li{display:inline-flex;align-items:center;gap:7px}
.lp-ticks svg{color:#12b76a}

/* the phone */
.lp-art{position:relative;justify-self:center;width:min(100%,380px);padding:10px 0}
.lp-phone{position:relative;margin:0 auto;width:300px;max-width:100%;border-radius:44px;padding:16px 14px 58px;background:linear-gradient(160deg,#16244a,#0a1430 60%,#101c3d);border:8px solid #0d1426;box-shadow:0 40px 80px -36px rgba(8,18,41,.6),0 0 0 1px rgba(8,18,41,.12)}
.lp-phone::after{content:"";position:absolute;left:50%;bottom:16px;width:96px;height:4px;margin-left:-48px;border-radius:4px;background:rgba(255,255,255,.35)}
.lp-phone-top{display:flex;justify-content:space-between;padding:0 14px;font-size:12px;font-weight:600;color:rgba(255,255,255,.85)}
.lp-bars{display:flex;align-items:flex-end;gap:2px}.lp-bars i{width:3px;background:#fff;border-radius:1px}
.lp-bars i:nth-child(1){height:4px}.lp-bars i:nth-child(2){height:6px}.lp-bars i:nth-child(3){height:8px}.lp-bars i:nth-child(4){height:10px}
.lp-phone-date{margin-top:22px;text-align:center;font-size:13px;color:rgba(255,255,255,.7)}
.lp-phone-time{text-align:center;font-size:58px;line-height:1.05;font-weight:700;letter-spacing:-.03em;color:#fff}
.lp-notes{display:grid;gap:8px;margin-top:20px}
.lp-note{display:flex;gap:10px;padding:10px 11px;border-radius:16px;background:rgba(255,255,255,.88);color:#101828;box-shadow:0 6px 18px -10px rgba(0,0,0,.6)}
.lp-note-ic{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;background:#22c55e;color:#fff}
.lp-note-b{min-width:0}
.lp-note-h{display:flex;justify-content:space-between;gap:8px;font-size:11.5px}.lp-note-h small{color:#667085}
.lp-note p{margin:2px 0 0;font-size:12.5px;line-height:1.4;color:#1d2939}
.lp-note p[lang=am]{font-family:'Noto Sans Ethiopic',var(--font)}
.lp-note em{font-style:normal;color:#475467;white-space:nowrap}
.lp-float{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#fff;border:1px solid var(--lp-line);box-shadow:0 18px 40px -18px rgba(16,24,40,.35);font-size:13px;white-space:nowrap}
.lp-float-api{left:-40px;top:-20px}
.lp-float-api code{font-size:12.5px;color:var(--lp-ink)}
.lp-float-api b{padding:2px 7px;border-radius:6px;background:#dcfae6;color:#067647;font-size:12px}
.lp-live{width:8px;height:8px;border-radius:50%;background:#2f6fe4;box-shadow:0 0 0 4px rgba(47,111,228,.15)}
.lp-float-dlr{right:-34px;bottom:-22px}
.lp-float-dlr b{display:block;color:var(--lp-ink)}.lp-float-dlr small{color:var(--lp-text-3)}
.lp-float-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#dcfae6;color:#067647}

/* networks + ways to pay — same pills, type and dot colours as the rest of the page */
.lp-strip{border-top:1px solid var(--nx-line);border-bottom:1px solid var(--nx-line);background:var(--nx-soft)}
.lp-strip-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px;padding-top:16px;padding-bottom:16px}
.lp-strip-g{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.lp-strip-l{margin-right:4px;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--nx-text-3)}
.lp-net,.lp-logos li{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 12px;border-radius:999px;background:#fff;border:1px solid var(--nx-line);font-size:14px;font-weight:600;color:var(--nx-text)}
.lp-net small{font-size:13px;font-weight:500;color:var(--nx-text-3)}
.lp-logos{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.lp-logos li{padding-left:6px}
.lp-logos img{width:22px;height:22px;border-radius:6px;object-fit:contain}
.lp-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%}
.lp-dot.is-ethio{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}.lp-dot.is-saf{background:#f43f5e;box-shadow:0 0 0 3px rgba(244,63,94,.16)}

@media (max-width:1060px){.lp-float-api{left:-10px}.lp-float-dlr{right:-10px}}
@media (max-width:960px){.lp-hero-in{grid-template-columns:1fr}.lp-hero-copy{text-align:center}.lp-lead{margin-left:auto;margin-right:auto}.lp-hero .lp-cta,.lp-ticks{justify-content:center}}
@media (max-width:640px){
  .lp-hero{padding-top:28px}
  .lp-hero .lp-cta .lp-btn{flex:1 1 100%}
  .lp-pill{font-size:12.5px;text-align:left}
  .lp-art{width:100%;max-width:340px}
  .lp-phone{width:270px;border-radius:38px}
  .lp-phone-time{font-size:48px}
  .lp-float-api{left:0;top:-18px}
  .lp-float-dlr{display:none}
  .lp-strip-in,.lp-strip-g{justify-content:center}
}
@media (prefers-reduced-motion:reduce){.lp-hero *{transition:none!important}}
/* ---------- r48: motion on the home page ----------
   Everything is readable without it: the animations only play for people whose device doesn't ask for less motion,
   and each one ends in the normal, visible state. */
.lp-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:90;pointer-events:none}
.lp-progress i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#0b57d0,#7c5cff,#22c55e);border-radius:0 3px 3px 0}
.lp-grad{background:linear-gradient(90deg,#0b57d0 0%,#7c5cff 45%,#0b57d0 90%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.lp-g3{width:440px;height:440px;left:36%;top:-170px;background:radial-gradient(closest-side,rgba(34,197,94,.09),rgba(34,197,94,0))}
.lp-grid{position:absolute;inset:0;background-image:radial-gradient(rgba(15,23,42,.09) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 60% 70% at 72% 38%,#000 0,transparent 70%);mask-image:radial-gradient(ellipse 60% 70% at 72% 38%,#000 0,transparent 70%)}
.lp-glow{position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx,72%) var(--my,34%),rgba(47,111,228,.11),transparent 62%)}
.lp-phone{transition:transform .6s cubic-bezier(.2,.8,.2,1);will-change:transform}
.lp-note.is-new,.lp-note.is-out{overflow:hidden}
.lp-note.is-new{animation:lpNoteIn .6s cubic-bezier(.2,.8,.2,1) both}
.lp-note.is-out{animation:lpNoteOut .46s ease both}
.lp-float-dlr.is-ping .lp-float-ic{animation:lpPing .6s ease}
@media (prefers-reduced-motion:no-preference){
  .lp-hero-copy>*{animation:lpRise .8s cubic-bezier(.2,.8,.2,1) both}
  .lp-hero-copy>:nth-child(2){animation-delay:.08s}.lp-hero-copy>:nth-child(3){animation-delay:.16s}
  .lp-hero-copy>:nth-child(4){animation-delay:.24s}.lp-hero-copy>:nth-child(5){animation-delay:.32s}
  .lp-grad{animation:lpShine 6s linear infinite}
  .lp-g1{animation:lpDrift1 18s ease-in-out infinite alternate}
  .lp-g2{animation:lpDrift2 22s ease-in-out infinite alternate}
  .lp-g3{animation:lpDrift3 15s ease-in-out infinite alternate}
  .lp-art{animation:lpPhoneIn 1s .12s cubic-bezier(.2,.8,.2,1) both}
  .lp-notes:not(.is-live)>.lp-note{animation:lpDrop .6s cubic-bezier(.2,.8,.2,1) both}
  .lp-notes:not(.is-live)>.lp-note:nth-child(1){animation-delay:.7s}
  .lp-notes:not(.is-live)>.lp-note:nth-child(2){animation-delay:1.05s}
  .lp-notes:not(.is-live)>.lp-note:nth-child(3){animation-delay:1.4s}
  .lp-float-api{animation:lpPop .55s 1.15s cubic-bezier(.2,1.4,.4,1) both,lpFloat 6s 1.8s ease-in-out infinite}
  .lp-float-dlr{animation:lpPop .55s 1.85s cubic-bezier(.2,1.4,.4,1) both,lpFloat 7s 2.5s ease-in-out infinite}
  .lp-live{animation:lpPulse 2s ease-out infinite}
  .lp-strip-l,.lp-net,.lp-logos li{animation:lpRise .6s cubic-bezier(.2,.8,.2,1) both}
  .lp-strip-g>:nth-child(2){animation-delay:.08s}.lp-strip-g>:nth-child(3){animation-delay:.16s}
  .lp-logos li:nth-child(1){animation-delay:.2s}.lp-logos li:nth-child(2){animation-delay:.27s}.lp-logos li:nth-child(3){animation-delay:.34s}
  .lp-logos li:nth-child(4){animation-delay:.41s}.lp-logos li:nth-child(5){animation-delay:.48s}
  .lp-net,.lp-logos li{transition:transform .2s,box-shadow .2s,border-color .2s}
  .lp-net:hover,.lp-logos li:hover{transform:translateY(-2px);border-color:#c9d6ee;box-shadow:0 10px 22px -16px rgba(15,23,42,.45)}
  .lp-btn-primary{position:relative;overflow:hidden;isolation:isolate}
  .lp-btn-primary::after{content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-130%) skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);transition:transform .75s}
  .lp-btn-primary:hover::after{transform:translateX(130%) skewX(-20deg)}
  .lp-btn svg{transition:transform .25s}.lp-btn:hover svg{transform:translateX(3px)}
  .nx-ic{transition:transform .35s cubic-bezier(.2,1.4,.4,1)}
  .nx-card:hover .nx-ic,.nx-trust-i:hover .nx-ic{transform:translateY(-2px) rotate(-6deg) scale(1.08)}
  .nx-flow-n{transition:transform .3s cubic-bezier(.2,1.4,.4,1)}.nx-flow li:hover .nx-flow-n{transform:scale(1.1)}
  .nx-price.is-featured{animation:lpGlow 3.2s ease-in-out infinite}
}
@keyframes lpRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes lpPhoneIn{from{opacity:0;transform:translateY(34px) rotate(2.5deg) scale(.96)}to{opacity:1;transform:none}}
@keyframes lpDrop{from{opacity:0;transform:translateY(-14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes lpPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes lpFloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes lpShine{to{background-position:200% 0}}
@keyframes lpDrift1{to{transform:translate(-70px,46px) scale(1.08)}}
@keyframes lpDrift2{to{transform:translate(80px,-36px) scale(1.12)}}
@keyframes lpDrift3{to{transform:translate(-50px,36px) scale(.94)}}
@keyframes lpPulse{0%{box-shadow:0 0 0 0 rgba(47,111,228,.55)}100%{box-shadow:0 0 0 10px rgba(47,111,228,0)}}
@keyframes lpPing{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes lpNoteIn{from{opacity:0;max-height:0;transform:translateY(-12px) scale(.96)}to{opacity:1;max-height:170px;transform:none}}
@keyframes lpNoteOut{from{opacity:1;max-height:170px}to{opacity:0;max-height:0;margin-top:-8px;padding-top:0;padding-bottom:0;transform:scale(.96)}}
@keyframes lpGlow{0%,100%{box-shadow:0 0 0 0 rgba(11,87,208,0),0 26px 50px -34px rgba(11,87,208,.5)}50%{box-shadow:0 0 0 6px rgba(11,87,208,.08),0 26px 50px -30px rgba(11,87,208,.7)}}
@media (prefers-reduced-motion:reduce){.lp-progress{display:none}.lp-note.is-new,.lp-note.is-out,.lp-float-dlr.is-ping .lp-float-ic{animation:none}.lp-phone{transition:none}}/* =====================================================================
   r43 — dark mode, Ctrl+K palette, install button, motion.
   Dark mode is on pages that set html[data-theme] (dashboard, docs, sign-in, legal, status — not the landing pages).
   ===================================================================== */
html[data-theme=dark]{color-scheme:dark;
  --page:#0e1116;--bg:#0b0e13;--surface:#151a22;--surface-2:#1b212b;--surface-3:#12161d;--surface-hi:#222a36;
  --border:#2a323e;--border-strong:#3b4554;--hairline:#1f262f;
  --ink:#e8eaee;--text:#e8eaee;--text-2:#c4c9d1;--text-3:#9aa3ae;--text-4:#6b7480;
  --brand:#8ab4f8;--brand-600:#aecbfa;--brand-50:#16223a;--brand-100:#1d3157;--on-brand-c:#d3e3fd;
  --violet:#b19cf9;--pink:#f08bab;
  --ok:#81c995;--ok-bg:#12261a;--ok-border:#24563a;
  --warn:#fdd663;--warn-bg:#2a2412;--warn-border:#5c4a14;
  --err:#f28b82;--err-bg:#2c1615;--err-border:#5f2a26;
  --info:#8ab4f8;--info-bg:#16223a;--info-border:#24406e;
  --shadow-sm:0 1px 2px rgba(0,0,0,.45);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 2px 6px 2px rgba(0,0,0,.25);
  --shadow-lg:0 2px 6px rgba(0,0,0,.45),0 12px 32px -6px rgba(0,0,0,.6);
  --shadow-xl:0 8px 16px rgba(0,0,0,.45),0 32px 64px -16px rgba(0,0,0,.75)}
/* generated from the light styles (r43/darkgen.py) */
:where(html[data-theme=dark]) .skip-link{background-color:var(--surface)}
:where(html[data-theme=dark]) .btn-primary{background-color:#2f6fde}
:where(html[data-theme=dark]) .btn-primary:hover{background-color:#3d7bf0}
:where(html[data-theme=dark]) .btn-secondary{background-color:var(--surface)}
:where(html[data-theme=dark]) .btn-dark:hover{background-color:#19202e}
:where(html[data-theme=dark]) .btn-danger{background-color:#d93025}
:where(html[data-theme=dark]) .btn-danger-outline{background-color:var(--surface)}
:where(html[data-theme=dark]) .icon-btn:hover{background-color:rgba(255,255,255,0.082)}
:where(html[data-theme=dark]) .has-dot::after{background-color:#d93025}
:where(html[data-theme=dark]) .input,:where(html[data-theme=dark]) .select,:where(html[data-theme=dark]) .textarea{background-color:var(--surface)}
:where(html[data-theme=dark]) .filter-search .input:focus{background-color:var(--surface)}
:where(html[data-theme=dark]) .card{background-color:var(--surface)}
:where(html[data-theme=dark]) .a-ok{color:#b9f4cb}
:where(html[data-theme=dark]) .a-warn{color:#f9d9b4}
:where(html[data-theme=dark]) .a-err{color:#f2b3b0}
:where(html[data-theme=dark]) .alert .btn-secondary{background-color:rgba(21,26,34,0.7)}
:where(html[data-theme=dark]) .table th{background-color:var(--surface)}
:where(html[data-theme=dark]) .data-error-bar{box-shadow:0 12px 32px rgba(0,0,0,0.324)}
:where(html[data-theme=dark]) .sys-fail-bar{background-color:var(--surface);border:1px solid #58312e;color:#f2b3b0;box-shadow:0 12px 32px rgba(0,0,0,0.324)}
:where(html[data-theme=dark]) .progress>span{background-color:#2f6fde}
:where(html[data-theme=dark]) .key-reveal .secret{background-color:var(--surface)}
:where(html[data-theme=dark]) dialog.modal{background-color:var(--surface)}
:where(html[data-theme=dark]) .site-header{background-color:rgba(21,26,34,0.85)}
:where(html[data-theme=dark]) .mobile-nav{background-color:var(--surface)}
:where(html[data-theme=dark]) .hero{background-color:var(--surface)}
:where(html[data-theme=dark]) .pill{background-color:var(--surface)}
:where(html[data-theme=dark]) .pill b{background-color:#2f6fde}
:where(html[data-theme=dark]) .feature{background-color:var(--surface)}
:where(html[data-theme=dark]) .feature-plain:hover{background-color:var(--surface)}
:where(html[data-theme=dark]) .step-n{background-color:#2f6fde}
:where(html[data-theme=dark]) .price{background-color:var(--surface)}
:where(html[data-theme=dark]) .price.is-featured{background:linear-gradient(180deg,var(--brand-50),var(--surface) 60%)}
:where(html[data-theme=dark]) .faq details[open]{background-color:var(--surface)}
:where(html[data-theme=dark]) .faq summary::after{background-color:var(--surface)}
:where(html[data-theme=dark]) .auth{background-color:var(--surface)}
:where(html[data-theme=dark]) .side-nav a:hover{background-color:rgba(255,255,255,0.082)}
:where(html[data-theme=dark]) .user-chip{background-color:var(--surface)}
:where(html[data-theme=dark]) .topbar{background-color:rgba(21,26,34,0.85)}
:where(html[data-theme=dark]) .credit-chip .muted{color:#9bb0d5}
@media (max-width:960px){:where(html[data-theme=dark]) .sidebar{background-color:var(--surface)}}
:where(html[data-theme=dark]) .steps-list .ck{background-color:var(--surface)}
:where(html[data-theme=dark]) .steps-list li.is-done .ck{background-color:#2f6fde}
:where(html[data-theme=dark]) .phone-preview{background:linear-gradient(160deg,#141925,#191425)}
:where(html[data-theme=dark]) .phone-preview::before{background-color:rgba(255,255,255,0.118)}
:where(html[data-theme=dark]) .bubble{background-color:var(--surface)}
:where(html[data-theme=dark]) .test-out .test-status{background-color:var(--surface)}
:where(html[data-theme=dark]) .state-hero>svg{background-color:var(--surface)}
:where(html[data-theme=dark]) .tl-dot{box-shadow:0 0 0 3px var(--surface)}
:where(html[data-theme=dark]) .tl-dot.ok{background-color:#1e8e3e}
:where(html[data-theme=dark]) .tl-dot.err{background-color:#d93025}
:where(html[data-theme=dark]) .support-ic.tg{background-color:#151f27}
:where(html[data-theme=dark]) .chart .bar-g:hover .hit{fill:rgba(115,165,244,0.05)}
:where(html[data-theme=dark]) .support-fab{box-shadow:0 1px 3px rgba(0,0,0,0.54),0 4px 8px 3px rgba(0,0,0,0.27)}
:where(html[data-theme=dark]) .support-fab:hover{box-shadow:0 2px 3px rgba(0,0,0,0.54),0 6px 10px 4px rgba(0,0,0,0.27)}
:where(html[data-theme=dark]) .support-panel{background-color:var(--surface)}
:where(html[data-theme=dark]) .support-panel-h{background:linear-gradient(135deg,#141925,#191425)}
:where(html[data-theme=dark]) .site-banner{background-color:#2f6fde}
:where(html[data-theme=dark]) .preview-bar{background-color:#b06000;color:var(--text)}
:where(html[data-theme=dark]) .tmsg.me .tbody{background-color:#2f6fde}
:where(html[data-theme=dark]) .copy-chip{background-color:var(--surface)}
@media (max-width:900px){:where(html[data-theme=dark]) .docs-nav{background-color:var(--surface)}}
:where(html[data-theme=dark]) .prose .table-wrap{background-color:var(--surface)}
:where(html[data-theme=dark]) .callout-warn{color:#f9d9b4}
:where(html[data-theme=dark]) .key-new{color:#b9f4cb}
:where(html[data-theme=dark]) .key-warn{color:#f9d9b4}
:where(html[data-theme=dark]) .docs-search input:focus{background-color:var(--surface)}
:where(html[data-theme=dark]) .docs-search kbd{background-color:var(--surface)}
:where(html[data-theme=dark]) .quick-link{background-color:var(--surface)}
:where(html[data-theme=dark]) .docs-main{background-color:var(--surface)}
:where(html[data-theme=dark]) .nav-progress{background:linear-gradient(90deg,#2f6fde,var(--violet))}
:where(html[data-theme=dark]) .preloader{background-color:rgba(21,26,34,0.82)}
:where(html[data-theme=dark]) .preloader-card{background-color:var(--surface)}
:where(html[data-theme=dark]) .alert-x:hover{background-color:rgba(255,255,255,0.064)}
:where(html[data-theme=dark]) .stat-hero{background:linear-gradient(150deg,var(--surface) 40%,var(--brand-50))}
:where(html[data-theme=dark]) .credit-chip.is-low{color:#f9d9b4}
:where(html[data-theme=dark]) .side-nav a.is-active::before{background-color:#2f6fde}
:where(html[data-theme=dark]) .quick-action{background-color:var(--surface)}
:where(html[data-theme=dark]) .notif-panel{background-color:var(--surface)}
:where(html[data-theme=dark]) .notif-h{background-color:var(--surface)}
:where(html[data-theme=dark]) .seg a:hover{background-color:rgba(21,26,34,0.6)}
:where(html[data-theme=dark]) .seg a.is-active{background-color:var(--surface)}
:where(html[data-theme=dark]) .counter-bar span,:where(html[data-theme=dark]) .pw-meter span{background-color:#2f6fde}
:where(html[data-theme=dark]) .counter-bar.is-near span{background-color:#b06000}
:where(html[data-theme=dark]) .counter-bar.is-over span{background-color:#d93025}
:where(html[data-theme=dark]) .pw-meter[data-score="1"] span{background-color:#d93025}
:where(html[data-theme=dark]) .pw-meter[data-score="2"] span{background-color:#b06000}
:where(html[data-theme=dark]) .pw-meter[data-score="4"] span{background-color:#1e8e3e}
:where(html[data-theme=dark]) .dev-endpoint{background-color:var(--surface)}
:where(html[data-theme=dark]) .guide-btn{background-color:var(--surface)}
:where(html[data-theme=dark]) .side-nav .side-link:hover{background-color:rgba(255,255,255,0.082)}
:where(html[data-theme=dark]) .tour-card{background-color:var(--surface);box-shadow:0 24px 60px -12px rgba(0,0,0,0.6),0 0 0 1px rgba(0,0,0,0.108)}
:where(html[data-theme=dark]) .tour-arrow{background-color:var(--surface)}
@media (min-width:901px){:where(html[data-theme=dark]) .docs-main{background:radial-gradient(900px 360px at 0% 0%,rgba(66,133,244,.10),transparent 60%),radial-gradient(700px 300px at 100% 0%,rgba(168,124,243,0.075),transparent 60%),var(--surface)}}
:where(html[data-theme=dark]) .docs-nav a.is-active::before{background-color:#2f6fde}
:where(html[data-theme=dark]) .docs-search-btn{background-color:var(--surface)}
:where(html[data-theme=dark]) #introduction::before{background-image:linear-gradient(rgba(119,169,248,0.075) 1px,transparent 1px),linear-gradient(90deg,rgba(119,169,248,0.075) 1px,transparent 1px)}
:where(html[data-theme=dark]) .prose .eyebrow::before{box-shadow:0 0 0 3px rgba(0,0,0,0.324)}
:where(html[data-theme=dark]) .quick-link{background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,var(--border),var(--border)) border-box}
:where(html[data-theme=dark]) .quick-link:hover{background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,#4285f4,#7c3aed) border-box}
:where(html[data-theme=dark]) .quick-link .ql-i{background:linear-gradient(135deg,var(--brand-50),#191425)}
:where(html[data-theme=dark]) .endpoint{background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(90deg,rgba(11,87,208,.45),rgba(124,58,237,.45)) border-box}
:where(html[data-theme=dark]) .endpoint .method{background-color:#18261c;color:#a5f0be}
:where(html[data-theme=dark]) .prose .callout::before{background-color:#2f6fde}
:where(html[data-theme=dark]) .prose .callout-warn::before{background-color:#b06000}
:where(html[data-theme=dark]) .flow li{background:linear-gradient(180deg,var(--surface),var(--surface))}
:where(html[data-theme=dark]) .do-dont .do{background:linear-gradient(180deg,#142418,var(--surface))}
:where(html[data-theme=dark]) .do-dont .dont{background:linear-gradient(180deg,var(--surface),var(--surface))}
:where(html[data-theme=dark]) .do-dont .do h4{color:#a5f0be}
:where(html[data-theme=dark]) .do-dont .dont h4{color:#ea8882}
:where(html[data-theme=dark]) .http-code.c2{background-color:#18261c;color:#a5f0be}
:where(html[data-theme=dark]) .http-code.c4{background-color:#272315;color:#f7d39c}
:where(html[data-theme=dark]) .http-code.c5{background-color:#271615;color:#ea8882}
:where(html[data-theme=dark]) .retry-yes{color:#a5f0be}
:where(html[data-theme=dark]) .toc-card{background:linear-gradient(160deg,var(--surface),var(--brand-50))}
:where(html[data-theme=dark]) .dsearch-box{background-color:var(--surface);box-shadow:0 30px 80px -20px rgba(0,0,0,0.6),0 0 0 1px rgba(0,0,0,0.108)}
:where(html[data-theme=dark]) .net-ethio{background-color:#16261c;color:#a1f0bf}
:where(html[data-theme=dark]) .net-safaricom{background-color:var(--surface);color:#f27997}
:where(html[data-theme=dark]) .rf-chip span{background-color:var(--surface)}
:where(html[data-theme=dark]) .rf-opt span{background-color:var(--surface)}
:where(html[data-theme=dark]) .nl-badge{background-color:var(--surface)}
:where(html[data-theme=dark]) .nl-no li{text-decoration-color:var(--text)}
:where(html[data-theme=dark]) .nl-steps li{background-color:var(--surface)}
:where(html[data-theme=dark]) .nl-steps li>span{background-color:#2f6fde}
:where(html[data-theme=dark]) .nl-bubble{background-color:var(--surface)}
:where(html[data-theme=dark]) .nl-final{background-color:#2f6fde}
:where(html[data-theme=dark]) .nl-final .btn-primary{background-color:var(--surface)}
:where(html[data-theme=dark]) .step-h span{background-color:#2f6fde}
:where(html[data-theme=dark]) .chip{background-color:var(--surface)}
:where(html[data-theme=dark]) .qr-box{background-color:var(--surface)}
:where(html[data-theme=dark]) .hbar i b{background-color:#2f6fde}
:where(html[data-theme=dark]) .hbar.fail i b{background-color:#d93025}
:where(html[data-theme=dark]) .st-hero.st-warn{background-color:#2c2818}
:where(html[data-theme=dark]) .st-hero.st-err{background-color:#271515}
:where(html[data-theme=dark]) .st-dot{background-color:#1e8e3e}
:where(html[data-theme=dark]) .st-warn .st-dot,:where(html[data-theme=dark]) .st-badge.st-warn .st-dot{background-color:#b06000}
:where(html[data-theme=dark]) .st-err .st-dot,:where(html[data-theme=dark]) .st-badge.st-err .st-dot{background-color:#d93025}
:where(html[data-theme=dark]) .st-list li{background-color:var(--surface)}
:where(html[data-theme=dark]) .sec-card{background-color:var(--surface)}
:where(html[data-theme=dark]) .live-count{background-color:var(--surface)}
:where(html[data-theme=dark]) .lang-switch{background-color:var(--surface)}
:where(html[data-theme=dark]) .lang-switch a.is-active{background-color:#2f6fde}
:where(html[data-theme=dark]) .ev-addr{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-hero{background:radial-gradient(900px 420px at 10% -140px,var(--brand-50),transparent 70%),radial-gradient(700px 380px at 100% -60px,#1a1425,transparent 70%)}
:where(html[data-theme=dark]) .ch-hero-card{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-count-u{background:linear-gradient(160deg,#2f6fde,#3b2fc9)}
:where(html[data-theme=dark]) .ch-bar span{background:linear-gradient(90deg,#2f6fde,var(--violet))}
:where(html[data-theme=dark]) .ch-q-ic{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-quests li.is-done .ch-q-ic{background-color:#1e8e3e}
:where(html[data-theme=dark]) .ch-quests-pub li{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-join-side{background:linear-gradient(160deg,#2f6fde,#3b2fc9)}
:where(html[data-theme=dark]) .ch-steps li>span{background-color:rgba(21,26,34,0.18)}
:where(html[data-theme=dark]) .ch-prize{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-prize.is-p0{border-color:#66572e;background:linear-gradient(160deg,#272315,var(--surface) 60%)}
:where(html[data-theme=dark]) .ch-prize.is-p1 .ch-prize-ic{background-color:var(--surface-2);color:#c0c8d4}
:where(html[data-theme=dark]) .ch-prize.is-p2 .ch-prize-ic{background-color:#31241a;color:#eec7ab}
:where(html[data-theme=dark]) .ch-prize.is-p4 .ch-prize-ic{background-color:#1a1425}
:where(html[data-theme=dark]) .ch-track{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-time-dot{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-time li.is-done::before{background-color:#1e8e3e}
:where(html[data-theme=dark]) .ch-time li.is-done .ch-time-dot{background-color:#1e8e3e}
:where(html[data-theme=dark]) .ch-board li{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-rank.is-top{background-color:#2f6fde}
:where(html[data-theme=dark]) .ch-proj{background-color:var(--surface)}
:where(html[data-theme=dark]) .ch-proj.is-p0{border-color:#66572e;background:linear-gradient(160deg,#272315,var(--surface) 60%)}
:where(html[data-theme=dark]) .ap-soon{background-color:rgba(134,233,170,0.125)}
:where(html[data-theme=dark]) .ap-phone{box-shadow:0 0 0 2px rgba(148,163,184,.28),0 50px 90px -30px rgba(0,0,0,0.6),inset 0 0 0 1px rgba(21,26,34,0.07)}
:where(html[data-theme=dark]) .ap-screen{background-color:var(--surface);color:#d1daef}
:where(html[data-theme=dark]) .ap-status{color:#d1daef}
:where(html[data-theme=dark]) .ap-top small{color:#a1acbb}
:where(html[data-theme=dark]) .ap-bars i{background-color:rgba(21,26,34,0.5)}
:where(html[data-theme=dark]) .ap-bars i:last-child{background-color:var(--surface)}
:where(html[data-theme=dark]) .ap-actions span{background-color:rgba(21,26,34,0.17)}
:where(html[data-theme=dark]) .ap-actions span:last-child{background-color:var(--surface);color:#73a5f4}
:where(html[data-theme=dark]) .ap-list-h{color:#b3bdcc}
:where(html[data-theme=dark]) .ap-row{background-color:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,0.108)}
:where(html[data-theme=dark]) .ap-row small{color:#a1acbb}
:where(html[data-theme=dark]) .ap-row em{color:#9eefbd;background-color:#16291c}
:where(html[data-theme=dark]) .ap-dot{background-color:#141b25;color:#73a5f4}
:where(html[data-theme=dark]) .ap-tabs{background-color:var(--surface);box-shadow:0 10px 24px -14px rgba(0,0,0,0.6)}
:where(html[data-theme=dark]) .ap-push{background-color:rgba(21,26,34,0.97);color:#d1daef;box-shadow:0 24px 50px -18px rgba(0,0,0,0.6)}
:where(html[data-theme=dark]) .ap-push span{color:#bdc8d7}
:where(html[data-theme=dark]) .ap-chip{background-color:rgba(21,26,34,0.96);box-shadow:0 18px 40px -16px rgba(0,0,0,0.6)}
:where(html[data-theme=dark]) .ap-chip small{color:#a1acbb}
:where(html[data-theme=dark]) #hxCount.is-over{color:#ee8981}
/* hand-made dark fixes (after the generated rules, so they win) */
html[data-theme=dark] .topbar{background:rgba(11,14,19,.86)}
html[data-theme=dark] .site-header{background:rgba(14,17,22,.86);border-bottom-color:var(--border)}
html[data-theme=dark] .toast{background:#e8eaee;color:#1f1f1f}
html[data-theme=dark] .code,html[data-theme=dark] .code-win,html[data-theme=dark] .test-out pre,html[data-theme=dark] .bento-code{box-shadow:0 0 0 1px var(--border)}
html[data-theme=dark] .prose .code{box-shadow:0 0 0 1px var(--border),0 14px 34px -18px rgba(0,0,0,.6)}
html[data-theme=dark] .ws-banner{background:#1d3157;color:var(--on-brand-c)}
html[data-theme=dark] .credit-chip .muted{color:#a9c1ea}
html[data-theme=dark] .credit-chip.is-low{color:var(--warn)}
html[data-theme=dark] .dsearch{background:rgba(0,0,0,.6)}
html[data-theme=dark] .dsearch-list mark{background:rgba(138,180,248,.25)}
html[data-theme=dark] .btn-dark:hover{background:#26406e}
html[data-theme=dark] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c4c9d1' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}
html[data-theme=dark] .input::placeholder,html[data-theme=dark] .textarea::placeholder{color:#7d8794}
html[data-theme=dark] .scrim.is-open{background:rgba(0,0,0,.6)}
html[data-theme=dark] .tour-spot{box-shadow:0 0 0 9999px rgba(0,0,0,.66),0 0 0 2px var(--surface),0 0 0 6px rgba(138,180,248,.5),0 0 32px 10px rgba(138,180,248,.25)}
html[data-theme=dark] img.qr,html[data-theme=dark] .qr-box{background:#fff}
html[data-theme=dark] ::selection{background:#2b4a80;color:#fff}
html[data-theme=dark] .hz-powered img{filter:brightness(0) invert(.85)}

/* theme switch (moon in light mode, sun in dark mode) */
.theme-tg .i-sun{display:none}
html[data-theme=dark] .theme-tg .i-sun{display:inline-block}
html[data-theme=dark] .theme-tg .i-moon{display:none}
.theme-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-opt{display:flex;flex-direction:column;gap:8px;padding:8px 8px 10px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}
.theme-opt:hover{border-color:var(--border-strong)}
.theme-opt.is-active{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}
.theme-opt>span:last-child{display:flex;align-items:center;gap:6px;padding:0 2px}
.theme-sw{display:block;height:46px;border-radius:9px;border:1px solid rgba(0,0,0,.08)}
.sw-light{background:linear-gradient(90deg,#eef2f8 0 30%,#fff 30%)}
.sw-dark{background:linear-gradient(90deg,#0b0e13 0 30%,#151a22 30%);border-color:#2a323e}
.sw-auto{background:linear-gradient(90deg,#eef2f8 0 15%,#fff 15% 50%,#0b0e13 50% 65%,#151a22 65%);border-color:#c9d0da}
@media (max-width:420px){.theme-pick{grid-template-columns:1fr}.theme-sw{height:30px}}

/* Ctrl+K palette — the docs search look, with icons and groups */
.cmdk-btn{display:inline-flex;align-items:center;gap:10px;height:40px;min-width:250px;padding:0 6px 0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-3);font:inherit;font-size:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.cmdk-btn:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.cmdk-btn span{flex:1;text-align:left}
.cmdk-btn kbd{font-family:var(--font);font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-3)}
@media (max-width:1180px){.cmdk-btn{min-width:0;width:40px;padding:0;justify-content:center;border-color:transparent;background:transparent;color:var(--text-2)}.cmdk-btn span,.cmdk-btn kbd{display:none}.cmdk-btn:hover{background:rgba(68,71,70,.08);box-shadow:none}}
html[data-theme=dark] .cmdk-btn:hover{background:rgba(255,255,255,.06)}
@media (min-width:1181px){html[data-theme=dark] .cmdk-btn:hover{background:var(--surface)}}
@media (max-width:420px){.topbar .theme-tg{display:none}}
@media (max-width:380px){.topbar-actions{gap:2px}.topbar .cmdk-btn,.topbar .icon-btn{width:36px;height:36px}.topbar .credit-chip{padding:0 12px 0 10px;gap:6px}}   /* the search icon still fits on a 320 px phone */
.cmdk-g{padding:10px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.cmdk .dsearch-list li a{display:flex;align-items:center;gap:12px;padding:8px 12px}
.cmdk-i{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:none}
.cmdk-i svg.i{width:16px;height:16px;vertical-align:0}
.cmdk li.is-sel .cmdk-i{background:var(--brand-100);color:var(--on-brand-c)}
.cmdk-t{flex:1;min-width:0;font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-h{font-size:12px;color:var(--text-3);white-space:nowrap}
.cmdk-on{font-size:11.5px;font-weight:700;color:var(--ok);background:var(--ok-bg);padding:2px 9px;border-radius:999px}
.side-install{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 14px;margin-bottom:10px;border-radius:999px;border:1px dashed var(--border-strong);background:transparent;color:var(--text-2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.side-install:hover{background:var(--brand-50);border-color:var(--brand);color:var(--on-brand-c)}

/* motion: pages fade into each other (sidebar and top bar stay put); switching the theme fades the colours */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .is-app .sidebar{view-transition-name:sidebar}
  .is-app .topbar{view-transition-name:topbar}
  ::view-transition-group(sidebar),::view-transition-group(topbar){animation-duration:0s}
  ::view-transition-old(root){animation:vtOut .14s var(--ease) both}
  ::view-transition-new(root){animation:vtIn .24s var(--ease) both}
  html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease),fill .35s var(--ease),stroke .35s var(--ease),box-shadow .35s var(--ease)!important}
}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(6px)}}
