
:root{
  --nx-bg:#07090f;
  --nx-bg2:#0b101a;
  --nx-bg3:#101728;
  --nx-card:#0d1320;
  --nx-card-2:rgba(14,20,34,.78);
  --nx-border:rgba(255,255,255,.10);
  --nx-line:rgba(120,255,206,.18);
  --nx-text:#eef5ff;
  --nx-dim:#9aa7be;
  --nx-dim2:#72809b;
  --nx-green:#71ffbf;
  --nx-green-2:#34d399;
  --nx-blue:#4fd1ff;
  --nx-violet:#9b7bff;
  --nx-warn:#ffc76c;
  --nx-bad:#ff7e9d;
  --nx-radius:24px;
  --nx-radius-sm:16px;
  --nx-shadow:0 16px 50px rgba(0,0,0,.38);
  --nx-blur:blur(20px);
}

html{scroll-behavior:smooth}
body.v3,
body.nx-page,
body.v3-owner{
  background:
    radial-gradient(circle at 0% 0%, rgba(79,209,255,.10), transparent 30%),
    radial-gradient(circle at 100% 10%, rgba(113,255,191,.10), transparent 24%),
    radial-gradient(circle at 80% 100%, rgba(155,123,255,.10), transparent 28%),
    linear-gradient(180deg,#06080d 0%, #09111d 48%, #07090f 100%);
  color:var(--nx-text);
}
body.v3::before,
body.v3-owner::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size:36px 36px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.95),rgba(0,0,0,.45));
}

.v3-shell,.v3-main,.v3-pool,.v3-owner-wrap{position:relative; z-index:1}
.v3-noise{position:fixed; inset:0; pointer-events:none; opacity:.045; mix-blend-mode:soft-light; background-image:radial-gradient(circle at 20% 20%, #fff 0 1px, transparent 1.2px),radial-gradient(circle at 70% 40%, #fff 0 1px, transparent 1.2px),radial-gradient(circle at 40% 80%, #fff 0 1px, transparent 1.2px); background-size:160px 160px,220px 220px,200px 200px; z-index:0}
.v3-glow{position:fixed; border-radius:999px; filter:blur(90px); pointer-events:none; z-index:0; opacity:.22}
.v3-glow.a{width:420px;height:420px;left:-140px;top:-80px;background:#3ddc97}
.v3-glow.b{width:420px;height:420px;right:-140px;top:14%;background:#5b8cff}
.v3-glow.c{width:340px;height:340px;right:12%;bottom:-120px;background:#a855f7}

.v3-topbar{position:sticky; top:0; z-index:40; backdrop-filter:var(--nx-blur); background:rgba(7,10,18,.58); border-bottom:1px solid rgba(255,255,255,.05)}
/* Высоту полосы задаёт содержимое, а не base.css. Там у .head стоит
   height:var(--head) — 62px от прежней однорядной шапки. Здесь ряд выше
   (один знак 42px плюс отступы), а на узком экране разделы переносятся
   отдельной строкой: содержимого выходит 119px. В 62px это не влезало —
   .head выравнивает по центру, и содержимое вылезало и вверх (знак
   срезался краем экрана), и вниз, поверх первого экрана. */
.v3-topbar,.v3-appbar{height:auto}
.v3-topbar .head__in,
.v3-appbar .head__in{max-width:1380px; margin:0 auto; padding:16px 24px; display:flex; gap:18px; align-items:center}
.v3-brand{display:flex; align-items:center; gap:14px; text-decoration:none; color:inherit}
.v3-brand .logo__mark,.v3-mini-brand .logo__mark{width:42px;height:42px;border-radius:14px; background:linear-gradient(135deg, rgba(79,209,255,.16), rgba(113,255,191,.16)); border:1px solid rgba(255,255,255,.12); box-shadow: inset 0 0 18px rgba(255,255,255,.03), 0 10px 24px rgba(0,0,0,.24); position:relative}
.v3-brand .logo__mark::before,.v3-mini-brand .logo__mark::before{content:"N/"; position:absolute; inset:0; display:grid; place-items:center; color:#dff8ff; font-weight:800; letter-spacing:.08em; font-size:14px}
.v3-brand .logo__txt,.v3-mini-brand .logo__txt{font-weight:800; letter-spacing:.14em; font-size:15px}
.v3-brand .logo__txt span,.v3-mini-brand .logo__txt span{color:var(--nx-green)}
.v3-top-pills{display:flex; gap:10px; flex-wrap:wrap}
.v3-pill{display:inline-flex; align-items:center; gap:9px; border:1px solid var(--nx-border); background:rgba(255,255,255,.04); color:#d6e4ff; padding:10px 14px; border-radius:999px; font-size:12px; letter-spacing:.12em; text-transform:uppercase}
.v3-dot{width:8px;height:8px;border-radius:999px;background:var(--nx-green); box-shadow:0 0 14px var(--nx-green)}
.v3-topbar nav,.v3-appbar nav{display:flex; gap:14px; flex-wrap:wrap; margin-left:auto}
.v3-topbar nav a,.v3-appbar nav a{color:#dce6f8; text-decoration:none; font-size:14px; padding:11px 14px; border-radius:12px; transition:.18s background, .18s color, .18s transform}
.v3-topbar nav a:hover,.v3-appbar nav a:hover{background:rgba(255,255,255,.06); color:#fff; transform:translateY(-1px)}
.v3-topbar .head__right,.v3-appbar .head__right{margin-left:0}

.v3-wrap{max-width:1380px; margin:0 auto; padding:0 24px}
.v3-hero{padding:42px 0 26px}
.v3-hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr); gap:28px; align-items:stretch}
.v3-card{background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03)); border:1px solid var(--nx-border); border-radius:var(--nx-radius); box-shadow:var(--nx-shadow); backdrop-filter:var(--nx-blur)}
.v3-hero-copy{padding:36px; position:relative; overflow:hidden}
.v3-kicker{display:inline-flex; align-items:center; gap:8px; color:#b6f9de; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:18px}
.v3-kicker::before{content:""; width:36px; height:1px; background:linear-gradient(90deg,var(--nx-green), transparent)}
.v3-hero-copy h1{font-size:clamp(42px,6vw,76px); line-height:.95; margin:0 0 18px; letter-spacing:-.04em}
.v3-hero-copy p{max-width:700px; font-size:17px; line-height:1.7; color:#c0cadc}
.v3-hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin:28px 0 24px}
.v3-btn,.v3-owner-wrap button,.v3-owner-wrap .btn,
.v3-modal .linkbtn{
  appearance:none; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); color:var(--nx-text); border-radius:16px; padding:14px 18px; font:inherit; font-weight:700; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:10px; transition:.18s transform,.18s background,.18s border-color,.18s box-shadow;
}
.v3-btn:hover,.v3-owner-wrap button:hover,.v3-modal .linkbtn:hover{transform:translateY(-2px); background:rgba(255,255,255,.07)}
.v3-btn--primary,.v3-owner-wrap .go{background:linear-gradient(135deg, rgba(49,214,149,.92), rgba(90,234,220,.92)); color:#07110d; border-color:transparent; box-shadow:0 16px 34px rgba(61,220,151,.22)}
.v3-btn--primary:hover,.v3-owner-wrap .go:hover{box-shadow:0 18px 38px rgba(61,220,151,.28)}
.v3-btn--secondary{background:rgba(79,209,255,.10); border-color:rgba(79,209,255,.24)}
.v3-inline-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:10px}
.v3-inline-stat{padding:16px 18px; border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.03); border-radius:18px}
.v3-inline-stat span{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.13em; color:var(--nx-dim2); margin-bottom:7px}
.v3-inline-stat b{font-size:18px}
.v3-inline-stat small{font-size:12px; color:var(--nx-dim)}

.v3-terminal{padding:18px; display:flex; flex-direction:column; gap:16px; min-height:100%}
.v3-terminal__head{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:4px 6px 0}
.v3-terminal__eyebrow{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#9feaca; display:block; margin-bottom:4px}
.v3-terminal__status{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#d8e9ff; display:flex; align-items:center; gap:8px}
.v3-terminal__viewport{position:relative; min-height:420px; border-radius:24px; padding:22px; overflow:hidden; background:linear-gradient(180deg, rgba(8,15,26,.88), rgba(10,16,29,.60)); border:1px solid rgba(255,255,255,.06)}
.v3-terminal__viewport::before{content:""; position:absolute; inset:14px; border-radius:20px; border:1px solid rgba(79,209,255,.12); box-shadow:inset 0 0 40px rgba(79,209,255,.04)}
.v3-terminal__viewport::after{content:""; position:absolute; left:0; right:0; top:0; bottom:0; background:linear-gradient(180deg, rgba(255,255,255,.03), transparent 16%, transparent 84%, rgba(255,255,255,.03)); pointer-events:none}
.v3-scan{position:absolute; inset:0; background:repeating-linear-gradient(180deg, transparent 0 12px, rgba(255,255,255,.018) 12px 13px); pointer-events:none}
.v3-rings{position:absolute; width:340px; height:340px; left:50%; top:52%; transform:translate(-50%,-50%); border-radius:999px; border:1px solid rgba(79,209,255,.14); box-shadow:0 0 0 26px rgba(79,209,255,.05), 0 0 0 54px rgba(113,255,191,.04)}
.v3-terminal__viewport img{position:relative; z-index:1; width:min(94%, 420px); max-height:360px; object-fit:contain; display:block; margin:38px auto 0; filter:drop-shadow(0 20px 38px rgba(0,0,0,.48))}
.v3-badge-cluster{position:absolute; left:24px; right:24px; top:24px; z-index:2; display:flex; justify-content:space-between; gap:10px; align-items:flex-start}
.v3-chip{display:inline-flex; align-items:center; gap:8px; padding:11px 13px; border-radius:14px; font-size:12px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); color:#eaf4ff; backdrop-filter:blur(10px)}
.v3-terminal__foot{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.v3-terminal__foot .v3-chip{justify-content:center; font-size:12px}

.v3-stat-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:26px 0 8px}
.v3-stat{padding:22px; display:flex; gap:16px; align-items:flex-start}
.v3-stat__icon{width:48px;height:48px; border-radius:16px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(79,209,255,.18), rgba(113,255,191,.15)); border:1px solid rgba(255,255,255,.08); color:#f4fbff; font-weight:800}
.v3-stat__num{font-size:36px; font-weight:800; line-height:1; letter-spacing:-.03em; margin-bottom:8px}
.v3-stat__num small{font-size:18px; color:var(--nx-dim)}
.v3-stat__label{font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:10px}
.v3-stat__mini{font-size:13px; color:#ccd6e9; line-height:1.5}

.v3-bento{display:grid; grid-template-columns:1.1fr .9fr; gap:18px; margin:22px 0}
.v3-pane{padding:30px}
.v3-pane h2,.v3-section-head h2,.v3-panel-head h2{font-size:38px; line-height:1.05; letter-spacing:-.03em; margin:8px 0 14px}
.v3-pane p{color:#c0cadc; line-height:1.75}
.v3-mini-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:18px}
.v3-mini-box{padding:18px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-mini-box span{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--nx-dim2); margin-bottom:8px}
.v3-mini-box b{font-size:18px}

.v3-section{margin:28px 0}
.v3-section-head{display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:18px}
.v3-section-code{font-size:12px; color:#a6b5ce; letter-spacing:.15em; text-transform:uppercase; padding:10px 14px; border:1px solid rgba(255,255,255,.08); border-radius:999px; background:rgba(255,255,255,.03)}
.v3-steps{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px}
.v3-step{padding:24px; min-height:220px; position:relative}
.v3-step__n{font-size:58px; line-height:1; font-weight:800; color:rgba(255,255,255,.10); margin-bottom:14px}
.v3-step__bar{height:1px; width:100%; background:linear-gradient(90deg, var(--nx-green), transparent); margin-bottom:16px}
.v3-step__t{font-size:18px; font-weight:700; margin-bottom:10px}
.v3-step__d{color:#c0cadc; line-height:1.7}

.v3-rarity{display:grid; grid-template-columns:1fr .96fr; gap:18px}
.v3-ladder-card,.v3-table-card,.v3-panel,.panel.v3-panel{padding:24px}
.v3-panel .panel__head,
.v3-table-card .panel__head,
.panel.v3-panel .panel__head{margin-bottom:16px}
.v3-card-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px}
.v3-card-head small,.v3-panel-sub{display:block; font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--nx-dim2); margin-top:4px}
.v3-card-head b,.v3-panel-title{font-size:20px}
.v3-tag{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#d5ecff; border:1px solid rgba(255,255,255,.08); padding:10px 12px; border-radius:999px; background:rgba(255,255,255,.04)}
.v3-table-shell{overflow:hidden}
.v3-table-title{display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:14px}
.v3-table-title span{font-size:18px; font-weight:800}
.v3-table-title small{font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em}
.v3-table{width:100%; border-collapse:collapse}
.v3-table th,.v3-table td{padding:15px 14px; border-bottom:1px solid rgba(255,255,255,.06)}
.v3-table th{font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--nx-dim2); text-align:left}
.v3-table td{color:#dde7fa}
.v3-table tr:hover td{background:rgba(255,255,255,.02)}

.v3-gallery-tools{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:14px}
.v3-gallery-tools p{margin:0; color:var(--nx-dim)}
.v3-gallery,.v3-gallery #gal,.v3-gallery #ones,.v3-ones,
#gal.v3-gallery,#ones.v3-ones{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px}

.v3-milestone{display:grid; grid-template-columns:1.05fr .95fr; gap:18px; align-items:stretch}
.v3-progress-wrap{padding:30px}
.v3-progress-wrap h2{margin-top:8px}
.v3-progress{height:18px; border-radius:999px; background:rgba(255,255,255,.06); overflow:hidden; border:1px solid rgba(255,255,255,.06)}
.v3-progress > div{height:100%; width:20%; background:linear-gradient(90deg, var(--nx-green-2), var(--nx-blue)); box-shadow:0 0 24px rgba(79,209,255,.24)}
.v3-progress-rows{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:18px}
.v3-progress-rows div{padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-progress-rows span{display:block; font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:8px}
.v3-progress-rows b{font-size:18px}

.v3-faq{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.v3-faq .faq__item,
.v3-faq .faq > *,
#faq-list > *{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:20px; padding:20px}

.v3-footer{margin-top:38px; padding:0 0 32px}
.v3-footer .wrap{max-width:1380px}
.v3-footer-box{padding:22px 24px; display:flex; justify-content:space-between; gap:16px; align-items:center}
.v3-footer-meta{display:flex; gap:12px; flex-wrap:wrap; align-items:center; color:var(--nx-dim)}

/* FARM APP */
.v3-appbar{position:sticky; top:0; z-index:50; backdrop-filter:var(--nx-blur); background:rgba(7,10,18,.58); border-bottom:1px solid rgba(255,255,255,.05)}
.v3-app-shell{max-width:1480px; margin:0 auto; padding:24px; display:grid; grid-template-columns:280px minmax(0,1fr); gap:22px}
.v3-rail{position:sticky; top:88px; align-self:start; padding:20px; display:flex; flex-direction:column; gap:8px}
.v3-rail__top{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px}
.v3-rail__title{font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--nx-dim2)}
.v3-rail a,.v3-rail .rail__back a{display:flex; align-items:center; gap:12px; text-decoration:none; color:#e1ebff; padding:14px 16px; border-radius:18px; border:1px solid transparent; transition:.18s background,.18s border-color,.18s transform}
.v3-rail a:hover,.v3-rail .rail__back a:hover{transform:translateX(2px); background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.05)}
.v3-rail a.is-on{background:linear-gradient(135deg, rgba(79,209,255,.13), rgba(113,255,191,.13)); border-color:rgba(79,209,255,.16)}
.v3-rail svg{width:20px;height:20px; opacity:.95}
.v3-rail .rail__n{margin-left:auto; font-size:12px; color:var(--nx-green); border:1px solid rgba(113,255,191,.18); padding:2px 8px; border-radius:999px}
.v3-rail .rail__back{margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.06)}

.v3-app-main{display:flex; flex-direction:column; gap:22px}
.v3-app-title{display:flex; justify-content:space-between; gap:16px; align-items:center; padding:22px 24px}
.v3-app-title h1{margin:6px 0 0; font-size:36px; letter-spacing:-.03em}
.v3-app-title__tag{display:inline-flex; align-items:center; gap:8px; font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:#baf4db}
.v3-app-title__grid{display:grid; grid-template-columns:repeat(2,minmax(180px,1fr)); gap:14px; min-width:min(100%, 420px)}
.v3-app-mini{padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-app-mini span{display:block; font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:7px}
.v3-app-mini b{font-size:18px}
.v3-note{padding:18px 20px; display:flex; align-items:center; gap:12px}
.v3-note svg{flex:0 0 22px; width:22px; height:22px}

.v3-summary{display:grid; grid-template-columns:1.15fr 1fr .92fr; gap:18px}
.v3-balance-card,.v3-shift-card,.v3-rank-card{padding:26px}
.v3-balance-card .core__val{font-size:clamp(42px,4vw,68px); line-height:1; margin:8px 0 10px}
.v3-balance-card .core__unit{font-size:18px}
.v3-row-top{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px}
.v3-eyebrow{font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:#baf4db}
.v3-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px}
.v3-claimed{display:inline-flex; align-items:center; gap:6px; color:var(--nx-dim); font-size:13px}
.v3-meta-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:18px}
.v3-meta-card{padding:15px 16px; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-meta-card span{display:block; font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:6px}

.v3-shift-card .shift__bar,.v3-balance .soon .btn,.v3-balance .balance__main,
.v3-shift-card .shift__fill,.v3-panel .poolbar,.v3-panel .milestone__bar{border-radius:999px}
.v3-shift-card .shift__rows{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px}
.v3-shift-card .shift__row{padding:15px 16px; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); display:flex; justify-content:space-between; gap:12px}
.v3-shift-card .shift__note{margin-top:16px; color:var(--nx-dim)}

.v3-rank-card .gauge{display:grid; grid-template-columns:170px 1fr; gap:18px; align-items:center}
.v3-rank-card .gauge__ring{position:relative; width:150px; height:150px; margin:0 auto}
.v3-rank-card .gauge__mid{position:absolute; inset:0; display:grid; place-items:center; text-align:center}
.v3-rank-card .gauge__mid span{font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em}
.v3-rank-card .gauge__mid b{font-size:28px}
.v3-rank-card .gauge__list{display:grid; gap:10px}
.v3-rank-card .gauge__row{display:flex; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:14px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}

.v3-metrics-shell{padding:0}
#metrics,.metrics,#pool-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px}
#metrics > *, .metrics > *, #pool-stats > *{padding:18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:18px; min-height:88px}

.v3-panel{padding:24px}
.v3-panel-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px}
.v3-panel-head h2{font-size:24px; margin:4px 0 0}
.v3-rigs-preview,.rigs,#rigs-preview,#rigs-all,#forge-grid,#forge-bulk,#forge-preview,#tierlist,#log,#bal-log,.top{
  display:grid; gap:16px;
}
#rigs-preview > *, #rigs-all > *, #forge-grid > *, #forge-bulk > *, #forge-preview > *, #tierlist > *, #log > *, #bal-log > *, .top > *{
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:18px; padding:16px;
}

.v3-balance{display:grid; grid-template-columns:1.1fr .9fr; gap:18px}
.v3-balance__main,.v3-balance__side{padding:26px}
.v3-balance__value{font-size:clamp(38px,4vw,60px); line-height:1; margin:10px 0 12px}
.v3-balance__sub{color:var(--nx-dim); margin-bottom:18px}
.v3-balance__actions{display:flex; gap:12px; flex-wrap:wrap}
.v3-balance__rows{display:grid; gap:12px}
.v3-balance__row,.balance__row{display:flex; justify-content:space-between; gap:12px; padding:14px 16px; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}

.v3-gate{max-width:680px; margin:60px auto; padding:34px 30px; text-align:center}
.v3-gate__ico,.gate__ico{width:74px; height:74px; display:grid; place-items:center; border-radius:22px; margin:0 auto 18px; background:linear-gradient(135deg, rgba(79,209,255,.16), rgba(113,255,191,.12)); border:1px solid rgba(255,255,255,.08)}
.v3-gate__ico svg{width:34px;height:34px}
.v3-gate__tag{font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:#baf4db; margin-bottom:10px}
.v3-gate h2{font-size:34px; margin:0 0 14px}
.v3-gate p{color:#c0cadc; line-height:1.7}
.v3-address{word-break:break-all; margin-top:16px; color:#a9b8d4}

/* POOL */
.v3-pool-hero{padding:34px 0 12px}
.v3-pool-top{display:grid; grid-template-columns:1.1fr .9fr; gap:18px}
.v3-pool-head{padding:30px}
.v3-pool-head h1{font-size:clamp(36px,5vw,62px); line-height:1; margin:8px 0 16px; letter-spacing:-.04em}
.v3-pool-head p{color:#c0cadc; line-height:1.75}
.v3-pool-kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px}
.v3-pool-kpi{padding:18px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-pool-kpi > span{display:block; font-size:12px; color:var(--nx-dim2); text-transform:uppercase; letter-spacing:.14em; margin-bottom:6px}
.v3-pool-kpi b{font-size:20px}
.v3-pool-main{padding:24px}
.v3-pool-main .core__lab{font-size:12px; color:#baf4db; text-transform:uppercase; letter-spacing:.14em}
.v3-pool-main .core__val{font-size:clamp(42px,4vw,72px); line-height:1; margin:10px 0 16px}
.v3-pool-main .poolbar,.v3-pool-main .milestone__bar,.v3-owner-wrap .own section{background:rgba(255,255,255,.03)}
.v3-pool-main .poolcard__rows,.v3-pool-main .milestone__rows,.spread{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px}
.v3-pool-main .poolcard__rows > div,.v3-pool-main .milestone__rows > div,.spread > div{padding:15px 16px; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.v3-pool-grid{display:grid; grid-template-columns:1fr .94fr; gap:18px; margin-top:18px}
.v3-pool-stack{display:grid; gap:18px}
.v3-pool-note{color:var(--nx-dim); padding:0 4px}

/* OWNER */
.v3-owner-wrap{max-width:1120px; margin:0 auto; padding:34px 24px 80px}
.v3-owner-hero{display:grid; grid-template-columns:1.1fr .9fr; gap:18px; margin-bottom:18px}
.v3-owner-copy,.v3-owner-alert{padding:28px}
.v3-owner-copy h1{font-size:44px; line-height:1; margin:10px 0 14px; letter-spacing:-.04em}
.v3-owner-copy p,.v3-owner-alert p{color:#c0cadc; line-height:1.75}
.v3-owner-alert h3{margin:0 0 10px; font-size:24px}
.v3-owner-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.v3-owner-grid .own section{padding:24px; border-radius:24px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); margin:0}
.v3-owner-grid .own h2{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#a9b8d4; opacity:1; margin:0 0 16px}
.v3-owner-grid .own dl{display:grid; grid-template-columns:160px 1fr; gap:8px 16px}
.v3-owner-grid .own dd,.v3-owner-grid .own dt{font-size:14px}
.v3-owner-grid .own dt{color:var(--nx-dim2)}
.v3-owner-grid .own dd{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; word-break:break-word; color:#e9f3ff}
.v3-owner-grid .own input{width:100%; min-width:0; background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.10); color:#eef5ff; border-radius:16px; padding:14px 16px}
.v3-owner-grid .own .row{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:16px}
.v3-owner-grid .own .note,.v3-owner-grid .own .quiet{color:#b6c3dc; opacity:1}

/* modal + toast */
.v3-modal.modal{background:rgba(4,7,12,.72); backdrop-filter:blur(10px)}
.v3-modal .modal__box{max-width:520px; background:linear-gradient(180deg, rgba(16,24,40,.98), rgba(11,18,32,.98)); border:1px solid rgba(255,255,255,.08); border-radius:28px; box-shadow:var(--nx-shadow); padding:28px}
.v3-modal .modal__title{font-size:26px; font-weight:800; margin-top:10px}
.v3-modal .modal__lead{color:#b9c7de; margin:12px 0 18px; line-height:1.7}
.v3-modal .modal__list{display:grid; gap:12px}
.v3-modal .modal__list > *{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:18px}
.v3-modal .modal__x{width:42px; height:42px; border-radius:14px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); color:#e8f2ff}
.v3-modal__mark{display:inline-grid; place-items:center; width:54px; height:54px; border-radius:18px; background:linear-gradient(135deg, rgba(79,209,255,.14), rgba(113,255,191,.14)); border:1px solid rgba(255,255,255,.08); font-weight:800; letter-spacing:.12em}

#toast,.toast{position:fixed; right:22px; bottom:22px; z-index:99}
#toast > *, .toast > *{background:linear-gradient(180deg, rgba(16,24,40,.98), rgba(11,18,32,.98)); border:1px solid rgba(255,255,255,.08); color:#edf5ff; border-radius:16px; box-shadow:var(--nx-shadow)}

/* common fixes for injected content */
select.select,#sort{background:#0f1524; color:#edf5ff; border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:10px 12px}
a.btn,button.btn{font:inherit}
.mono{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
.ok{color:#7df6c5}.bad{color:#ff90a8}.warn{color:#ffd78a}

/* Responsive */
@media (max-width: 1220px){
  .v3-hero-grid,.v3-bento,.v3-rarity,.v3-milestone,.v3-pool-top,.v3-pool-grid,.v3-owner-hero,.v3-summary,.v3-balance,.v3-app-shell{grid-template-columns:1fr}
  .v3-app-shell{padding-top:18px}
  .v3-rail{position:relative; top:0}
  .v3-gallery,.v3-gallery #gal,.v3-gallery #ones,.v3-ones,#gal.v3-gallery,#ones.v3-ones{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 980px){
  .v3-topbar .head__in,.v3-appbar .head__in,.v3-wrap,.v3-owner-wrap{padding-left:18px; padding-right:18px}
  .v3-topbar .head__in,.v3-appbar .head__in{flex-wrap:wrap}
  .v3-topbar nav,.v3-appbar nav{order:3; width:100%; margin-left:0; overflow:auto; padding-bottom:2px}
  .v3-top-pills{width:100%}
  .v3-stat-grid,.v3-steps,.v3-inline-stats,.v3-progress-rows,.v3-pool-kpis,.v3-faq,.v3-owner-grid,.v3-pool-main .poolcard__rows,.v3-pool-main .milestone__rows,.spread{grid-template-columns:1fr 1fr}
  .v3-gallery,.v3-gallery #gal,.v3-gallery #ones,.v3-ones,#gal.v3-gallery,#ones.v3-ones{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3-rank-card .gauge{grid-template-columns:1fr}
  .v3-app-title{flex-direction:column; align-items:stretch}
}
@media (max-width: 700px){
  .v3-hero-copy,.v3-terminal,.v3-pane,.v3-ladder-card,.v3-table-card,.v3-panel,.v3-progress-wrap,.v3-owner-copy,.v3-owner-alert,.v3-balance__main,.v3-balance__side,.v3-pool-main,.v3-pool-head,.v3-app-title,.v3-balance-card,.v3-shift-card,.v3-rank-card{padding:20px}
  .v3-hero-copy h1,.v3-pool-head h1{font-size:clamp(34px,10vw,50px)}
  .v3-pane h2,.v3-gate h2{font-size:30px}
  .v3-stat-grid,.v3-steps,.v3-inline-stats,.v3-progress-rows,.v3-pool-kpis,.v3-faq,.v3-owner-grid,.v3-gallery,.v3-gallery #gal,.v3-gallery #ones,.v3-ones,#gal.v3-gallery,#ones.v3-ones{grid-template-columns:1fr}
  .v3-pool-main .poolcard__rows,.v3-pool-main .milestone__rows,.spread,.v3-meta-grid,.v3-app-title__grid{grid-template-columns:1fr}
  .v3-terminal__viewport{min-height:340px}
  .v3-terminal__viewport img{max-height:270px; margin-top:58px}
  .v3-summary{grid-template-columns:1fr}
  .v3-owner-grid .own dl{grid-template-columns:1fr}
  .v3-owner-grid .own .row{flex-direction:column; align-items:stretch}
  .v3-app-shell{padding:12px}
  .v3-rail{position:fixed; left:12px; right:12px; bottom:12px; top:auto; z-index:60; padding:12px; display:grid; grid-template-columns:repeat(7,1fr); gap:8px; border-radius:24px; background:rgba(8,12,20,.90); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.06); box-shadow:0 18px 40px rgba(0,0,0,.35)}
  .v3-rail__top,.v3-rail .rail__back{display:none}
  .v3-rail a{padding:10px 8px; flex-direction:column; justify-content:center; text-align:center; gap:6px; font-size:11px}
  .v3-rail svg{width:18px;height:18px}
  .v3-rail .rail__n{display:none}
  .v3-app-main{padding-bottom:110px}
}


/* ===== HOMEPAGE STABILITY PATCH =====
   V3 homepage is intentionally isolated from the legacy landing layout.
   These rules make the new composition deterministic across desktop/tablet/mobile. */
body.v3-home{overflow-x:hidden; min-width:320px}
body.v3-home *, body.v3-home *::before, body.v3-home *::after{box-sizing:border-box}
body.v3-home img, body.v3-home svg{max-width:100%}
body.v3-home .v3-card,
body.v3-home .v3-hero-grid > *,
body.v3-home .v3-stat-grid > *,
body.v3-home .v3-bento > *,
body.v3-home .v3-rarity > *,
body.v3-home .v3-milestone > *,
body.v3-home .v3-steps > *{min-width:0}

/* .v3-hero used to override horizontal padding from .v3-wrap. */
body.v3-home .v3-hero{padding-top:42px; padding-bottom:26px; padding-left:24px; padding-right:24px}

/* The header needs to remain one clean product bar at normal desktop widths. */
body.v3-home .v3-topbar .head__in{width:100%; min-width:0}
body.v3-home .v3-topbar .v3-brand{flex:0 0 auto}
body.v3-home .v3-topbar .v3-top-pills{flex:0 0 auto}
body.v3-home .v3-topbar nav{min-width:0; flex-wrap:nowrap; gap:4px}
body.v3-home .v3-topbar nav a{white-space:nowrap; padding:10px 11px}
body.v3-home .v3-topbar .head__right{flex:0 0 auto}

/* Hero terminal: no absolute item can make the grid wider than its column. */
body.v3-home .v3-terminal,
body.v3-home .v3-terminal__viewport{min-width:0; width:100%}
body.v3-home .v3-badge-cluster{min-width:0}
body.v3-home .v3-badge-cluster > *{min-width:0; max-width:48%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
body.v3-home .v3-terminal__viewport > .hero__chip{max-width:calc(100% - 48px); white-space:nowrap}
body.v3-home .v3-inline-stat b,
body.v3-home .v3-inline-stat small{display:block}

/* Dynamic components rendered by landing.js no longer rely on old landing.css. */
body.v3-home #ladder{display:grid; gap:10px}
body.v3-home #ladder > *{min-width:0; padding:14px 16px; border-radius:16px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.06)}
body.v3-home #ones,
body.v3-home #gal{width:100%; min-width:0}
body.v3-home #ones > *,
body.v3-home #gal > *{min-width:0; width:auto !important; max-width:none !important; border-radius:20px; overflow:hidden; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07)}
body.v3-home #ones img,
body.v3-home #gal img{display:block; width:100%; height:auto; object-fit:cover}
body.v3-home #gal-tabs.tabs{display:flex; flex-wrap:wrap; gap:10px; min-width:0}
body.v3-home #gal-tabs.tabs > *{max-width:100%; border-radius:999px}
body.v3-home #faq-list{min-width:0}
body.v3-home #faq-list > *{min-width:0; overflow:hidden}

/* Large rarity table scrolls inside its own card instead of stretching the page. */
body.v3-home .v3-table-card{max-width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin}
body.v3-home .v3-table-card .v3-table{min-width:880px; width:100%}
body.v3-home .v3-table-card .v3-table-title{position:sticky; left:0; min-width:min(760px, calc(100vw - 96px))}

/* Long translated strings are allowed to wrap safely. */
body.v3-home h1, body.v3-home h2, body.v3-home h3,
body.v3-home p, body.v3-home b, body.v3-home span, body.v3-home a{overflow-wrap:anywhere}
body.v3-home .v3-brand .logo__txt,
body.v3-home .v3-topbar nav a,
body.v3-home .v3-pill{overflow-wrap:normal}

@media (max-width: 1320px){
  body.v3-home .v3-topbar .head__in{gap:10px}
  body.v3-home .v3-topbar .v3-top-pills{display:none}
  body.v3-home .v3-topbar nav{margin-left:auto}
}

@media (max-width: 1120px){
  body.v3-home .v3-topbar .head__in{flex-wrap:wrap}
  body.v3-home .v3-topbar nav{order:3; width:100%; margin-left:0; overflow-x:auto; overflow-y:hidden; padding-bottom:4px; scrollbar-width:none}
  body.v3-home .v3-topbar nav::-webkit-scrollbar{display:none}
  body.v3-home .v3-topbar .head__right{margin-left:auto}
  body.v3-home .v3-hero-grid{grid-template-columns:1fr}
  body.v3-home .v3-terminal__viewport{min-height:390px}
  body.v3-home .v3-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 760px){
  body.v3-home .v3-hero{padding-top:24px; padding-bottom:18px; padding-left:16px; padding-right:16px}
  body.v3-home .v3-wrap{padding-left:16px; padding-right:16px}
  body.v3-home .v3-topbar .head__in{padding:12px 16px}
  body.v3-home .v3-brand .logo__mark{width:38px;height:38px;border-radius:12px}
  body.v3-home .v3-brand .logo__txt{font-size:13px; letter-spacing:.10em}
  body.v3-home .v3-hero-copy{padding:22px}
  body.v3-home .v3-hero-copy h1{font-size:clamp(38px,13vw,58px); line-height:.94}
  body.v3-home .v3-inline-stats,
  body.v3-home .v3-stat-grid,
  body.v3-home .v3-mini-grid,
  body.v3-home .v3-steps,
  body.v3-home .v3-rarity,
  body.v3-home .v3-bento,
  body.v3-home .v3-milestone{grid-template-columns:1fr}
  body.v3-home .v3-terminal__viewport{min-height:330px; padding:14px}
  body.v3-home .v3-rings{width:250px;height:250px}
  body.v3-home .v3-terminal__viewport img{max-height:245px; margin-top:56px}
  body.v3-home .v3-badge-cluster{left:14px;right:14px;top:14px}
  body.v3-home .v3-terminal__viewport > .hero__chip{left:14px !important; bottom:14px !important; max-width:calc(100% - 116px)}
  body.v3-home .v3-terminal__viewport > .v3-chip[style*="right:24px"]{right:14px !important; bottom:14px !important}
  body.v3-home .v3-terminal__foot{grid-template-columns:1fr; gap:8px}
  body.v3-home .v3-section-head{align-items:flex-start; flex-direction:column}
  body.v3-home .v3-section-code{align-self:flex-start}
  body.v3-home #gal.v3-gallery,
  body.v3-home #ones.v3-ones{grid-template-columns:1fr}
  body.v3-home .v3-table-card .v3-table{min-width:760px}
}

@media (max-width: 430px){
  body.v3-home .v3-topbar nav a{font-size:12px; padding:9px 10px}
  body.v3-home .v3-terminal__head{align-items:flex-start; flex-direction:column}
  body.v3-home .v3-badge-cluster{gap:6px}
  body.v3-home .v3-chip{font-size:10px; padding:9px 10px}
  body.v3-home .v3-stat__num{font-size:30px}
}


/* ======================================================================
   V3 HOME — DYNAMIC COMPONENTS
   landing.js generates these nodes at runtime. The previous V3 layout
   styled only their outer containers after legacy landing.css was removed,
   leaving the inner controls/cards effectively unstyled.
   ====================================================================== */
body.v3-home #ladder{display:grid;gap:12px}
body.v3-home #ladder .ladder__row{
  display:grid;grid-template-columns:minmax(86px,110px) minmax(0,1fr) auto;
  align-items:center;gap:14px;padding:14px 15px;border-radius:16px;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)
}
body.v3-home #ladder .ladder__name{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
body.v3-home #ladder .ladder__bar{height:22px;border-radius:999px;background:rgba(255,255,255,.055);overflow:hidden;min-width:0}
body.v3-home #ladder .ladder__fill{
  height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,color-mix(in srgb,currentColor 28%,transparent),currentColor);
  box-shadow:0 0 18px color-mix(in srgb,currentColor 38%,transparent);
  transition:width 1.05s cubic-bezier(.2,.8,.2,1)
}
body.v3-home #ladder .ladder__v{font-family:var(--mono);font-size:12px;color:var(--nx-dim);min-width:78px;text-align:right;white-space:nowrap}
body.v3-home .ladder__cap{display:flex;align-items:baseline;gap:9px;margin-top:16px;color:var(--nx-dim);font-size:13px}
body.v3-home .ladder__cap b{font-family:var(--mono);font-size:18px;color:var(--nx-text)}

body.v3-home .tag{
  display:inline-flex;align-items:center;min-height:26px;padding:5px 10px;border-radius:999px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap
}
body.v3-home .dots{display:inline-flex;gap:4px;align-items:center}
body.v3-home .dots i{display:block;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.13)}
body.v3-home .dots i.on{background:currentColor;box-shadow:0 0 8px color-mix(in srgb,currentColor 45%,transparent)}

body.v3-home #ones.v3-ones,
body.v3-home #gal.v3-gallery{display:grid;width:100%;min-width:0;gap:18px}
body.v3-home #ones.v3-ones{grid-template-columns:repeat(5,minmax(0,1fr))}
body.v3-home #gal.v3-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
body.v3-home #ones .one,
body.v3-home #gal .gcard{
  min-width:0;overflow:hidden;border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.028));
  border:1px solid rgba(255,255,255,.075);box-shadow:0 12px 30px rgba(0,0,0,.18);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease
}
body.v3-home #ones .one:hover,
body.v3-home #gal .gcard:hover{transform:translateY(-4px);border-color:rgba(113,255,191,.22);box-shadow:0 18px 38px rgba(0,0,0,.26)}
body.v3-home #ones .one img,
body.v3-home #gal .gcard img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#070a10}
body.v3-home #ones .one__b{padding:15px 16px 18px}
body.v3-home #ones .one__n{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.08em}
body.v3-home #ones .one__s{margin-top:5px;font-family:var(--mono);font-size:11px;color:var(--nx-dim2)}
body.v3-home #ones .one__d{margin-top:10px;font-size:12.5px;line-height:1.55;color:var(--nx-dim)}
body.v3-home #gal .gcard__b{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-top:1px solid rgba(255,255,255,.065)}
body.v3-home #gal .gcard__h{font-family:var(--mono);font-size:12px;color:var(--nx-dim);white-space:nowrap}

body.v3-home #gal-tabs.tabs{display:flex;flex-wrap:wrap;gap:9px;margin:0}
body.v3-home #gal-tabs .tab{
  appearance:none;padding:9px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.025);color:var(--nx-dim);font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.18s background,.18s border-color,.18s color,.18s transform
}
body.v3-home #gal-tabs .tab:hover{color:var(--nx-text);border-color:rgba(255,255,255,.18);transform:translateY(-1px)}
body.v3-home #gal-tabs .tab.is-on{color:#06120d;background:linear-gradient(135deg,var(--nx-green),#7ce7ff);border-color:transparent;font-weight:800}

body.v3-home #faq-list.v3-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:0;margin:0}
body.v3-home #faq-list .faq__i{
  min-width:0;align-self:start;border:1px solid rgba(255,255,255,.07);border-radius:20px;
  background:rgba(255,255,255,.035);overflow:hidden
}
body.v3-home #faq-list .faq__q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:19px 20px;border:0;background:transparent;color:var(--nx-text);text-align:left;
  font-size:15px;font-weight:700;cursor:pointer
}
body.v3-home #faq-list .faq__q:hover{color:var(--nx-green)}
body.v3-home #faq-list .faq__q i{position:relative;flex:0 0 18px;width:18px;height:18px}
body.v3-home #faq-list .faq__q i::before,
body.v3-home #faq-list .faq__q i::after{content:"";position:absolute;background:currentColor;border-radius:2px;transition:opacity .2s ease,transform .2s ease}
body.v3-home #faq-list .faq__q i::before{left:1px;right:1px;top:8px;height:2px}
body.v3-home #faq-list .faq__q i::after{top:1px;bottom:1px;left:8px;width:2px}
body.v3-home #faq-list .faq__i.is-open .faq__q i::after{opacity:0;transform:scaleY(.3)}
body.v3-home #faq-list .faq__a{max-height:0;overflow:hidden;transition:max-height .28s ease}
body.v3-home #faq-list .faq__a p{padding:0 20px 20px;margin:0;color:var(--nx-dim);font-size:14px;line-height:1.7}

/* The new milestone markup uses v3-progress-rows; keep the JS visibility hook. */
body.v3-home .v3-progress-rows[hidden]{display:none!important}

/* Page-specific stability: do not let homepage compatibility rules leak into Farm/Pool. */
body.v3-home{overflow-x:hidden;min-width:320px}
body.v3-home *,body.v3-home *::before,body.v3-home *::after{box-sizing:border-box}
body.v3-home img,body.v3-home svg{max-width:100%}
body.v3-home .v3-card,body.v3-home .v3-hero-grid>*,body.v3-home .v3-stat-grid>*,body.v3-home .v3-bento>*,body.v3-home .v3-rarity>*,body.v3-home .v3-milestone>*,body.v3-home .v3-steps>*{min-width:0}

@media (max-width:1180px){
  body.v3-home #ones.v3-ones{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.v3-home #gal.v3-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){
  body.v3-home #ones.v3-ones,body.v3-home #gal.v3-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.v3-home #faq-list.v3-faq{grid-template-columns:1fr}
}
@media (max-width:560px){
  body.v3-home #ladder .ladder__row{grid-template-columns:72px minmax(0,1fr) auto;gap:9px;padding:12px}
  body.v3-home #ladder .ladder__name{font-size:10px;letter-spacing:.05em;overflow:hidden;text-overflow:ellipsis}
  body.v3-home #ladder .ladder__v{font-size:10.5px;min-width:62px}
  body.v3-home #ones.v3-ones,body.v3-home #gal.v3-gallery{grid-template-columns:1fr}
  body.v3-home #gal .gcard__b{padding:12px}
}

/* ======================================================================
   V4 PRODUCTION LAYOUT PATCH
   Fixes legacy farm.css containing .farm {display:grid...} around the
   completely new V3 app shell, and fixes shorthand margins on homepage
   components overriding the centered .v3-wrap container.
   ====================================================================== */

/* --- HOME: every major section stays aligned with the header/hero. --- */
body.v3-home .v3-wrap{
  width:min(100%, 1380px) !important;
  max-width:1380px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
body.v3-home .v3-section{margin-top:36px !important;margin-bottom:36px !important}
body.v3-home .v3-bento{margin-top:26px !important;margin-bottom:26px !important}
body.v3-home .v3-stat-grid{margin-top:26px !important;margin-bottom:8px !important}
body.v3-home #gallery{overflow:visible}
body.v3-home .v3-gallery-tools{width:100%;min-width:0;align-items:center}
body.v3-home #gal-tabs{flex:1 1 auto;min-width:0}
body.v3-home #gal.v3-gallery{width:100% !important;max-width:none !important;margin:0 !important}
body.v3-home #gal .gcard{width:100% !important;max-width:none !important}
body.v3-home #gal-tabs .tab{
  -webkit-appearance:none !important;appearance:none !important;
  background:rgba(15,23,38,.90) !important;
  color:#9aa7be !important;
  border:1px solid rgba(255,255,255,.10) !important;
  box-shadow:none !important;
  outline:none !important;
}
body.v3-home #gal-tabs .tab:hover{background:rgba(23,34,53,.96) !important;color:#eef5ff !important;border-color:rgba(113,255,191,.26) !important}
body.v3-home #gal-tabs .tab.is-on{background:linear-gradient(135deg,#71ffbf,#70dfff) !important;color:#06110d !important;border-color:transparent !important}

/* --- FARM: neutralize the OLD page grid. It was constraining the whole
   new app shell to the 208px legacy sidebar column. --- */
body.v3-farm #farm.farm{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  grid-template-columns:none !important;
  gap:0 !important;
  align-items:initial !important;
  position:relative !important;
  z-index:1 !important;
}
body.v3-farm #farm > .v3-app-shell{
  width:min(1480px, calc(100% - 48px)) !important;
  max-width:1480px !important;
  margin:0 auto !important;
  padding:28px 0 54px !important;
  display:grid !important;
  grid-template-columns:260px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:start !important;
  box-sizing:border-box !important;
}
body.v3-farm .v3-app-main{min-width:0 !important;width:100% !important}
body.v3-farm .v3-app-main > *{min-width:0 !important;max-width:100%}
body.v3-farm .v3-app-title{
  width:100% !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  box-sizing:border-box !important;
}
body.v3-farm .v3-app-title > div:first-child{min-width:0;flex:1 1 auto}
body.v3-farm .v3-app-title h1{
  width:auto !important;
  max-width:100% !important;
  min-width:0 !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  writing-mode:horizontal-tb !important;
  font-size:clamp(28px,3vw,42px) !important;
  line-height:1.05 !important;
}
body.v3-farm .v3-app-title__tag{white-space:nowrap !important}
body.v3-farm .v3-app-title__grid{flex:0 0 min(420px,42%);min-width:0 !important;width:auto !important}

/* old .core layout must not turn the new balance KPI card into a two-column panel */
body.v3-farm .core.v3-balance-card{
  display:block !important;
  grid-template-columns:none !important;
  gap:0 !important;
  overflow:visible !important;
  margin:0 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03)) !important;
  border:1px solid var(--nx-border) !important;
  border-radius:var(--nx-radius) !important;
}
body.v3-farm .v3-summary{width:100%;min-width:0}
body.v3-farm .v3-summary > *{min-width:0}
body.v3-farm .v3-card{box-sizing:border-box}
body.v3-farm .v3-rail{width:100%;min-width:0}
body.v3-farm .v3-panel,#metrics,body.v3-farm #rigs-preview,body.v3-farm #rigs-all{min-width:0;max-width:100%}
body.v3-farm .rigs{width:100%}
body.v3-farm .rigs > *{min-width:0}

/* desktop/tablet breakpoints for the app are page-scoped; generic V3 media
   rules previously collapsed the inner shell at 1220px too early. */
@media (max-width:1220px){
  body.v3-farm #farm > .v3-app-shell{grid-template-columns:220px minmax(0,1fr) !important;width:min(1180px,calc(100% - 32px)) !important}
  body.v3-farm .v3-summary{grid-template-columns:1fr 1fr !important}
  body.v3-farm .v3-rank-card{grid-column:1 / -1}
  body.v3-farm .v3-app-title__grid{flex-basis:360px}
}
@media (max-width:900px){
  body.v3-farm #farm > .v3-app-shell{display:block !important;width:calc(100% - 24px) !important;padding:16px 0 100px !important}
  body.v3-farm .v3-app-main{width:100% !important}
  body.v3-farm .v3-app-title{flex-direction:column !important;align-items:stretch !important}
  body.v3-farm .v3-app-title__grid{width:100% !important;flex:0 0 auto !important}
  body.v3-farm .v3-summary{grid-template-columns:1fr !important}
  body.v3-farm .v3-rank-card{grid-column:auto}
  body.v3-farm .v3-rail{
    position:fixed !important;left:12px !important;right:12px !important;bottom:12px !important;top:auto !important;
    z-index:80 !important;width:auto !important;padding:10px !important;display:grid !important;
    grid-template-columns:repeat(7,minmax(0,1fr)) !important;gap:6px !important;
    background:rgba(8,12,20,.94) !important;backdrop-filter:blur(20px) !important
  }
  body.v3-farm .v3-rail__top,body.v3-farm .v3-rail .rail__back{display:none !important}
  body.v3-farm .v3-rail a{padding:9px 5px !important;flex-direction:column !important;justify-content:center !important;text-align:center !important;gap:5px !important;font-size:10px !important}
  body.v3-farm .v3-rail .rail__n{display:none !important}
}
@media (max-width:560px){
  body.v3-farm #farm > .v3-app-shell{width:calc(100% - 16px) !important}
  body.v3-farm .v3-app-title h1{font-size:28px !important}
  body.v3-farm .v3-app-title__grid{grid-template-columns:1fr !important}
  body.v3-farm .v3-top-pills{display:none !important}
}

/* Значки в шапке (POOL TELEMETRY и прочие) — подпись, а не управление.
   На узком экране каждый встаёт отдельной строкой и отнимает у первого
   экрана треть высоты. Раньше это было не видно: шапка обрезала их
   жёсткой высотой в 62px. Домашняя страница прятала их с 1320px, ферма
   с 560 — на пуле не прятал никто. */
@media (max-width: 900px){
  .v3-topbar .v3-top-pills,.v3-appbar .v3-top-pills{display:none}
}
