/* ==========================================================================
   TubePress — mobile "app" layer (additive). Loaded after tubepress.css /
   docs.css / dashboard.css. Everything visual lives under max-width:760px so
   the desktop rendering is untouched. Prefix: .tpm-
   ========================================================================== */

/* ---- Global, invisible on desktop: stop the layout viewport from widening ---- */
.tp-skip{left:0;top:-200px}
.tp-skip:focus{left:0;top:0}
.modal-overlay{contain:paint}
.modal{min-width:0}
.modal-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.modal-field input{min-width:0}
.tpf-layout{grid-template-columns:248px minmax(0,1fr)}
.tpf-side,.tpf-side nav,.tpgx-side,.tpgx-side nav,.tpa-toc,.tpa-toc nav{min-width:0}

/* Mobile-only chrome is hidden on desktop */
.tpm-tabs,.tpm-scrim,.tp-nav__more,.tp-nav__grab,.tp-nav--dash,.tpm-balance,.tpm-paybar,.cl-rel__more,.tpm-toc{display:none}

/* ==========================================================================
   ≤ 900px : rails that become horizontal must never widen the page
   ========================================================================== */
@media (max-width:900px){
  .tpf-layout{grid-template-columns:minmax(0,1fr)}
  .tpf-side{max-width:100vw;contain:paint}
  .tpf-side nav,.tpgx-side nav,.tpa-toc nav{contain:paint;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tpa-layout{grid-template-columns:minmax(0,1fr)}
  .tpa-toc{contain:paint}
}

/* ==========================================================================
   ≤ 760px : the app shell
   ========================================================================== */
@media (max-width:760px){
  :root{--tpm-tabs:62px;--tpm-hdr:56px;--tpm-gutter:18px}
  html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--tpm-hdr) + 12px)}
  html,body{overflow-x:clip}
  body.tp{padding-bottom:calc(var(--tpm-tabs) + env(safe-area-inset-bottom,0px))}
  body.tp.tpm-lock{overflow:hidden}
  .tp .tp-wrap{padding-left:var(--tpm-gutter);padding-right:var(--tpm-gutter)}
  .tp .tp-sec{padding:48px 0;scroll-margin-top:calc(var(--tpm-hdr) + 8px)}
  .tp .tp-sec--sm{padding:36px 0}
  .tp .tp-head{margin-bottom:26px;max-width:none}
  .tp .tp-head h2{font-size:1.72rem;line-height:1.15;letter-spacing:-.02em}
  .tp .tp-head p{font-size:.98rem;line-height:1.55}
  .tp .tp-eyebrow{font-size:.72rem;margin-bottom:10px}
  .tp .tp-btn{min-height:48px;padding:12px 20px;font-size:.98rem;-webkit-tap-highlight-color:transparent}
  .tp .tp-btn--lg{min-height:52px;padding:14px 22px;font-size:1rem;border-radius:12px}
  .tp .tp-btn--sm{min-height:42px;padding:9px 16px;font-size:.92rem}
  .tp .tp-btn-row{gap:10px}
  .tp .tp-btn-row .tp-btn{flex:1 1 calc(50% - 10px);min-width:0}
  .tp .tp-btn-row .tp-btn--lg{flex-basis:100%}
  .tp .tp-link{min-height:44px;display:inline-flex}
  .tp .reveal{transition-duration:.45s}

  /* ---- Utility bar goes away; its links live in the drawer ---- */
  .tp .tp-top{display:none}

  /* ---- Header ---- */
  .tp .tp-header{background:rgba(255,255,255,.94)}
  .tp .tp-header__inner{height:var(--tpm-hdr);gap:8px}
  .tp .tp-logo__full{height:24px}
  .tp .tp-burger{display:flex;width:44px;height:44px;margin-left:auto;margin-right:-8px;border-radius:12px}
  .tp .tp-burger:active{background:var(--bg-soft)}

  /* ---- Scrim + drawer (both inside .tp-header so they share its stacking context) ---- */
  .tp .tpm-scrim{display:block;position:fixed;top:0;left:0;width:100vw;height:100dvh;height:100lvh;background:rgba(7,12,28,.5);opacity:0;pointer-events:none;transition:opacity .25s;z-index:1}
  .tp .tpm-scrim.open{opacity:1;pointer-events:auto}
  .tp .tp-nav{position:fixed;top:0;right:0;bottom:auto;left:auto;inset:0 0 auto auto;width:min(86vw,380px);height:100dvh;max-height:none;display:flex;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:0 0 calc(24px + env(safe-area-inset-bottom,0px));background:#fff;border:0;border-left:1px solid var(--line);box-shadow:-30px 0 70px -30px rgba(15,23,48,.35);transform:translateX(104%);opacity:1;pointer-events:none;transition:transform .3s cubic-bezier(.22,1,.36,1);overflow-y:auto;overscroll-behavior:contain;z-index:2}
  .tp .tp-nav.open{transform:none;pointer-events:auto}
  [dir="rtl"] .tp .tp-nav{right:auto;left:0;inset:0 auto auto 0;border-left:0;border-right:1px solid var(--line);transform:translateX(-104%);box-shadow:30px 0 70px -30px rgba(15,23,48,.35)}
  [dir="rtl"] .tp .tp-nav.open{transform:none}
  .tp .tp-nav__grab{display:flex;align-items:center;justify-content:space-between;height:var(--tpm-hdr);padding:0 8px 0 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
  .tp .tp-nav__grab b{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
  .tp .tp-nav__close{width:44px;height:44px;border:0;background:0 0;border-radius:12px;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
  .tp .tp-nav__close svg{width:22px;height:22px}
  .tp .tp-nav__links{flex-direction:column;align-items:stretch;gap:0;padding:8px 10px 0}
  .tp .tp-nav__links a,.tp .tp-nav__more a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:12px 10px 12px 12px;font-size:1.02rem;font-weight:600;color:var(--ink);border-radius:12px;text-decoration:none}
  .tp .tp-nav__links a::after,.tp .tp-nav__more a::after{content:"";width:8px;height:8px;border-right:2px solid #b6bdcc;border-bottom:2px solid #b6bdcc;transform:rotate(-45deg);flex:none;margin-right:4px}
  [dir="rtl"] .tp .tp-nav__links a::after,[dir="rtl"] .tp .tp-nav__more a::after{transform:rotate(135deg)}
  .tp .tp-nav__links a.is-active{color:var(--accent-ink);background:var(--accent-soft)}
  .tp .tp-nav a:focus:not(:focus-visible),.tp .tpm-tabs a:focus:not(:focus-visible),.tp .tpm-tabs button:focus:not(:focus-visible){outline:none}
  .tp .tp-nav__links a:active,.tp .tp-nav__more a:active{background:var(--bg-soft)}
  .tp .tp-nav__more{display:block;padding:0 10px}
  .tp .tp-nav__more a{font-weight:560;color:var(--body);min-height:46px;font-size:.98rem}
  .tp .tp-nav__sep{margin:8px 12px;border-top:1px solid var(--line)}
  .tp .tp-nav__lbl{display:block;padding:12px 12px 4px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
  .tp .tp-nav__actions{flex-direction:column;align-items:stretch;border:0;border-top:1px solid var(--line);margin:8px 0 0;padding:16px 18px 0;gap:10px}
  .tp .tp-nav__actions .tp-btn{width:100%;min-height:50px;font-size:1rem;border-radius:12px}
  /* language inside the drawer */
  .tp .tp-nav__lang{padding:0 10px}
  .tp .tp-nav__lang .tp-lang{display:block;position:static}
  .tp .tp-nav__lang .tp-lang>summary{display:flex;align-items:center;gap:10px;min-height:50px;padding:10px 12px;border-radius:12px;color:var(--ink);font-size:.98rem;font-weight:600;background:0 0}
  .tp .tp-nav__lang .tp-lang>summary .tp-lang__code{display:inline;font-size:.98rem;letter-spacing:0;font-weight:600}
  .tp .tp-nav__lang .tp-lang>summary .tp-lang__chev{margin-left:auto;width:16px;height:16px;color:var(--faint)}
  [dir="rtl"] .tp .tp-nav__lang .tp-lang>summary .tp-lang__chev{margin-left:0;margin-right:auto}
  .tp .tp-nav__lang .tp-lang__flag{width:24px;height:18px;box-shadow:0 0 0 1px rgba(15,23,48,.12)}
  .tp .tp-nav__lang .tp-lang__menu{position:static;display:grid;grid-template-columns:1fr;gap:2px;min-width:0;max-height:none;overflow:visible;box-shadow:none;border:0;padding:2px 2px 8px;animation:none}
  .tp .tp-nav__lang .tp-lang__opt{min-height:46px;padding:8px 12px;font-size:.95rem;justify-content:flex-start;text-align:left}
  [dir="rtl"] .tp .tp-nav__lang .tp-lang__opt{text-align:right}
  .tp .tp-nav__lang .tp-lang__opt::after{margin-left:auto}
  [dir="rtl"] .tp .tp-nav__lang .tp-lang__opt::after{margin-left:4px;margin-right:auto}
  .tp .tp-nav__lang .tp-lang__opt.is-active::after{border-color:rgba(255,255,255,.7)}
  .tp .tp-nav__lang .tp-lang__oname{white-space:normal}

  /* ---- Bottom tab bar ---- */
  .tp .tpm-tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:55;height:calc(var(--tpm-tabs) + env(safe-area-inset-bottom,0px));padding:0 6px env(safe-area-inset-bottom,0px);background:rgba(255,255,255,.96);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -22px rgba(15,23,48,.35)}
  .tp .tpm-tabs a,.tp .tpm-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;height:var(--tpm-tabs);padding:6px 2px 4px;border:0;background:0 0;font:inherit;font-size:.66rem;font-weight:600;letter-spacing:.01em;color:var(--muted);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}
  .tp .tpm-tabs a span,.tp .tpm-tabs button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .tp .tpm-tabs svg{width:24px;height:24px;flex:none;transition:transform .15s}
  .tp .tpm-tabs a:active svg,.tp .tpm-tabs button:active svg{transform:scale(.9)}
  .tp .tpm-tabs .is-active{color:var(--accent-ink)}
  .tp .tpm-tabs .is-active::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
  .tp .tpm-tabs__cta{color:var(--accent-ink)}
  .tp .tpm-tabs__cta i{display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin-top:-22px;border-radius:50%;background:var(--grad-2);color:#fff;box-shadow:0 14px 26px -10px var(--accent-glow),0 0 0 4px #fff}
  .tp .tpm-tabs__cta i svg{width:24px;height:24px}
  .tp .tpm-tabs__cta::before{display:none}
  .tp.tpm-open .tpm-tabs{visibility:hidden}
  .tp.tpm-open #tpTop{display:none}
  #tpTop{bottom:calc(var(--tpm-tabs) + 14px + env(safe-area-inset-bottom,0px));right:14px;width:42px;height:42px}
  [dir="rtl"] #tpTop{right:auto;left:14px}

  /* ---- Footer: brand + accordion columns ---- */
  .tp .tp-footer{padding:36px 0 18px}
  .tp .tp-footer__top{grid-template-columns:1fr;gap:0;padding-bottom:6px;border-bottom:0}
  .tp .tp-footer__brand{padding-bottom:18px}
  .tp .tp-footer__brand .tp-logo__full{height:24px}
  .tp .tp-footer__brand p{font-size:.9rem;margin-bottom:12px}
  .tp .tp-footer__col{border-top:1px solid rgba(255,255,255,.09)}
  .tp .tp-footer__col h2{margin:0;padding:15px 0;font-size:.78rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tp .tp-footer__col h2::after{content:"";width:8px;height:8px;border-right:2px solid #6f7890;border-bottom:2px solid #6f7890;transform:rotate(45deg);transition:transform .2s;margin-right:6px}
  .tp .tp-footer__col.is-open h2::after{transform:rotate(-135deg)}
  .tpm-js .tp-footer__col:not(.is-open) a{display:none}
  .tp .tp-footer__col a{padding:11px 0;font-size:.95rem;min-height:44px;display:flex;align-items:center}
  .tp .tp-footer__col.is-open{padding-bottom:10px}
  .tp .tp-footer__bottom{flex-direction:column;align-items:flex-start;gap:6px;padding-top:18px;font-size:.8rem;border-top:1px solid rgba(255,255,255,.09)}
  .tp .tp-footer__legal{gap:0 18px}
  .tp .tp-footer__legal a{display:inline-flex;align-items:center;min-height:40px}

  /* ---- Auth modal → bottom sheet ---- */
  .tp .modal-overlay{align-items:flex-end;justify-content:stretch;padding:0}
  .tp .modal{width:100%;max-width:none;border-radius:22px 22px 0 0;border-bottom:0;max-height:min(92dvh,760px);overflow-y:auto;overscroll-behavior:contain;transform:translateY(40px);padding-bottom:env(safe-area-inset-bottom,0px)}
  .tp .modal::before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:#d4d8e2;margin:10px auto 2px}
  .tp .modal-overlay.open .modal{transform:none}
  .tp .modal-close{top:8px;right:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;padding:0;border-radius:10px}
  [dir="rtl"] .tp .modal-close{right:auto;left:8px}
  .tp .modal-tab{padding:15px 0;font-size:.95rem;min-height:52px}
  .tp .modal-pane{padding:22px 20px 26px}
  .tp .modal-field{margin-bottom:14px}
  .tp .modal-field label{font-size:.86rem}
  .tp .modal-field input{font-size:16px;padding:12px 14px;border-radius:10px;min-height:48px}
  .tp .modal-submit{min-height:50px;font-size:1rem;border-radius:10px;margin-top:8px}
  .tp .modal-forgot{padding:6px 0;min-height:36px;display:flex;align-items:center;justify-content:flex-end;margin-top:-4px}
  .tp .modal-alert{font-size:.88rem}

  /* ---- Generic tables → cards (built by mobile.js) ---- */
  .tpm-cards{display:flex;flex-direction:column;gap:12px}
  .tpm-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 12px 30px -26px rgba(15,23,48,.3)}
  .tpm-card--hl{border-color:rgba(10,110,229,.45);background:linear-gradient(180deg,#f1f7ff,#fff 70%)}
  .tpm-card__t{font-size:1.02rem;font-weight:700;color:var(--ink);margin:0 0 8px;line-height:1.3}
  .tpm-card__t a{color:var(--accent-ink);text-decoration:none}
  .tpm-card__r{display:grid;grid-template-columns:minmax(84px,38%) minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line-2);font-size:.9rem;line-height:1.45}
  .tpm-card__r:first-of-type{border-top:0}
  .tpm-card__k{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding-top:2px}
  .tpm-card__v{color:var(--body);min-width:0;overflow-wrap:anywhere}
  .tpm-card__v.is-tp{color:var(--ink);font-weight:600}
  .tpm-hidden{display:none!important}
  /* scroll hint for anything that still scrolls sideways */
  .tpm-scrollx{position:relative}
  .tpm-scrollx::after{content:"";position:absolute;top:0;right:0;bottom:0;width:34px;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.9));border-radius:inherit;opacity:1;transition:opacity .2s}
  .tpm-scrollx.is-end::after{opacity:0}

  /* ======================================================================
     HOME
     ====================================================================== */
  .tp .tp-hero__inner{display:block;padding:34px var(--tpm-gutter) 36px}
  .tp .tp-hero__copy{text-align:left}
  [dir="rtl"] .tp .tp-hero__copy{text-align:right}
  .tp .tp-hero h1{font-size:2.05rem;line-height:1.1;margin-bottom:14px}
  .tp .tp-hero__sub{font-size:1.02rem;line-height:1.55;margin:0 0 20px}
  .tp .tp-hero__copy .tp-btn-row{justify-content:flex-start}
  .tp .tp-hero__copy .tp-btn-row .tp-btn{flex:1 1 100%}
  .tp .tp-hero__trust{justify-content:flex-start;gap:8px 14px;font-size:.8rem;margin-top:18px}
  .tp .tp-hero__visual{margin-top:28px}
  .tp .tp-ph{display:none}
  .tp .tp-lap__screen{padding:6px 6px 0;border-radius:9px 9px 0 0}
  .tp .tp-bar__row{grid-template-columns:1fr 1fr}
  .tp .tp-bar__item{min-width:0;padding:20px 10px;border-top:1px solid rgba(255,255,255,.12)}
  .tp .tp-bar__item:nth-child(-n+2){border-top:0}
  .tp .tp-bar__item:last-child{grid-column:1/-1}
  .tp .tp-bar__n{font-size:1.65rem}
  .tp .tp-bar__l{font-size:.66rem;margin-top:8px}
  .tp .tp-feats{grid-template-columns:1fr 1fr;border-radius:14px}
  .tp .tp-feat{padding:20px 14px 22px}
  .tp .tp-feat__ico{width:44px;height:44px;border-radius:12px;margin-bottom:12px}
  .tp .tp-feat__ico svg{width:22px;height:22px}
  .tp .tp-feat h3{font-size:.96rem;margin-bottom:6px;line-height:1.25}
  .tp .tp-feat p{font-size:.82rem;line-height:1.5;max-width:none}
  .tp .tp-feats>.tp-feat:last-child:nth-child(odd){grid-column:1/-1}
  .tp .tp-feats__cta{margin-top:26px}
  .tp .tp-show{gap:22px}
  .tp .tp-show+.tp-show{margin-top:52px}
  .tp .tp-show h3{font-size:1.5rem;margin-bottom:12px}
  .tp .tp-show p{font-size:.98rem;line-height:1.6;margin-bottom:12px;max-width:none}
  .tp .tp-show ul{margin-bottom:6px}
  .tp .tp-show li{font-size:.94rem;padding:6px 0}
  .tp .tp-panel{max-width:100%;overflow:hidden;border-radius:14px}
  .tp .tp-panel__bd{padding:14px}
  .tp .tp-cat{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tp .tp-cat__hd,.tp .tp-cat__dur,.tp .tp-cat__meta,.tp .tp-cat__add{font-size:10px}
  .tp .tp-cat__chip,.tp .tp-cat__search{font-size:11px}
  .tp .tp-pl__x{font-size:10px}
  .tp .tp-row__b{font-size:12px}
  .tp .tp-panel__u{font-size:11px}
  .tp .tp-mon__grid{gap:12px;margin-bottom:24px}
  .tp .tp-pcard{padding:18px 18px 20px}
  .tp .tp-mon__foot{font-size:.94rem;gap:8px 14px;flex-direction:column}
  .tp .tp-vs2{gap:16px;max-width:none}
  .tp .tp-vs2__card{padding:26px 20px 22px;border-radius:14px}
  .tp .tp-vs2__price{font-size:2.3rem}
  .tp .tp-vs2__list{margin-top:16px;padding-top:16px}
  .tp .tp-vs2__list li{font-size:.94rem;padding:8px 0}
  .tp .tp-vs2__foot{margin-top:24px}
  .tp .tp-midcta{padding:8px 0 36px}
  .tp .tp-midcta__card{padding:30px 22px 26px;border-radius:18px;gap:18px}
  .tp .tp-midcta h3{font-size:1.45rem}
  .tp .tp-midcta__copy p{font-size:.96rem}
  .tp .tp-midcta__act .tp-btn{width:100%}
  .tp .tp-quotes{gap:12px}
  .tp .tp-quote{padding:20px 18px;border-radius:14px}
  .tp .tp-quote p{font-size:.92rem}
  .tp .tp-faq{max-width:none}
  .tp .tp-faq summary{padding:16px 36px 16px 0;font-size:.98rem;line-height:1.35;min-height:52px;display:flex;align-items:center}
  [dir="rtl"] .tp .tp-faq summary{padding:16px 0 16px 36px}
  .tp .tp-faq summary::after{right:6px}
  [dir="rtl"] .tp .tp-faq summary::after{right:auto;left:6px}
  .tp .tp-faq__a{padding:0 0 18px;font-size:.94rem}
  .tp .tp-cta h2{font-size:1.85rem}
  .tp .tp-cta p{font-size:1rem;margin-bottom:22px}
  .tp .tp-cta .tp-btn-row .tp-btn{flex-basis:100%}
  .tp .tp-cta__micro{font-size:.8rem;margin-top:18px}

  /* ======================================================================
     PAGE HEROES (features / compare / guides / glossary / integrations)
     ====================================================================== */
  .tp .tpf-ph__in{padding:34px var(--tpm-gutter) 32px;text-align:left}
  [dir="rtl"] .tp .tpf-ph__in{text-align:right}
  .tp .tpf-ph h1{font-size:1.9rem;line-height:1.12;margin-bottom:12px}
  .tp .tpf-ph p{font-size:.98rem;line-height:1.55;margin:0 0 20px;max-width:none}
  .tp .tpf-ph .tp-btn-row{justify-content:flex-start}
  .tp .tpf-ph__trust{justify-content:flex-start;font-size:.8rem;gap:8px 14px;margin-top:18px}
  .tp .tpvs-bc{margin-bottom:10px}
  .tp .tpvs-bc a{display:inline-flex;align-items:center;min-height:40px;font-size:.9rem}

  /* ======================================================================
     FEATURES
     ====================================================================== */
  .tp .tpf-side{top:var(--tpm-hdr);margin:0 calc(-1 * var(--tpm-gutter)) 22px;padding:8px 0;background:rgba(255,255,255,.96);z-index:40}
  .tp .tpf-side nav{padding:0 var(--tpm-gutter);gap:8px;scroll-padding:0 var(--tpm-gutter);scroll-snap-type:x proximity}
  .tp .tpf-side::after{content:"";position:absolute;right:0;top:0;bottom:0;width:36px;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.96))}
  [dir="rtl"] .tp .tpf-side::after{right:auto;left:0;background:linear-gradient(270deg,rgba(255,255,255,0),rgba(255,255,255,.96))}
  .tp .tpf-side a{scroll-snap-align:start;min-height:38px;display:inline-flex;align-items:center;font-size:.84rem;padding:8px 14px;background:#fff}
  .tp .tpf-side a.is-active{background:var(--accent-soft)}
  .tp .tpf-block{padding-bottom:30px;margin-bottom:30px;scroll-margin-top:calc(var(--tpm-hdr) + 64px)}
  .tp .tpf-bh{margin-bottom:18px}
  .tp .tpf-bh h2{font-size:1.5rem;line-height:1.15}
  .tp .tpf-bh .tpf-lead{font-size:.98rem;line-height:1.55}
  .tp .tpf-split{gap:20px;grid-template-columns:minmax(0,1fr)}
  .tp .tpf-vis,.tp .tpf-feats,.tp .tpf-feat span{min-width:0}
  .tp .tp-panel__bd{overflow-wrap:anywhere}
  .tp .tpf-feats{gap:12px}
  .tp .tpf-feat span{font-size:.93rem;line-height:1.5}
  .tp .tpf-vis .tp-panel__bd{padding:14px}
  .tp .tpf-tr{grid-template-columns:minmax(0,1fr) 78px 54px;gap:8px;font-size:.78rem}
  .tp .tpf-tr--h{font-size:.62rem;letter-spacing:.03em}
  .tp .tpf-code{padding:14px 16px;font-size:.76rem}
  .tp .tpf-ph .tp-btn-row .tp-btn{flex:1 1 100%}

  /* ======================================================================
     DOWNLOAD
     ====================================================================== */
  .tp .tpd-hero__in{padding:32px var(--tpm-gutter) 32px;gap:22px}
  .tp .tpd-hero__copy h1{font-size:1.9rem;line-height:1.12;margin-bottom:12px}
  .tp .tpd-hero__sub{font-size:.98rem;line-height:1.55}
  .tp .tpd-hero__trust{gap:8px;font-size:.88rem}
  .tp .tpd-card{padding:24px 18px 20px;border-radius:18px}
  .tp .tpd-card h3{font-size:1.3rem}
  .tp .tpd-card__meta{font-size:.82rem;gap:6px 12px;margin-bottom:16px}
  .tp .tpd-card .tp-btn{width:100%}
  .tp .tpd-card__demo{display:inline-flex;align-items:center;min-height:44px}
  .tp .tpd-incl__item{padding:16px 16px;gap:13px}
  .tp .tpd-incl__t h3{font-size:.98rem;margin-bottom:4px}
  .tp .tpd-incl__t p{font-size:.86rem;line-height:1.5}
  .tp .tpd-opt{padding:22px 16px;margin-top:20px;gap:18px;border-radius:14px}
  .tp .tpd-opt__intro h3{font-size:1.25rem}
  .tp .tpd-opt__intro p{font-size:.92rem}
  .tp .tpd-opt__svc{padding:12px 14px}
  .tp .tpd-req{gap:10px}
  .tp .tpd-reqcard{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:center;text-align:left;padding:16px 16px}
  [dir="rtl"] .tp .tpd-reqcard{text-align:right}
  .tp .tpd-reqcard__ic{width:44px;height:44px;margin:0;grid-row:1/3}
  .tp .tpd-reqcard__ic svg{width:22px;height:22px}
  .tp .tpd-reqcard h3{margin:0 0 3px;font-size:1rem;text-align:inherit}
  .tp .tpd-reqcard p{margin:0;font-size:.86rem;line-height:1.45;text-align:inherit}
  .tp .tpd-reqnote{font-size:.9rem;margin-top:18px}
  .tp .tpd-step{gap:14px;padding-bottom:22px}
  .tp .tpd-step__n{flex-basis:40px;width:40px;height:40px;font-size:1rem;border-radius:11px}
  .tp .tpd-step__b h3{font-size:1.02rem}
  .tp .tpd-step__b p{font-size:.92rem;line-height:1.5}
  .tp .tpd-next{gap:12px}
  .tp .tpd-nextcard{padding:18px 18px 20px}
  .tp .tpd-nextcard h3{font-size:1.02rem}
  .tp .tpd-nextcard p{font-size:.88rem}
  .tp .tpd-nextcard__go{min-height:40px;display:inline-flex;align-items:center}

  /* ======================================================================
     COMPARE (index + head-to-head)
     ====================================================================== */
  .tp .tpch-tblwrap{overflow:visible;border-radius:0;margin-top:0}
  .tp .tpch-note{font-size:.82rem;margin-top:14px}
  .tp .tpch-grid{border-radius:14px}
  .tp .tpch-card{padding:16px 16px;gap:12px}
  .tp .tpch-card h3{font-size:1rem}
  .tp .tpch-card p{font-size:.86rem}
  .tp .tpch-go{min-height:36px;display:inline-flex;align-items:center}
  .tp .tpc-wincard{padding:20px 18px}
  .tp .tpvs-metrics{grid-template-columns:1fr 1fr}
  .tp .tpvs-metric{padding:16px 10px}
  .tp .tpvs-metric:nth-child(5){grid-column:1/-1}
  .tp .tpvs-metric__v{font-size:1.5rem}
  .tp .tpvs-top{gap:20px}
  .tp .tpvs-prose{font-size:.98rem;line-height:1.65}
  .tp .tpvs-key{padding:18px 18px}
  .tp .tpvs-key li{font-size:.92rem}
  .tp .tpvs-split{gap:20px}
  .tp .tpvs-split__text h2,.tp .tpvs-solo h2{font-size:1.5rem;line-height:1.18}
  .tp .tpvs-split__text p,.tp .tpvs-solo p{font-size:.98rem;line-height:1.62}
  .tp .tpvs-stats{gap:10px}
  .tp .tpvs-stat{padding:14px 16px}
  .tp .tpvs-stat__v{font-size:1.4rem}
  .tp .tpvs-verdict{font-size:.98rem;text-align:left}
  [dir="rtl"] .tp .tpvs-verdict{text-align:right}

  /* ======================================================================
     GUIDES (index)
     ====================================================================== */
  .tp .tpg-featsec{padding:22px 0 8px}
  .tp .tpg-feat{border-radius:14px}
  .tp .tpg-feat__bd{padding:18px 18px 20px;gap:9px}
  .tp .tpg-feat__bd h2{font-size:1.2rem}
  .tp .tpg-feat__bd p{font-size:.9rem}
  .tp .tpgx-body{padding:24px 0 40px}
  .tp .tpgx-layout{padding:0 var(--tpm-gutter);gap:0}
  .tp .tpgx-side{position:sticky;top:var(--tpm-hdr);z-index:40;background:rgba(255,255,255,.96);margin:0 calc(-1 * var(--tpm-gutter)) 16px;padding:8px 0;border-bottom:1px solid var(--line)}
  .tp .tpgx-side nav{padding:0 var(--tpm-gutter);flex-direction:row;overflow-x:auto;gap:8px;border-left:0;scroll-snap-type:x proximity;scroll-padding:0 var(--tpm-gutter)}
  .tp .tpgx-side::after{content:"";position:absolute;right:0;top:0;bottom:0;width:36px;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.96))}
  .tp .tpgx-side button{flex:0 0 auto;width:auto;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;margin:0;font-size:.84rem;white-space:nowrap;background:#fff;scroll-snap-align:start}
  .tp .tpgx-side button.is-active{border-color:var(--accent);background:var(--accent-soft)}
  .tp .tpgx-main .tpg-grid,.tp .tpg-grid{grid-template-columns:1fr;gap:12px}
  .tp .tpg-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:0 12px;padding:10px;border-radius:14px}
  .tp .tpg-card__img{aspect-ratio:1/1;border-radius:10px;border:1px solid var(--line-2);align-self:start}
  .tp .tpg-card__bd{padding:2px 4px 2px 0;min-width:0}
  .tp .tpg-card__cat{font-size:.62rem;padding:3px 8px;margin-bottom:7px}
  .tp .tpg-card h3{font-size:.95rem;line-height:1.3;margin-bottom:6px}
  .tp .tpg-card p{font-size:.82rem;line-height:1.45;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .tp .tpg-card__foot{font-size:.78rem}
  .tp .tpg-card__go{min-height:32px;display:inline-flex;align-items:center}

  /* ======================================================================
     GUIDE ARTICLE
     ====================================================================== */
  .tp .tpa-hero__in{padding:26px var(--tpm-gutter) 22px;text-align:left}
  [dir="rtl"] .tp .tpa-hero__in{text-align:right}
  .tp .tpa-bc{min-height:40px;margin-bottom:6px}
  .tp .tpa-hero h1{font-size:1.65rem;line-height:1.18;margin-bottom:12px}
  .tp .tpa-meta{justify-content:flex-start;font-size:.8rem}
  .tp .tpa-cover{padding:0 var(--tpm-gutter)}
  .tp .tpa-cover img{margin-top:8px;aspect-ratio:16/9;border-radius:12px}
  .tp .tpa-body{padding-top:18px}
  .tp .tpa-layout{padding:0 var(--tpm-gutter)}
  .tp .tpa-toc{top:var(--tpm-hdr);margin:0 calc(-1 * var(--tpm-gutter)) 18px;padding:8px 0;background:rgba(255,255,255,.96);z-index:40}
  .tp .tpa-toc nav{padding:0 var(--tpm-gutter);scroll-padding:0 var(--tpm-gutter);scroll-snap-type:x proximity}
  .tp .tpa-toc::after{content:"";position:absolute;right:0;top:0;bottom:0;width:36px;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.96))}
  .tp .tpa-toc a{min-height:36px;display:inline-flex;align-items:center;scroll-snap-align:start;max-width:78vw;overflow:hidden;text-overflow:ellipsis}
  .tp .tpa-key{padding:16px 16px 18px;border-radius:14px;margin-bottom:26px}
  .tp .tpa-key li{font-size:.92rem}
  .tp .tpa-prose{font-size:1rem;line-height:1.7}
  .tp .tpa-prose h2{font-size:1.4rem;line-height:1.2;scroll-margin-top:calc(var(--tpm-hdr) + 62px)}
  .tp .tpa-prose h3{font-size:1.12rem;scroll-margin-top:calc(var(--tpm-hdr) + 62px)}
  .tp .tpa-prose pre,.tp .tpa-prose table{max-width:100%}
  .tp .tpa-prose pre{overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.8rem;padding:14px 16px;border-radius:12px}
  .tp .tpa-prose img{max-width:100%;height:auto}
  .tp .tpa-pn__grid{gap:10px}
  .tp .tpa-pn__card{padding:14px 16px;min-height:60px}

  /* ======================================================================
     DOCS (docs.css handles the drawer; this tightens the shell)
     ====================================================================== */
  .tp .tpdoc-top{position:sticky;top:var(--tpm-hdr);z-index:45;background:#fff}
  .tp .tpdoc-top__in{padding:8px var(--tpm-gutter);min-height:50px;gap:10px}
  .tp .tpdoc-bc{font-size:.8rem;gap:6px}
  .tp .tpdoc-bc__cur{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
  .tp .tpdoc-menu-btn{min-height:40px;padding:8px 12px;border-radius:10px;flex:none}
  .tp .tpdoc-grid{padding:0 var(--tpm-gutter)}
  .tp .tpdoc-main{padding:16px 0 40px}
  .tp .tpdoc-main__head{margin-bottom:18px}
  .tp .tpdoc-main h1{font-size:1.7rem}
  .tp .tpdoc-lead{font-size:1rem}
  .tp .tpdoc-prose{font-size:.98rem;line-height:1.68}
  .tp .tpdoc-prose h2{font-size:1.38rem;margin:36px 0 12px;scroll-margin-top:calc(var(--tpm-hdr) + 62px)}
  .tp .tpdoc-prose h3{font-size:1.1rem;margin:26px 0 10px;scroll-margin-top:calc(var(--tpm-hdr) + 62px)}
  .tp .tpdoc-prose h4{scroll-margin-top:calc(var(--tpm-hdr) + 62px)}
  .tp .tpdoc-code pre{padding:16px 16px;font-size:.8rem;border-radius:12px}
  .tp .tpdoc-code pre{padding-top:40px}
  .tp .tpdoc-copy{top:8px;right:8px;min-height:28px;padding:0 10px}
  .tp .tpdoc-code__lang{right:auto;left:12px;top:0;border-radius:0 0 7px 7px}
  .tp .tpdoc-cards{grid-template-columns:1fr;gap:10px}
  .tp .tpdoc-card{padding:13px 14px}
  .tp .tpdoc-cl{padding:13px 14px;gap:10px}
  .tp .tpdoc-cl__bd{font-size:.9rem}
  .tp .tpdoc-side{width:min(88vw,340px);padding:16px 16px 60px}
  .tp .tpdoc-side__close{width:44px;height:44px;border-radius:12px}
  .tp .tpdoc-side__search input{font-size:16px;padding:12px 40px 12px 38px;border-radius:12px}
  .tp .tpdoc-side__link{min-height:44px;font-size:.95rem}
  .tp .tpdoc-pager a{min-height:64px;padding:14px 16px}
  .tp .tpdoc-help{padding:16px 16px;gap:10px}
  .tp .tpdoc-help a{min-height:40px;display:inline-flex;align-items:center}
  /* mobile "On this page" (moved under the title by mobile.js) */
  .tp .tpm-toc{display:block;margin:0 0 22px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}
  .tp .tpm-toc>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 16px;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer}
  .tp .tpm-toc>summary::-webkit-details-marker{display:none}
  .tp .tpm-toc>summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--faint);border-bottom:2px solid var(--faint);transform:rotate(45deg);transition:transform .2s}
  .tp .tpm-toc[open]>summary::after{transform:rotate(-135deg)}
  .tp .tpm-toc .tpdoc-toc{display:block;position:static;max-height:none;padding:0 12px 10px;font-size:.92rem}
  .tp .tpm-toc .tpdoc-toc__t{display:none}
  .tp .tpm-toc .tpdoc-toc a{min-height:40px;display:flex;align-items:center;padding:6px 12px}

  /* ======================================================================
     GLOSSARY / INTEGRATIONS / ABOUT / LEGAL / CHANGELOG
     ====================================================================== */
  .tp .tpgl-item{padding:16px 16px}
  .tp .tpgl-term{font-size:.98rem}
  .tp .tpgl-def{font-size:.9rem}
  .tp .tpint-card{padding:20px 18px;gap:12px}
  .tp .tpint-card h3{font-size:1.05rem}
  .tp .tpint-bd p{font-size:.9rem}
  .tp .tpint-list li{font-size:.9rem}
  .tp .tpint-go{min-height:40px;display:inline-flex;align-items:center}
  .tp .tplg-head{padding:26px 0 18px}
  .tp .tplg-head h1{font-size:1.75rem;margin-top:4px}
  .tp .tplg-updated{font-size:.86rem}
  .tp .tplg-prose{font-size:.98rem;line-height:1.7}
  .tp .tplg-prose h2{font-size:1.32rem}
  .tp .cl-sec{padding-top:26px}
  .tp .cl-rail{margin-bottom:18px}
  .tp .cl-search{height:46px;border-radius:14px}
  .tp .cl-search input{font-size:16px}
  .tp .cl-search__x{min-width:40px;min-height:40px}
  .tp .cl-intro p{font-size:.94rem}
  .tp .cl-grp__m{font-size:.76rem}
  .tp .cl-rel{padding:16px 0;scroll-margin-top:calc(var(--tpm-hdr) + 10px)}
  .tp .cl-rel.is-latest{padding:18px 16px 20px}
  .tp .cl-rel__t{font-size:1.05rem;line-height:1.3}
  .tp .cl-rel__b{font-size:.92rem;line-height:1.6}
  .tp .cl-rel__meta{gap:8px;margin-bottom:8px}
  .tp .cl-rel__date{order:0;width:auto;margin-left:auto;font-size:.8rem}
  /* collapsed releases (mobile.js) */
  .tpm-js .tp .cl-rel.tpm-fold .cl-rel__b{display:none}
  .tp .cl-rel__more{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-top:2px;padding:0 2px;border:0;background:0 0;font:inherit;font-size:.86rem;font-weight:600;color:var(--accent-ink);cursor:pointer}
  .tp .cl-rel__more::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s;margin-top:-3px}
  .tp .cl-rel:not(.tpm-fold) .cl-rel__more::after{transform:rotate(-135deg);margin-top:3px}
  .tp .cl-empty{font-size:.92rem}

  /* ======================================================================
     404 / reset / verify (style.css classes)
     ====================================================================== */
  .tp .hero-page{padding:44px var(--tpm-gutter) 40px}
  .tp .hero-page h1{font-size:2.6rem}
  .tp .hero-page .btn-row{flex-direction:column;align-items:stretch}
  .tp .hero-page .btn-row .btn{min-height:48px;width:100%}
  .tp .sec{padding:36px 0!important}
  .tp .sec .w{padding:0 var(--tpm-gutter)}
  .tp .sec .modal-field input{font-size:16px;min-height:48px;padding:12px 14px;border-radius:10px}
  .tp .sec .btn{min-height:48px}
  .tp .sec .btn.modal-submit{width:100%}
}

/* ======================================================================
   DASHBOARD (≤ 760px) — body.dash-body.tp
   ====================================================================== */
@media (max-width:760px){
  .dash-body .tp-nav--dash{display:flex}
  .dash-body .tp-dash-actions{display:none}
  .dash-body .tpm-balance{display:inline-flex;align-items:center;gap:6px;margin-left:auto;min-height:38px;padding:0 12px;border-radius:999px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;color:var(--accent-ink);font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap}
  .dash-body .tpm-balance i{font-size:.8rem}
  .dash-body .tpm-balance span{font-weight:500;opacity:.75}
  .dash-body .tp-burger{margin-left:0}
  .dash-body .tp-nav__logout{color:#b91c1c}
  .dash-body .dash-tab-bar{display:none}
  .dash-body .dash-content{padding:14px 0 24px}
  .dash-body .dash-header{margin-bottom:14px}
  .dash-body .dash-header h1{font-size:1.35rem}
  .dash-body .dash-subtitle{font-size:.88rem}
  .dash-body .stat-grid{grid-template-columns:1fr 1fr;gap:10px}
  .dash-body .stat-card{padding:14px 12px;gap:10px;flex-direction:column;align-items:flex-start;border-radius:14px}
  .dash-body .stat-card:first-child{grid-column:1/-1;flex-direction:row;align-items:center;padding:16px 14px}
  .dash-body .stat-icon{width:40px;height:40px;font-size:1rem}
  .dash-body .stat-value{font-size:1.35rem}
  .dash-body .stat-label{font-size:.68rem}
  .dash-body .stat-topup-btn{width:40px;height:40px;right:14px}
  .dash-body .dash-card{border-radius:14px;margin-bottom:12px}
  .dash-body .dash-card-header{padding:12px 14px;gap:8px;flex-wrap:wrap}
  .dash-body .dash-card-body,.dash-body .dash-card-pad{padding:14px}
  .dash-body .dash-card-title{font-size:.92rem}
  .dash-body .dash-empty{padding:26px 14px;font-size:.9rem}
  .dash-body .grid-2{gap:12px}
  .dash-body .btn{min-height:44px;font-size:.92rem;border-radius:10px}
  .dash-body .btn-sm{min-height:38px;font-size:.82rem}
  .dash-body .btn-accent,.dash-body .btn-primary,.dash-body .btn-block{width:100%;justify-content:center}
  .dash-body .btn-sm.btn-outline,.dash-body .dash-card-header .btn{width:auto}
  .dash-body .form-row,.dash-body .form-row-3{grid-template-columns:1fr;gap:0}
  .dash-body .form-group{margin-bottom:12px}
  .dash-body .form-group label{font-size:.84rem}
  .dash-body .form-group input,.dash-body .form-group select,.dash-body .form-group textarea,.dash-body .dash-card-body .form-group input,.dash-body .dash-card-body .form-group select,.dash-body .dash-card-body .form-group textarea,.dash-body .sup-field,.dash-body .sup-textarea,.dash-body .tpc-input,.dash-body .cat-search input,.dash-body .cat-sortwrap select,.dash-body .coinsel-search input,.dash-body input[type=text],.dash-body input[type=email],.dash-body input[type=password],.dash-body input[type=number],.dash-body input[type=search],.dash-body select,.dash-body textarea{font-size:16px;min-height:48px;border-radius:10px}
  .dash-body .tpc-input{min-height:52px}
  .dash-body .sup-textarea{min-height:130px}
  .dash-body .billing-toggle-btn{min-height:42px}
  /* tables → cards (mobile.js), the transactions table keeps scrolling */
  .dash-body .dash-table:not(.tx-table).tpm-hidden{display:none!important}
  .dash-body .tpm-cards{padding:10px 12px 12px}
  .dash-body .tpm-card{padding:12px 14px;border-radius:12px}
  .dash-body .tpm-card__r{grid-template-columns:minmax(96px,36%) minmax(0,1fr);font-size:.86rem}
  .dash-body .dash-table.tx-table{font-size:.8rem}
  /* catalogue */
  .dash-body .cat-tabs{display:flex;gap:6px;margin:0 0 12px;padding:4px;background:#f1f3f8;border-radius:12px;border:0}
  .dash-body .cat-tab{flex:1;justify-content:center;min-height:40px;padding:8px 6px;border-radius:9px;font-size:.84rem;border:0;white-space:nowrap}
  .dash-body .cat-tab.on{background:#fff;box-shadow:0 1px 3px rgba(15,23,48,.12)}
  .dash-body .cat-toolbar{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:12px}
  .dash-body .cat-search{width:100%}
  .dash-body .cat-search input{flex:1;min-width:0}
  .dash-body .cat-search button{min-width:48px;min-height:48px}
  .dash-body .cat-sortwrap{display:flex;align-items:center;gap:8px;width:100%}
  .dash-body .cat-sortwrap select{flex:1;width:auto}
  .dash-body .cat-grid{grid-template-columns:1fr;gap:12px}
  .dash-body .cat-card{border-radius:14px}
  .dash-body .cat-body{padding:12px 14px 14px}
  .dash-body .cat-desc{font-size:.86rem}
  /* catalogue item */
  .dash-body .ci-hero{border-radius:16px}
  .dash-body .ci-hero__in{padding:18px 16px}
  .dash-body .ci-hero h1{font-size:1.4rem}
  .dash-body .ci-hero__hook{font-size:.92rem}
  .dash-body .ci-cta-btn{display:flex;justify-content:center;min-height:48px;width:100%}
  .dash-body .ci-grid{grid-template-columns:1fr;gap:12px}
  .dash-body .ci-hl{grid-template-columns:1fr;gap:10px}
  .dash-body .ci-hl__c{padding:12px}
  .dash-body .ci-feats{grid-template-columns:1fr;gap:10px}
  .dash-body .ci-specs{grid-template-columns:1fr}
  .dash-body .ci-tier{padding:12px 14px;min-height:56px}
  .dash-body .ci-buy{position:static}
  /* credits */
  .dash-body .pack-grid{gap:10px}
  .dash-body .pack-card{padding:14px 14px}
  .dash-body .pack-card .btn{min-height:46px}
  .dash-body .tpc-quick{gap:8px}
  .dash-body .tpc-chip{flex:1 1 calc(25% - 8px);min-height:44px;font-size:.9rem}
  /* checkout */
  .dash-body .checkout-grid{gap:12px}
  .dash-body .checkout-summary-sticky{position:static}
  .dash-body .paym-option{padding:12px 14px;min-height:60px}
  .dash-body .coinsel-btn{min-height:48px}
  .dash-body .coinsel-list{max-height:min(48vh,320px)}
  .dash-body .coinsel-list li[role="option"]{min-height:44px}
  .dash-body .summary-line{font-size:.92rem;padding:6px 0}
  .dash-body .summary-total{font-size:1.02rem}
  .dash-body .tpm-paybar{display:flex;align-items:center;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:56;padding:10px var(--tpm-gutter) calc(10px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -22px rgba(15,23,48,.35)}
  .dash-body .tpm-paybar__t{display:flex;flex-direction:column;min-width:0;line-height:1.2}
  .dash-body .tpm-paybar__t small{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
  .dash-body .tpm-paybar__t b{font-size:1.15rem;color:var(--ink);white-space:nowrap}
  .dash-body .tpm-paybar .btn{flex:1;min-height:50px;font-size:1rem;margin:0}
  .dash-body.tpm-has-paybar .tpm-tabs{display:none}
  .dash-body.tpm-has-paybar{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
  /* modals (API key / crypto payment) → bottom sheets */
  .dash-body .keymodal-overlay{align-items:flex-end;padding:0;contain:paint}
  .dash-body .keymodal{max-width:none;width:100%;border-radius:20px 20px 0 0;padding:22px 16px calc(20px + env(safe-area-inset-bottom,0px));max-height:94dvh;overflow-y:auto;overscroll-behavior:contain;animation:none}
  .dash-body .keymodal.cpay{padding:20px 16px calc(20px + env(safe-area-inset-bottom,0px));max-height:94dvh}
  .dash-body .keymodal-close{width:40px;height:40px;top:10px;right:10px}
  .dash-body .keymodal-actions{flex-direction:column}
  .dash-body .keymodal-actions .btn{min-height:46px}
  .dash-body .keymodal-copyrow{flex-wrap:wrap}
  .dash-body .keymodal-copyrow .btn{min-height:40px}
  .dash-body .cpay-copybtn{min-width:44px;min-height:44px}
  /* support */
  .dash-body .sup-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 6px;margin:0 calc(-1 * var(--tpm-gutter));padding-left:var(--tpm-gutter);padding-right:var(--tpm-gutter);contain:paint}
  .dash-body .sup-filters::-webkit-scrollbar{display:none}
  .dash-body .sup-filter{flex:0 0 auto;min-height:40px}
  .dash-body .sup-row{padding:12px 14px;min-height:64px}
  .dash-body .sup-new-trigger{min-height:64px}
  .dash-body .sup-new-actions{flex-direction:column}
  .dash-body .sup-new-actions .btn{width:100%}
  .dash-body .sup-thread{padding:12px}
  .dash-body .sup-msg{max-width:92%}
  .dash-body .sup-reply-foot .btn{width:100%}
  /* purchases / pagination */
  .dash-body .pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
  .dash-body .pagination-link{min-width:42px;height:42px}
  /* footer (dashboard variant uses h4) */
  .dash-body .tp-footer__col h4{margin:0;padding:15px 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:#e4e7ee;font-weight:650;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .dash-body .tp-footer__col h4::after{content:"";width:8px;height:8px;border-right:2px solid #6f7890;border-bottom:2px solid #6f7890;transform:rotate(45deg);transition:transform .2s;margin-right:6px}
  .dash-body .tp-footer__col.is-open h4::after{transform:rotate(-135deg)}
}

/* ======================================================================
   ≤ 360px : narrow phones
   ====================================================================== */
@media (max-width:360px){
  :root{--tpm-gutter:14px}
  .tp .tp-hero h1{font-size:1.85rem}
  .tp .tpf-ph h1,.tp .tpd-hero__copy h1{font-size:1.7rem}
  .tp .tp-feats{grid-template-columns:1fr}
  .tp .tp-feat{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:12px;text-align:left;padding:16px 14px}
  .tp .tp-feat__ico{grid-row:1/3;margin:0}
  .tp .tp-feat h3,.tp .tp-feat p{text-align:left}
  .tp .tpm-tabs a,.tp .tpm-tabs button{font-size:10px}
  .tp .tpg-card{grid-template-columns:88px minmax(0,1fr)}
  .tp .tpvs-metrics{grid-template-columns:1fr 1fr}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .tp .tp-nav,.tp .tpm-scrim,.tp .modal{transition:none}
}
