/* Flux Hybrids customer app — "clean energy fintech" design system (docs/design-system.md).
   Tokens first; components only use tokens. Everything else is scoped under .fx (the toast lives on <body>).
   Logical properties (inline/block, start/end) make one stylesheet serve LTR (en, tr) and RTL (fa, ar).
   Breakpoints (media queries can't read custom properties): mobile < 768px · tablet 768–1023px · desktop ≥ 1024px. */
:root{
  /* foundations: navy for trust and high-value surfaces, cool neutrals for everything else */
  --navy-950:#061526;--navy-900:#0A1F35;--navy-800:#0F2C47;--navy-700:#163D5E;--navy-600:#1F4F75;
  --ink:#0E1B2B;--ink-2:#334357;--muted:#56677A;--faint:#8494A7;--ph:#94A3B4;
  --canvas:#F2F5F8;--surface:#FFFFFF;--surface-2:#F6F8FB;--line:#E0E6ED;--line-2:#EAEFF4;--field:#CFD8E3;--track:#E4EAF0;
  /* energy accents: green = money that is yours, earnings, success; sky = navigation, selection, information */
  --green-800:#065F46;--green-700:#047857;--green-600:#059669;--green-400:#34D399;--mint-100:#D3F2E4;--mint-50:#ECFAF3;
  --sky-800:#075985;--sky-700:#0369A1;--sky-600:#0284C7;--sky-400:#38BDF8;--sky-100:#D6EDFB;--sky-50:#EEF8FE;
  --aqua-300:#5EEAD4;--cyan-200:#A5F3FC;--lime-200:#D9F99D;
  --amber-800:#7A4B00;--amber-100:#FBE7BD;--amber-50:#FFF5E0;
  --red-700:#B42318;--red-200:#F6C9C3;--red-50:#FEF1EF;
  --slate-600:#475569;--slate-100:#E6EBF2;--slate-50:#EEF2F7;
  /* semantic roles */
  --primary-1:#0B7A6A;--primary-2:#0B6E99;--primary-hover-1:#086556;--primary-hover-2:#085A7E;--on-primary:#FFFFFF;
  --primary:linear-gradient(135deg,var(--primary-1),var(--primary-2));--primary-hover:linear-gradient(135deg,var(--primary-hover-1),var(--primary-hover-2));
  --focus:var(--sky-600);--selected:var(--sky-700);--selected-bg:var(--sky-50);--selected-line:var(--sky-600);
  --positive:var(--green-700);--positive-bg:var(--mint-50);--positive-line:#BFE9D6;
  --info:var(--sky-800);--info-bg:var(--sky-50);--info-line:#C6E4F6;
  --warning:var(--amber-800);--warning-bg:var(--amber-50);--warning-line:#F1DBA6;
  --danger:var(--red-700);--danger-bg:var(--red-50);--danger-line:var(--red-200);
  --neutral:var(--slate-600);--neutral-bg:var(--slate-50);
  --weekend:#44506A;--weekend-bg:#ECEFF6;
  /* on navy */
  --on-dark:#FFFFFF;--on-dark-2:#B6C6D8;--on-dark-3:#8CA3BB;--on-dark-line:rgba(255,255,255,.14);--on-dark-fill:rgba(255,255,255,.08);--on-dark-pos:var(--green-400);
  --glow-sky:rgba(56,189,248,.20);--glow-green:rgba(52,211,153,.16);
  /* type */
  --font-ltr:system-ui,-apple-system,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --font-rtl:"Vazirmatn",Tahoma,"Segoe UI","Noto Sans Arabic",system-ui,sans-serif;
  --mono:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace;
  --fs-display:32px;--fs-h1:24px;--fs-h2:18px;--fs-h3:16px;--fs-balance:36px;--fs-amount:26px;--fs-body:15px;--fs-sm:14px;--fs-xs:13px;--fs-micro:12px;
  /* space · radius · elevation · sizes */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;
  --r-sm:10px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:24px;--r-pill:999px;
  --shadow-1:0 1px 2px rgba(14,27,43,.05);--shadow-2:0 1px 2px rgba(14,27,43,.04),0 10px 28px -14px rgba(14,27,43,.16);
  --shadow-3:0 20px 44px -20px rgba(6,21,38,.55);--shadow-cta:0 10px 24px -12px rgba(11,110,120,.55);--shadow-sheet:0 -10px 40px rgba(6,21,38,.18);
  --ring:0 0 0 3px var(--sky-100);--shadow-hover:0 1px 2px rgba(14,27,43,.04),0 16px 32px -18px rgba(14,27,43,.26);
  /* motifs and motion */
  --horizon:linear-gradient(90deg,transparent,rgba(94,234,212,.6) 32%,rgba(56,189,248,.6) 68%,transparent);
  --ease:cubic-bezier(.2,.7,.2,1);
  /* sizes (--tap: minimum control height) */
  --tap:44px;--btn-h:52px;--btn-h-md:46px;--btn-h-sm:44px;--field-h:52px;--icon-btn:44px;--nav-h:68px;--side-w:260px;--app-mobile:480px;--app-tablet:760px;--content:1140px;--narrow:680px;
}
html{background:var(--canvas);-webkit-text-size-adjust:100%}
body{margin:0}
.fx{--font:var(--font-ltr);min-height:100vh;background:var(--canvas);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;letter-spacing:0;line-height:1.5;font-size:var(--fs-body)}
.fx[dir=rtl]{--font:var(--font-rtl);line-height:1.65}
.fx *,.fx *::before,.fx *::after{box-sizing:border-box}
.fx h1,.fx h2,.fx h3,.fx p,.fx dl,.fx dd,.fx ol,.fx ul,.fx figure{margin:0}
.fx ol,.fx ul{padding:0;list-style:none}
.fx a{color:inherit;text-decoration:none}
/* :where(): the reset must not outweigh a component's own size, weight and colour */
.fx :where(button){font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fx :where(button:disabled){cursor:default}
.fx input,.fx textarea{font-family:inherit}
.fx input::placeholder,.fx textarea::placeholder{color:var(--ph)}
.fx :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.fx-heroband :focus-visible,.fx-card.navy :focus-visible,.fx-authside :focus-visible{outline-color:var(--sky-400)}
.fx h1[tabindex="-1"]:focus{outline:none}
.fx img,.fx svg{max-width:100%}
.fx-i{display:block;flex:none}
[dir=rtl] .fx-flip{transform:scaleX(-1)}
.fx-ltr{unicode-bidi:isolate;direction:ltr}
.fx-num{font-variant-numeric:tabular-nums}
.fx-mono{font-family:var(--mono)}
.fx-muted{color:var(--muted)} .fx-faint{color:var(--faint)} .fx-teal{color:var(--positive)} .pos{color:var(--positive)} .muted{color:var(--muted)}
.fx-end{text-align:end} .fx-center{align-items:center;text-align:center}
.fx-body{font-size:var(--fs-body);color:var(--ink-2)} .fx-body.lg{font-size:16px}
.fx-meta{font-size:var(--fs-xs)}
.fx-only-d{display:none!important}
.fx-region{display:contents}
.fx-boot{min-height:100vh;display:grid;place-items:center;background:var(--canvas)}
.fx-boot svg{width:48px;height:48px;animation:fx-pulse 1.2s ease-in-out infinite}

/* ---------- app frame ---------- */
.fx-app{position:relative;max-width:var(--app-mobile);min-height:100vh;margin:0 auto;background:var(--canvas);padding-top:env(safe-area-inset-top,0px)}
.fx-app.has-nav{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px))}
.fx-side{display:none}
.fx-behind{display:contents}
@media (min-width:520px){.fx-app{box-shadow:0 0 0 1px rgba(14,27,43,.04),0 30px 60px -30px rgba(14,27,43,.22)}}

/* ---------- layout ---------- */
.fx-page{padding:var(--s2) var(--s4) var(--s6);display:flex;flex-direction:column;gap:var(--s4)}
.fx-stack{display:flex;flex-direction:column;gap:var(--s4)} .fx-stack.sm{gap:var(--s2)} .fx-stack.xs{gap:var(--s1);align-items:stretch} .fx-stack.lg{gap:var(--s6)}
.fx-row-between{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.fx-row-between.wrap{flex-wrap:wrap}
.fx-rowflex{display:flex;align-items:center;gap:var(--s3);min-width:0} .fx-rowflex.sm{gap:var(--s2)} .fx-rowflex.top{align-items:flex-start} .fx-rowflex.wrap{flex-wrap:wrap} .fx-rowflex.center{justify-content:center}
.fx-rowflex>.fx-btn{flex:1}
.fx-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.fx-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.fx-grid12{display:flex;flex-direction:column;gap:var(--s4)}
.fx-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;padding-top:var(--s2)}
.fx-pagehead>div{display:flex;flex-direction:column;gap:var(--s1);min-width:0}

/* ---------- headers ---------- */
.fx-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--s2);padding:10px var(--s4);background:rgba(242,245,248,.92);backdrop-filter:saturate(1.4) blur(8px)}
.fx-top-title{flex:1;min-width:0;text-align:center;font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-top-gap{width:var(--icon-btn);flex:none}
.fx-iconbtn{width:var(--icon-btn);height:var(--icon-btn);flex:none;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;color:var(--ink);padding:0;box-shadow:var(--shadow-1);transition:border-color .15s,background .15s,transform .12s var(--ease)}
.fx-iconbtn:hover{border-color:var(--field)}
.fx-iconbtn.lg{width:var(--btn-h);height:var(--btn-h);border-radius:var(--r-lg)}
.fx-iconbtn.on-dark{background:var(--on-dark-fill);border-color:var(--on-dark-line);color:var(--on-dark);box-shadow:none}
.fx-iconbtn.on-dark:hover{background:rgba(255,255,255,.14)}
.fx-logo{width:34px;height:34px;flex:none;display:inline-block;border-radius:10px;box-shadow:0 4px 12px -6px rgba(6,21,38,.5)}
.fx-logo svg{display:block;width:100%;height:100%}
.fx-logo.lg{width:46px;height:46px;border-radius:13px}
.fx-logo .lg-bg{fill:var(--navy-900)}
.fx-logo path{fill:none;stroke-width:2.6;stroke-linecap:round}
.fx-logo .lg-1{stroke:var(--aqua-300)} .fx-logo .lg-2{stroke:var(--sky-400)} .fx-logo .lg-3{stroke:var(--lime-200)}
.fx-brand{display:inline-flex;align-items:center;gap:10px;min-height:var(--tap);font-size:18px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;color:var(--ink)}
.fx-brand.on-dark{color:var(--on-dark)}
.fx-brand.sm{font-size:15px}
.fx-langbtn{display:inline-flex;align-items:center;gap:6px;height:var(--btn-h-sm);padding:0 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}
.fx-langbtn:hover{border-color:var(--field);color:var(--ink)}
.fx-langbtn.block{width:100%;justify-content:center}
.fx-langbtn.compact span{display:none}

/* ---------- type ---------- */
.fx-display{font-size:var(--fs-display);font-weight:700;line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
.fx-h1{font-size:var(--fs-h1);font-weight:700;letter-spacing:-.015em;line-height:1.25;text-wrap:balance}
.fx-h2{font-size:var(--fs-h2);font-weight:700;line-height:1.35}
.fx-h3{font-size:var(--fs-h3);font-weight:600;line-height:1.4} .fx-h3.lg{font-size:17px}
.fx[dir=rtl] .fx-h1,.fx[dir=rtl] .fx-display,.fx[dir=rtl] .fx-big,.fx[dir=rtl] .fx-code{letter-spacing:0}
.fx[dir=rtl] .fx-display{line-height:1.35}
.fx-lead{font-size:var(--fs-body);color:var(--muted);text-wrap:pretty}
.fx-fine{font-size:var(--fs-xs);color:var(--muted);text-align:center;text-wrap:pretty}
.fx-eyebrow{font-size:var(--fs-micro);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fx[dir=rtl] .fx-eyebrow{letter-spacing:0;font-size:var(--fs-xs)}
.fx-group-title{padding-inline-start:var(--s1)}
.fx-card-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}
.fx-card-title{font-size:var(--fs-h3);font-weight:600;line-height:1.4} .fx-card-title.lg{font-size:var(--fs-h2);font-weight:700}
.fx-big{font-size:var(--fs-balance);font-weight:700;letter-spacing:-.025em;line-height:1.1;font-variant-numeric:tabular-nums}
.fx-unit{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.fx-amount{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;min-width:0}
.fx-pay{font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}
.fx-pay.xl{font-size:34px}
/* the unit after an amount; an amount written with its unit in one span (the review's "You receive") stays emphasised */
.fx-pay>span:last-child:not(:first-child),.fx-receive>span:last-child:not(:first-child){font-size:var(--fs-sm);font-weight:600;color:var(--muted);letter-spacing:0}
.fx-receive{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--positive)}
.fx-code{font:700 26px/1.2 var(--mono);letter-spacing:.06em;overflow-wrap:anywhere}
.fx-code.fx-address{font-size:15px;font-weight:600;letter-spacing:0;line-height:1.55;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);width:100%;text-align:center}

/* ---------- buttons: one primary per screen; secondary is neutral; red only for sign-out ---------- */
.fx-btn{width:100%;min-height:var(--btn-h);border:none;border-radius:var(--r-lg);background:var(--primary);color:var(--on-primary)!important;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:var(--s2);padding:10px 18px;text-align:center;line-height:1.3;transition:filter .15s,box-shadow .15s,background .15s,transform .12s var(--ease)}
.fx-btn:hover:not(:disabled){background:var(--primary-hover)}
.fx-btn:active:not(:disabled){filter:brightness(.96);transform:scale(.985)}
.fx-btn:disabled{background:var(--track);color:var(--muted)!important;box-shadow:none}
.fx-btn.tall{min-height:56px;box-shadow:var(--shadow-cta)} .fx-btn.tall:disabled{box-shadow:none}
.fx-btn.md{min-height:var(--btn-h-md);border-radius:var(--r-md);font-size:15px}
.fx-btn.sm{width:auto;min-height:var(--btn-h-sm);border-radius:var(--r-md);font-size:var(--fs-sm);padding:6px 16px;white-space:nowrap}
.fx-btn.secondary{background:var(--surface);border:1px solid var(--field);color:var(--ink)!important;box-shadow:var(--shadow-1)}
.fx-btn.secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--faint)}
.fx-btn.ghost{background:none;color:var(--ink-2)!important;min-height:var(--btn-h-md)}
.fx-btn.ghost:hover:not(:disabled){background:var(--neutral-bg);color:var(--ink)!important}
.fx-btn.ghost-dark{background:transparent;border:1px solid rgba(255,255,255,.34);color:var(--on-dark)!important}
.fx-btn.ghost-dark:hover:not(:disabled){background:var(--on-dark-fill)}
.fx-btn.soft{background:var(--selected-bg);color:var(--selected)!important}
.fx-btn.soft:hover:not(:disabled){background:var(--sky-100)}
.fx-btn.danger{background:var(--danger)} .fx-btn.danger:hover:not(:disabled){background:#962118}
.fx-btn.danger-outline{background:var(--surface);border:1px solid var(--danger-line);color:var(--danger)!important;min-height:var(--btn-h-md)}
.fx-btn.danger-outline:hover{background:var(--danger-bg)}
.fx-max{width:auto;min-height:var(--tap);padding:4px 14px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:700}
.fx-link{border:none;background:none;padding:6px 2px;color:var(--selected);font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:2px;min-height:var(--tap)}
.fx-link:hover{color:var(--sky-800);text-decoration:underline;text-underline-offset:3px}
.fx-link.sm{font-size:var(--fs-sm)}
.fx-link.on-dark{color:var(--cyan-200)} .fx-link.on-dark:hover{color:var(--on-dark)}
.fx-forgot{align-self:flex-end}
.fx-help{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;border:none;background:none;padding:6px 0;min-height:var(--tap);color:var(--selected);font-size:var(--fs-sm);font-weight:600;text-align:start}
.fx-help .fx-i{color:var(--sky-600)}
.fx-help:hover span{text-decoration:underline;text-underline-offset:3px}
.fx-spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-inline-end-color:transparent;animation:fx-spin .7s linear infinite;flex:none}
.fx-cta{position:sticky;bottom:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(rgba(242,245,248,0),var(--canvas) 28%);z-index:3;display:flex;flex-direction:column;gap:var(--s1)}
.has-nav .fx-cta{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:12px}

/* ---------- cards & lists ---------- */
.fx-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3);box-shadow:var(--shadow-1);min-width:0}
.fx-card.center{align-items:center;text-align:center}
.fx-card.navy{position:relative;overflow:hidden;isolation:isolate;border:none;color:var(--on-dark);box-shadow:var(--shadow-3);
  background:radial-gradient(120% 90% at 100% 0%,var(--glow-sky) 0%,transparent 55%),radial-gradient(90% 80% at 0% 100%,var(--glow-green) 0%,transparent 60%),linear-gradient(150deg,var(--navy-800),var(--navy-950))}
.fx-card.navy>.fx-flowart{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.fx-card.navy::before{content:"";position:absolute;inset-inline:24px;top:0;height:1px;background:var(--horizon);opacity:.7;pointer-events:none}
.fx-card.navy .fx-card-label{color:var(--on-dark-2)}
.fx-card.navy .fx-unit{color:var(--on-dark-2)}
.fx-cardbtn{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s3) var(--s4);box-shadow:var(--shadow-1);min-height:64px;color:var(--faint);transition:border-color .15s,box-shadow .2s,transform .12s var(--ease)}
.fx-cardbtn:hover{border-color:var(--field)}
.fx-cardbtn .fx-row-main{display:flex;flex-direction:column}
.fx-cardbtn .fx-row-title{color:var(--ink)}
.fx-empty{align-items:center;text-align:center;gap:10px;padding:var(--s8) var(--s5) var(--s6);background:radial-gradient(90% 70% at 50% 0%,var(--sky-50),transparent 70%),var(--surface);border:1px dashed var(--field);box-shadow:none}
.fx-empty>.fx-ico{box-shadow:0 0 0 6px var(--surface),0 0 0 7px var(--line)}
.fx-empty-title{font-size:var(--fs-h3);font-weight:700;margin-top:var(--s1)}
.fx-empty-body{max-width:420px}
.fx-empty>.fx-btn{margin-top:var(--s1)}
.fx-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:2px var(--s4);box-shadow:var(--shadow-1);min-width:0}
.fx-list>*+*{border-top:1px solid var(--line-2)}
.fx-row{display:flex;align-items:center;gap:var(--s3);padding:13px 0;width:100%;min-width:0}
.fx-row.top{align-items:flex-start;padding:var(--s4) 0} .fx-row.sm{padding:11px 0}
.fx-row-main{flex:1;min-width:0}
.fx-row-title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.fx-row-title.lg{font-size:16px} .fx-row-title.wrap{white-space:normal}
/* long row titles wrap to two lines instead of being cut */
.fx-row .fx-row-title{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.fx-row-sub{font-size:var(--fs-xs);color:var(--muted);line-height:1.5;display:block}
.fx-row-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.fx-amt{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.fx-amt.pos{color:var(--positive)} .fx-amt.muted{color:var(--muted);font-weight:600}
.fx-btnrow{width:100%;display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0;border:none;background:none;text-align:start;min-height:60px}
.fx-btnrow .fx-row-main{display:flex;flex-direction:column}
.fx-btnrow:hover .fx-row-title{color:var(--selected)}
.fx-btnrow.on .fx-row-title{color:var(--selected)}
.fx-kv{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:var(--fs-sm)}
.fx-kv>dt,.fx-kv>span:first-child{color:var(--muted)}
.fx-kv>dd,.fx-kv>b{font-weight:600;font-variant-numeric:tabular-nums;text-align:end}
.fx-kv-pos{background:var(--positive-bg);border-radius:var(--r-md);padding:10px var(--s3)}
.fx-kv-pos>dt,.fx-kv-pos>dd{color:var(--positive);font-weight:600}
.fx-kv-soft{background:var(--surface-2);border-radius:var(--r-md);padding:var(--s3) 14px}
.fx-kvlist{display:flex;flex-direction:column;gap:10px}
.fx-divider{height:1px;background:var(--line-2)}
.fx-baseline{align-items:baseline}
.fx-rules{display:flex;flex-direction:column}
.fx-rule{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:var(--s3);align-items:start;padding:9px 0;font-size:var(--fs-sm);border-top:1px solid var(--line-2)}
.fx-rule:first-child{border-top:none}
.fx-rule .fx-i{color:var(--sky-600);margin-top:2px}
.fx-rule b{font-weight:600;text-align:end}
.fx-facts{padding:2px var(--s4)}
.fx-fact{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:13px 0;font-size:var(--fs-sm)}
.fx-fact dd{font-weight:600;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fx-feecard{gap:10px;padding:14px var(--s4)}
.fx-infocard{flex-direction:row;align-items:center;gap:var(--s3)}
.fx-paycard{gap:var(--s3)}
.fx-summary{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:2px var(--s4);width:100%;text-align:start}
.fx-summary>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:var(--s3) 0;font-size:var(--fs-sm)}
.fx-summary>div+div{border-top:1px solid var(--line)}
.fx-summary dt{color:var(--muted)}
.fx-summary dd{font-weight:600;font-variant-numeric:tabular-nums;text-align:end;overflow-wrap:anywhere;min-width:0}
.fx-summary>div.stack{flex-direction:column;align-items:stretch;gap:4px}
.fx-summary>div.stack dd{text-align:start}
.fx-summary>div.total dt{color:var(--ink);font-weight:700}
.fx-fulladdr{font-size:13px;line-height:1.5;word-break:break-all}

/* ---------- small pieces ---------- */
.fx-ico{width:40px;height:40px;flex:none;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center}
.fx-ico.sm{width:32px;height:32px;border-radius:var(--r-sm)} .fx-ico.lg{width:48px;height:48px;border-radius:var(--r-lg)}
.fx-ico.hero{width:64px;height:64px;border-radius:var(--r-xl)} .fx-ico.res{width:84px;height:84px;border-radius:26px}
.t-green{background:var(--positive-bg);color:var(--positive)} .t-sky{background:var(--info-bg);color:var(--sky-700)} .t-navy{background:var(--slate-100);color:var(--navy-700)}
.t-neutral{background:var(--neutral-bg);color:var(--neutral)} .t-amber{background:var(--warning-bg);color:var(--warning)} .t-weekend{background:var(--weekend-bg);color:var(--weekend)}
.t-dark{background:rgba(94,234,212,.1);color:var(--aqua-300);box-shadow:inset 0 0 0 1px rgba(94,234,212,.22)}
.fx-chip{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 9px;border-radius:var(--r-pill);font-size:var(--fs-micro);font-weight:600;white-space:nowrap;line-height:1.3}
.fx-chip.lg{min-height:28px;padding:3px 11px;font-size:var(--fs-xs)}
.is-positive{background:var(--positive-bg);color:var(--positive)} .is-active{background:var(--green-700);color:var(--on-primary)}
.is-warning{background:var(--warning-bg);color:var(--warning)} .is-info{background:var(--info-bg);color:var(--info)}
.is-danger{background:var(--danger-bg);color:var(--danger)} .is-neutral{background:var(--neutral-bg);color:var(--neutral)}
.is-weekend{background:var(--weekend-bg);color:var(--weekend)} .is-dark{background:var(--on-dark-fill);color:var(--on-dark-2);border:1px solid var(--on-dark-line)}
.fx-badge{width:44px;height:44px;flex:none;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;direction:ltr;gap:1px}
.fx-badge small{font-size:9px;font-weight:700;letter-spacing:.08em}
.fx-badge b{font-size:18px;font-weight:700}
.fx-badge.lg{width:50px;height:50px;border-radius:var(--r-lg)} .fx-badge.lg b{font-size:21px}
.fx-badge.v1{background:var(--positive-bg);color:var(--green-800)} .fx-badge.v2{background:var(--info-bg);color:var(--sky-800)} .fx-badge.v3{background:var(--navy-800);color:var(--cyan-200)}
.fx-badge.off{background:var(--neutral-bg);color:var(--muted)}
.fx-note{border-radius:var(--r-lg);padding:13px 14px;display:flex;gap:var(--s3);font-size:var(--fs-sm);line-height:1.55;border:1px solid transparent}
.fx-note .fx-i{margin-top:1px}
.fx-note.sm{padding:11px 12px;gap:10px;font-size:var(--fs-xs)}
.fx-note-title{font-size:15px;font-weight:600;color:var(--ink)}
.fx-note.warning{background:var(--warning-bg);border-color:var(--warning-line);color:var(--amber-800)} .fx-note.warning .fx-i{color:var(--warning)}
.fx-note.info{background:var(--info-bg);border-color:var(--info-line);color:var(--sky-800)} .fx-note.info .fx-i{color:var(--sky-700)}
.fx-note.positive{background:var(--positive-bg);border-color:var(--positive-line);color:var(--ink-2)} .fx-note.positive .fx-i{color:var(--positive)}
.fx-note.neutral{background:var(--neutral-bg);color:var(--ink-2)} .fx-note.neutral .fx-i{color:var(--neutral)}
.fx-note.weekend{background:var(--weekend-bg);color:var(--ink-2)} .fx-note.weekend .fx-i{color:var(--weekend)}
.fx-bullets{display:flex;flex-direction:column;gap:10px}
.fx-bullets li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);color:var(--ink-2)}
.fx-bullets li .fx-i{color:var(--sky-600);margin-top:2px}
.fx-numbered{display:flex;flex-direction:column;gap:var(--s3)}
.fx-numbered li{display:flex;gap:var(--s3);align-items:flex-start}
.fx-step{width:28px;height:28px;flex:none;border-radius:50%;background:var(--info-bg);color:var(--sky-800);font-weight:700;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:center}
.fx-progress{height:8px;border-radius:var(--r-pill);background:var(--track);overflow:hidden;display:flex}
.fx-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green-600),var(--sky-600));border-radius:inherit;min-width:6px}
[dir=rtl] .fx-progress span{background:linear-gradient(270deg,var(--green-600),var(--sky-600))}
.fx-avatar{width:40px;height:40px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--neutral-bg);color:var(--neutral)}
.fx-avatar.a{background:var(--positive-bg);color:var(--positive)} .fx-avatar.b{background:var(--info-bg);color:var(--sky-800)}
.fx-avatar.xl{width:56px;height:56px;font-size:20px;background:var(--navy-800);color:var(--cyan-200)}
.fx-linkbox{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);padding:var(--s3) 14px;color:var(--muted);min-width:0}
.fx-linkbox span{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:start}
.fx-linkbox.on-dark{background:var(--on-dark-fill);border-color:var(--on-dark-line);color:var(--on-dark-2)} .fx-linkbox.on-dark span{color:var(--on-dark)}
.fx-lv{width:22px;height:22px;border-radius:7px;color:var(--on-primary);font-weight:700;font-size:var(--fs-micro);display:inline-flex;align-items:center;justify-content:center;flex:none}
.fx-lv.a{background:var(--green-600)} .fx-lv.b{background:var(--sky-600)}

/* ---------- stepper ---------- */
.fx-stepper{display:flex;align-items:center;gap:var(--s2);counter-reset:none}
/* steps size to their labels; connectors share the rest */
.fx-stepper li{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;font-size:var(--fs-xs);font-weight:600;color:var(--muted)}
.fx-stepper li:first-child{flex-grow:0}
.fx-stepper li+li::before{content:"";flex:1 1 18px;min-width:8px;height:2px;border-radius:2px;background:var(--track);margin-inline-end:2px}
.fx-stepper .n{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--track);color:var(--muted);font-size:var(--fs-micro)}
.fx-stepper .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-stepper li.cur{color:var(--ink)} .fx-stepper li.cur .n{background:var(--sky-700);color:var(--on-primary);box-shadow:var(--ring)}
.fx-stepper li.done .n{background:var(--green-700);color:var(--on-primary)} .fx-stepper li.done::before,.fx-stepper li.cur::before{background:var(--green-600)}

/* ---------- forms ---------- */
.fx-field{display:flex;flex-direction:column;gap:var(--s2)}
.fx-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}
.fx-label i{font-style:normal;font-weight:400;color:var(--muted)}
.fx-input{min-height:var(--field-h);border:1px solid var(--field);border-radius:var(--r-md);background:var(--surface);padding:0 var(--s4);font-size:16px;color:var(--ink);outline:none;width:100%;transition:border-color .15s,box-shadow .15s}
.fx-input.err{border-color:var(--danger)}
.fx-input[dir=ltr]{text-align:left}
.fx[dir=rtl] .fx-input[dir=ltr]:placeholder-shown{text-align:right}
.fx-input.code{min-height:64px;border-radius:var(--r-lg);text-align:center!important;font:700 28px var(--mono);letter-spacing:.5em;padding-inline-start:.5em}
.fx-input.mono{font:500 14px var(--mono);padding:0 14px}
.fx-input.ref{font:600 16px var(--mono);letter-spacing:.08em}
.fx-pw{position:relative}
.fx-pw .fx-input{padding-inline-end:52px}
.fx-pw button{position:absolute;inset-inline-end:4px;top:4px;width:var(--icon-btn);height:var(--icon-btn);border:none;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm)}
.fx-textarea{min-height:110px;border:1px solid var(--field);border-radius:var(--r-md);padding:14px;font-size:16px;resize:vertical;outline:none;width:100%;color:var(--ink);background:var(--surface)}
.fx-bigfield{display:flex;align-items:center;gap:var(--s2);background:var(--surface);border:1px solid var(--field);border-radius:var(--r-lg);padding:0 var(--s4);min-height:68px;transition:border-color .15s,box-shadow .15s}
.fx-bigfield.err{border-color:var(--danger)}
/* a focused field shows a 2 px border and a soft halo (red when its value is refused); no second outline inside it */
.fx-input:focus,.fx-textarea:focus,.fx-bigfield:focus-within{border-color:var(--selected-line);box-shadow:0 0 0 1px var(--selected-line),var(--ring)}
.fx-input.err:focus,.fx-bigfield.err:focus-within{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger),0 0 0 4px var(--danger-bg)}
.fx-input:focus-visible,.fx-textarea:focus-visible,.fx-bigfield input:focus-visible{outline:none}
.fx-bigfield.wd{padding-inline:var(--s4) 8px}
.fx-bigfield input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:28px;font-weight:700;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;padding:8px 0}
.fx[dir=rtl] .fx-bigfield input{text-align:right}
.fx-bigfield .fx-unit{font-size:15px}
.fx-hint{font-size:var(--fs-xs);font-weight:600;color:var(--muted);display:flex;gap:6px;align-items:center}
.fx-hint.err{color:var(--danger)} .fx-hint.plain{font-weight:400}
.fx-select-card{display:flex;align-items:center;gap:var(--s3);background:var(--selected-bg);border:1px solid var(--info-line);border-radius:var(--r-lg);padding:var(--s3) 14px;min-width:0}
.fx-select-card.sm{padding:10px 14px}
.fx-coin{width:40px;height:40px;border-radius:50%;background:var(--green-700);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex:none}
.fx-coin.sm{width:32px;height:32px;font-size:15px}
.fx-quickamts{gap:var(--s2)}
.fx-quickamt{min-height:var(--btn-h);border-radius:var(--r-md);border:1px solid var(--field);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 2px;transition:border-color .15s,background .15s,box-shadow .15s,transform .12s var(--ease)}
.fx-quickamt b{font-size:15px;font-weight:700;color:var(--ink)}
.fx-quickamt span{font-size:11px;font-weight:600;color:var(--muted)}
.fx-quickamt.on{border-color:var(--selected-line);background:var(--selected-bg);box-shadow:var(--ring)}
.fx-check{display:flex;gap:var(--s3);align-items:flex-start;text-align:start;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:14px}
.fx-check .box{width:24px;height:24px;flex:none;border-radius:7px;border:2px solid var(--field);background:var(--surface);display:flex;align-items:center;justify-content:center;color:transparent}
.fx-check.on{border-color:var(--selected-line);background:var(--selected-bg)}
.fx-check.on .box{border-color:var(--sky-700);background:var(--sky-700);color:var(--on-primary)}
.fx-check span:last-child{font-size:var(--fs-sm);color:var(--ink-2)}
.fx-dots{display:flex;gap:6px}
.fx-dots span{height:6px;width:6px;border-radius:3px;background:var(--track);transition:width .2s}
.fx-dots span.done{background:var(--sky-700)} .fx-dots span.cur{width:22px}

/* ---------- segmented, pills, tables ---------- */
.fx-seg{display:flex;background:var(--slate-100);border-radius:var(--r-md);padding:3px;gap:2px}
.fx-seg button{min-height:var(--tap);padding:0 14px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.fx-seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.fx-pills{display:flex;flex-wrap:wrap;gap:var(--s2)}
.fx-pills button{min-height:var(--tap);padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;transition:background .15s,border-color .15s,color .15s}
.fx-pills button:hover:not(.on){border-color:var(--field);color:var(--ink)}
.fx-pills button.on{background:var(--navy-800);border-color:var(--navy-800);color:var(--on-dark)}
.fx-tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);overflow-x:auto;box-shadow:var(--shadow-1)}
.fx-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.fx-table th{text-align:start;font-size:var(--fs-micro);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:14px var(--s4);border-bottom:1px solid var(--line-2);white-space:nowrap;background:var(--surface-2)}
.fx[dir=rtl] .fx-table th{letter-spacing:0}
.fx-table td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line-2);vertical-align:middle}
.fx-table tr:last-child td{border-bottom:none}
.fx-table .num{text-align:end;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-table .num.pos{color:var(--positive)} .fx-table .num.muted{color:var(--muted)}
.fx-cell{display:flex;align-items:center;gap:10px;font-weight:600}

/* ---------- clean-air artwork ---------- */
.fx-flowart .st-0{stop-color:var(--aqua-300);stop-opacity:0} .fx-flowart .st-1{stop-color:var(--aqua-300);stop-opacity:.85} .fx-flowart .st-2{stop-color:var(--sky-400);stop-opacity:0}
.fx-flowart .sg-0{stop-color:var(--aqua-300);stop-opacity:.28} .fx-flowart .sg-1{stop-color:var(--sky-400);stop-opacity:.09} .fx-flowart .sg-2{stop-color:var(--sky-400);stop-opacity:0}
.fx-flowart .sh-0{stop-color:var(--sky-400);stop-opacity:0} .fx-flowart .sh-1{stop-color:var(--cyan-200);stop-opacity:.5}
.fx-flowart .grid path{stroke:var(--sky-400);stroke-opacity:.13;stroke-width:1}
.fx-flowart .rings circle{stroke:var(--aqua-300);stroke-opacity:.08;stroke-width:1}
.fx-flowart .hz{stroke-width:1.2}
.fx-flowart .pulse{stroke:var(--cyan-200);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:70 1000;stroke-dashoffset:70;opacity:0}
.fx-flowart.card .flow{opacity:.55}
.fx-heroband>.fx-flowart .flow{opacity:.55}
/* intro motion only when a screen appears, once */
.fx-entering .fx-flowart.hero .flow,.fx-entering .fx-flowart.auth .flow{animation:fx-flowin 1.1s var(--ease) both}
.fx-entering .fx-flowart.hero .pulse{animation:fx-energy 2.8s .5s var(--ease) both}

/* ---------- public pages ---------- */
.fx-pubhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:var(--s3) var(--s4);position:relative;z-index:2}
.fx-pubhead.on-dark .fx-brand{color:var(--on-dark)}
.fx-pubhead.on-dark .fx-langbtn{background:var(--on-dark-fill);border-color:var(--on-dark-line);color:var(--on-dark)}
.fx-pubhead.on-dark .fx-btn.secondary{background:var(--on-dark-fill);border-color:var(--on-dark-line);color:var(--on-dark)!important;box-shadow:none}
.fx-pubnav{display:none}
.fx-pubact{display:flex;align-items:center;gap:var(--s2);min-width:0}
.fx-pubpage{padding:var(--s2) var(--s4) var(--s8);display:flex;flex-direction:column;gap:var(--s4)}
.fx-pubintro{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s2) 0}
.fx-pubcta{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.fx-pubcta .fx-help{align-self:center}
.fx-pubfoot{padding:var(--s6) var(--s4) var(--s8);display:flex;flex-direction:column;align-items:center;gap:var(--s3);border-top:1px solid var(--line);background:var(--surface)}
.fx-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 var(--s4);font-size:var(--fs-xs)}
.fx-legal a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--ink-2);font-weight:600;padding:0 2px}
.fx-legal a:hover{color:var(--selected)}
/* the artwork mirrors in RTL: the glow stays behind the plan card */
.fx-heroband{position:relative;overflow:hidden;isolation:isolate;color:var(--on-dark);background:radial-gradient(70% 55% at 72% 100%,rgba(56,189,248,.14),transparent 70%),linear-gradient(180deg,var(--navy-950) 0%,var(--navy-900) 55%,var(--navy-700) 100%)}
.fx-heroband::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:var(--horizon);opacity:.55;pointer-events:none}
[dir=rtl] .fx-heroband>.fx-flowart{transform:scaleX(-1)}
.fx-heroband>.fx-flowart{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.fx-hero{display:flex;flex-direction:column;gap:var(--s8);padding:var(--s5) var(--s4) var(--s10)}
.fx-hero-text{display:flex;flex-direction:column;gap:var(--s4)}
.fx-hero .fx-eyebrow{color:var(--cyan-200)}
.fx-hero-pill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:5px 12px;border-radius:var(--r-pill);background:var(--on-dark-fill);border:1px solid var(--on-dark-line)}
.fx-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--green-400);box-shadow:0 0 0 3px rgba(52,211,153,.2)}
.fx-display .fx-accent{color:var(--green-400)}
.fx-hero .fx-lead{color:var(--on-dark-2);font-size:16px;max-width:34em}
.fx-hero-cta{display:flex;flex-direction:column;gap:10px;margin-top:var(--s1)}
.fx-hero-cta>.fx-btn:first-child{box-shadow:0 14px 30px -16px rgba(52,211,153,.6)}
.fx-hero-cta>.ghost-dark{border-color:rgba(255,255,255,.24)}
.fx-hero-trust{display:flex;flex-direction:column;gap:10px}
.fx-hero-trust li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.45;color:var(--on-dark-2)}
.fx-hero-trust .fx-i{color:var(--aqua-300);margin-top:1px}
.fx-hero-card{position:relative;background:var(--surface);color:var(--ink);border-radius:var(--r-2xl);padding:var(--s4);box-shadow:var(--shadow-3);display:flex;flex-direction:column;gap:var(--s2)}
.fx-hero-card::before{content:"";position:absolute;inset-inline:28px;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--aqua-300),var(--sky-400))}
/* earning days: filled = paid, outlined = weekend */
.fx-week-wrap{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line-2)}
.fx-week-lbl{font-size:var(--fs-xs);font-weight:600;color:var(--ink-2)}
.fx-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.fx-week span{min-height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--positive-line);background:var(--positive-bg);color:var(--positive);font-size:var(--fs-micro);font-weight:700}
.fx-week span.off{border-style:dashed;border-color:var(--field);background:none;color:var(--muted);font-weight:600}
.fx-planlist{display:flex;flex-direction:column}
.fx-planlist>*+*{border-top:1px solid var(--line-2)}
.fx-planrow{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0}
.fx-planprice{font-size:16px;font-weight:700}
.fx-plandaily{font-size:16px;font-weight:700;color:var(--positive);font-variant-numeric:tabular-nums}
.fx-plandaily.lg{font-size:22px}
.fx-landing{background:linear-gradient(180deg,var(--sky-50),var(--canvas) 360px)}
.fx-public-body{display:flex;flex-direction:column;gap:var(--s10);padding:var(--s8) var(--s4) var(--s10)}
.fx-pubsection{display:flex;flex-direction:column;gap:var(--s4)}
.fx-sechead,.fx-academy-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s2) var(--s3);flex-wrap:wrap}
.fx-sechead>.fx-link,.fx-academy-head>.fx-link{margin-inline-start:auto}
.fx-startsteps{display:grid;gap:var(--s3)}
.fx-startsteps li{display:flex;gap:var(--s3);align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s4);box-shadow:var(--shadow-1)}
.fx-startsteps li>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.fx-card.fx-trust{gap:var(--s5);padding:var(--s6) var(--s5)}
.fx-trust-head{display:flex;flex-direction:column;gap:var(--s2);max-width:640px}
.fx-trust .fx-h2{color:var(--on-dark);font-size:22px;line-height:1.3}
.fx-trust .fx-lead{color:var(--on-dark-2)}
.fx-trustgrid{display:grid;gap:var(--s3)}
.fx-trustgrid li{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);padding:var(--s4);border-radius:var(--r-lg);background:rgba(255,255,255,.04);border:1px solid var(--on-dark-line)}
.fx-trustgrid .fx-h3{color:var(--on-dark)}
.fx-trustgrid p{font-size:var(--fs-sm);line-height:1.55;color:var(--on-dark-2)}
.fx-terms{display:flex;gap:10px;align-items:flex-start;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.fx-terms .fx-i{margin-top:2px;color:var(--sky-700)}
.fx-terms .fx-fine{text-align:start;color:var(--ink-2)}
.fx-steps{display:grid;gap:var(--s3)}
.fx-stepcard{flex-direction:row;align-items:flex-start;gap:14px}
.fx-plancards{display:grid;gap:var(--s3)}
.fx-plancard.locked{background:var(--surface-2)}
.fx-faqlist{padding:0 var(--s4)}
.fx-faq button{width:100%;display:flex;align-items:center;gap:var(--s3);padding:var(--s4) 0;border:none;background:none;text-align:start;min-height:60px}
.fx-faq button span:first-child{flex:1;font-size:15px;font-weight:600;line-height:1.45}
.fx-faq button:hover span:first-child{color:var(--selected)}
.fx-faq-ico{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--sky-50);color:var(--sky-700);transition:background .15s,color .15s}
.fx-faq.open .fx-faq-ico{background:var(--sky-700);color:var(--on-primary)}
.fx-faq p{font-size:15px;line-height:1.7;color:var(--ink-2);padding:0 0 var(--s5);max-width:68ch;animation:fx-in .18s ease-out}
.fx[dir=rtl] .fx-faq p{line-height:1.85}

/* ---------- academy ---------- */
.fx-academy{display:flex;flex-direction:column;gap:var(--s4)}
.fx-academy-head>div{display:flex;flex-direction:column;gap:2px}
.fx-topicgrid{display:grid;gap:var(--s3)}
.fx-topic{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:var(--s3);row-gap:2px;align-items:center;align-content:center;text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s4);box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .2s,transform .12s var(--ease)}
.fx-topic .fx-ico{grid-row:1/span 2;grid-column:1}
.fx-topic-t,.fx-topic>.fx-row-sub{grid-column:2}
.fx-topic-go{grid-row:1/span 2;grid-column:3;color:var(--faint);transition:color .15s,transform .15s var(--ease)}
.fx-topic:hover{border-color:var(--info-line)}
.fx-topic:hover .fx-topic-go{color:var(--sky-700);transform:translateX(2px)}
[dir=rtl] .fx-topic:hover .fx-topic-go{transform:translateX(-2px)}
.fx-topic-t{font-size:16px;font-weight:700;color:var(--ink)}
.fx-guide{display:flex;flex-direction:column;gap:var(--s4)}
.fx-guide-head{display:flex;gap:var(--s3);align-items:flex-start}
.fx-guide-head>div{display:flex;flex-direction:column;gap:var(--s1);min-width:0}
.fx-guide-part{gap:var(--s3)}
.fx-guide-cta{display:flex;flex-direction:column;gap:10px}
.fx-example{background:var(--positive-bg);border:1px solid var(--positive-line);border-radius:var(--r-md);padding:var(--s3) 14px;font-size:var(--fs-sm);color:var(--ink-2)}

/* ---------- authentication ---------- */
.fx-authwrap{min-height:100vh;display:flex;position:relative;isolation:isolate}
.fx-authwrap::before{content:"";position:absolute;inset:0 0 auto;height:300px;z-index:-1;pointer-events:none;background:radial-gradient(55% 100% at 85% 0%,rgba(56,189,248,.14),transparent 70%),radial-gradient(45% 80% at 12% 0%,rgba(52,211,153,.1),transparent 70%)}
.fx-authside{display:none}
.fx-auth{padding:var(--s5) var(--s5) 28px;display:flex;flex-direction:column;gap:22px;min-height:100vh;flex:1;max-width:520px;margin:0 auto;width:100%}
.fx-authalt{text-align:center;font-size:15px;color:var(--muted)} .fx-authalt.sm{font-size:var(--fs-sm)}
.fx-auth>.fx-authnote{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:auto;font-size:var(--fs-xs);font-weight:600;color:var(--muted)}
.fx-authnote .fx-i{color:var(--sky-700)}
.fx-done{padding-top:var(--s10);gap:var(--s3)}

/* ---------- home ---------- */
.fx-greet{padding-top:var(--s1)}
.fx-balance{gap:var(--s3);padding:var(--s5)}
.fx-balance .fx-big{color:var(--on-dark)}
.fx-balance-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--on-dark-line)}
.fx-balance-stats.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.fx-balance-stats>div{display:flex;flex-direction:column;justify-content:space-between;gap:2px;min-width:0}
.fx-balance-stats dt{display:flex;align-items:center;gap:5px;font-size:var(--fs-micro);color:var(--on-dark-2);line-height:1.35}
.fx-balance-stats dt .fx-i{color:var(--on-dark-3);flex:none}
.fx-balance-stats dd{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--on-dark);overflow-wrap:anywhere}
.fx-balance-stats dd.pos{color:var(--green-400)}
.fx-balance-stats dd small{display:block;font-size:var(--fs-micro);font-weight:400;color:var(--on-dark-2)}
.fx-balance-note{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--on-dark-2)}
.fx-balance-note b{color:var(--on-dark);font-weight:600;margin-inline-start:auto}
.fx-balance-sub{font-size:var(--fs-sm);color:var(--on-dark-2)}
.fx-amount+.fx-balance-sub{margin-top:-6px}
.fx-maturity>.fx-withicon{margin-top:2px}
.fx-page>.fx-stepper{padding-block:var(--s1)}
.fx-balance-actions{display:flex;gap:10px;flex-wrap:wrap}
.fx-balance-actions .fx-btn{flex:1 1 140px}
.fx-invest{gap:14px}
.fx-invest.live{background:linear-gradient(180deg,var(--positive-bg),var(--surface) 110px);border-color:var(--positive-line)}
.fx-invest>.fx-link{align-self:flex-start}
.fx-start{gap:var(--s3)}
.fx-checklist{display:flex;flex-direction:column;gap:var(--s2)}
.fx-checklist li{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}
.fx-checklist .n{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--info-bg);color:var(--sky-800);font-size:var(--fs-micro)}
.fx-checklist li.cur{color:var(--ink)} .fx-checklist li.cur .n{background:var(--sky-700);color:var(--on-primary);box-shadow:var(--ring)}
.fx-checklist li.done{color:var(--muted)} .fx-checklist li.done .n{background:var(--green-700);color:var(--on-primary)}
.fx-earn{background:linear-gradient(135deg,var(--positive-bg),var(--sky-50));border:1px solid var(--positive-line);border-radius:var(--r-lg);padding:var(--s3) 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.fx-earn-label{font-size:var(--fs-xs);font-weight:600;color:var(--positive)}
.fx-earn-amt{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.fx-earn-amt>span:last-child{font-size:var(--fs-xs);color:var(--muted)}
.fx-earn-when{font-size:var(--fs-micro);color:var(--muted)}
.fx-countdown{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sky-800)}
.fx-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.fx-qa{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;box-shadow:var(--shadow-1);min-height:84px;transition:border-color .15s,box-shadow .2s,transform .12s var(--ease)}
.fx-qa:hover{border-color:var(--info-line)}
.fx-qa span{font-size:var(--fs-xs);font-weight:600;color:var(--ink);text-align:center;line-height:1.3}
.fx-learn{gap:var(--s2)}

/* ---------- invest ---------- */
.fx-plangrid{display:grid;gap:var(--s3)}
.fx-plancard{position:relative;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-1);display:flex;flex-direction:column;min-width:0;transition:border-color .15s,box-shadow .15s}
.fx-plancard.sel{border-color:var(--selected-line);box-shadow:var(--ring),var(--shadow-2)}
.fx-plancard.cur{border-color:var(--positive-line);background:linear-gradient(180deg,var(--positive-bg),var(--surface) 55%)}
.fx-plancard.lower{background:var(--surface-2)} .fx-plancard.lower .fx-plan-figs>div{background:var(--surface)} .fx-plancard.lower .fx-plan-figs b{color:var(--ink-2)}
.fx-plan-main{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4);border:none;background:none;text-align:start;width:100%;border-radius:inherit}
.fx-plan-top{display:flex;align-items:center;gap:var(--s3)}
.fx-plan-name{font-size:17px;font-weight:700}
.fx-radio{width:24px;height:24px;border-radius:50%;border:2px solid var(--field);display:flex;align-items:center;justify-content:center;flex:none}
.fx-plancard.sel .fx-radio{border-color:var(--sky-700)}
.fx-plancard.sel .fx-radio::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--sky-700)}
.fx-plan-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
.fx-plan-figs>div{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.fx-plan-figs .k{display:block;font-size:var(--fs-micro);color:var(--muted);font-weight:600}
.fx-plan-figs b{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.fx-plan-figs b.pos{color:var(--positive)}
.fx-plan-figs .fx-unit{display:block;font-size:var(--fs-micro)}
.fx-withicon{display:flex;align-items:flex-start;gap:5px}
.fx-withicon .fx-i{margin-top:.3em}
.fx-plan-facts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--ink-2)}
.fx-plan-facts span{display:inline-flex;align-items:center;gap:5px}
.fx-plan-facts .fx-i{color:var(--sky-600)}
.fx-plan-more{display:flex;align-items:center;justify-content:space-between;gap:6px;border:none;border-top:1px solid var(--line-2);background:none;padding:10px var(--s4);min-height:44px;color:var(--selected);font-size:var(--fs-sm);font-weight:600;width:100%;border-radius:0 0 var(--r-xl) var(--r-xl)}
.fx-plan-details{padding:0 var(--s4) var(--s4)}
.fx-lockedplans{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2)}
.fx-lockedplan{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px dashed var(--field);border-radius:var(--r-lg);padding:10px 12px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.fx-lockedplan .fx-row-main{display:flex;flex-direction:column;line-height:1.35}
.fx-lockedplan .fx-muted{font-weight:400;font-size:var(--fs-xs)}
.fx-ring{--p:0deg;width:190px;height:190px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--green-600) var(--p),var(--track) 0)}
.fx-ring.done{background:conic-gradient(var(--sky-700) var(--p),var(--track) 0)}
.fx-ring>div{width:160px;height:160px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:0 10px}
.fx-ring small{font-size:var(--fs-xs);font-weight:600;color:var(--muted)}
.fx-ring b{font-size:42px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.fx-contract{gap:var(--s4);padding:var(--s6) var(--s4)}

/* ---------- deposit & withdraw ---------- */
.fx-wdhead{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:10px;padding:18px var(--s5)}
.fx-pay.on-dark{color:var(--on-dark)} .fx-pay.on-dark>span:last-child{color:var(--on-dark-2)}
.fx-wdvip{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-xs);color:var(--on-dark-2);align-items:flex-end}
.fx-wdvip b{color:var(--on-dark);font-size:15px;font-weight:700}
.fx-closed{gap:var(--s3)}
.fx-amountline{flex-direction:row;align-items:center;padding:var(--s3) var(--s4)}
.fx-rulecard{padding:0;gap:0}
.fx-rulecard summary{display:flex;align-items:center;gap:10px;padding:var(--s4);cursor:pointer;list-style:none;font-weight:600;min-height:52px}
.fx-rulecard summary::-webkit-details-marker{display:none}
.fx-rulecard summary span{flex:1}
.fx-rulecard summary .fx-i:first-child{color:var(--sky-700)}
.fx-rulecard[open] summary{border-bottom:1px solid var(--line-2)}
.fx-rulecard .fx-bullets{padding:var(--s4)}
.fx-paybox{gap:var(--s3)}
.fx-qr{width:216px;max-width:100%;aspect-ratio:1;color:var(--navy-950);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:6px;display:flex;align-items:center;justify-content:center}
.fx-qr:empty{background:linear-gradient(100deg,var(--track) 30%,var(--surface-2) 50%,var(--track) 70%) 0 0/300% 100%;animation:fx-shimmer 1.4s linear infinite}
.fx-qr-svg{width:100%;height:100%;display:block}

/* ---------- team & invite ---------- */
.fx-pendingline{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-md);background:var(--on-dark-fill);border:1px solid var(--on-dark-line);font-size:var(--fs-sm);color:var(--on-dark)}
.fx-pendingline .fx-i{color:var(--amber-100);margin-top:3px}
.fx-pendingline .fx-row-sub{color:var(--on-dark-2)}
.fx-pendingline .fx-unit{color:var(--on-dark-2)}
.fx-invitecard{gap:var(--s3)}
.fx-invitecard .fx-link{align-self:flex-start}
.fx-codecard{gap:var(--s3)}
.fx-codecard .fx-code{color:var(--on-dark)}
.fx-member-vip{font-size:var(--fs-sm);font-weight:700}
.fx-rates{display:grid;grid-template-columns:1.4fr 1fr 1fr;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.fx-rates.head{padding:var(--s2) 0;font-size:var(--fs-micro);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-top:none}
.fx[dir=rtl] .fx-rates.head{letter-spacing:0}
.fx-rates>span:not(:first-child){text-align:center}
.fx-rates-vip{font-size:15px;font-weight:600}
.fx-rates-a,.fx-rates-b{font-size:var(--fs-h3);font-weight:700;color:var(--positive)} .fx-rates-b{color:var(--sky-700)}
.fx-rewardgrid{gap:var(--s3)}
.fx-rewardcard{gap:10px}
.fx-rewardcard .fx-chip{align-self:flex-start}
.fx-profile .fx-row-title{font-size:16px;white-space:normal;overflow-wrap:anywhere}

/* ---------- result ---------- */
.fx-result{padding:56px var(--s5) 28px;align-items:center;text-align:center;gap:14px;max-width:560px;margin:0 auto}
.fx-result .fx-h1{margin-top:var(--s2)}
.fx-result .fx-body{margin-bottom:var(--s3)}
.fx-error{padding-top:var(--s10)}

/* ---------- bottom nav, sidebar, sheet, toast, skeleton ---------- */
.fx-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--app-mobile);z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
.fx-nav button{border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;min-height:54px;color:var(--muted);min-width:0;transition:color .15s}
.fx-nav-ico{position:relative;isolation:isolate;width:52px;height:30px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;transition:transform .12s var(--ease)}
.fx-nav-ico::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transition:background .2s}
.fx-nav-l{font-size:var(--fs-micro);font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.fx-nav button.on{color:var(--sky-700)}
.fx-nav button.on .fx-nav-l{font-weight:700}
.fx-nav button.on .fx-nav-ico::before{background:var(--sky-100)}
.fx-nav button:active .fx-nav-ico{transform:scale(.92)}
.fx-entering .fx-nav button.on .fx-nav-ico::before{animation:fx-pill .3s var(--ease)}
.fx-maintenance{display:flex;align-items:center;gap:8px;justify-content:center;padding:10px 16px;background:var(--warning-bg);color:var(--amber-800);font-size:var(--fs-sm);text-align:center;border-bottom:1px solid var(--warning-line)}
.fx-sheet{position:fixed;inset:0;background:rgba(6,21,38,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fx-fade .15s ease-out}
.fx-sheet>div{width:100%;max-width:var(--app-mobile);background:var(--surface);border-radius:var(--r-2xl) var(--r-2xl) 0 0;padding:10px var(--s5) calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sheet);animation:fx-up .2s ease-out;max-height:92vh;overflow-y:auto}
.fx-sheet .grab{width:40px;height:5px;border-radius:3px;background:var(--track);align-self:center}
.fx-sheet .ttl{font-size:20px;font-weight:700}
.fx-langlist{padding:0 var(--s4)}
.fx-langlist .fx-btnrow{justify-content:space-between;min-height:56px}
#fx-toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);z-index:60;max-width:min(420px,calc(100% - 32px));background:var(--navy-900);color:var(--on-dark);border-radius:var(--r-lg);padding:12px 16px;font:600 14px/1.45 var(--font-ltr);display:flex;align-items:center;gap:8px;box-shadow:0 14px 34px -12px rgba(6,21,38,.55);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
#fx-toast:lang(fa),#fx-toast:lang(ar){font-family:var(--font-rtl)}
#fx-toast.show{opacity:1;transform:translate(-50%,0)}
#fx-toast .fx-i{color:var(--green-400)} #fx-toast.error .fx-i{color:#FF9D95}
.fx-skeleton .sk{background:linear-gradient(100deg,var(--track) 30%,var(--surface-2) 50%,var(--track) 70%) 0 0/300% 100%;border-radius:var(--r-sm);animation:fx-shimmer 1.6s linear infinite}
.fx-skeleton .sk-title{height:28px;width:45%;border-radius:var(--r-sm)}
.fx-skeleton .sk-hero{height:188px;border-radius:var(--r-xl);background:linear-gradient(100deg,var(--navy-900) 30%,var(--navy-700) 50%,var(--navy-900) 70%) 0 0/300% 100%}
.fx-skeleton .sk-field{height:68px;border-radius:var(--r-lg)}
.fx-skeleton .sk-btn{height:56px;border-radius:var(--r-lg)}
.fx-skeleton .sk-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.fx-skeleton .sk-qa{height:84px;border-radius:var(--r-lg)}
.fx-skeleton .sk-row{display:flex;align-items:center;gap:12px;padding:8px 0}
.fx-skeleton .sk-ico{width:40px;height:40px;border-radius:var(--r-md);flex:none}
.fx-skeleton .sk-lines{flex:1;display:flex;flex-direction:column;gap:6px}
.fx-skeleton .sk-l1{height:12px;width:60%} .fx-skeleton .sk-l2{height:10px;width:35%}
.fx-skeleton .sk-bar{height:8px;width:100%;border-radius:var(--r-pill)}
.fx-skeleton .sk-amt{height:14px;width:52px}
.fx-entering .fx-main>*,.fx-entering .fx-public>*{animation:fx-in .16s ease-out}

/* ---------- micro-interactions ---------- */
.fx-qa:active,.fx-cardbtn:active,.fx-topic:active,.fx-quickamt:active,.fx-iconbtn:active{transform:scale(.97)}
@media (hover:hover){
  .fx-qa:hover,.fx-cardbtn:hover,.fx-topic:hover{transform:translateY(-1px);box-shadow:var(--shadow-hover)}
  .fx-qa:active,.fx-cardbtn:active,.fx-topic:active{transform:scale(.98)}
}
/* scroll-driven reveal of landing sections: no script; without support or with reduced motion, none */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .fx-landing :is(.fx-startsteps>li,.fx-trust-head,.fx-trustgrid>li,.fx-topic,.fx-faq,.fx-terms){animation:fx-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 75%}
  }
}
@keyframes fx-in{from{opacity:.4;transform:translateY(4px)}}
@keyframes fx-reveal{from{opacity:.15;transform:translateY(18px)}}
@keyframes fx-pill{from{transform:scaleX(.45);opacity:0}}
@keyframes fx-energy{from{stroke-dashoffset:70;opacity:0}15%{opacity:.85}85%{opacity:.85}to{stroke-dashoffset:-1000;opacity:0}}
@keyframes fx-shimmer{to{background-position:-300% 0}}
@keyframes fx-pulse{50%{opacity:.55}}
@keyframes fx-fade{from{opacity:0}}
@keyframes fx-up{from{transform:translateY(24px)}}
@keyframes fx-spin{to{transform:rotate(360deg)}}
@keyframes fx-flowin{from{opacity:0;transform:translateX(-24px)}}
@media (prefers-reduced-motion:reduce){
  .fx *,.fx *::before,.fx *::after,#fx-toast{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .fx-btn:active,.fx-qa:active,.fx-qa:hover,.fx-cardbtn:active,.fx-cardbtn:hover,.fx-topic:active,.fx-topic:hover,.fx-topic:hover .fx-topic-go,.fx-quickamt:active,.fx-iconbtn:active,.fx-nav button:active .fx-nav-ico{transform:none!important}
}
/* phones: all 42 characters of an address fit */
@media (max-width:420px){.fx-input.mono{font-size:13px;padding:0 12px;letter-spacing:-.01em}}
@media (max-width:374px){
  .fx-page,.fx-pubpage,.fx-hero,.fx-public-body{padding-inline:12px}
  .fx{--fs-balance:31px;--fs-display:28px}
  .fx-pubhead .fx-brand>span:not(.fx-logo){display:none}
  .fx-qa span{font-size:var(--fs-micro)}
  .fx-balance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-input.mono{font-size:12px}
}

/* ---------- tablet ≥ 768 ---------- */
@media (min-width:768px){
  .fx{--fs-display:44px;--fs-h1:28px;--fs-balance:40px}
  .fx-app{max-width:var(--app-tablet)}
  .fx-nav,.fx-sheet>div{max-width:var(--app-tablet)}
  .fx-page,.fx-pubpage,.fx-hero,.fx-public-body{padding-inline:var(--s8)}
  .fx-pubhead{padding:var(--s4) var(--s8)}
  .fx-grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s4);align-items:start}
  .fx-grid12>*{grid-column:span 12;min-width:0}
  .fx-grid12>.c-6,.fx-grid12>.c-7,.fx-grid12>.c-5{grid-column:span 6}
  .fx-grid12>.fx-balance.c-7,.fx-grid12>.fx-invest,.fx-grid12>.fx-start{align-self:stretch}
  .fx-steps,.fx-plancards,.fx-topicgrid,.fx-startsteps,.fx-trustgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-plangrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-card.fx-trust{padding:var(--s8)}
  .fx-hero{padding-block:var(--s6) 56px}
  /* an odd last card in a two-column grid takes the whole row */
  .fx-startsteps>li:last-child:nth-child(odd),.fx-topicgrid>.fx-topic:last-child:nth-child(odd),.fx-plangrid>.fx-plancard:last-child:nth-child(odd){grid-column:1/-1}
  .fx-pubcta,.fx-hero-cta,.fx-guide-cta{flex-direction:row;flex-wrap:wrap;align-items:center}
  .fx-pubcta>.fx-btn,.fx-hero-cta>.fx-btn,.fx-guide-cta>.fx-btn{width:auto;padding-inline:28px}
  .fx-rewardgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fx-sheet{align-items:center}
  .fx-sheet>div{max-width:480px;border-radius:var(--r-2xl);padding-bottom:26px}
  .fx-sheet .grab{display:none}
  .fx-page.narrow{max-width:var(--narrow);margin-inline:auto;width:100%}
}

/* ---------- desktop ≥ 1024: sidebar navigation, 12-column grid, real tables ---------- */
@media (min-width:1024px){
  .fx{--fs-display:52px;--fs-h1:30px;--fs-balance:44px}
  .fx-only-d{display:revert!important} .fx-only-m{display:none!important}
  .fx-app{max-width:none;box-shadow:none}
  .fx-app.has-nav{padding-bottom:0}
  .fx-nav{display:none}
  .has-nav .fx-cta{bottom:0}
  .fx-shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}
  .fx-side{display:flex;flex-direction:column;gap:var(--s6);position:sticky;top:0;height:100vh;padding:var(--s6) var(--s4);background:var(--surface);border-inline-end:1px solid var(--line)}
  .fx-side>.fx-brand{padding:0 var(--s2)}
  .fx-side nav{display:flex;flex-direction:column;gap:4px}
  .fx-side nav button{position:relative;display:flex;align-items:center;gap:var(--s3);min-height:46px;padding:0 14px;border:none;border-radius:var(--r-md);background:none;color:var(--ink-2);font-size:15px;font-weight:600;text-align:start}
  .fx-side nav button:hover{background:var(--surface-2);color:var(--ink)}
  .fx-side nav button.on{background:var(--selected-bg);color:var(--sky-800)}
  .fx-side nav button.on::before{content:"";position:absolute;inset-inline-start:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--sky-600)}
  .fx-side-actions{display:flex;flex-direction:column;gap:var(--s2)}
  .fx-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--s3)}
  .fx-side-foot p{font-size:var(--fs-micro);color:var(--muted);text-align:center}
  .fx-sidelink{display:flex;align-items:center;gap:10px;border:none;background:none;min-height:var(--tap);padding:0 14px;border-radius:var(--r-md);color:var(--ink-2);font-weight:600;font-size:var(--fs-sm)}
  .fx-sidelink:hover{background:var(--surface-2);color:var(--sky-800)}
  .fx-main{padding:var(--s6) var(--s8) var(--s8);min-width:0}
  .fx-main.wide>*{max-width:var(--content);margin-inline:auto}
  .fx-main.narrow>*{max-width:var(--narrow);margin-inline:auto}
  .fx-main .fx-top{padding-inline:0;background:var(--canvas)}
  .fx-main .fx-page{padding-inline:0}
  .fx-top-title{text-align:start}
  .fx-grid12{gap:var(--s5)}
  .fx-grid12>.c-7{grid-column:span 7} .fx-grid12>.c-5{grid-column:span 5} .fx-grid12>.c-6{grid-column:span 6}
  .fx-greet{padding-top:0}
  .fx-balance{padding:var(--s6)}
  .fx-quick{gap:var(--s4)}
  .fx-qa{flex-direction:row;justify-content:flex-start;gap:14px;padding:var(--s4) 18px;min-height:0}
  .fx-qa span{font-size:15px;text-align:start}
  .fx-plangrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-topicgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-cta{position:static;background:none;padding:0}
  .fx-cta>.fx-btn,.fx-cta .fx-region>.fx-btn{max-width:420px;margin-inline-start:auto}
  .fx-result{padding-top:80px}
  /* public */
  .fx-app.is-public{background:var(--canvas)}
  .fx-public>*{margin-inline:auto}
  .fx-public>.fx-pubpage{max-width:var(--content)}
  .fx-public>.fx-pubpage.narrow{max-width:820px}
  .fx-pubhead{padding:var(--s5) var(--s8);max-width:calc(var(--content) + 2 * var(--s8));margin-inline:auto}
  .fx-heroband .fx-pubhead{max-width:calc(var(--content) + 2 * var(--s8))}
  .fx-pubnav{display:flex;gap:var(--s1)}
  .fx-pubnav a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 13px;border-radius:var(--r-md);font-size:15px;font-weight:600;color:var(--ink-2);transition:background .15s,color .15s}
  .fx-pubnav a:hover{background:var(--surface);color:var(--ink)}
  .fx-pubnav a.on{background:var(--selected-bg);color:var(--sky-800)}
  .fx-pubhead.on-dark .fx-pubnav a{color:var(--on-dark-2)}
  .fx-pubhead.on-dark .fx-pubnav a:hover,.fx-pubhead.on-dark .fx-pubnav a.on{background:var(--on-dark-fill);color:var(--on-dark)}
  .fx-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center;max-width:calc(var(--content) + 2 * var(--s8));margin-inline:auto;padding:56px var(--s8) 96px}
  .fx-hero-text{gap:20px}
  .fx-hero .fx-lead{font-size:17px}
  .fx-hero-card{padding:var(--s6)}
  .fx-public-body{max-width:calc(var(--content) + 2 * var(--s8));margin-inline:auto;padding-block:64px 72px;gap:64px}
  .fx-startsteps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-trustgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fx-card.fx-trust{padding:40px}
  .fx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--s10);align-items:start}
  .fx-split>.fx-sechead{flex-direction:column;align-items:flex-start}
  .fx-split>.fx-sechead>.fx-link{margin-inline-start:0}
  .fx-startsteps>li:last-child:nth-child(odd),.fx-topicgrid>.fx-topic:last-child:nth-child(odd),.fx-plangrid>.fx-plancard:last-child:nth-child(odd){grid-column:auto}
  .fx-landing-fine{text-align:start}
  .fx-pubfoot{padding:var(--s6) var(--s8) var(--s8)}
  .fx-pubpage{padding:var(--s6) var(--s8) 56px;gap:var(--s5)}
  .fx-pubintro{max-width:760px}
  .fx-steps,.fx-plancards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-public.auth>*{max-width:none}
  .fx-authwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fx-authside{display:block;position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--navy-950),var(--navy-700))}
  .fx-authside>.fx-flowart{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
  .fx-authside-in{position:absolute;inset-inline:48px;bottom:48px;color:var(--on-dark);display:flex;flex-direction:column;gap:var(--s4);align-items:flex-start}
  .fx-authside p{font-size:24px;font-weight:600;line-height:1.4;max-width:440px}
  .fx-auth{justify-content:center;padding:48px var(--s8)}
}
