/* =====================================================================
   Astra R15 · Page compositions
   ===================================================================== */

/* ---------- Astra core orb (routing heroes, login) ---------- */
.core{position:relative;width:var(--core-size,68px);height:var(--core-size,68px);border-radius:50%;display:grid;place-items:center;flex:none;
  background:radial-gradient(circle at 34% 28%,#FFFFFF 0%,#EEF6FF 42%,#CFE3FF 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),inset 0 -8px 16px rgba(45,120,240,.18),0 14px 30px -10px rgba(35,120,250,.55),0 0 0 7px rgba(110,180,255,.14)}
.core img{width:52%;height:52%;position:relative;z-index:1;filter:drop-shadow(0 2px 4px rgba(20,90,230,.25))}
.core .ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(80,150,255,.45);animation:ripple 3.6s var(--ease-out) infinite}
.core .ring.r2{animation-delay:1.8s}
@keyframes ripple{from{transform:scale(1);opacity:.8}to{transform:scale(2.1);opacity:0}}

/* ---------- Routing hero: 4 model cards + lines into the core ---------- */
.route-hero{position:relative;padding:14px 12px 4px;overflow:hidden}
.route-hero::before{content:"";position:absolute;left:50%;bottom:-40px;width:320px;height:200px;margin-left:-160px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(120,185,255,.30),rgba(120,185,255,0));pointer-events:none}
.route-cap{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-13);color:var(--ink-3);margin:0 2px 10px}
.route-cards{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.route-card{display:flex;flex-direction:column;gap:2px;padding:10px 8px 9px;border-radius:16px;min-width:0;
  background:rgba(255,255,255,.86);box-shadow:0 8px 18px -12px rgba(16,42,94,.4),inset 0 0 0 1px rgba(17,48,110,.08),inset 0 1px 0 #fff}
.route-card .mlogo{width:30px;height:30px;border-radius:9px;margin-bottom:6px}
.route-card b{font-size:var(--fs-13);font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-price{font-size:var(--fs-13);color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-st{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:var(--fs-13);font-weight:650;white-space:nowrap}
.rc-st i{width:6px;height:6px;border-radius:50%;background:currentColor}
.rc-st.ok{color:var(--ok)}.rc-st.off{color:var(--off)}
.route-graph{position:relative;height:152px;margin:0 -12px}
/* Thin water rings share the core's centre (48px above the graph bottom).
   Each wave expands on the same shallow plane; no filled band or thick halo. */
.route-ripples{position:absolute;left:4%;right:4%;bottom:4px;height:88px;pointer-events:none}
.route-ripples i{position:absolute;inset:0;border:1px solid rgba(65,139,255,.38);border-radius:50%;
  transform:scale(var(--wave-scale));opacity:.45;animation:route-water-wave 5.6s cubic-bezier(.2,.55,.45,1) infinite;animation-play-state:paused}
.route-ripples i:nth-child(1){--wave-scale:.28;animation-delay:0s}
.route-ripples i:nth-child(2){--wave-scale:.52;animation-delay:-1.4s}
.route-ripples i:nth-child(3){--wave-scale:.76;animation-delay:-2.8s}
.route-ripples i:nth-child(4){--wave-scale:1;animation-delay:-4.2s}
.route-hero[data-ambient="running"] .route-ripples i{animation-play-state:running}
.route-hero[data-ambient="paused"] .route-ripples i{animation:none}
@keyframes route-water-wave{
  0%{transform:scale(.16);opacity:0}
  12%{opacity:.72}
  72%{opacity:.36}
  100%{transform:scale(1);opacity:0}
}
@media (prefers-reduced-motion:reduce){.route-ripples i{animation:none!important}}
.route-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.route-graph .core{position:absolute;left:50%;bottom:16px;margin-left:-32px}
@container app (max-width:350px){ .route-card{padding:9px 4px 8px} .route-card .mlogo{width:26px;height:26px} .route-card b{font-size:var(--fs-13)} .rc-price{font-size:var(--fs-13);letter-spacing:-.02em} }

/* ---------- AI page ---------- */
.ai-title{display:flex;align-items:center;gap:12px;padding:6px 2px 10px}
.ai-title .lt-copy{flex:1;min-width:0}
.ai-title h1{font-size:var(--fs-28);font-weight:700;letter-spacing:-.02em;line-height:1.12}
.ai-title p{margin-top:4px;font-size:var(--fs-13);color:var(--ink-3);line-height:1.4}
.tier-badge{flex:none;min-width:64px;min-height:56px;padding:6px 10px;border-radius:16px;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  color:var(--blue-ink);background:linear-gradient(160deg,#FFFFFF,#E7F0FF);box-shadow:inset 0 0 0 1px var(--blue-line),0 8px 18px -12px rgba(21,95,240,.6)}
.tier-badge b{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;line-height:1.1}
.tier-badge small{font-size:var(--fs-13);font-weight:600;color:var(--ink-3)}
.tier-badge.is-ghost b{font-size:var(--fs-13)}
.ai-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 12px;min-height:24px}
.ai-status .dotline{line-height:1.4}
.dotline i.live{position:relative}
.dotline i.live::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1.5px solid currentColor;opacity:.3;animation:ripple-s 2.2s var(--ease-out) infinite}
@keyframes ripple-s{from{transform:scale(1);opacity:.5}to{transform:scale(1.6);opacity:0}}

.profit{padding:16px 16px 12px;overflow:hidden}
.profit::before{content:"";position:absolute;right:-60px;top:-80px;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(99,225,255,.30),rgba(99,225,255,0));pointer-events:none}
.profit .mod-head{margin-bottom:6px}
.profit .mod-head h3{display:flex;align-items:center;gap:2px;font-size:var(--fs-15);font-weight:600;color:var(--ink-2)}
.profit .eye-btn{width:36px;height:36px;margin:-6px 0;position:relative}
.profit .eye-btn::after{content:"";position:absolute;inset:-4px}
.profit-v{margin-top:2px}
.profit-d{margin-top:6px;font-size:var(--fs-13);color:var(--ink-3)}
.profit .fine{margin-top:6px}
.chart7{position:relative;margin:10px -4px 0}
.chart7 svg{display:block;width:100%;height:86px}
.chart7-x{display:flex;justify-content:space-between;font-size:var(--fs-13);color:var(--ink-3);padding:4px 4px 0;font-variant-numeric:tabular-nums}
.chart7.is-hidden svg{filter:blur(6px);opacity:.5}
.chart7-mask{position:absolute;inset:0 0 18px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-13);font-weight:600;color:var(--ink-3)}

.week{padding:14px 16px}
.week .k{font-size:var(--fs-13);color:var(--ink-3)}
.week-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}
.week-v{margin-top:2px;display:flex;align-items:baseline;gap:4px}
.week-v b{font-size:var(--num-l);font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1}
.week-v span{font-size:var(--fs-17);font-weight:650;color:var(--blue)}
.week-r{text-align:right}
.week-r b{display:block;margin-top:2px;font-size:var(--num-l);font-weight:700;color:var(--ink);line-height:1}
.week.is-full .week-r b{color:var(--warn)}
.week-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.week-foot .fine{display:flex;align-items:center;gap:5px}

.fills-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-2px 0 8px}
.fills-bar .chips{margin:0;padding:5px 0;flex:1}
.fills-bar > .fine{flex:none;white-space:nowrap}
.fills-mod{padding:6px 14px 4px}
.fills-mod .tbl th{padding-top:8px}
.tbl-wide{display:none}
@container app (min-width:420px){ .tbl-wide{display:table} .tbl-narrow{display:none} }
.tbl-wide td.wrap{white-space:normal;max-width:84px;line-height:1.25}
.tbl-narrow .model{display:block;max-width:132px;overflow:hidden;text-overflow:ellipsis}
.tbl-narrow th{white-space:normal;line-height:1.25;vertical-align:bottom}
@container app (max-width:350px){
  .fills-mod{padding:6px 10px 4px}
  .tbl-narrow td,.tbl-narrow th{padding-left:3px;padding-right:3px}
  .tbl-narrow .model{max-width:96px;white-space:normal;line-height:1.25}
}
.fills-note{margin:10px 4px 0}

.settings .k{font-size:var(--fs-13);color:var(--ink-3)}
.pref-row{display:flex;align-items:center;gap:10px}
.pref-copy{flex:1;min-width:0}
.pref-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kv3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.kv3 .v{margin-top:3px;font-size:var(--fs-15)}
.kv3 .v .money{font-size:var(--fs-15)}
.settings-actions{margin:16px 0 10px}
.how summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:-10px 0;cursor:pointer;font-size:var(--fs-15);font-weight:650;color:var(--ink)}
.how summary::-webkit-details-marker{display:none}
.how summary span{display:flex;align-items:center;gap:8px}
.how summary span .ico{color:var(--blue)}
.how[open] summary > .ico{transform:rotate(180deg)}
.how{margin-top:var(--gap)}
.how-steps{list-style:none;margin:14px 0 6px;padding:0;display:flex;flex-direction:column;gap:12px}
.how-steps li{display:flex;gap:12px;align-items:flex-start}
.how-steps li > b{width:24px;height:24px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:var(--fs-13);color:var(--blue-ink);background:var(--blue-soft)}
.how-steps strong{display:block;font-size:var(--fs-15);font-weight:650;color:var(--ink)}
.how-steps span{display:block;font-size:var(--fs-13);color:var(--ink-3);margin-top:1px}

/* enrolment */
.ai-lead{padding:16px}
.ai-lead p{font-size:var(--fs-15);line-height:1.55}
.lead-steps{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.lead-steps li{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:var(--r-pill);font-size:var(--fs-13);font-weight:600;color:#fff;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.stepno{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;margin-right:8px;font-size:var(--fs-13);font-weight:700;color:#fff;background:var(--blue);vertical-align:2px}
.tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tier-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:92px;padding:10px 10px 9px;border-radius:var(--r-tile);border:0;text-align:left;
  background:var(--glass-solid);box-shadow:var(--shadow-1),inset 0 0 0 1px var(--hairline),inset 0 1px 0 #fff}
.tier-tile.on{background:linear-gradient(165deg,#FFFFFF,#E5EEFF);box-shadow:inset 0 0 0 2px var(--blue),0 12px 24px -14px rgba(21,95,240,.7)}
.tt-lv{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.tier-tile.on .tt-lv{color:var(--blue-ink)}
.tt-lv .ico{color:var(--blue);stroke-width:3}
.tt-min{font-size:var(--fs-15);font-weight:700;color:var(--ink);margin-bottom:2px}
.tt-meta{font-size:var(--fs-13);color:var(--ink-3);line-height:1.35}
@container app (max-width:350px){ .tier-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.quick{margin:10px calc(-16px) 0;padding:5px 16px}
.pref-pick{display:flex;flex-wrap:wrap;gap:8px}
.pref-pick .chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue)}
.enrol-cta{margin-top:20px}
.enrol-cta .fine{text-align:center;margin-top:10px}
.lnk.inline{position:relative;min-height:auto;display:inline;padding:0;font-size:inherit}
.lnk.inline::after{content:"";position:absolute;inset:-15px -8px}
.guest-mod{margin-top:var(--gap)}

.hist-head{margin:2px 2px 6px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;font-size:var(--fs-13);color:var(--ink-3)}

/* sheets: AI */
.tier-tbl td,.tier-tbl th{padding-top:10px;padding-bottom:10px}
.tier-tbl tbody tr{cursor:default}
.tier-tbl tr.is-cur td{background:rgba(21,101,242,.06)}
.sheet-notes{margin:14px 0 0;padding:0 0 0 18px;font-size:var(--fs-13);color:var(--ink-3);line-height:1.55;display:flex;flex-direction:column;gap:6px}
.trade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:2px 2px 14px}
.trade-head .k{font-size:var(--fs-13);color:var(--ink-3);font-weight:600}
.trade-head .v-l{margin:2px 0}
.sheet-card{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
.mono-id{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.icon-btn.mini{width:32px;height:32px;display:inline-grid;vertical-align:middle;margin:-8px -6px -8px 0;position:relative}
.icon-btn.mini::after{content:"";position:absolute;inset:-6px}
.sheet-sub{font-size:var(--fs-15);font-weight:650;margin:18px 2px 10px}
.receipts{display:flex;flex-direction:column;gap:8px}
.receipt{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-tile);background:#fff;box-shadow:inset 0 0 0 1px var(--hairline)}
.receipt > div{flex:1;min-width:0}
.receipt b{display:block;font-size:var(--fs-13);font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.check-row{cursor:pointer;position:relative}
.check-row input{position:absolute;opacity:0;pointer-events:none}
.check-ui{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:none;color:transparent;box-shadow:inset 0 0 0 2px rgba(91,103,129,.3)}
.check-row input:checked + .check-ui{color:#fff;background:var(--blue);box-shadow:none}
.check-ui .ico{stroke-width:3}

/* login sheet */
.login-hero{display:flex;justify-content:center;padding:14px 0 18px}
.login-body{font-size:var(--fs-15);line-height:1.6;color:var(--ink-2)}
.login-list{list-style:none;margin:14px 0 4px;padding:0;display:flex;flex-direction:column;gap:2px}
.login-list li{display:flex;align-items:center;gap:10px;min-height:40px;font-size:var(--fs-13);color:var(--ink-2)}
.login-list .ico{color:var(--blue)}
.sheet--login .notice{margin-top:12px}

/* ---------- Home ---------- */
.home-hero{padding:18px 18px 14px;overflow:hidden;background:linear-gradient(165deg,rgba(255,255,255,.92) 0%,rgba(236,245,255,.80) 60%,rgba(222,238,255,.78) 100%)}
.hero-tag{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:var(--r-pill);font-size:var(--fs-13);font-weight:650;color:var(--blue-ink);background:rgba(21,101,242,.08);box-shadow:inset 0 0 0 1px rgba(21,101,242,.14)}
.hero-visual{position:relative;min-height:118px;margin-top:6px}
.hero-art{position:absolute;right:-22px;top:-30px;width:190px;height:172px;pointer-events:none}
.hero-h1{position:relative;margin-top:16px;font-size:2rem;line-height:1.12;font-weight:700;letter-spacing:-.025em;color:var(--ink)}
.hero-h1 span{display:block}
.hero-lead{position:relative;margin-top:12px;font-size:var(--fs-15);font-weight:650;color:var(--ink)}
.hero-desc{position:relative;margin-top:6px;font-size:var(--fs-13);color:var(--ink-2);line-height:1.6;max-width:34em}
.hero-pills{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px}
.hp{display:flex;flex-direction:column;padding:8px 12px;border-radius:14px;background:rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px var(--hairline),0 6px 14px -10px rgba(16,42,94,.4)}
.hp small{font-size:var(--fs-13);color:var(--ink-3)}
.hp b{font-size:var(--fs-17);font-weight:700;color:var(--ink)}
.hero-slogan{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 0 0;border-top:1px solid var(--hairline)}
.hero-slogan img{width:30px;height:30px}
.hero-slogan b{display:block;font-size:var(--fs-15);font-weight:650;color:var(--ink)}
.hero-slogan small{display:block;margin-top:2px;font-size:var(--fs-13);letter-spacing:.06em;color:var(--blue-ink);font-weight:600}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;border-radius:16px;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px var(--hairline)}
.hero-metrics > div{padding:10px 12px}
.hero-metrics > div + div{border-left:1px solid var(--hairline)}
.hero-metrics small{display:block;font-size:var(--fs-13);color:var(--ink-3)}
.hero-metrics b{font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.home-guest{display:flex;align-items:center;gap:12px;margin-top:var(--gap)}
.hg-copy{flex:1;min-width:0}
.hg-copy b{display:block;font-size:var(--fs-15);color:var(--ink)}
.hg-copy span{font-size:var(--fs-13);color:var(--ink-3)}
.ticker{position:relative;margin:var(--gap) calc(var(--gutter) * -1) var(--gap);overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker-track{display:flex;gap:8px;width:max-content;animation:ticker 32s linear infinite;padding:2px 0}
.tick{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--r-pill);background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px var(--hairline);font-size:var(--fs-13);white-space:nowrap}
.tick b{color:var(--ink);font-weight:700}
.tick span{color:var(--ink-3)}
.tick em{font-style:normal;font-weight:650;color:var(--blue-ink);font-variant-numeric:tabular-nums}
@keyframes ticker{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){ .ticker{overflow-x:auto} .ticker-track{animation:none} }
.ctl-primary{display:flex;align-items:center;gap:12px;padding:16px}
.ctl-primary > div{flex:1;min-width:0}
.ctl-primary strong{display:block;font-size:var(--fs-17);font-weight:700}
.ctl-primary p{margin-top:3px;font-size:var(--fs-13);line-height:1.45}
.itile--glass{color:#fff;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.ctl{display:flex;flex-direction:column;gap:4px;padding:14px;min-height:132px}
.ctl .itile{margin-bottom:6px}
.ctl strong{font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.ctl p{font-size:var(--fs-13);color:var(--ink-3);line-height:1.45}
.home-net,.home-plan,.faq-entry,.home-caps,.faq{margin-top:var(--gap)}
.netmap{position:relative;margin:4px -4px 0;aspect-ratio:960/420}
.netmap-dots,.netmap-arcs{position:absolute;inset:0;width:100%;height:100%}
.netmap-dots{opacity:.9}
.nm-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none}
.nm-node i{width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(21,101,242,.18)}
.nm-node b{margin-top:3px;font-size:var(--fs-13);font-weight:650;color:var(--ink);white-space:nowrap;padding:1px 6px;border-radius:6px;background:rgba(255,255,255,.85)}
.nm-node small{display:none}
.nm-hub{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;padding:4px 10px 4px 5px;border-radius:var(--r-pill);background:#fff;box-shadow:0 6px 16px -8px rgba(21,95,240,.6),inset 0 0 0 1px var(--blue-line)}
.nm-hub img{width:18px;height:18px}
.nm-hub b{font-size:var(--fs-13);font-weight:700;color:var(--ink);white-space:nowrap}
.nm-hub small{font-size:var(--fs-13);color:var(--ok);font-weight:650}
.net-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.net-stats small,.board-cells small{display:block;font-size:var(--fs-13);color:var(--ink-3)}
.net-stats b,.board-cells b{font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.plan-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.plan-top h3{font-size:var(--fs-17);font-weight:700}
.plan-top p{margin-top:3px;font-size:var(--fs-13);color:var(--ink-3)}
.plan-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:14px 0}
.plan-step{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 8px;border-radius:14px;color:var(--ink);background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px var(--hairline)}
.plan-step img{width:34px;height:34px}
.plan-step b{font-size:var(--fs-13);font-weight:700}
.plan-step small{font-size:var(--fs-13);color:var(--ink-3)}
.plan-step.on{background:linear-gradient(165deg,#fff,#E5EEFF);box-shadow:inset 0 0 0 2px var(--blue)}
.cap{padding:14px}
.cap .itile{margin-bottom:10px}
.cap h3{font-size:var(--fs-15);font-weight:700}
.cap p{margin-top:4px;font-size:var(--fs-13);color:var(--ink-3);line-height:1.5}
.faq-entry{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:12px 16px;color:var(--ink);font-weight:650}
.faq-entry span{display:flex;align-items:center;gap:10px}
.faq-entry span .ico{color:var(--blue)}
.faq-entry > .ico{color:var(--ink-4)}
.faq h3{font-size:var(--fs-17);font-weight:700;margin-bottom:4px}
.qa{border-bottom:1px solid var(--hairline)}
.qa:last-child{border-bottom:0}
.qa summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 0;font-size:var(--fs-15);font-weight:600;color:var(--ink);cursor:pointer}
.qa summary::-webkit-details-marker{display:none}
.qa summary .ico{color:var(--ink-4);flex:none;transition:transform var(--t-fast)}
.qa[open] summary .ico{transform:rotate(180deg)}
.qa p{padding:0 0 14px;font-size:var(--fs-13);color:var(--ink-2);line-height:1.65}
.faq-intro{margin:4px 2px 12px;font-size:var(--fs-13);color:var(--ink-3);line-height:1.6}

/* ---------- Buy ---------- */
.buy-form{margin-top:var(--gap)}
.buy-form.mt{margin-top:10px}
.stepper{padding:0 4px}
.stepper input{text-align:center}
.stepper .icon-btn{position:relative}
.summary{margin-top:14px;padding:6px 14px;border-radius:var(--r-tile);background:rgba(244,248,255,.9);box-shadow:inset 0 0 0 1px var(--hairline)}
.paymethod{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 12px;border-radius:var(--r-ctl);background:#fff;box-shadow:inset 0 0 0 2px var(--blue);font-weight:600;color:var(--ink)}
.paymethod > span:nth-child(2){flex:1}
.check-ui.on{color:#fff;background:var(--blue);box-shadow:none}
.buy-cta{margin-top:16px}

/* ---------- Models ---------- */
.hero-mod{margin-bottom:var(--gap)}
.board-cells{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}
.ok-text{color:var(--ok)!important}
.fam-list .row{min-height:64px;color:inherit}
.fam-list .row-end{justify-content:center}
@container app (max-width:350px){ .fam-list .row .chev{display:none} .fam-list .row{gap:10px} }
.alloc-note{display:flex;gap:12px;align-items:flex-start}
.alloc-note h3{font-size:var(--fs-15);font-weight:650;margin-bottom:3px}
.cat{padding:6px 16px 12px}
.cat-astra{display:flex;align-items:center;gap:12px;margin:8px -8px 4px;padding:10px 8px;border-radius:14px;background:linear-gradient(100deg,rgba(21,101,242,.08),rgba(31,200,240,.06));box-shadow:inset 0 0 0 1px rgba(21,101,242,.12)}
.cat-astra .row-end .v{color:var(--blue-ink)}
.cat .row{cursor:pointer;align-items:flex-start;padding:12px 0}
.cat .row .mlogo{margin-top:2px}
.cat .row-end .pill{margin-top:2px}
.use-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.cat-disc{margin-top:8px}
.models-cta{margin-top:16px}
.skel-row{display:flex;align-items:center;gap:12px;padding:10px 0}
.model-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.model-head b{font-size:var(--fs-15);color:var(--ink)}
.chips .chip img{background:#0B1512}

/* ---------- Resource pool (sell) ---------- */
.ai-entry{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px}
.ai-entry-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ai-entry-copy strong{font-size:var(--fs-17);font-weight:700}
.ai-entry-copy > span{font-size:var(--fs-13);color:rgba(255,255,255,.85)}
.ai-entry-st .dotline{color:#fff!important;font-size:var(--fs-13);margin-top:2px}
.ai-entry-st .dotline i{background:#7CFFC4}
.sellable .k{font-size:var(--fs-13);color:var(--ink-3)}
.sellable-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.sellable-v{display:flex;align-items:baseline;gap:6px;margin-top:2px}
.unit{font-size:var(--fs-13);font-weight:650;color:var(--ink-3)}
.btn-col{display:flex;flex-direction:column;gap:8px}
.seg-wrap{margin:18px 0 12px}
.res-card{padding:14px 16px}
.res-card.is-dim{opacity:.92}
.res-card.is-dim .res-head,.res-card.is-dim .res-kv{filter:grayscale(.6);opacity:.75}
.res-head{display:flex;align-items:center;gap:12px}
.res-title{flex:1;min-width:0}
.res-title strong{display:block;font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.res-title span{font-size:var(--fs-13);color:var(--ink-3)}
.res-price{text-align:right}
.res-price .money{color:var(--blue)}
.res-price small{display:block;font-size:var(--fs-13);color:var(--ink-3)}
.res-kv{margin:14px 0 4px;padding:12px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.res-kv .v{font-size:var(--fs-13)}
.res-card .notice{margin-top:10px}
.res-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.strat{display:flex;align-items:center;gap:6px;min-width:0}
.strat small{font-size:var(--fs-13);color:var(--ink-3);white-space:nowrap}
.pulse-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.8s infinite}
.grab-card{padding:14px 14px 12px;text-align:left}
.grab-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.grab-title{flex:1;min-width:0}
.grab-title strong{display:block;font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.grab-title .mono-id{font-size:var(--fs-13);color:var(--ink-3)}
.grab-foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline);font-size:var(--fs-13);color:var(--ink-3)}
.grab-foot .money{font-size:var(--fs-13);color:var(--ink)}
.steps-v .vstep.is-end .step-dot{color:#fff;background:var(--bad);box-shadow:none}
.steps-v .vstep.is-end .step-dot .ico{width:12px;height:12px;stroke-width:3}
.steps-v .vstep.is-end .vstep-name{color:var(--bad)}
.steps-v .vstep.is-now .step-dot{box-shadow:inset 0 0 0 2px var(--blue),0 0 0 4px rgba(21,101,242,.14)}
.steps-v .vstep.is-now .step-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}
.steps-v .vstep.is-done .step-dot{background:var(--blue);color:#fff;box-shadow:none}
.steps-v .vstep.is-done .step-dot .ico{width:13px;height:13px;stroke-width:3}
.sheet-sub small{font-weight:500}

/* ---------- Compute ---------- */
.cp-hero{overflow:hidden;padding:72px 16px 14px}
.cp-plexus{position:absolute;left:0;right:0;top:0;width:100%;height:110px;object-fit:cover;opacity:.95;pointer-events:none;-webkit-mask:linear-gradient(180deg,#000 45%,transparent);mask:linear-gradient(180deg,#000 45%,transparent)}
.cp-flow{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.cp-flow li{position:relative;display:flex;align-items:flex-start;gap:12px;padding:8px 0}
.cp-flow li > b{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:var(--fs-13);color:#fff;background:var(--blue);box-shadow:0 0 0 4px rgba(255,255,255,.9)}
.cp-flow li:not(:last-child)::before{content:"";position:absolute;left:12px;top:34px;bottom:-10px;width:2px;background:linear-gradient(var(--blue-line),rgba(21,101,242,.08))}
.cp-flow strong{display:block;font-size:var(--fs-15);font-weight:700;color:var(--ink);line-height:1.35}
.cp-flow span{display:block;font-size:var(--fs-13);color:var(--ink-3);line-height:1.4;margin-top:1px}
.cp-token{margin-top:var(--gap)}
.cp-token-nums{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.cp-token-nums > div + div{padding-left:12px;border-left:1px solid var(--hairline)}
.cp-token .k{font-size:var(--fs-13);color:var(--ink-3)}
.cp-token .v{display:flex;align-items:baseline;gap:4px;margin-top:3px}
.cycle-note{margin:8px 2px 12px}
.dev{padding:14px}
.dev.is-dim .dev-top{opacity:.6}
.dev-top{display:flex;gap:12px}
.dev-img{width:76px;height:76px;flex:none;border-radius:16px;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px var(--hairline);display:grid;place-items:center}
.dev-img img{width:100%;height:100%;object-fit:cover}
.dev-img.sm{width:52px;height:52px;border-radius:13px}
.img-todo{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-4);background:repeating-linear-gradient(135deg,#F5F8FD 0 8px,#EDF2FA 8px 16px);width:100%;height:100%;justify-content:center}
.img-todo small{font-size:var(--fs-13)}
.dev-copy{flex:1;min-width:0}
.dev-name{font-size:var(--fs-17);font-weight:700;color:var(--ink);line-height:1.25}
.dev-spec{margin-top:3px;font-size:var(--fs-13);color:var(--ink-2)}
.dev-meta{display:flex;align-items:center;gap:4px;margin-top:6px;font-size:var(--fs-13);color:var(--ink-3)}
.dev-nums{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:14px 0 10px}
.dev-price{display:flex;align-items:baseline;gap:3px}
.dev-price small{font-size:var(--fs-13);color:var(--ink-3);font-weight:600}
.dev-yield{display:flex;gap:14px;text-align:right}
.dev-yield small{display:block;font-size:var(--fs-13);color:var(--ink-3)}
.dev-yield b{font-size:var(--fs-15);font-weight:700;color:var(--ink)}
.tbd{color:var(--ink-4)!important;letter-spacing:.04em}
.dev-foot{display:flex;align-items:center;gap:14px;padding-top:12px;border-top:1px solid var(--hairline)}
.dev-stock{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.dev-stock span{font-size:var(--fs-13);color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.dev-foot .btn{flex:none}
.cp-order .row-sub + .row-sub{margin-top:1px}
.sheet-dev{display:flex;align-items:center;gap:12px;margin:2px 0 16px}
.sheet-dev b{display:block;font-size:var(--fs-15);color:var(--ink)}
.changed{color:var(--warn)!important}
.sheet--compute .notice{margin-bottom:14px}

/* ---------- Me ---------- */
.me-hero{display:flex;align-items:center;gap:10px;padding:2px 0 8px 2px}
.me-hero .lt-copy{flex:1}
.me-hero h1{font-size:var(--fs-28);font-weight:700;letter-spacing:-.02em}
.me-hero p{margin-top:4px;font-size:var(--fs-13);color:var(--ink-3)}
.wallet-art{width:124px;height:100px;flex:none;margin:-6px -4px -6px 0}
.me-main{padding:16px}
.me-main-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.me-main-top .k{display:flex;align-items:center;font-size:var(--fs-13);color:var(--ink-3);font-weight:600}
.me-main .eye-btn{width:36px;height:36px;position:relative}
.me-main .eye-btn::after{content:"";position:absolute;inset:-4px}
.uid{flex:none;white-space:nowrap;height:26px;padding:0 10px;border-radius:var(--r-pill);display:inline-flex;align-items:center;font-size:var(--fs-13);font-weight:650;color:var(--blue-ink);background:var(--blue-soft);font-variant-numeric:tabular-nums}
.me-bal{margin:2px 0 4px}
.me-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline)}
.me-act{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:72px;padding:6px 2px;border:0;background:none;color:var(--ink);border-radius:14px;text-align:center}
.me-act b{font-size:var(--fs-13);font-weight:600;line-height:1.3}
.me-act:active{background:rgba(21,101,242,.07)}
.me-main + .bento{margin-top:var(--gap)}
.dist-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dist-cell{display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;background:rgba(255,255,255,.75);box-shadow:inset 0 0 0 1px var(--hairline);color:inherit;min-width:0}
.dist-cell > div{flex:1;min-width:0}
.dist-cell small{display:block;font-size:var(--fs-13);color:var(--ink-3);line-height:1.3}
.dist-cell .chev{color:var(--ink-4)}
.dist-cell .itile{width:34px;height:34px}
.earn-tbl td,.earn-tbl th{white-space:normal}
.earn-tbl td:first-child{width:44%}
.earn-tbl td b{font-weight:650;color:var(--ink);font-size:var(--fs-13)}
.earn-tbl tbody tr{cursor:default}
.earn-tbl + .fine{margin-top:8px}
.tok{display:flex;flex-direction:column;gap:2px;padding:14px}
.tok small{font-size:var(--fs-13);color:var(--ink-3);margin-top:8px}
.tok-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(160deg,#fff,#E3EEFF);box-shadow:inset 0 0 0 1px var(--blue-line)}
.tok-mark img{width:20px;height:20px}
.tok-mark.alt{background:linear-gradient(160deg,#fff,#E1F8FE)}
.me-trend .trend-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.me-trend .trend-total .fine{flex-basis:100%}
.area svg{display:block;width:100%;height:110px}
.trend-empty{padding:28px 0;text-align:center}
.me-rec{padding:12px 14px 6px}
.me-rec .chips{margin:10px -14px 0;padding:5px 14px}
.rec-row{align-items:flex-start;cursor:default}
button.rec-row{cursor:pointer}
.rec-row .row-title{font-size:var(--fs-15)}
.rec-row .row-title .tag{font-weight:650}
.rec-row .row-end{padding-top:2px}

.rec-grab{cursor:pointer}
.rec-grab .row-main{display:flex;flex-direction:column;gap:6px}
.rec-grab-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rec-grab .steps{margin:4px 0 2px}
