/* ============================================================
   TGSub theme — bold commercial Telegram SMM panel (n1panel-like).
   Self-contained public stylesheet. Solid colors only, no gradients,
   no decorative orbs. Telegram blue accent. Light default + dark mode.
   ============================================================ */
:root{
  --bg:#ffffff; --surface:#f4f6f8; --elevated:#ffffff; --inset:#eef1f4;
  --border:#e3e7ec; --border2:#cfd6de;
  --txt:#0f172a; --muted:#5b6574; --faint:#8b95a5;
  --btn-bg:#229ED9; --btn-fg:#ffffff;
  --btn2-bg:#ffffff; --btn2-fg:#0f172a;
  --accent:#229ED9;
  --tg:#229ED9;
  --ring:0 1px 2px rgba(15,23,42,.06);
  --shadow-card:0 1px 3px rgba(15,23,42,.08);
  --radius:12px; --radius-lg:14px; --radius-sm:10px; --radius-input:8px; --maxw:1600px;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --display:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
[data-theme="dark"]{
  --bg:#0b1220; --surface:#121a2b; --elevated:#162033; --inset:#0f172a;
  --border:rgba(255,255,255,.10); --border2:rgba(255,255,255,.18);
  --txt:#f8fafc; --muted:#a7b0bf; --faint:#7c8798;
  --btn-bg:#229ED9; --btn-fg:#ffffff;
  --btn2-bg:transparent; --btn2-fg:#f8fafc;
  --accent:#38bdf8; --tg:#38bdf8;
  --ring:0 0 0 1px rgba(255,255,255,.06);
  --shadow-card:0 2px 8px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.ts{
  background:var(--bg); color:var(--txt); font-family:var(--sans);
  line-height:1.55; letter-spacing:.01em; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* :where() keeps this reset at zero class specificity so single-class
   color rules (.ts-btn, .ts-nav-link, …) still win on anchors — with
   `.ts a` the reset outranked them and pill text inherited the page
   color (white-on-white in dark mode). */
:where(.ts) a{color:inherit;text-decoration:none}
.ts img{max-width:100%;display:block}
.ts-wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,2.5vw,40px);width:100%;box-sizing:border-box}
.ts-grad{color:var(--tg)}

/* ---------- buttons ---------- */
.ts-btn{
  display:inline-flex;align-items:center;gap:.5em;justify-content:center;
  padding:11px 18px;border-radius:10px;font-weight:600;font-size:14.5px;font-family:var(--sans);
  letter-spacing:0;
  background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bg);cursor:pointer;
  box-shadow:none;transition:opacity .15s ease,background .15s ease;
  white-space:nowrap;
}
.ts-btn:hover{opacity:.92}
.ts-btn:active{opacity:.86}
.ts-btn-lg{padding:13px 22px;font-size:15px}
.ts-btn-sm{padding:8px 14px;font-size:13.5px}
.ts-btn-pill{border-radius:10px}
.ts-ghost{background:var(--btn2-bg);color:var(--btn2-fg);border:1px solid var(--border);box-shadow:none}
.ts-ghost:hover{opacity:1;background:var(--surface)}

/* ---------- brand ---------- */
.ts-brand{display:inline-flex;align-items:center;gap:10px}
.ts-brand-mark{width:34px;height:34px;flex:0 0 auto;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--tg)}
.ts-brand-name{font-weight:700;font-size:18px;letter-spacing:.02em;font-family:var(--sans)}
.ts-brand-lg .ts-brand-mark{width:42px;height:42px;border-radius:12px}
.ts-brand-lg .ts-brand-name{font-size:22px}

/* ---------- header bar ---------- */
.ts-bar{position:sticky;top:0;z-index:60;padding:0;
  background:var(--bg);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border)}
.ts-bar-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,2.5vw,40px);min-height:56px;
  display:flex;align-items:center;gap:18px}
.ts-nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.ts-nav-link{padding:8px 13px;border-radius:999px;color:var(--muted);
  font-weight:500;font-size:14px;font-family:var(--sans);transition:color .15s,background .15s}
.ts-nav-link:hover{color:var(--txt);background:var(--surface)}
.ts-nav-signin{padding:8px 12px;color:var(--txt);font-weight:500;font-size:14px;
  font-family:var(--sans);transition:opacity .15s}
.ts-nav-signin:hover{opacity:.6}
.ts-nav .ts-btn{margin-left:6px}
.ts-burger{display:none;margin-left:auto;background:var(--btn2-bg);border:1px solid var(--border);
  border-radius:10px;cursor:pointer;flex-direction:column;gap:5px;padding:10px 11px;box-shadow:var(--ring)}
.ts-burger span{width:20px;height:2px;background:var(--txt);border-radius:2px;transition:.2s}

/* ---------- hero ---------- */
.ts-hero{position:relative;padding:72px 0 56px;overflow:hidden;background:var(--bg)}
.ts-blob{display:none}
.ts-hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:start}
.ts-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;
  color:var(--tg);background:transparent;border:0;
  padding:0;border-radius:0;font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.ts-hero-copy h1{font-size:clamp(36px,5.4vw,56px);line-height:1.05;letter-spacing:-.03em;
  margin:10px 0 0;font-weight:800;font-family:var(--display)}
.ts-lede{color:var(--muted);font-size:17px;max-width:min(640px,100%);margin:18px 0 26px;font-weight:400;line-height:1.55}
.ts-hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.ts-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:32px}
.ts-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 12px}
.ts-stat b{display:block;font-size:14px;font-weight:700;color:var(--txt);margin-bottom:4px}
.ts-stat span{font-size:12.5px;color:var(--muted)}
.ts-trust-row{display:none}
.ts-login-panel{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:28px 24px;box-shadow:var(--shadow-card)}
.ts-login-title{margin:0 0 4px;font-size:22px;font-weight:800;letter-spacing:-.02em}
.ts-login-sub{margin:0 0 18px;color:var(--muted);font-size:14px}
.ts-login-form{display:flex;flex-direction:column;gap:14px}
.ts-login-submit{width:100%;margin-top:4px}
.ts-login-alt{margin:16px 0 0;text-align:center;font-size:14px;color:var(--muted)}
.ts-login-alt a{color:var(--tg);font-weight:600}
.ts-login-alt a:hover{text-decoration:underline}

/* ---------- platforms strip ---------- */
.ts-platforms{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);padding:16px 0}
.ts-platforms-inner{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center}
.ts-platforms-inner span{font-size:13px;font-weight:600;color:var(--muted)}

/* ---------- about ---------- */
.ts-about{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:start}
.ts-about-copy h2{font-size:clamp(26px,3.2vw,36px);line-height:1.15;letter-spacing:-.02em;margin:0 0 14px;font-weight:800}
.ts-about-copy p{color:var(--muted);font-size:15.5px;line-height:1.65;margin:0 0 14px}
.ts-about-aside{display:flex;flex-direction:column;gap:12px}
.ts-about-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.ts-about-card strong{display:block;margin-bottom:6px;font-size:15px}
.ts-about-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}

/* ---------- seo service cards ---------- */
.ts-seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ts-seo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 20px}
.ts-seo-card h3{margin:0 0 10px;font-size:17px;font-weight:700;letter-spacing:-.01em}
.ts-seo-card p{margin:0 0 14px;color:var(--muted);font-size:14.5px;line-height:1.55}
.ts-seo-card a{color:var(--tg);font-weight:600;font-size:14px}
.ts-seo-card a:hover{text-decoration:underline}

/* ---------- hero order-progress card (elevated white) ---------- */
.ts-hero-art{position:relative;justify-self:stretch;width:100%;max-width:none}
.ts-progress-card{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:24px;box-shadow:var(--shadow-card)}
.ts-pc-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.ts-pc-ico{width:44px;height:44px;border-radius:12px;background:var(--tg);flex:0 0 auto;position:relative}
.ts-pc-ico::after{content:"";position:absolute;inset:0;border-radius:12px;
  background:
    linear-gradient(#fff,#fff) 13px 23px/18px 2px no-repeat,
    linear-gradient(#fff,#fff) 13px 17px/11px 2px no-repeat,
    linear-gradient(#fff,#fff) 13px 29px/15px 2px no-repeat;opacity:.9}
.ts-pc-titles{flex:1;display:flex;flex-direction:column;line-height:1.3}
.ts-pc-titles strong{font-size:15px;font-family:var(--sans);font-weight:600}
.ts-pc-titles span{font-size:13px;color:var(--muted)}
.ts-pc-meter{height:8px;border-radius:999px;background:var(--inset);overflow:hidden;margin-bottom:20px;
  box-shadow:var(--ring)}
.ts-pc-meter i{display:block;height:100%;border-radius:999px;background:var(--txt)}
.ts-pc-fill{width:72%}
.ts-pc-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.ts-pc-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--muted)}
.ts-pc-row b{color:var(--txt);font-weight:600}
.ts-pc-foot{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;
  color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:7px 13px;border-radius:999px}
.ts-fab{position:absolute;background:var(--elevated);border:1px solid var(--border);border-radius:999px;
  padding:9px 15px;font-size:13px;font-weight:500;color:var(--txt);box-shadow:var(--shadow-card)}
.ts-fab-a{top:-16px;left:-18px;animation:tsfloat 4s ease-in-out infinite}
.ts-fab-b{bottom:-14px;right:-14px;animation:tsfloat 4.6s ease-in-out infinite reverse}
@keyframes tsfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ---------- shared bits ---------- */
.ts-pulse{width:8px;height:8px;border-radius:50%;background:var(--txt);flex:0 0 auto;opacity:.7}
.ts-bdg{font-size:11px;font-weight:500;padding:4px 10px;border-radius:999px;white-space:nowrap;
  font-family:var(--sans);border:1px solid var(--border)}
.ts-bdg-ok{background:var(--surface);color:var(--muted)}

/* ---------- section heads ---------- */
.ts-section{padding:96px 24px}
.ts-head{max-width:min(900px,100%);margin:0 auto 48px;text-align:center}
.ts-kicker{display:inline-block;color:var(--tg);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:12px;background:transparent;border:0;
  padding:0;border-radius:0}
.ts-head h2{font-size:clamp(26px,3.2vw,36px);line-height:1.15;letter-spacing:-.02em;margin:0 0 12px;
  font-weight:800;font-family:var(--display)}
.ts-head p{color:var(--muted);font-size:17px;margin:0;font-weight:400}

/* ---------- how it works (hairline-connected steps) ---------- */
.ts-flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  list-style:none;margin:0;padding:0}
.ts-flow::before{display:none}
.ts-flow-step{position:relative;z-index:1;text-align:center;padding:0 8px}
.ts-flow-num{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:10px;background:var(--tg);color:#fff;font-weight:800;font-size:18px;
  font-family:var(--display);box-shadow:none;border:0;margin-bottom:14px}
.ts-flow-step h3{font-size:19px;margin:0 0 8px;font-weight:500;font-family:var(--sans);letter-spacing:-.01em}
.ts-flow-step p{color:var(--muted);font-size:15px;margin:0;max-width:300px;margin-inline:auto}

/* ---------- service category tiles ---------- */
.ts-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ts-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px 24px 22px;transition:transform .18s ease,box-shadow .18s ease}
.ts-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.ts-tile-ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;margin-bottom:14px;background:var(--tg);color:#fff;font-size:13px;font-weight:700}
.ts-tile-name{font-size:18px;font-weight:500;font-family:var(--sans);letter-spacing:-.01em}
.ts-tile-price{font-size:14px;font-weight:400;color:var(--muted)}

/* ---------- testimonials ---------- */
.ts-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ts-review{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:28px;display:flex;flex-direction:column;gap:14px}
.ts-review-stars{color:var(--txt);font-size:15px;letter-spacing:2px}
.ts-review blockquote{margin:0;font-size:16px;line-height:1.6;color:var(--txt);font-weight:400}
.ts-review-by{display:flex;align-items:center;gap:12px;margin-top:auto}
.ts-av{width:44px;height:44px;border-radius:50%;background:var(--surface);color:var(--txt);font-weight:600;
  font-size:17px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);
  border:1px solid var(--border)}
.ts-av[data-av="l"]{background:var(--tg);color:#fff;border-color:transparent}

.ts-review-name{font-size:15px;font-weight:600;font-family:var(--sans)}

/* ---------- pricing plans ---------- */
.ts-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.ts-plan{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:32px 28px;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}
.ts-plan:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.ts-plan-best{background:var(--elevated);border-color:var(--txt);box-shadow:var(--shadow-card)}
.ts-plan-best:hover{transform:translateY(-4px)}
.ts-plan-flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--btn-bg);color:var(--btn-fg);font-size:12px;font-weight:500;font-family:var(--sans);
  padding:5px 14px;border-radius:999px;white-space:nowrap;letter-spacing:.02em}
.ts-plan-name{font-size:16px;margin:0 0 12px;font-weight:500;font-family:var(--sans);color:var(--muted)}
.ts-plan-price{font-size:48px;font-weight:300;letter-spacing:-.03em;font-family:var(--display);line-height:1;color:var(--txt)}
.ts-plan-cur{font-size:24px;vertical-align:top;margin-right:2px}
.ts-plan-per{font-size:14px;font-weight:400;color:var(--faint);margin-left:6px;letter-spacing:0;font-family:var(--sans)}
.ts-plan-sub{color:var(--muted);font-size:14.5px;margin:14px 0 22px}
.ts-plan-feats{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:12px;flex:1}
.ts-plan-feats li{position:relative;padding-left:28px;font-size:14.5px;color:var(--txt)}
.ts-plan-feats li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border)}
.ts-plan-best .ts-plan-feats li::before{background:var(--inset)}
.ts-plan-feats li::after{content:"";position:absolute;left:6px;top:7px;width:6px;height:3px;
  border-left:2px solid var(--txt);border-bottom:2px solid var(--txt);transform:rotate(-45deg)}
.ts-plan-cta{width:100%}

/* ---------- FAQ accordion ---------- */
.ts-faq{max-width:min(1000px,100%);margin:0 auto;display:flex;flex-direction:column;gap:12px}
.ts-faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.ts-faq-item summary{list-style:none;cursor:pointer;padding:20px 24px;font-size:16px;font-weight:500;
  font-family:var(--sans);display:flex;align-items:center;justify-content:space-between;gap:14px}
.ts-faq-item summary::-webkit-details-marker{display:none}
.ts-faq-item summary::after{content:"";flex:0 0 auto;width:22px;height:22px;border-radius:50%;
  background:var(--bg);border:1px solid var(--border);position:relative;transition:transform .2s ease}
.ts-faq-item summary::before{content:"";position:absolute;right:34px;width:8px;height:8px;
  border-right:1.6px solid var(--txt);border-bottom:1.6px solid var(--txt);
  transform:translateY(-2px) rotate(45deg);transition:transform .2s ease;pointer-events:none}
.ts-faq-item[open] summary::before{transform:translateY(2px) rotate(-135deg)}
.ts-faq-a{padding:0 24px 22px;color:var(--muted);font-size:15px;line-height:1.65}

/* ---------- CTA band ---------- */
.ts-cta-band{margin:0 0 0;position:relative;overflow:hidden;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ts-cta-inner{max-width:var(--maxw);margin:0 auto;background:transparent;border:0;
  border-radius:0;padding:64px 24px;text-align:center;color:var(--txt);position:relative;overflow:hidden}
.ts-cta-inner::before,.ts-cta-inner::after{display:none}
.ts-cta-inner h2{font-size:clamp(26px,3.2vw,36px);margin:0 0 12px;font-weight:800;font-family:var(--display);
  letter-spacing:-.02em}
.ts-cta-inner>p{font-size:16.5px;margin:0 0 24px;color:var(--muted)}
.ts-cta-btn{background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg)}
.ts-cta-btn:hover{opacity:.92}
.ts-cta-pay{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:28px}
.ts-cta-pay-label{font-size:13px;font-weight:500;color:var(--muted);font-family:var(--sans)}
.ts-cta-trust{margin:20px 0 0;font-size:14px;font-weight:400;color:var(--muted)}


/* ---------- payment pills (shared) ---------- */
.ts-pay{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ts-pay-pill{font-size:13px;font-weight:500;font-family:var(--sans);padding:7px 15px;border-radius:999px;
  background:var(--bg);color:var(--txt);border:1px solid var(--border)}
.ts-cta-pay .ts-pay-pill{background:var(--bg)}

/* ---------- footer — blue end-CTA + pill nav (landing closer) ---------- */
.ts-foot{border-top:0;background:var(--bg)}
.ts-foot-wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,2.5vw,40px);box-sizing:border-box}
.ts-foot-cta{background:#0b3a55;color:#fff;padding:28px 0}
.ts-foot-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ts-foot-kicker{
  display:inline-flex;margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#7dd3fc}
.ts-foot-headline{
  margin:0;font-size:clamp(20px,2.8vw,28px);font-weight:700;letter-spacing:-.025em;
  line-height:1.15;color:#fff;max-width:22ch}
.ts-foot-cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.ts-foot-cta-btns .ts-ghost{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}
.ts-foot-cta-btns .ts-ghost:hover{background:rgba(255,255,255,.08);border-color:#fff}
.ts-foot-body{padding:20px 0 16px;border-top:1px solid var(--border)}
.ts-foot-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.ts-foot-row .ts-pay{margin-top:0}
.ts-foot-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ts-foot-pills a{
  display:inline-flex;padding:8px 14px;border-radius:999px;border:1px solid var(--border);
  background:var(--surface);color:var(--txt);font-size:13px;font-weight:600;text-decoration:none}
.ts-foot-pills a:hover{border-color:var(--tg);color:var(--tg)}
/* Language grid — code + native name (blog Switcher) */
.ts-foot-langs{margin:0 0 14px;padding:14px 0 0;border-top:1px solid var(--border)}
.ts-foot-langs-title{
  margin:0 0 10px;font-size:15px;font-weight:700;color:var(--txt);
  display:flex;align-items:center;gap:8px}
.ts-foot-langs-title::before{
  content:"";width:14px;height:14px;border-radius:50%;
  background:var(--tg);opacity:.9;flex:none;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--tg) 18%,transparent)}
.ts-foot-langs-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 16px;max-width:520px}
.ts-foot-lang{
  display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;
  color:var(--muted);text-decoration:none;font-size:14px;min-width:0;
  border:1px solid transparent;background:transparent}
.ts-foot-lang:hover{color:var(--txt);background:var(--surface)}
.ts-foot-lang.is-cur{
  color:var(--txt);background:var(--surface);border-color:var(--border);
  box-shadow:0 1px 2px rgba(15,23,42,.05)}
.ts-foot-lang-code{
  flex:none;min-width:2.2ch;font-size:12px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--faint)}
.ts-foot-lang.is-cur .ts-foot-lang-code{color:var(--tg)}
.ts-foot-lang-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.ts-foot-copy{margin:0;color:var(--faint);font-size:12.5px}
@media(min-width:720px){
  .ts-foot-langs-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:720px}
}
@media(min-width:1000px){
  .ts-foot-langs-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:920px}
}

/* ---------- scroll reveal (content shows without JS) ---------- */
.has-js .reveal,.has-js .reveal-group>*{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.has-js .reveal.in,.has-js .reveal-group.in>*{opacity:1;transform:none}
.has-js .reveal-group.in>*:nth-child(2){transition-delay:.07s}
.has-js .reveal-group.in>*:nth-child(3){transition-delay:.14s}
.has-js .reveal-group.in>*:nth-child(4){transition-delay:.21s}
.has-js .reveal-group.in>*:nth-child(5){transition-delay:.28s}
.has-js .reveal-group.in>*:nth-child(6){transition-delay:.35s}

/* ---------- responsive ---------- */

@media(max-width:1100px){
  .ts-hero-grid{grid-template-columns:1fr;gap:28px}
  .ts-about{grid-template-columns:1fr}
  .ts-seo-grid{grid-template-columns:1fr 1fr}
  .ts-flow{grid-template-columns:1fr 1fr}
  .ts-api-grid{grid-template-columns:1fr;gap:16px}
}

@media(max-width:900px){
  .ts-burger{display:flex}
  .ts-nav{position:fixed;inset:64px 24px auto;flex-direction:column;align-items:stretch;gap:2px;
    background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
    padding:12px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow-card)}
  .ts-nav.open{transform:none;opacity:1;pointer-events:auto}
  .ts-nav-link,.ts-nav-signin{padding:12px 14px;border-radius:12px;font-size:16px}
  .ts-nav .ts-btn{margin:8px 0 0;text-align:center;justify-content:center}
  .ts-nav .ts-theme{margin:8px auto 0}
  .ts-hero-grid{grid-template-columns:1fr;gap:28px}
  .ts-hero-art{order:2;max-width:480px}
  .ts-stat-row{grid-template-columns:1fr 1fr}
  .ts-about{grid-template-columns:1fr}
  .ts-seo-grid{grid-template-columns:1fr 1fr}
  .ts-flow{grid-template-columns:1fr 1fr;gap:16px}
  .ts-tiles,.ts-reviews{grid-template-columns:1fr 1fr}
  .ts-plans{grid-template-columns:1fr;max-width:440px;margin-inline:auto}
  .ts-plan-best,.ts-plan-best:hover{transform:none}
  .ts-foot-cta-inner{align-items:flex-start}
}
@media(max-width:560px){
  .ts-nav{inset:64px 16px auto}
  .ts-tiles,.ts-reviews,.ts-seo-grid,.ts-flow,.ts-stat-row{grid-template-columns:1fr}
  .ts-foot-headline{max-width:none}
  .ts-section{padding:56px 20px}
}
@media(prefers-reduced-motion:reduce){
  .has-js .reveal,.has-js .reveal-group>*{opacity:1;transform:none;transition:none}
  .ts-fab-a,.ts-fab-b{animation:none}
  .ts-btn:hover,.ts-tile:hover,.ts-plan:hover,.ts-review:hover{transform:none}
}

/* ============================================================
   UTILITY + AUTH PAGES (services catalog · API docs · auth cards)
   ============================================================ */
.ts-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}
.ts-bdg-soft{background:var(--surface);color:var(--muted);border:1px solid var(--border)}

/* ---------- /services — category tiles + toolbar ---------- */
.ts-cat-hero{padding:72px 0 26px;text-align:center}
.ts-cat-hero .ts-eyebrow{margin-bottom:18px}
.ts-cat-title{font-size:clamp(28px,3.6vw,44px);line-height:1.08;letter-spacing:-.02em;
  margin:0 auto 16px;font-weight:700;font-family:var(--display);max-width:min(1000px,100%)}
.ts-cat-lede{color:var(--muted);font-size:17px;max-width:min(900px,100%);margin:0 auto 26px}
.ts-cat-who{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 18px;
  background:var(--surface);border:1px solid var(--border);border-radius:999px;
  padding:11px 22px;font-size:15px;color:var(--muted)}
.ts-cat-who b{color:var(--txt);font-family:var(--sans);font-weight:600}
.ts-cat-bal{padding-left:18px;border-left:1px solid var(--border)}
.ts-cat-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* toolbar */
.ts-cat-toolbar-wrap{margin-bottom:18px}
.ts-cat-toolbar{position:sticky;top:64px;z-index:30;display:flex;align-items:center;gap:12px;
  flex-wrap:wrap;background:var(--bg);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(12px);
  border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--ring)}
.ts-cat-search{flex:1 1 280px;display:flex;align-items:center;gap:10px;
  background:var(--surface);border:1px solid var(--border);border-radius:999px;
  padding:10px 18px;color:var(--faint);min-width:0}
.ts-cat-search svg{flex:0 0 auto;color:var(--muted)}
.ts-cat-search input{flex:1;min-width:0;border:0;background:transparent;outline:none;
  font:inherit;font-size:15px;color:var(--txt)}
.ts-cat-search input::placeholder{color:var(--faint)}
.ts-cat-select{appearance:none;-webkit-appearance:none;font:inherit;font-size:14px;font-weight:500;
  font-family:var(--sans);color:var(--txt);cursor:pointer;
  background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 16px center;
  border:1px solid var(--border);border-radius:999px;padding:10px 40px 10px 18px}
.ts-cat-select:hover{border-color:var(--txt)}
.ts-cat-count{font-size:13.5px;font-weight:400;color:var(--muted);font-family:var(--sans);
  margin-left:auto;white-space:nowrap}

/* catalog groups */
.ts-catalog{padding-bottom:96px;display:flex;flex-direction:column;gap:48px}
.ts-cat-group[hidden]{display:none}
.ts-cat-group-head{display:flex;align-items:baseline;gap:14px;margin:0 0 18px}
.ts-cat-group-name{font-size:22px;font-weight:500;font-family:var(--sans);letter-spacing:-.01em;margin:0}
.ts-cat-group-tag{font-size:12px;font-weight:500;color:var(--muted);background:var(--surface);
  border:1px solid var(--border);padding:4px 12px;border-radius:999px}

/* tiles — the <table> is reset to a responsive grid of cards */
.ts-cat-tiles,.ts-cat-tiles thead,.ts-cat-tiles tbody,.ts-cat-tiles tr,.ts-cat-tiles td{display:block}
.ts-cat-tiles{width:100%;border-collapse:collapse}
.ts-cat-tiles tbody{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ts-tile-card{position:relative;display:flex;flex-direction:column;gap:12px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px;transition:transform .18s ease,box-shadow .18s ease}
.ts-tile-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.ts-tile-card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0;
  background:var(--tg)}
.ts-tc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ts-tc-id code{font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--txt);
  background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:3px 9px}
.ts-tc-type{margin-left:auto}
.ts-tc-name{font-size:16px;font-weight:500;font-family:var(--sans);line-height:1.35;letter-spacing:-.01em}
.ts-tc-rate{display:flex;align-items:baseline;gap:7px}
.ts-tc-rate-val{font-size:26px;font-weight:300;font-family:var(--display);color:var(--txt);letter-spacing:-.02em}
.ts-tc-rate-unit{font-size:13px;font-weight:400;color:var(--faint)}
.ts-tc-meta{display:flex;flex-wrap:wrap;gap:8px}
.ts-tc-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:400;color:var(--txt);
  background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:5px 12px}
.ts-tc-chip em{font-style:normal;font-weight:500;color:var(--faint);font-size:11px;text-transform:uppercase;
  letter-spacing:.04em}
.ts-tc-act{margin-top:4px}
.ts-tc-act .ts-btn{width:100%}
.ts-cat-empty{text-align:center;color:var(--muted);font-size:17px;padding:60px 0;
  background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius)}

/* ---------- /api — minimal docs cards ---------- */
.ts-api-hero{padding:72px 0 18px}
.ts-api-hero .ts-eyebrow{margin-bottom:18px}
.ts-api-title{font-size:clamp(28px,3.6vw,42px);line-height:1.08;letter-spacing:-.02em;
  margin:0 0 16px;font-weight:700;font-family:var(--display);max-width:min(1000px,100%)}
.ts-api-lede{color:var(--muted);font-size:17px;max-width:min(900px,100%);margin:0 0 26px}
.ts-api-lede code,.ts-api-note code{font-family:var(--mono);font-size:.88em;font-weight:500;color:var(--txt);
  background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1px 7px}
.ts-api-facts{display:flex;flex-wrap:wrap;gap:12px}
.ts-api-fact{display:flex;flex-direction:column;gap:4px;background:var(--elevated);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 18px;box-shadow:var(--shadow-card);min-width:150px}
.ts-api-fact-k{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.ts-api-fact-v code{font-family:var(--mono);font-size:13.5px;font-weight:500;color:var(--txt)}
.ts-api-note{margin:22px 0 0;color:var(--muted);font-size:14.5px}
.ts-api-a{color:var(--txt);font-weight:500;border-bottom:1px solid var(--border2)}
.ts-api-a:hover{border-color:var(--txt)}
.ts-api-grid{padding:40px 24px 96px;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}
.ts-api-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:24px;display:flex;flex-direction:column;gap:14px;transition:transform .18s ease,box-shadow .18s ease}
.ts-api-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.ts-api-card-wide{grid-column:1 / -1}
.ts-api-card-top{display:flex;align-items:center;gap:12px}
.ts-api-verb{flex:0 0 auto;font-size:11px;font-weight:500;font-family:var(--mono);letter-spacing:.04em;
  color:var(--btn-fg);background:var(--btn-bg);border-radius:7px;padding:5px 10px}
.ts-api-verb-muted{background:var(--surface);color:var(--muted);border:1px solid var(--border)}
.ts-api-card-h{font-size:18px;font-weight:500;font-family:var(--sans);letter-spacing:-.01em;margin:0}
.ts-api-card-p{color:var(--muted);font-size:14.5px;line-height:1.6;margin:0}
.ts-api-card-p-sm{font-size:13.5px}
.ts-api-card-p code{font-family:var(--mono);font-size:.86em;font-weight:500;color:var(--txt);
  background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1px 6px}
.ts-api-params{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;
  border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.ts-api-params li{display:flex;align-items:flex-start;gap:14px;padding:11px 14px;font-size:14px;
  border-top:1px solid var(--border)}
.ts-api-params li:first-child{border-top:0}
.ts-api-params li>code{flex:0 0 118px;font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--txt);
  word-break:break-word}
.ts-api-params li>span{flex:1;color:var(--muted);line-height:1.5}
.ts-api-params li>span b{color:var(--txt);font-family:var(--mono);font-weight:500}
.ts-api-params li>span code{font-family:var(--mono);font-size:.9em;font-weight:500;color:var(--txt);
  background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:0 5px}
.ts-api-params li>span i{font-style:normal;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:var(--faint);margin-left:6px}
.ts-api-opt{background:var(--inset)}
.ts-api-rl{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin:0}
.ts-api-code{margin:0;background:var(--inset);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:16px 18px;overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.69;color:var(--txt)}
.ts-api-code code{font-family:inherit;white-space:pre}

/* ---------- /signin · /signup · /forgot — centered card auth ---------- */
body.ts.auth{display:flex;flex-direction:column;min-height:100vh}
.ts-auth-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;
  padding:56px 24px 64px;overflow:hidden}
.ts-auth-wrap .ts-blob{z-index:0}
.ts-auth-card{position:relative;z-index:1;width:100%;max-width:430px;
  background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:38px 34px 30px;box-shadow:var(--shadow-card)}
.ts-auth-head{text-align:center;margin-bottom:26px}
.ts-auth-mark{width:50px;height:50px;border-radius:12px;margin:0 auto 16px;background:var(--tg)}
.ts-auth-title{font-size:26px;font-weight:300;font-family:var(--display);letter-spacing:-.02em;margin:0 0 8px}
.ts-auth-sub{color:var(--muted);font-size:15px;margin:0;line-height:1.5}
.ts-auth-form{display:flex;flex-direction:column;gap:16px}
.ts-auth-alert{font-size:14px;font-weight:400;border-radius:var(--radius-input);padding:12px 16px;line-height:1.45}
.ts-auth-alert-err{background:rgba(180,35,24,.08);color:#b42318;border:1px solid rgba(180,35,24,.28)}
.ts-auth-alert-ok{background:var(--surface);color:var(--txt);border:1px solid var(--border)}
.ts-auth-field{display:flex;flex-direction:column;gap:7px}
.ts-auth-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:13px;font-weight:500;font-family:var(--sans);color:var(--txt)}
.ts-auth-hint{font-size:12px;font-weight:400;color:var(--faint);font-family:var(--sans)}
.ts-auth-mini{font-size:12.5px;font-weight:500;color:var(--muted)}
.ts-auth-mini:hover{color:var(--txt);text-decoration:underline}
.ts-auth-input{width:100%;font:inherit;font-size:15px;color:var(--txt);
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-input);
  padding:13px 14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.ts-auth-input::placeholder{color:var(--faint)}
.ts-auth-input:focus{border-color:var(--txt);box-shadow:0 0 0 3px rgba(0,0,0,.08)}
[data-theme="dark"] .ts-auth-input:focus{box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.ts-auth-submit{width:100%;margin-top:4px}
.ts-auth-alt{text-align:center;color:var(--muted);font-size:14.5px;margin:22px 0 0}
.ts-auth-alt a{color:var(--txt);font-weight:500}
.ts-auth-alt a:hover{text-decoration:underline}

/* ---------- responsive — utility + auth ---------- */
@media(max-width:900px){
  .ts-cat-toolbar{top:64px}
  .ts-cat-count{margin-left:0;width:100%;order:3}
  .ts-api-grid{grid-template-columns:1fr;padding:28px 24px 64px}
  .ts-api-card-wide{grid-column:auto}
}
@media(max-width:560px){
  .ts-cat-hero{padding:52px 0 22px}
  .ts-cat-tiles tbody{grid-template-columns:1fr}
  .ts-cat-bal{padding-left:0;border-left:0}
  .ts-cat-toolbar{padding:12px}
  .ts-api-params li{flex-direction:column;gap:4px}
  .ts-api-params li>code{flex:none}
  .ts-auth-card{padding:30px 22px 26px}
}
@media(prefers-reduced-motion:reduce){
  .ts-tile-card:hover,.ts-api-card:hover{transform:none}
}

/* ---------- theme toggle button — monochrome round ghost; moon = "switch to dark" (light), sun = "switch to light" (dark) ---------- */
.ts-theme{display:inline-flex;align-items:center;justify-content:center;align-self:center;
  width:38px;height:38px;flex:none;border-radius:999px;
  background:var(--btn2-bg);border:1px solid var(--border);color:var(--muted);cursor:pointer;
  box-shadow:var(--ring);transition:color .15s,border-color .15s,transform .15s}
.ts-theme:hover{color:var(--txt);border-color:var(--txt);transform:translateY(-1px)}
.ts-theme svg{width:17px;height:17px;display:block}
.ts-theme .sun{display:none}
.ts-theme .moon{display:block}
[data-theme="dark"] .ts-theme .moon{display:none}
[data-theme="dark"] .ts-theme .sun{display:block}



/* ============================================================
   WIDE SHELL + PUBLIC PAGES (faq / terms / service detail)
   Desktop uses a full commercial panel width, not a blog column.
   ============================================================ */
:root, [data-theme="light"], [data-theme="dark"] {
  --fs-primary: var(--tg);
  --fs-text: var(--txt);
  --fs-body: var(--muted);
  --fs-muted: var(--faint);
  --fs-card: var(--surface);
  --fs-border: var(--border);
  --fs-primary-light: color-mix(in srgb, var(--tg) 14%, transparent);
  --fs-hover: color-mix(in srgb, var(--tg) 8%, var(--surface));
  --fs-shadow: none;
  --fs-shadow-lg: none;
  --fs-gradient: var(--tg);
}
.ts-page {padding: 28px 0 64px; width: 100%;}
.ts-wrap, .pp-container {
  max-width: var(--maxw) !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 2.5vw, 40px);
  padding-right: clamp(16px, 2.5vw, 40px);
  box-sizing: border-box;
}
.fs-faq, .fs-terms {
  max-width: 100% !important;
  width: 100%;
  margin: 0 !important;
  padding: 8px 0 40px !important;
}
.fs-faq-blob {display: none !important;}
.fs-faq-hero {
  background: var(--tg) !important;
  color: #fff !important;
  border-radius: 14px !important;
  padding: 40px clamp(16px, 3vw, 36px) 32px !important;
}
.fs-faq-hero-icon, .fs-terms-hero-icon {
  background: color-mix(in srgb, #fff 18%, transparent) !important;
}
.fs-faq-hero-icon i, .fs-terms-hero-icon i,
.fs-faq-h2 i, .fs-faq-ql-icon i {display: none !important;}
.fs-faq-ql-icon {
  background: var(--tg) !important;
  width: 10px !important; height: 10px !important; border-radius: 3px !important;
  min-width: 10px !important; flex: 0 0 10px !important;
}
.fs-faq-search input {border: 1px solid var(--border) !important;}
.fs-faq-item, .fs-terms-card, .fs-faq-ql, .fs-faq-cta, .fs-terms-tile {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
}
.fs-faq-item > summary, .fs-terms-card h2, .fs-faq-h2, .fs-terms-hero h1, .fs-faq-hero h1 {
  color: var(--txt) !important;
}
.fs-faq-hero h1, .fs-faq-hero-sub, .fs-faq-stat strong, .fs-faq-stat span {color: #fff !important;}
.fs-faq-a p, .fs-terms-list li, .fs-terms-card p, .fs-terms-sub {color: var(--muted) !important;}
.fs-faq-item[open] > summary, .fs-faq a, .fs-terms a {color: var(--tg) !important;}
.fs-terms-nav a {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
}
.fs-terms-nav a:hover {border-color: var(--tg) !important; color: var(--tg) !important;}
.fs-terms-num {
  background: color-mix(in srgb, var(--tg) 14%, transparent) !important;
  color: var(--tg) !important;
}
.fs-terms-note {
  background: color-mix(in srgb, var(--tg) 10%, transparent) !important;
  border-left-color: var(--tg) !important;
}
.fs-terms-hero-icon {
  background: var(--tg) !important;
  color: #fff !important;
}

/* Service detail page — wide commercial card, not blog column */
.svcd-wrap {
  max-width: var(--maxw) !important;
  width: 100%;
  margin: 28px auto 56px !important;
  padding: 0 clamp(16px, 2.5vw, 40px) !important;
  box-sizing: border-box;
}
.svcd-card {
  border-color: var(--border) !important;
  background: var(--surface) !important;
  border-radius: 12px !important;
}
.svcd-btn-primary {
  background: var(--tg) !important;
  border-color: var(--tg) !important;
  color: #fff !important;
}
.svcd-btn {
  border-color: var(--border) !important;
}
.svcd-table th {width: 220px;}
.svcd-related li {border-color: var(--border) !important;}

/* Extra-wide desktop: use more horizontal space */
@media (min-width: 1400px) {
  .ts-wrap, .pp-container {padding-left: 40px; padding-right: 40px;}
}
@media (max-width: 1024px) {
  .fs-faq-quicklinks {grid-template-columns: 1fr 1fr !important;}
}
@media (max-width: 640px) {
  .fs-faq-quicklinks {grid-template-columns: 1fr !important;}
  .svcd-table th {width: auto; display: block; padding-bottom: 0;}
  .svcd-table td {display: block; padding-top: 2px;}
  .svcd-table tr {display: block; padding: 10px 0;}
}

/* ===== Google Sign-In (GIS) ===== */
/* Anti-flash: the wrap stays hidden until gsi-auth.js sees the GIS button
   iframe (adds .gsi-ready); min-height reserves the space so the reveal
   never shifts layout. */
.pp-google-wrap{display:flex;justify-content:center;margin:14px 0 4px;min-height:44px}.pp-google-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:240px;padding:10px 18px;border:1px solid var(--border,#dadce0);border-radius:8px;background:var(--card-bg,#fff);color:var(--fg,#3c4043);font-size:14px;font-weight:600;cursor:pointer}.pp-google-btn:hover{background:var(--hover-bg,#f8f9fa)}.pp-google-btn img{flex:none}

.gsi-divider{display:flex;align-items:center;gap:12px;margin:16px 0 4px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.gsi-divider::before,.gsi-divider::after{content:"";flex:1;height:1px;background:var(--border)}
.gsi-hint{text-align:center;color:var(--muted);font-size:13px;margin:0 0 8px}

/* ============ /api — TGSub: hero + pill TOC + stacked soft cards ============ */
body.ts .ts-api-shell{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,2.5vw,40px) 72px}
body.ts .fs-api{display:block;max-width:none;margin:0;padding:0}
body.ts .fs-header{
  background:#0b3a55;color:#fff;border-radius:18px;padding:clamp(28px,4vw,40px);
  margin:28px 0 18px}
body.ts .fs-header h1{margin:0 0 8px;font-size:clamp(28px,4vw,40px);font-weight:800;color:#fff;letter-spacing:-.03em}
body.ts .fs-header .muted{color:rgba(255,255,255,.75);margin:0;font-size:15.5px}
body.ts .fs-toc{
  position:static;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  max-height:none;background:transparent;border:0;padding:0 0 18px;margin:0}
body.ts .fs-toc-title{
  flex:0 0 100%;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);padding:0 0 6px}
body.ts .fs-toc a{
  display:inline-flex;padding:8px 14px;border-radius:999px;border:1px solid var(--border);
  background:var(--elevated);color:var(--muted);font-size:13px;font-weight:600;text-decoration:none;
  border-left:1px solid var(--border);box-shadow:0 1px 2px rgba(15,23,42,.04)}
body.ts .fs-toc a:hover{border-color:#229ED9;color:#229ED9}
body.ts .fs-toc a.active{background:#229ED9;border-color:#229ED9;color:#fff}
body.ts .fs-body{display:flex;flex-direction:column;gap:14px}
body.ts .fs-sec{
  margin:0;padding:20px 20px 18px;background:var(--elevated);border:1px solid var(--border);
  border-radius:16px;box-shadow:0 1px 3px rgba(15,23,42,.05);scroll-margin-top:80px}
body.ts .fs-sec:hover{border-color:color-mix(in srgb,#229ED9 35%,var(--border))}
body.ts .fs-sec h3{margin:0 0 12px;font-size:18px;font-weight:750;color:var(--txt);border:0;padding:0}
body.ts .fs-sec h4.fs-sub{display:inline-flex;margin:12px 0 8px;padding:5px 12px;border-radius:999px;
  background:color-mix(in srgb,#229ED9 12%,transparent);color:#229ED9;font-size:12.5px;font-weight:700;border:1px solid color-mix(in srgb,#229ED9 25%,transparent)}
body.ts .fs-sec p{color:var(--muted);font-size:14.5px;line-height:1.6}
body.ts .fs-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--faint);margin:12px 0 6px!important}
body.ts .fs-info,body.ts .fs-params{width:100%;border-collapse:collapse;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg);margin-bottom:8px}
body.ts .fs-info td,body.ts .fs-params th,body.ts .fs-params td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13.5px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
body.ts .fs-info tr:last-child td,body.ts .fs-params tr:last-child td{border-bottom:0}
body.ts .fs-info td:first-child{width:30%;background:color-mix(in srgb,#229ED9 8%,var(--surface));color:#0b3a55;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
body.ts .fs-params th{background:var(--surface);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:700}
body.ts .fs-params td:first-child{font-family:var(--mono);font-size:12.5px;font-weight:650;width:32%;color:var(--txt)}
body.ts .fs-info code,body.ts .fs-params code,body.ts .fs-sec code{color:#229ED9;font-family:var(--mono);font-size:.9em}
body.ts .fs-code{display:block;overflow-x:auto;margin:0;padding:14px 16px;border-radius:12px;background:#f0f9ff;color:#0c4a6e;border:1px solid #bae6fd;font-family:var(--mono);font-size:12.5px;line-height:1.55}
body.ts .fs-code .c-p{color:#0369a1}body.ts .fs-code .c-s{color:#0c4a6e}body.ts .fs-code .c-v{color:#075985}
[data-theme="dark"] body.ts .fs-code{background:#0b3a55;color:#e8f4fc;border:0}
[data-theme="dark"] body.ts .fs-code .c-p{color:#7dd3fc}[data-theme="dark"] body.ts .fs-code .c-s{color:#fff}[data-theme="dark"] body.ts .fs-code .c-v{color:#a7c4d6}
body.ts .opt-tag{margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--surface);font-size:10px;color:var(--faint)}

/* ── Unified dark footer — neutral navy, consistent in light & dark
      (matches teleranks; replaces the #0b3a55 teal that clashed) ── */
.ts-foot{background:#0f172a;color:rgba(255,255,255,.82)}
.ts-foot-cta{background:#0f172a}
.ts-foot-body{border-top:0}
.ts-foot .ts-brand-name{color:#fff}
.ts-foot-pills a{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.82)}
.ts-foot-pills a:hover{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.10)}
.ts-foot-copy{color:rgba(255,255,255,.5)}
.ts-foot .ts-pay-pill{background:rgba(255,255,255,.08);color:rgba(255,255,255,.72)}
