:root {
    --app-ink: #102b22;
    --app-ink-2: #1d4336;
    --app-muted: #6d8079;
    --app-forest: #123c2e;
    --app-deep: #08251d;
    --app-lime: #d9f75f;
    --app-orange: #ff7048;
    --app-cream: #f6f2e8;
    --app-paper: #fffdf8;
    --app-sky: #bee6ed;
    --app-border: rgba(16,43,34,.12);
    --app-shadow: 0 20px 55px rgba(16,43,34,.10);
    --app-radius: 24px;
}

/* Pokemon collection */
.pokemon-box-hero { min-height:260px; }
.pokemon-box-hero__copy { max-width:650px; }
.pokemon-box-hero__actions { display:flex; margin-top:25px; flex-wrap:wrap; gap:9px; }
.pokemon-box-stats { display:grid; min-width:360px; padding:12px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:20px; backdrop-filter:blur(10px); }
.pokemon-box-stats > div { display:flex; min-height:94px; padding:14px 11px; align-items:center; justify-content:center; flex-direction:column; background:rgba(255,255,255,.07); border-radius:14px; text-align:center; }
.pokemon-box-stats span { color:rgba(255,255,255,.58); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pokemon-box-stats strong { color:#fff; font-size:28px; line-height:1.2; }
.pokemon-box-stats small { margin-left:2px; color:rgba(255,255,255,.5); font-size:11px; }
.pokemon-box-browser { margin-top:20px; padding:28px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:22px; }
.pokemon-box-browser__top { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; }
.pokemon-box-browser__top h2 { margin:2px 0 4px; font-size:28px; }
.pokemon-box-browser__top p { margin:0; color:var(--app-muted); font-size:11px; }
.pokemon-box-results { flex:0 0 auto; padding:9px 13px; color:var(--app-muted); background:#f1eee5; border-radius:999px; font-size:9px; font-weight:700; }
.pokemon-box-results strong { color:var(--app-ink); }
.pokemon-box-filters { display:grid; margin:22px 0 24px; padding:16px; grid-template-columns:minmax(240px,1.5fr) repeat(2,minmax(150px,1fr)) auto; align-items:end; gap:10px; background:#f4f1e8; border-radius:17px; }
.pokemon-box-filters > label > span,.pokemon-box-search > span { display:block; margin:0 0 6px 3px; color:var(--app-muted); font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.pokemon-box-filters input[type="search"],.pokemon-box-filters select { width:100%; min-height:46px; padding:0 13px; color:var(--app-ink); background:#fff; border:1px solid var(--app-border); border-radius:12px; font:600 10px/1 "DM Sans",sans-serif; outline:0; }
.pokemon-box-filters input[type="search"] { padding-left:38px; }
.pokemon-box-filters input[type="search"]:focus,.pokemon-box-filters select:focus { border-color:var(--app-orange); box-shadow:0 0 0 3px rgba(255,112,72,.1); }
.pokemon-box-search > div { position:relative; }
.pokemon-box-search i { position:absolute; left:14px; top:50%; color:var(--app-muted); transform:translateY(-50%); }
.pokemon-box-filter-actions { display:flex; align-items:center; gap:10px; }
.pokemon-box-filter-actions .feature-button { white-space:nowrap; }
.pokemon-box-filter-actions > a { color:var(--app-orange)!important; font-size:9px; font-weight:800; text-decoration:none!important; }
.pokemon-box-toggles { display:flex; grid-column:1/-1; gap:8px; }
.pokemon-box-toggles label { position:relative; flex:1; margin:0; cursor:pointer; }
.pokemon-box-toggles input { position:absolute; width:1px; height:1px; opacity:0; }
.pokemon-box-toggles label > span { display:grid; min-height:58px; padding:10px 13px; grid-template-columns:30px 1fr; align-items:center; column-gap:10px; background:#fff; border:1px solid var(--app-border); border-radius:12px; transition:border-color .18s,background .18s,box-shadow .18s; }
.pokemon-box-toggles i { display:grid; width:30px; height:30px; grid-row:1/3; place-items:center; color:var(--app-muted); background:#f1eee5; border-radius:9px; }
.pokemon-box-toggles b { color:var(--app-ink); font-size:9px; }
.pokemon-box-toggles small { color:var(--app-muted); font-size:8px; }
.pokemon-box-toggles input:checked + span { background:#f2f8d9; border-color:#b6ca64; box-shadow:inset 0 0 0 1px #b6ca64; }
.pokemon-box-toggles input:checked + span i { color:var(--app-deep); background:var(--app-lime); }
.pokemon-box-toggles input:focus-visible + span { outline:3px solid rgba(255,112,72,.2); outline-offset:2px; }
.pokemon-box-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pokemon-box-card { position:relative; display:flex; min-width:0; overflow:hidden; flex-direction:column; background:#f7f4ec; border:1px solid var(--app-border); border-radius:18px; transition:transform .18s,border-color .18s,box-shadow .18s; }
.pokemon-box-card:hover { border-color:#c4d487; box-shadow:0 16px 35px rgba(16,43,34,.08); transform:translateY(-3px); }
.pokemon-box-card.is-lineup { border-color:#b9cb72; box-shadow:inset 0 3px var(--app-lime); }
.pokemon-box-card__visual { position:relative; display:grid; min-height:190px; place-items:center; overflow:hidden; background:linear-gradient(145deg,#eef2e7,#f8efe3); }
.pokemon-box-card__visual::after { content:""; position:absolute; right:-38px; bottom:-80px; width:165px; height:165px; border:1px solid rgba(16,43,34,.08); border-radius:50%; box-shadow:0 0 0 24px rgba(16,43,34,.025); }
.pokemon-box-card__disc { position:absolute; width:125px; height:125px; background:rgba(255,255,255,.62); border:1px solid rgba(16,43,34,.06); border-radius:50%; box-shadow:0 14px 30px rgba(16,43,34,.07); }
.pokemon-box-card__visual > img { position:relative; z-index:2; width:132px; height:132px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 12px 10px rgba(16,43,34,.17)); transition:transform .18s; }
.pokemon-box-card:hover .pokemon-box-card__visual > img { transform:translateY(-3px) scale(1.04); }
.pokemon-box-card__badges { position:absolute; z-index:3; inset:12px 12px auto; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pokemon-box-id,.pokemon-box-lineup,.pokemon-box-prestige { display:inline-flex; min-height:25px; padding:0 9px; align-items:center; gap:5px; color:var(--app-muted); background:rgba(255,255,255,.86); border:1px solid rgba(16,43,34,.07); border-radius:999px; font-size:8px; font-weight:900; backdrop-filter:blur(6px); }
.pokemon-box-lineup { color:#587315; background:#edf7cf; }
.pokemon-box-prestige { position:absolute; z-index:3; left:12px; bottom:11px; color:var(--app-ink); }
.pokemon-box-prestige img { width:18px; height:18px; object-fit:contain; }
.pokemon-box-card__body { display:flex; padding:18px; flex:1; flex-direction:column; }
.pokemon-box-card__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.pokemon-box-card__heading span:not(.pokemon-box-level) { display:block; color:var(--app-orange); font-size:8px; font-weight:900; text-transform:uppercase; }
.pokemon-box-card__heading h3 { margin:2px 0 0; color:var(--app-ink); font-size:18px; }
.pokemon-box-level { flex:0 0 auto; padding:6px 8px; color:var(--app-deep); background:var(--app-lime); border-radius:9px; font-size:8px; font-weight:900; }
.pokemon-box-meta { display:grid; margin:15px 0 0; grid-template-columns:repeat(2,minmax(0,1fr)); border-block:1px solid var(--app-border); }
.pokemon-box-meta > div { padding:11px 0; }
.pokemon-box-meta > div + div { padding-left:12px; border-left:1px solid var(--app-border); }
.pokemon-box-meta dt { color:var(--app-muted); font-size:7px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.pokemon-box-meta dd { display:flex; margin:2px 0 0; align-items:center; gap:5px; color:var(--app-ink); font-size:10px; font-weight:800; }
.pokemon-box-meta dd img { width:12px; height:12px; object-fit:contain; }
.pokemon-box-ready { display:flex; margin-top:12px; padding:10px; align-items:center; gap:9px; color:#587315; background:#edf7cf; border-radius:11px; }
.pokemon-box-ready > i { display:grid; width:27px; height:27px; flex:0 0 27px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:8px; }
.pokemon-box-ready span,.pokemon-box-ready strong,.pokemon-box-ready small { display:block; }
.pokemon-box-ready strong { font-size:9px; }.pokemon-box-ready small { font-size:7px; }
.pokemon-box-card__actions { display:flex; margin-top:auto; padding-top:15px; align-items:center; gap:12px; }
.pokemon-box-card__actions .feature-button { flex:1; min-height:42px; padding:0 14px; }
.pokemon-box-action-link { flex:0 0 auto; color:var(--app-orange)!important; font-size:9px; font-weight:900; text-decoration:none!important; }
.pokemon-box-action-link i { margin-right:4px; }
.pokemon-box-empty { margin-top:8px; }
.pokemon-box-empty .app-brand__mark { width:52px; height:52px; flex-basis:52px; }

@media (max-width:980px) {
    .pokemon-box-hero { align-items:flex-start; flex-direction:column; }
    .pokemon-box-stats { width:100%; min-width:0; }
    .pokemon-box-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .pokemon-box-filter-actions { justify-content:flex-end; }
    .pokemon-box-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .pokemon-box-hero__actions,.pokemon-box-hero__actions .feature-button { width:100%; }
    .pokemon-box-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .pokemon-box-stats > div { min-height:75px; padding:10px 5px; }
    .pokemon-box-stats strong { font-size:22px; }
    .pokemon-box-browser { padding:18px; }
    .pokemon-box-browser__top { align-items:flex-start; flex-direction:column; gap:10px; }
    .pokemon-box-filters { grid-template-columns:1fr; }
    .pokemon-box-filter-actions,.pokemon-box-filter-actions .feature-button { width:100%; }
    .pokemon-box-filter-actions { justify-content:space-between; }
    .pokemon-box-toggles { grid-column:auto; flex-direction:column; }
    .pokemon-box-grid { grid-template-columns:1fr; }
}

/* Crate vault */
.crate-page__main { width:min(1180px,calc(100% - 40px)); margin:auto; padding-bottom:56px; }.crate-hero { position:relative; display:flex; min-height:300px; padding:46px; align-items:flex-end; justify-content:space-between; gap:34px; overflow:hidden; color:#fff; background:linear-gradient(122deg,#0d3429,#155540); border-radius:29px; }.crate-hero::before { content:""; position:absolute; width:430px; height:430px; right:-115px; top:-245px; border:1px solid rgba(255,235,157,.25); border-radius:50%; box-shadow:0 0 0 48px rgba(255,235,157,.035),0 0 0 98px rgba(255,235,157,.025); }.crate-hero > * { position:relative; z-index:1; }.crate-eyebrow { display:block; color:#789b42; font-size:9px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }.crate-hero .crate-eyebrow { color:#e7c85b; }.crate-hero h1 { margin:7px 0 11px; color:#fff; font-size:clamp(36px,5vw,61px); line-height:.97; }.crate-hero h1 em,.crate-reveal h1 em { color:#e8c75b; font-style:normal; }.crate-hero p { max-width:570px; margin:0; color:rgba(255,255,255,.65); }.crate-balance { display:grid; min-width:225px; padding:19px 21px; gap:6px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); border-radius:18px; }.crate-balance > span { color:rgba(255,255,255,.55); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.crate-balance strong { color:#fff6d6; font:800 20px/1.15 Manrope,sans-serif; }.crate-balance i,.crate-open-button i { color:#e7c85b; font-style:normal; }.crate-balance small { color:rgba(255,255,255,.58); font:700 9px "DM Sans",sans-serif; }.crate-error { display:flex; margin-top:18px; padding:15px 18px; align-items:center; gap:11px; color:#914237; background:#fff0ed; border:1px solid rgba(185,77,61,.24); border-radius:15px; font-size:12px; }.crate-error > span { display:grid; width:23px; height:23px; place-items:center; color:#fff; background:#d95d4b; border-radius:50%; font-weight:900; }.crate-error strong { color:#783329; }.crate-catalog { margin-top:43px; }.crate-section-heading { display:flex; margin:0 2px 17px; align-items:end; justify-content:space-between; gap:22px; }.crate-section-heading h2 { margin:3px 0 0; font-size:26px; }.crate-section-heading p { margin:0; font-size:10px; font-weight:700; }.crate-section-heading p span { color:#cf9e29; }.crate-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }.crate-card { position:relative; display:flex; min-width:0; min-height:416px; padding:18px; flex-direction:column; overflow:hidden; background:var(--app-paper); border:1px solid var(--app-border); border-radius:22px; box-shadow:0 9px 20px rgba(16,43,34,.035); transition:transform .25s,box-shadow .25s,border-color .25s; }.crate-card:hover { border-color:rgba(170,127,34,.35); box-shadow:0 20px 35px rgba(16,43,34,.1); transform:translateY(-5px); }.crate-card::before { content:""; position:absolute; z-index:0; top:44px; left:11%; width:78%; aspect-ratio:1; background:radial-gradient(circle,rgba(238,211,122,.22),transparent 66%); border-radius:50%; opacity:.55; }.crate-card--iron::before { background:radial-gradient(circle,rgba(119,169,190,.22),transparent 66%); }.crate-card--birch::before { background:radial-gradient(circle,rgba(120,185,116,.22),transparent 66%); }.crate-card--gold::before { background:radial-gradient(circle,rgba(251,193,77,.3),transparent 66%); }.crate-card__topline,.crate-card__chest,.crate-card__content,.crate-card__action { position:relative; z-index:1; }.crate-card__topline { display:flex; min-height:22px; align-items:center; justify-content:space-between; gap:7px; }.crate-card__topline > span { color:var(--app-muted); font-size:8px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.crate-preview-button { padding:0!important; color:#8b6a1d!important; background:transparent!important; border:0!important; font:800 9px "DM Sans",sans-serif!important; cursor:pointer; }.crate-preview-button:hover { color:var(--app-ink)!important; transform:none!important; box-shadow:none!important; }.crate-preview-button span { margin-left:2px; font-size:12px; }.crate-card__chest { display:grid; height:191px; place-items:center; }.crate-chest { width:187px; max-width:100%; }.crate-chest--small { width:95px; flex:0 0 95px; }.crate-chest svg { display:block; width:100%; height:auto; overflow:visible; }.crate-chest__rays,.crate-chest__glow,.crate-chest__mouth,.crate-chest__treasure,.crate-chest__open-lid,.crate-chest__sparkles { opacity:0; }.crate-chest__body { transform-origin:100px 170px; transition:transform .35s cubic-bezier(.34,1.5,.64,1); }.crate-card:hover .crate-chest__body { transform:translateY(-5px) scale(1.025,.98); }.crate-chest.is-open .crate-chest__closed-lid { transform:scaleY(0); transform-origin:100px 100px; }.crate-chest.is-open .crate-chest__open-lid { opacity:1; }.crate-chest.is-open .crate-chest__rays,.crate-chest.is-open .crate-chest__glow,.crate-chest.is-open .crate-chest__mouth,.crate-chest.is-open .crate-chest__treasure,.crate-chest.is-open .crate-chest__sparkles { opacity:1; }.crate-card__content { padding:3px 3px 14px; }.crate-card__content h3 { margin:0 0 4px; font-size:19px; }.crate-card__content p { min-height:35px; margin:0; font-size:10px; line-height:1.55; }.crate-card__action { margin-top:auto; }.crate-open-button { display:grid!important; width:100%; min-height:61px!important; padding:10px 14px!important; grid-template-columns:1fr auto; grid-template-rows:1fr 1fr; align-items:center; color:#17342b!important; background:#daf75f!important; border:0!important; border-radius:14px!important; text-align:left; transition:transform .2s,background .2s,box-shadow .2s!important; }.crate-open-button:hover { background:#e9ff88!important; box-shadow:0 10px 20px rgba(143,177,33,.23)!important; transform:translateY(-2px)!important; }.crate-open-button > span { grid-row:span 2; font:800 12px Manrope,sans-serif; }.crate-open-button strong { justify-self:end; font:800 13px Manrope,sans-serif; }.crate-open-button small { justify-self:end; color:#58721e; font-size:8px; font-weight:800; }.crate-empty-state { display:flex; min-height:250px; grid-column:1/-1; align-items:center; justify-content:center; flex-direction:column; background:rgba(255,253,248,.64); border:1px dashed rgba(16,43,34,.22); border-radius:22px; text-align:center; }.crate-empty-state > span { display:grid; width:45px; height:45px; margin-bottom:9px; place-items:center; color:#667d74; background:#e8e4da; border-radius:14px; font-size:23px; }.crate-empty-state h2 { margin:0 0 3px; font-size:19px; }.crate-empty-state p { margin:0; font-size:11px; }.crate-rewards-modal .modal-dialog { max-width:800px; }.crate-rewards-modal .modal-body { padding:30px; }.crate-modal-close { position:absolute; z-index:2; top:15px; right:16px; display:grid!important; width:33px; height:33px; padding:0!important; place-items:center; color:var(--app-muted)!important; background:#f2efe6!important; border:0!important; border-radius:50%!important; box-shadow:none!important; font:400 25px/1 Arial!important; }.crate-modal-close:hover { color:var(--app-ink)!important; background:#e9e4d8!important; transform:none!important; }.crate-modal-heading { display:flex; min-height:119px; align-items:center; gap:13px; padding:0 25px 14px 0; border-bottom:1px solid var(--app-border); }.crate-modal-heading h2 { margin:3px 0 3px; font-size:26px; }.crate-modal-heading p { margin:0; font-size:10px; }.crate-reward-grid { display:grid; max-height:380px; margin-top:18px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; overflow:auto; padding-right:3px; }.crate-reward { display:flex; min-height:144px; padding:12px 7px; align-items:center; flex-direction:column; justify-content:center; background:#f4f1e8; border:1px solid transparent; border-radius:13px; text-align:center; }.crate-reward:hover { background:#f2f9d9; border-color:#cbdd86; }.crate-reward img { width:72px; height:72px; object-fit:contain; image-rendering:pixelated; }.crate-reward span { overflow:hidden; max-width:100%; color:var(--app-orange); font-size:7px; font-weight:800; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }.crate-reward strong { overflow:hidden; max-width:100%; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.crate-rewards-empty { grid-column:1/-1; margin:0; padding:25px; background:#f4f1e8; border-radius:12px; font-size:11px; text-align:center; }
.crate-reveal-page .site-content { padding-top:20px; }.crate-reveal { width:min(730px,calc(100% - 40px)); margin:auto; padding:38px 0 70px; text-align:center; }.crate-reveal__sparkles { color:#d9aa35; font-size:22px; letter-spacing:.18em; animation:crate-twinkle 1.9s ease-in-out infinite; }.crate-reveal h1 { margin:6px 0 10px; color:var(--app-ink); font-size:clamp(39px,5vw,62px); line-height:.98; }.crate-reveal__message { max-width:500px; margin:0 auto; font-size:13px; }.crate-reveal__stage { position:relative; display:grid; min-height:372px; margin:14px auto 23px; place-items:center; }.crate-reveal__stage > .crate-chest { width:310px; margin-top:46px; }.crate-reveal__stage::before { content:""; position:absolute; width:420px; max-width:100%; aspect-ratio:1; background:radial-gradient(circle,rgba(240,200,93,.36),rgba(240,200,93,.09) 38%,transparent 69%); border-radius:50%; }.crate-reward-reveal { position:absolute; z-index:2; top:89px; left:50%; display:flex; width:150px; align-items:center; flex-direction:column; opacity:0; transform:translate(-50%,15px) scale(.7); }.crate-reward-reveal__label { margin-bottom:2px; color:#7f7a58; font-size:8px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }.crate-reward-reveal img { width:125px; height:125px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 12px 10px rgba(57,60,19,.2)); }.crate-reward-reveal > span:not(.crate-reward-reveal__label) { color:var(--app-orange); font-size:9px; font-weight:900; text-transform:uppercase; }.crate-reward-reveal strong { font:800 17px Manrope,sans-serif; }.crate-back-button { display:inline-flex; min-height:45px; padding:0 19px; align-items:center; gap:10px; color:var(--app-ink)!important; background:var(--app-lime); border-radius:50px; box-shadow:0 10px 22px rgba(143,177,33,.19); font-size:11px; font-weight:800; text-decoration:none!important; }.crate-back-button:hover { color:var(--app-ink)!important; background:#e9ff88; transform:translateY(-2px); }.crate-back-button span { font-size:15px; }.crate-chest.is-revealing .crate-chest__body { animation:crate-hop .5s cubic-bezier(.34,1.65,.64,1) .1s both; }.crate-chest.is-revealing .crate-chest__closed-lid { transform-origin:100px 100px; animation:crate-close-lid .25s cubic-bezier(.5,0,1,.5) .28s forwards; }.crate-chest.is-revealing .crate-chest__open-lid { transform:scaleY(0); transform-origin:100px 100px; animation:crate-open-lid .48s cubic-bezier(.3,1.5,.5,1) .45s forwards; }.crate-chest.is-revealing .crate-chest__rays { transform-origin:100px 96px; animation:crate-fade-in .5s ease-out .68s forwards,crate-spin 16s linear 1.18s infinite; }.crate-chest.is-revealing .crate-chest__glow,.crate-chest.is-revealing .crate-chest__mouth { animation:crate-fade-in .4s ease-out .62s forwards; }.crate-chest.is-revealing .crate-chest__treasure { animation:crate-treasure .5s cubic-bezier(.3,1.6,.5,1) .74s forwards; }.crate-chest.is-revealing .crate-chest__sparkles { animation:crate-fade-in .4s ease-out .88s forwards; }.crate-reveal:has(.is-revealing) .crate-reward-reveal { animation:crate-reward-appear .55s cubic-bezier(.3,1.55,.5,1) 1.05s forwards; }
@keyframes crate-hop { 0%{transform:translateY(0)}45%{transform:translateY(-13px) scale(1.02,.97)}100%{transform:translateY(0)} } @keyframes crate-close-lid { to{transform:scaleY(0)} } @keyframes crate-open-lid { to{opacity:1;transform:scaleY(1)} } @keyframes crate-fade-in { to{opacity:1} } @keyframes crate-treasure { to{opacity:1;transform:translateY(0)} } @keyframes crate-reward-appear { to{opacity:1;transform:translate(-50%,0) scale(1)} } @keyframes crate-spin { to{transform:rotate(360deg)} } @keyframes crate-twinkle { 50%{opacity:.42;transform:scale(1.12)} }
@media (max-width:980px) { .crate-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.crate-card { min-height:390px; }.crate-card__chest { height:172px; } }
@media (max-width:600px) { .crate-page__main { width:calc(100% - 24px); }.crate-hero { min-height:0; padding:29px 23px; align-items:flex-start; flex-direction:column; }.crate-hero h1 { font-size:42px; }.crate-balance { width:100%; grid-template-columns:1fr 1fr; }.crate-balance > span { grid-column:1/-1; }.crate-section-heading { align-items:flex-start; flex-direction:column; gap:7px; }.crate-grid { grid-template-columns:1fr; }.crate-card { min-height:385px; }.crate-card__chest { height:165px; }.crate-reward-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.crate-modal-heading { align-items:flex-start; }.crate-modal-heading .crate-chest { display:none; }.crate-rewards-modal .modal-body { padding:25px 18px; }.crate-reveal { width:calc(100% - 28px); padding-top:23px; }.crate-reveal__stage { min-height:318px; }.crate-reveal__stage > .crate-chest { width:260px; }.crate-reward-reveal { top:78px; }.crate-reward-reveal img { width:108px;height:108px; } }
@media (prefers-reduced-motion:reduce) { .crate-chest *, .crate-reveal__sparkles, .crate-reward-reveal { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body.exotic-app { min-height: 100vh; max-width: 100%; overflow-x: hidden; color: var(--app-ink); background: var(--app-cream); font-family: "DM Sans", sans-serif !important; font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.exotic-app::before { content: ""; position: fixed; z-index: -2; inset: 0; background: radial-gradient(circle at 7% 20%, rgba(190,230,237,.3), transparent 25%), radial-gradient(circle at 91% 12%, rgba(255,112,72,.09), transparent 22%), var(--app-cream); }
body.exotic-app::after { content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none; opacity: .16; background-image: radial-gradient(rgba(16,43,34,.26) .65px, transparent .65px); background-size: 18px 18px; mask-image: linear-gradient(to bottom, #000, transparent 60%); }
body.app-menu-open { overflow: hidden; }
.exotic-app *, .exotic-app *::before, .exotic-app *::after { box-sizing: border-box; }
.exotic-app a { transition: color .2s, background .2s, border-color .2s, transform .2s, box-shadow .2s; }
.exotic-app img { max-width: 100%; }
.exotic-app h1, .exotic-app h2, .exotic-app h3, .exotic-app h4, .exotic-app h5, .exotic-app h6, .exotic-app .h1, .exotic-app .h2, .exotic-app .h3, .exotic-app .h4 { color: var(--app-ink); font-family: Manrope, sans-serif !important; letter-spacing: -.035em; }
.exotic-app p { color: var(--app-muted); }
.exotic-app .text-white, .exotic-app .text-white p { color: inherit !important; }
.exotic-app .text-main-1, .exotic-app .has-inline-color { color: var(--app-orange) !important; }
.exotic-app .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.app-skip-link { position: fixed; z-index: 1000; left: 18px; top: -70px; padding: 11px 18px; color: #fff; background: var(--app-deep); border-radius: 12px; }
.app-skip-link:focus { top: 15px; }

/* Application header */
.app-header { position: fixed; z-index: 900; inset: 0 0 auto; height: 80px; background: rgba(246,242,232,.91); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transition: height .2s, border-color .2s, box-shadow .2s; }
.app-header.is-scrolled { height: 70px; border-color: var(--app-border); box-shadow: 0 8px 30px rgba(16,43,34,.06); }
.app-header__inner { display: flex; width: min(1440px, calc(100% - 42px)); height: 100%; margin: auto; align-items: center; gap: 24px; }
.app-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 10px; color: var(--app-ink) !important; font-family: Manrope, sans-serif; font-size: 18px; font-weight: 700; letter-spacing: -.04em; text-decoration: none !important; }
.app-brand strong { color: #e94f3d; font-weight: 800; }
.app-brand__mark { position: relative; width: 31px; height: 31px; overflow: hidden; flex: 0 0 31px; background: linear-gradient(#ed5846 0 44%, var(--app-ink) 44% 56%, #fff 56%); border: 3px solid var(--app-ink); border-radius: 50%; }
.app-brand__mark span { position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; transform: translate(-50%,-50%); background: var(--app-cream); border: 2px solid var(--app-ink); border-radius: 50%; }
.app-navigation { display: flex; min-width: 0; align-items: center; gap: 5px; margin: 0 auto; }
.app-navigation > a, .app-nav-group > summary { display: flex; min-height: 39px; align-items: center; gap: 6px; padding: 0 12px; color: #425d54 !important; border-radius: 50px; font-size: 12px; font-weight: 700; text-decoration: none !important; cursor: pointer; white-space: nowrap; list-style: none; }
.app-navigation > a:hover, .app-nav-group > summary:hover, .app-nav-group[open] > summary { color: var(--app-ink) !important; background: rgba(16,43,34,.07); }
.app-nav-group { position: relative; }
.app-nav-group summary::-webkit-details-marker, .app-notifications-menu summary::-webkit-details-marker, .app-user-menu summary::-webkit-details-marker { display: none; }
.app-dropdown-chevron { position: relative; width: 12px; height: 12px; margin-left: 3px; flex: 0 0 12px; color: currentColor; opacity: .72; }
.app-dropdown-chevron::before { content: ""; position: absolute; left: 3px; top: 2px; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transform-origin: 50% 50%; transition: transform .2s ease; }
.app-nav-group[open] summary .app-dropdown-chevron::before, .app-user-menu[open] summary .app-dropdown-chevron::before { transform: translateY(3px) rotate(225deg); }
.app-nav-icon { color: var(--app-orange); font-size: 15px; }
.app-nav-panel, .app-user-panel { position: absolute; z-index: 20; top: calc(100% + 15px); left: 0; display: grid; min-width: 230px; gap: 3px; padding: 12px; color: var(--app-ink); background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 18px; box-shadow: 0 24px 65px rgba(16,43,34,.18); }
.app-nav-panel::before, .app-user-panel::before { content: ""; position: absolute; inset: -16px 0 auto; height: 16px; }
.app-nav-panel > a, .app-nav-panel > div > a, .app-user-panel > a { display: flex; min-height: 40px; padding: 9px 12px; flex-direction: column; justify-content: center; color: var(--app-ink) !important; border-radius: 10px; font-size: 12px; font-weight: 700; line-height: 1.3; text-decoration: none !important; }
.app-nav-panel > a:hover, .app-nav-panel > div > a:hover, .app-user-panel > a:hover { color: var(--app-ink) !important; background: #f0ecdf; transform: translateX(2px); }
.app-nav-panel small { color: var(--app-muted); font-size: 9px; font-weight: 500; }
.app-nav-panel--wide { left: 50%; grid-template-columns: repeat(3, 170px); padding: 18px; transform: translateX(-30%); }
.app-nav-panel--wide > div { display: flex; flex-direction: column; gap: 2px; padding: 0 9px; }
.app-nav-panel--wide > div + div { border-left: 1px solid var(--app-border); }
.app-nav-panel--regions { left:50%; min-width:440px; grid-template-columns:repeat(2,minmax(0,1fr)); padding:15px; transform:translateX(-50%); }
.app-nav-panel--regions .app-nav-panel__featured { grid-column:1/-1; background:#f3f7e1; }
.app-nav-panel--regions .app-nav-panel__featured:first-child { color:var(--app-deep)!important; background:var(--app-lime); }
.app-nav-label { padding: 5px 12px 8px; color: var(--app-orange); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.app-header__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin-left: auto; padding-left: 14px; border-left: 1px solid var(--app-border); }
.app-quick-link { display: flex; align-items: center; gap: 6px; padding: 8px 12px; color: var(--app-ink) !important; font-size: 11px; font-weight: 700; text-decoration: none !important; }
.app-quick-link span { color: var(--app-orange); }
.app-notifications-menu { position: relative; }
.app-notification-link { position: relative; display: grid; width: 36px; height: 36px; margin: 0; padding: 0; place-items: center; color: var(--app-ink) !important; background: rgba(255,255,255,.55); border: 1px solid var(--app-border); border-radius: 50%; font-size: 14px; text-decoration: none !important; cursor: pointer; list-style: none; transition: color .2s, border-color .2s, transform .2s; }
.app-notification-link:hover, .app-notification-link.is-active, .app-notifications-menu[open] > .app-notification-link { color: var(--app-orange) !important; border-color: var(--app-orange); background: #fffaf2; transform: translateY(-1px); }
.app-notification-link b { position: absolute; top: -5px; right: -7px; min-width: 17px; height: 17px; padding: 0 4px; color: #fff; background: var(--app-orange); border: 2px solid var(--app-cream); border-radius: 10px; font-size: 8px; font-weight: 800; line-height: 13px; text-align: center; }
.app-notifications-panel { position: absolute; z-index: 22; top: calc(100% + 16px); right: -52px; width: min(370px, calc(100vw - 24px)); overflow: hidden; color: var(--app-ink); background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 20px; box-shadow: 0 24px 65px rgba(16,43,34,.2); }
.app-notifications-panel::before { content: ""; position: absolute; inset: -17px 0 auto; height: 17px; }
.app-notifications-panel > header { display: flex; min-height: 70px; padding: 16px 18px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--app-border); }
.app-notifications-panel > header div { display: flex; flex-direction: column; }
.app-notifications-panel > header span { color: var(--app-orange); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.app-notifications-panel > header strong { margin-top: 1px; font-family: Manrope, sans-serif; font-size: 16px; }
.app-notifications-panel > header > b { padding: 5px 8px; color: #fff; background: var(--app-orange); border-radius: 20px; font-size: 8px; }
.app-notifications-panel__list { max-height: 330px; overflow-y: auto; padding: 7px; }
.app-notifications-panel__list form { margin: 0; }
.app-notification-preview { display: grid; width: 100%; min-height: 64px !important; padding: 10px !important; grid-template-columns: 8px minmax(0,1fr); align-items: center; gap: 10px; color: var(--app-ink) !important; background: transparent !important; border: 0 !important; border-radius: 12px !important; font-family: "DM Sans", sans-serif !important; text-align: left; cursor: pointer; }
.app-notification-preview:hover { background: #f1eee5 !important; transform: none !important; box-shadow: none !important; }
.app-notification-preview__mark { width: 7px; height: 7px; background: #c8ccc8; border-radius: 50%; }
.app-notification-preview.is-unread .app-notification-preview__mark { background: var(--app-orange); box-shadow: 0 0 0 4px rgba(233,79,61,.11); }
.app-notification-preview > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.app-notification-preview strong { overflow: hidden; font-size: 11px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.app-notification-preview small { margin-top: 3px; overflow: hidden; color: var(--app-muted); font-size: 8px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.app-notifications-panel__empty { display: flex; min-height: 160px; align-items: center; justify-content: center; flex-direction: column; color: var(--app-muted); text-align: center; }
.app-notifications-panel__empty i { display: grid; width: 34px; height: 34px; margin-bottom: 8px; place-items: center; color: #5d7d13; background: var(--app-lime); border-radius: 50%; font-size: 11px; }
.app-notifications-panel__empty strong { color: var(--app-ink); font-size: 11px; }
.app-notifications-panel__empty span { margin-top: 2px; font-size: 9px; }
.app-notifications-panel__footer { display: flex; min-height: 49px; padding: 0 18px; align-items: center; justify-content: space-between; color: var(--app-ink) !important; background: #f3f0e7; border-top: 1px solid var(--app-border); font-size: 10px; font-weight: 900; text-decoration: none !important; }
.app-notifications-panel__footer span { color: var(--app-orange); font-size: 15px; transition: transform .2s; }
.app-notifications-panel__footer:hover span { transform: translateX(3px); }
.app-user-panel > a.app-user-panel__notifications { align-items: center; flex-direction: row; justify-content: space-between; }
.app-user-panel__badge { display: inline-grid; min-width: 20px; height: 20px; margin-left: auto; padding: 0 6px; place-items: center; color: #fff !important; background: var(--app-orange); border-radius: 10px; font-size: 9px !important; font-weight: 800; }
.app-user-menu { position: relative; }
.app-user-menu > summary { display: flex; min-width: 145px; align-items: center; gap: 9px; padding: 5px 8px 5px 5px; background: rgba(255,255,255,.55); border: 1px solid var(--app-border); border-radius: 50px; cursor: pointer; list-style: none; }
.app-user-menu > summary img { width: 34px; height: 34px; object-fit: cover; border-radius: 50%; background: #e5e0d5; }
.app-user-menu > summary > span { display: flex; min-width: 0; flex: 1; flex-direction: column; line-height: 1.1; }
.app-user-menu > summary small { color: var(--app-muted); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.app-user-menu > summary strong { max-width: 83px; overflow: hidden; color: var(--app-ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.app-user-panel { right: 0; left: auto; min-width: 220px; }
.app-user-panel__top { display: flex; padding: 10px 12px 14px; flex-direction: column; border-bottom: 1px solid var(--app-border); margin-bottom: 4px; }
.app-user-panel__top span { color: var(--app-muted); font-size: 9px; }.app-user-panel__top strong { font-size: 14px; }
.app-user-panel button { display: flex; width: 100%; min-height: 41px; align-items: center; justify-content: space-between; padding: 0 12px; color: #d54c3d; background: transparent; border: 0; border-top: 1px solid var(--app-border); margin-top: 5px; font-size: 11px; font-weight: 800; cursor: pointer; }
.app-login-link { padding: 10px 14px; color: var(--app-ink) !important; font-size: 12px; font-weight: 700; text-decoration: none !important; }
.app-primary-action { display: inline-flex; min-height: 42px; align-items: center; padding: 0 20px; color: var(--app-ink) !important; background: var(--app-lime); border-radius: 50px; box-shadow: 0 10px 25px rgba(156,184,40,.2); font-size: 12px; font-weight: 800; text-decoration: none !important; }
.app-primary-action:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(156,184,40,.3); }
.app-menu-toggle { display: none; padding: 5px; background: transparent; border: 0; }
.app-menu-toggle > span { display: block; width: 23px; height: 2px; margin: 5px; background: var(--app-ink); border-radius: 2px; }

/* Legacy page shell, re-authored */
#app-content { min-height: 75vh; }
.exotic-app #page.nk-main, .exotic-app .nk-main { min-height: 78vh; padding-top: 80px !important; background: transparent !important; }
.exotic-app .site-content { padding: 40px 0 70px; background: transparent !important; }
.exotic-app .content-area.container, .exotic-app #primary.container, .exotic-app .container { width: min(1180px, calc(100% - 40px)); max-width: 1180px; }
.exotic-app .content-area .content-area.container, .exotic-app .container .container { width: 100%; max-width: none; padding-inline: 0; margin-inline: 0; }
.exotic-app .site-main > .row > [class*="col-"], .exotic-app .site-main > .row { margin: 0; padding: 0; }
.exotic-app .entry-content { min-height: 300px; }
.exotic-app .nk-gap, .exotic-app .nk-gap-1, .exotic-app .nk-gap-2, .exotic-app .nk-gap-3 { display: block; height: 22px; }
.exotic-app .nk-gap-2 { height: 36px; }.exotic-app .nk-gap-3 { height: 52px; }
.exotic-app .nk-page-background-top, .exotic-app .nk-page-background-bottom { display: none !important; }
.exotic-app .clearfix::after { content: ""; display: table; clear: both; }

/* Page titles */
.exotic-app h3.is-style-squadforce-decorated { position: relative; display: flex; min-height: 142px; align-items: flex-end; margin: 0 0 34px !important; padding: 38px 42px; overflow: hidden; color: #fff !important; background: var(--app-forest); border-radius: 28px; font-size: clamp(32px, 4vw, 52px) !important; line-height: 1.03; letter-spacing: -.05em; }
.exotic-app h3.is-style-squadforce-decorated::before { content: ""; position: absolute; width: 300px; height: 300px; right: -100px; top: -160px; border: 1px solid rgba(217,247,95,.17); border-radius: 50%; box-shadow: 0 0 0 50px rgba(217,247,95,.025), 0 0 0 100px rgba(217,247,95,.02); }
.exotic-app h3.is-style-squadforce-decorated::after { content: "PLAY · COLLECT · CONNECT"; position: absolute; right: 38px; bottom: 34px; color: rgba(255,255,255,.35); font-family: "DM Sans", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.exotic-app h3.is-style-squadforce-decorated .has-inline-color { color: var(--app-lime) !important; }

/* Cards and grids */
.exotic-app .ghostkit-grid-inner { display: flex; flex-wrap: wrap; margin: -10px; }
.exotic-app .ghostkit-grid-inner > [class*="ghostkit-col"] { padding: 10px; }
.exotic-app .ghostkit-col-content, .exotic-app .bg-dark-2, .exotic-app .nk-feature, .exotic-app .nk-box-2, .exotic-app .card { color: var(--app-ink) !important; background: rgba(255,253,248,.93) !important; border: 1px solid var(--app-border) !important; border-radius: var(--app-radius) !important; box-shadow: none; }
.exotic-app .ghostkit-col-content { height: 100%; overflow: hidden; }
.exotic-app .ghostkit-col-content .ghostkit-col-content { overflow: visible; background: transparent !important; border: 0 !important; border-radius: 0 !important; }
.exotic-app .bg-dark-2 { padding: 24px !important; }
.exotic-app .ghostkit-icon-box { display: flex; min-height: 125px; align-items: center; gap: 18px; padding: 24px; }
.exotic-app .ghostkit-icon-box-icon { flex: 0 0 auto; }
.exotic-app .ghostkit-icon-box-icon img { max-width: 74px; max-height: 74px; object-fit: contain; filter: drop-shadow(0 9px 12px rgba(16,43,34,.12)); }
.exotic-app .nk-feature-title, .exotic-app .ghostkit-icon-box h3, .exotic-app .ghostkit-icon-box h4 { color: var(--app-ink) !important; }
.exotic-app .ghostkit-icon-box h3 { margin: 0 0 5px; font-size: 19px; }.exotic-app .ghostkit-icon-box h4 { margin: 0; font-size: 13px; }
.exotic-app .ghostkit-icon-box a { color: var(--app-orange) !important; text-decoration: none; }
.exotic-app [class*="ghostkit-custom-Z77"], .exotic-app [class*="ghostkit-custom-Z16"] { background: var(--app-paper) !important; }
.exotic-app .ghostkit-col-content > h4.bg-dark-2 { margin: 0 !important; padding: 24px 26px 16px !important; border-bottom: 0 !important; border-radius: 18px 18px 0 0 !important; font-size: 16px; text-transform: none; }
.exotic-app .ghostkit-col-content > h4.bg-dark-2 + form.bg-dark-2 { margin-top: 0 !important; padding-top: 14px !important; border-top: 0 !important; border-radius: 0 0 18px 18px !important; }
.exotic-app .nk-post, .exotic-app article { border-radius: var(--app-radius); }

/* Buttons and links */
.exotic-app .nk-btn, .exotic-app .ghostkit-button, .exotic-app button[type="submit"], .exotic-app input[type="submit"], .exotic-app .btn { display: inline-flex; min-height: 45px; align-items: center; justify-content: center; padding: 0 20px !important; color: var(--app-ink) !important; background: var(--app-lime) !important; border: 0 !important; border-radius: 50px !important; box-shadow: none !important; font-family: Manrope, sans-serif !important; font-size: 12px !important; font-weight: 800 !important; letter-spacing: 0 !important; text-transform: none !important; cursor: pointer; }
.exotic-app .nk-btn:hover, .exotic-app button[type="submit"]:hover, .exotic-app .btn:hover { color: var(--app-ink) !important; background: #e7ff79 !important; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(158,187,39,.2) !important; }
.exotic-app .nk-btn-color-white, .exotic-app .btn-secondary, .exotic-app .btn-default { background: #ece8dc !important; }
.exotic-app .btn-danger, .exotic-app button.btn-danger { color: #fff !important; background: #dc5c4d !important; }
.exotic-app a:not(.app-brand):not(.app-primary-action):focus-visible, .exotic-app button:focus-visible, .exotic-app input:focus-visible, .exotic-app select:focus-visible, .exotic-app textarea:focus-visible { outline: 3px solid rgba(255,112,72,.28); outline-offset: 3px; }

/* Forms */
.exotic-app label { color: var(--app-ink); font-size: 12px; font-weight: 700; }
.exotic-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), .exotic-app textarea, .exotic-app select, .exotic-app .form-control, .exotic-app .select2-container .select2-selection { width: 100%; min-height: 49px; padding: 11px 15px; color: var(--app-ink) !important; background: #fff !important; border: 1px solid var(--app-border) !important; border-radius: 13px !important; box-shadow: none !important; font-family: "DM Sans", sans-serif !important; font-size: 13px; }
.exotic-app textarea { min-height: 120px; resize: vertical; }
.exotic-app input:focus, .exotic-app textarea:focus, .exotic-app select:focus { border-color: var(--app-orange) !important; }
.exotic-app .select2-container { max-width: 100%; }.exotic-app .select2-container .select2-selection { display: flex; align-items: center; }.exotic-app .select2-selection__rendered { color: var(--app-ink) !important; line-height: 1.3 !important; }.exotic-app .select2-selection__arrow { top: 12px !important; right: 8px !important; }
.exotic-app .custom-control-label::before { background: #fff; border-color: var(--app-border); }

/* Tables and data views */
.exotic-app table { width: 100% !important; margin: 0 0 24px !important; overflow: hidden; color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-collapse: separate !important; border-spacing: 0 !important; border-radius: 18px; }
.exotic-app table thead { color: #fff; background: var(--app-forest); }
.exotic-app table th { padding: 14px 16px !important; border: 0 !important; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.exotic-app table td { padding: 15px 16px !important; color: var(--app-ink); border: 0 !important; border-bottom: 1px solid var(--app-border) !important; font-size: 13px; vertical-align: middle; }
.exotic-app table tr:last-child td { border-bottom: 0 !important; }
.exotic-app table tbody tr { transition: background .2s; }.exotic-app table tbody tr:hover { background: #f1ede2; }
.exotic-app table tbody tr { background:var(--app-paper)!important; }.exotic-app table tbody tr:nth-child(even) { background:#f4f1e8!important; }.exotic-app table tbody th { color:var(--app-ink)!important; background:transparent!important; border:0!important; border-bottom:1px solid var(--app-border)!important; }
.exotic-app table img { max-width: 76px; max-height: 76px; object-fit: contain; margin: auto; }

/* Alerts, badges, pagination, tabs */
.exotic-app .alert { padding: 16px 19px; color: var(--app-ink); background: #e9f5d1; border: 1px solid rgba(111,151,41,.2); border-radius: 14px; }
.exotic-app .ghostkit-alert { display: flex; align-items: center; gap: 18px; margin: 0 0 34px; padding: 20px 24px !important; color: var(--app-ink) !important; background: rgba(255,253,248,.92) !important; border: 1px solid var(--app-border) !important; border-left: 4px solid var(--app-orange) !important; border-radius: 17px !important; }
.exotic-app .ghostkit-alert-icon { flex: 0 0 auto; }.exotic-app .ghostkit-alert-icon img { width: 58px; height: 58px; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(16,43,34,.14)); }.exotic-app .ghostkit-alert-content p { margin: 0; color: var(--app-muted) !important; }.exotic-app .ghostkit-alert-content strong { color: var(--app-ink); }
.exotic-app .alert-danger { background: #fff0ed; border-color: rgba(220,92,77,.24); }.exotic-app .alert-info { background: #e8f6f8; border-color: rgba(75,150,166,.22); }
.route-dashboard .ghostkit-alert { align-items:flex-start; }.route-dashboard .ghostkit-alert-content { min-width:0; flex:1; }.route-dashboard .ghostkit-alert-content > p { display:block; }.route-dashboard .ghostkit-alert .col-md-12 { width:100%; max-width:none; padding:0; }.route-dashboard .ghostkit-alert .row { margin-inline:0; }.route-dashboard .ghostkit-alert .col-md-6[style*="background-color"] { width:100%; max-width:100%; flex:0 0 100%; padding:18px 20px!important; color:var(--app-ink)!important; background:#edf1e8!important; border:1px solid var(--app-border); border-radius:16px; }.route-dashboard .ghostkit-alert .displayText,.route-dashboard .ghostkit-alert .displayText p { color:var(--app-muted)!important; }.route-dashboard .ghostkit-alert .displayText strong { color:var(--app-ink); }.route-dashboard .ghostkit-alert h4.bg-dark-2 { padding:0 0 15px!important; background:transparent!important; border:0!important; }
.exotic-app .badge, .exotic-app .nk-badge { padding: 6px 9px; color: var(--app-ink); background: var(--app-lime); border-radius: 50px; font-size: 9px; font-weight: 800; }
.exotic-app .pagination { display: flex; gap: 6px; justify-content: center; }.exotic-app .page-link { display: grid; min-width: 38px; height: 38px; place-items: center; color: var(--app-ink); background: #fff; border: 1px solid var(--app-border); border-radius: 50% !important; }.exotic-app .active > .page-link { background: var(--app-forest); color: #fff; }
.exotic-app .nav-tabs { gap: 6px; border: 0; }.exotic-app .nav-tabs .nav-link { color: var(--app-muted); background: transparent; border: 0; border-radius: 50px; font-size: 12px; font-weight: 700; }.exotic-app .nav-tabs .nav-link.active { color: var(--app-ink); background: var(--app-lime); }

/* Feature-specific legacy surfaces */
.exotic-app .nk-image-slider { overflow: hidden; border-radius: 28px; box-shadow: var(--app-shadow); }
.exotic-app .nk-image-slider img { width: 100%; min-height: 340px; object-fit: cover; }
.exotic-app .nk-image-slider-content { background: linear-gradient(transparent, rgba(8,37,29,.9)); }
.exotic-app .nk-image-slider-content h3, .exotic-app .nk-image-slider-content p { color: #fff !important; }
.exotic-app .progress { height: 9px; overflow: hidden; background: #e6e1d6; border-radius: 20px; }.exotic-app .progress-bar { background: var(--app-lime); }
.exotic-app .modal-content { color: var(--app-ink); background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 22px; box-shadow: var(--app-shadow); }.exotic-app .modal-header, .exotic-app .modal-footer { border-color: var(--app-border); }
.exotic-app .modal.show { display: block; overflow-x: hidden; overflow-y: auto; }
.exotic-app .modal.show .modal-dialog { transform: none; }
.exotic-app .app-modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(19, 34, 43, .62); }
.exotic-app .modal { z-index: 1050; }
.exotic-app.modal-open { overflow: hidden; }
.exotic-app .app-empty-state { display:flex; min-height:290px; align-items:center; flex-direction:column; justify-content:center; text-align:center; border-radius:0 0 18px 18px!important; }.exotic-app .app-empty-state img { width:72px; height:72px; margin-bottom:14px; object-fit:contain; opacity:.72; }.exotic-app .app-empty-state h4 { margin:0 0 5px; font-size:20px; }.exotic-app .app-empty-state p { margin:0 0 19px; }
.exotic-app .list-group-item { color: var(--app-ink); background: var(--app-paper); border-color: var(--app-border); }
.exotic-app hr { border-color: var(--app-border); }
.exotic-app .bg-dark-2 [style*="color:#fff"], .exotic-app .bg-dark-2 [style*="color: #fff"], .exotic-app .ghostkit-col-content [style*="color:#fff"] { color:var(--app-ink)!important; }
.exotic-app .dropdown-menu { color: var(--app-ink); background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 14px; box-shadow: var(--app-shadow); }.exotic-app .dropdown-item { color: var(--app-ink); }

/* Dashboard command center */
.dashboard-legacy-welcome { display: none !important; }
.dashboard-overview { margin: -8px 0 42px; }
.dashboard-welcome { position: relative; display: flex; min-height: 185px; align-items: flex-end; justify-content: space-between; gap: 30px; padding: 34px 38px; overflow: hidden; color: #fff; background: linear-gradient(125deg, #153f35, var(--app-deep)); border-radius: 26px; }
.dashboard-welcome::after { content: ""; position: absolute; width: 360px; height: 360px; right: 7%; top: -250px; border: 52px solid rgba(217,247,95,.07); border-radius: 50%; }
.dashboard-welcome > * { position: relative; z-index: 1; }
.dashboard-eyebrow { display: block; margin-bottom: 8px; color: #6f887f; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.dashboard-welcome .dashboard-eyebrow { color: var(--app-lime); }
.dashboard-welcome h2 { margin: 0 0 6px; color: #fff; font-size: clamp(26px, 3.5vw, 43px); }
.dashboard-welcome p { max-width: 590px; margin: 0; color: rgba(255,255,255,.62); }
.dashboard-primary { display: grid; min-width: 235px; padding: 18px 50px 18px 20px; color: var(--app-ink) !important; background: var(--app-lime); border-radius: 16px; text-decoration: none !important; }
.dashboard-primary span { font-family: Manrope, sans-serif; font-size: 13px; font-weight: 800; }.dashboard-primary small { color: #486130; font-size: 10px; }.dashboard-primary i { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 22px; font-style: normal; }.dashboard-primary:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(0,0,0,.18); }
.dashboard-stat-grid { display: grid; margin: 14px 0 28px; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dashboard-stat { display: flex; min-height: 125px; padding: 18px 20px; flex-direction: column; color: var(--app-ink) !important; background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 18px; text-decoration: none !important; }
.dashboard-stat:hover { transform: translateY(-3px); border-color: rgba(16,43,34,.25); box-shadow: 0 14px 32px rgba(16,43,34,.08); }.dashboard-stat > span { color: #71877e; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.dashboard-stat strong { margin: auto 0 0; font-family: Manrope, sans-serif; font-size: 29px; letter-spacing: -.05em; line-height: 1.15; }.dashboard-stat strong em { color: #9aa8a3; font-size: 15px; font-style: normal; }.dashboard-stat .dashboard-stat__word { color: var(--app-orange); font-size: 23px; }.dashboard-stat small { color: var(--app-muted); font-size: 10px; }
.dashboard-workspace { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(315px, .8fr); gap: 18px; }
.dashboard-actions, .dashboard-inbox { padding: 25px; background: rgba(255,253,248,.92); border: 1px solid var(--app-border); border-radius: 22px; }
.dashboard-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }.dashboard-section-heading .dashboard-eyebrow { margin: 0; }.dashboard-section-heading h3 { margin: 1px 0 0; font-size: 22px; }.dashboard-count { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--app-orange); border-radius: 50%; font-size: 11px; font-weight: 800; }
.dashboard-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }.dashboard-action { position: relative; display: grid; min-height: 132px; padding: 18px 45px 18px 18px; align-content: end; color: var(--app-ink) !important; background: #f1eee5; border: 1px solid transparent; border-radius: 17px; text-decoration: none !important; }.dashboard-action:hover { transform: translateY(-3px); border-color: rgba(16,43,34,.12); }.dashboard-action--lime { background: #e8f6ac; }.dashboard-action--orange { background: #ffddd3; }.dashboard-action__icon { position: absolute; left: 18px; top: 16px; color: var(--app-orange); font-size: 22px; font-weight: 800; }.dashboard-action strong { font-family: Manrope, sans-serif; font-size: 14px; }.dashboard-action small { margin-top: 3px; color: var(--app-muted); font-size: 10px; }.dashboard-action > i { position: absolute; right: 18px; bottom: 18px; font-size: 18px; font-style: normal; }
.dashboard-request-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }.dashboard-request-grid a { display: flex; padding: 12px; align-items: center; gap: 10px; color: var(--app-ink) !important; background: #f1eee5; border-radius: 12px; text-decoration: none !important; }.dashboard-request-grid strong { color: var(--app-orange); font-size: 19px; }.dashboard-request-grid span { color: var(--app-muted); font-size: 10px; line-height: 1.2; }
.dashboard-inbox__toolbar { display: flex; align-items: center; justify-content: space-between; padding: 9px 0 12px; border-bottom: 1px solid var(--app-border); color: var(--app-muted); font-size: 10px; font-weight: 700; }.dashboard-inbox__toolbar form { margin: 0; }.dashboard-inbox__toolbar button { min-height: 0 !important; padding: 0 !important; color: var(--app-orange) !important; background: transparent !important; font-family: "DM Sans", sans-serif !important; font-size: 10px !important; }.dashboard-inbox__toolbar button:hover { transform: none !important; box-shadow: none !important; }
.dashboard-notification { display: grid; padding: 13px 0; grid-template-columns: 28px 1fr; gap: 9px; border-bottom: 1px solid var(--app-border); }.dashboard-notification:last-child { border-bottom: 0; }.dashboard-notification__mark { display: grid; width: 28px; height: 28px; place-items: center; color: #789428; background: #edf5cf; border-radius: 50%; font-size: 9px; font-weight: 800; }.dashboard-notification.is-unread .dashboard-notification__mark { color: #fff; background: var(--app-orange); }.dashboard-notification form { margin: 0; }.dashboard-notification button { display: inline !important; min-height: 0 !important; padding: 0 !important; color: var(--app-ink) !important; background: transparent !important; border-radius: 0 !important; font-family: "DM Sans", sans-serif !important; font-size: 11px !important; line-height: 1.35; text-align: left; }.dashboard-notification button:hover { transform: none !important; box-shadow: none !important; }.dashboard-notification small { display: block; margin-top: 3px; color: var(--app-muted); font-size: 9px; }.dashboard-inbox-empty { display: flex; min-height: 190px; align-items: center; justify-content: center; flex-direction: column; text-align: center; }.dashboard-inbox-empty > span { display: grid; width: 38px; height: 38px; margin-bottom: 9px; place-items: center; color: #6d8919; background: #e8f6ac; border-radius: 50%; }.dashboard-inbox-empty strong { font-size: 12px; }.dashboard-inbox-empty small { max-width: 210px; margin-top: 3px; color: var(--app-muted); font-size: 10px; }

/* Notifications */
.notifications-page { width: min(1040px, calc(100% - 40px)); }
.notifications-hero { min-height: 255px; }
.notifications-hero__status { display: grid; min-width: 190px; min-height: 165px; padding: 24px; place-items: center; align-content: center; color: var(--app-ink); background: var(--app-lime); border-radius: 24px; box-shadow: 0 18px 38px rgba(16,43,34,.13); }
.notifications-hero__status i { margin-bottom: 8px; color: var(--app-orange); font-size: 28px; }
.notifications-hero__status strong { font-family: Manrope, sans-serif; font-size: 38px; letter-spacing: -.06em; line-height: 1; }
.notifications-hero__status span { margin-top: 5px; color: #52613e; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.notifications-section .feature-section__header form, .notification-card form { margin: 0; }
.notifications-section .feature-button--secondary { color: var(--app-ink) !important; background: #f1eee5 !important; }
.notifications-list { display: grid; gap: 10px; }
.notification-card { display: grid; padding: 17px 18px; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 14px; background: #f7f4ed; border: 1px solid var(--app-border); border-radius: 16px; transition: transform .2s, border-color .2s, box-shadow .2s; }
.notification-card:hover { transform: translateY(-1px); border-color: rgba(16,43,34,.22); box-shadow: 0 10px 24px rgba(16,43,34,.06); }
.notification-card.is-unread { background: #fffdf8; border-left: 4px solid var(--app-orange); }
.notification-card__icon { display: grid; width: 42px; height: 42px; place-items: center; color: #6b841c; background: #eaf3c8; border-radius: 50%; font-size: 13px; font-weight: 800; }
.notification-card.is-unread .notification-card__icon { color: #fff; background: var(--app-orange); }
.notification-card__message { min-height: 0 !important; padding: 0 !important; color: var(--app-ink) !important; background: transparent !important; border-radius: 0 !important; font-family: Manrope, sans-serif !important; font-size: 14px !important; font-weight: 800 !important; line-height: 1.35; text-align: left; }
.notification-card__message:hover { color: var(--app-orange) !important; transform: none !important; box-shadow: none !important; }
.notification-card__body p { display: flex; margin: 4px 0 0; align-items: center; gap: 6px; color: var(--app-muted); font-size: 10px; }
.notification-card__body p a { color: #456057; font-weight: 800; text-decoration: none; }
.notification-card__actions { display: flex; min-width: 76px; align-items: flex-end; flex-direction: column; gap: 5px; }
.notification-card__actions button { min-height: 0 !important; padding: 0 !important; color: var(--app-orange) !important; background: transparent !important; border-radius: 0 !important; font-family: "DM Sans", sans-serif !important; font-size: 9px !important; font-weight: 800 !important; }
.notification-card__actions button:hover { transform: none !important; box-shadow: none !important; }
.notification-card__unread, .notification-card__read { padding: 3px 7px; color: #fff; background: var(--app-orange); border-radius: 10px; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.notification-card__read { color: var(--app-muted); background: #e7e4dc; }
.notifications-section .feature-pagination { margin-bottom: 0; }

@media (max-width: 700px) {
    .notifications-page { width: calc(100% - 24px); }
    .app-notifications-panel { position: fixed; top: 64px; right: 12px; left: 12px; width: auto; }
    .notifications-hero__status { width: 100%; min-width: 0; min-height: 110px; grid-template-columns: auto auto; column-gap: 10px; }
    .notifications-hero__status i { margin: 0; grid-row: span 2; }
    .notifications-hero__status span { margin: 0; }
    .notifications-section .feature-section__header { flex-direction: column; }
    .notification-card { padding: 15px; grid-template-columns: 36px minmax(0,1fr); align-items: start; gap: 11px; }
    .notification-card__icon { width: 36px; height: 36px; }
    .notification-card__actions { grid-column: 2; align-items: center; flex-direction: row; }
    .feature-pagination { flex-wrap: wrap; }
}

/* Trading hub */
.route-trades .ghostkit-grid:first-of-type .ghostkit-icon-box, .route-trades .ghostkit-icon-box { height: 100%; color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border); border-radius: 18px; }
.route-trades .ghostkit-icon-box-content, .route-trades .ghostkit-icon-box-content h3, .route-trades .ghostkit-icon-box-content h4 { color: var(--app-ink) !important; }.route-trades .ghostkit-icon-box-content h4 a { display: inline-grid; min-width: 36px; height: 36px; place-items: center; color: var(--app-ink) !important; background: var(--app-lime); border-radius: 50%; font-size: 14px; }

/* PvP: matchmaking and live battle */
.pvp-queue-shell { width: min(1060px, 100%); margin: 0 auto; }.pvp-queue-hero { display: grid; padding: 34px; grid-template-columns: minmax(0,1fr) 230px; gap: 30px; color: #fff; background: linear-gradient(135deg, var(--app-deep), #174d3f); border-radius: 26px; }.pvp-queue-hero h1 { margin: 8px 0; color: #fff; font-size: clamp(30px, 5vw, 52px); }.pvp-queue-hero p { max-width: 580px; margin: 0; color: rgba(255,255,255,.62); }.pvp-queue-kicker { color: var(--app-lime); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }.pvp-readiness { display: flex; padding: 18px; align-items: center; justify-content: center; flex-direction: column; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; text-align: center; }.pvp-readiness strong { color: #fff; font-size: 34px; line-height: 1; }.pvp-readiness span { margin-top: 6px; color: rgba(255,255,255,.55); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.pvp-queue-panel { max-width: none !important; margin: 16px 0 0 !important; padding: 28px !important; color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-radius: 22px; }.pvp-queue-panel h2 { margin: 0 0 4px; font-size: 23px; }.pvp-queue-panel > p { margin-top: 0; }.pvp-queue-options { grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 9px !important; margin: 22px 0 !important; }.pvp-format { position: relative; min-height: 105px; padding: 17px !important; color: var(--app-ink); background: #f1eee5 !important; border: 1px solid transparent !important; border-radius: 15px; text-align: left !important; }.pvp-format:has(input:checked) { background: #e8f6ac !important; border-color: #9bb62d !important; box-shadow: none !important; }.pvp-format input { position: absolute; right: 12px; top: 13px; accent-color: #789428; }.pvp-format strong { display: block; margin-top: 20px; font-family: Manrope, sans-serif; font-size: 13px; }.pvp-format small { display: block; margin-top: 3px; color: var(--app-muted); font-size: 9px; line-height: 1.35; }.pvp-queue-status { padding: 22px !important; color: var(--app-ink); background: #edf5cf !important; border-radius: 15px; }.pvp-queue-meta { display: grid; margin-top: 15px; grid-template-columns: repeat(3, 1fr); gap: 9px; }.pvp-queue-meta div { padding: 15px; background: rgba(255,253,248,.72); border: 1px solid var(--app-border); border-radius: 14px; }.pvp-queue-meta strong { display: block; font-size: 11px; }.pvp-queue-meta span { color: var(--app-muted); font-size: 9px; }
.pvp-arena { color: var(--app-ink) !important; }.pvp-heading { padding: 26px 30px; background: var(--app-deep); border-radius: 22px; }.pvp-heading h3, .pvp-heading p, .pvp-heading a { color: #fff !important; }.pvp-heading p { opacity: .65; }.pvp-status { color: #fff; }.pvp-field { margin-top: 16px; }.pvp-pokemon-card { color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-top: 4px solid var(--app-orange) !important; border-radius: 20px !important; box-shadow: 0 15px 35px rgba(16,43,34,.08); }.pvp-pokemon-card h4, .pvp-pokemon-card p { color: var(--app-ink) !important; }.pvp-versus { color: var(--app-orange) !important; }.pvp-controls, .pvp-log, .pvp-result { color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-radius: 20px !important; }.pvp-choice, .pvp-switch-list button { color: var(--app-ink) !important; background: #f1eee5 !important; border: 1px solid var(--app-border) !important; border-radius: 12px !important; }.pvp-choice:hover, .pvp-switch-list button:hover { background: #e8f6ac !important; border-color: #9bb62d !important; }.pvp-choice small, .pvp-log p { color: var(--app-muted) !important; }

/* Additional game-state refinements */
.pvp-format.is-disabled { opacity: .48; cursor: not-allowed; }
.pvp-format.is-disabled strong { color: var(--app-muted); }
.pvp-waiting-card { max-width: 760px !important; margin: 24px auto 0 !important; padding: 32px !important; color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-left: 4px solid var(--app-orange) !important; border-radius: 20px !important; }
.pvp-waiting-card h4 { font-size: 24px; }
.pvp-challenge-actions { display: flex; gap: 10px; }

/* Clans */
.clan-panel, .clan-card { color: var(--app-ink) !important; background: var(--app-paper) !important; border: 1px solid var(--app-border) !important; border-radius: 20px; box-shadow: none; }.clan-panel { padding: 24px !important; border-left: 4px solid var(--app-orange) !important; }.clan-card { position: relative; padding: 24px !important; overflow: hidden; border-top: 1px solid var(--app-border) !important; }.clan-card::after { content: ""; position: absolute; width: 95px; height: 95px; right: -45px; top: -45px; background: var(--app-lime); border-radius: 50%; opacity: .55; }.clan-card h4, .clan-stat { color: var(--app-ink) !important; }.clan-tag { color: var(--app-orange) !important; }.clan-muted { color: var(--app-muted) !important; }.clan-form-control { color: var(--app-ink) !important; background: #fff !important; border: 1px solid var(--app-border) !important; border-radius: 12px; }.clan-alert { color: var(--app-ink) !important; background: #edf5cf !important; border-left-color: #8daa2b !important; border-radius: 13px; }.clan-alert-error { background: #fff0ed !important; border-left-color: var(--app-orange) !important; }

/* Public trainer profile */
.route-profile-view .ghostkit-alert > .container img { width: 100%; height: 250px; object-fit: cover; border-radius: 12px; }
.route-profile-view .ghostkit-icon-box { min-height: 92px; padding: 18px !important; color: var(--app-ink) !important; background: #f1eee5 !important; border: 0 !important; border-radius: 15px !important; }
.route-profile-view .ghostkit-col-content > .ghostkit-icon-box + .bg-dark-2 { margin-top: -16px !important; padding-top: 34px !important; border-radius: 0 0 18px 18px !important; }
.route-profile-view .ghostkit-icon-box-content h3, .route-profile-view .ghostkit-icon-box-content a { color: var(--app-ink) !important; }
.route-profile-view .ghostkit-col-content > .ghostkit-icon-box .ghostkit-icon-box-icon img { max-height: 170px; }
.route-profile-view .bg-dark-2, .route-profile-view .bg-dark-2 p, .route-profile-view .bg-dark-2 div { color: var(--app-ink) !important; }
.route-profile-view .bg-dark-2 small { color: var(--app-muted) !important; }
.route-profile-view .ghostkit-col-content[style*="margin-top"] { margin-top: 12px !important; }

/* Login and registration */
.route-login .site-content, .route-register .site-content, .route-password-request .site-content, [class*="route-password"] .site-content { padding-top: 55px; }
.route-login .entry-content > .row, .route-register .entry-content > .row { align-items: stretch; }
.route-login .bg-dark-2, .route-register .bg-dark-2, [class*="route-password"] .bg-dark-2 { color: var(--app-ink) !important; background: var(--app-paper) !important; }

/* Maps and battle playfields */
.route-maps .entry-content, .route-yard .entry-content, .route-yardexplore .entry-content, .route-battle-get .entry-content, .route-battle-post .entry-content { position: relative; }
.exotic-app canvas { max-width: 100%; border-radius: 20px; box-shadow: 0 16px 45px rgba(16,43,34,.15); }
.exotic-app .battle-log, .exotic-app [class*="battle-log"] { padding: 18px; background: var(--app-deep); border-radius: 16px; color: #fff; }
.route-maps .ghostkit-grid-inner > .ghostkit-col-1 { display: none; }
.route-maps .ghostkit-grid-inner { align-items: stretch; justify-content: center; }
.route-maps #map { margin: 0 auto !important; overflow: hidden; border: 0 !important; border-radius: 18px; box-shadow: 0 18px 35px rgba(16,43,34,.14); }
.route-maps .ghostkit-icon-box:empty { display: none; }
.route-maps .ghostkit-icon-box:empty + .bg-dark-2 { height: 100%; margin-top: 0 !important; padding: 24px !important; }
.route-maps .move { width: 42px; height: 42px; padding: 7px; object-fit: contain; background: #f1eee5; border-radius: 11px; cursor: pointer; }
.route-maps .move:hover, .route-maps .move:focus { background: var(--app-lime); outline: none; transform: translateY(-2px); }
.route-maps #defaultBox, .route-maps #defaultBox p { color: var(--app-muted) !important; }
.route-maps #appearBox, .route-maps #appearBox p { color: var(--app-ink) !important; }
.route-maps .ghostkit-icon-box.ghostkit-custom-Z1caIr8 { display: none; }
.route-maps .ghostkit-icon-box.ghostkit-custom-Z1caIr8 + .bg-dark-2 { margin-top: 0 !important; }

/* PvE battle selection */
.battle-select-shell { width: min(1060px, calc(100% - 40px)) !important; }
.battle-select-hero { display: grid; padding: 34px; grid-template-columns: minmax(0,1fr) 300px; align-items: center; gap: 30px; color: #fff; background: linear-gradient(135deg, var(--app-deep), #174d3f); border-radius: 26px; }
.battle-select-kicker { display: block; margin-bottom: 7px; color: #789428; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.battle-select-hero .battle-select-kicker { color: var(--app-lime); }.battle-select-hero h1 { margin: 0 0 8px; color: #fff; font-size: clamp(30px, 4vw, 48px); }.battle-select-hero p { margin: 0; color: rgba(255,255,255,.62); }.battle-select-hero p strong { color: #fff; }
.battle-select-versus { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; text-align: center; }.battle-select-versus span { display: grid; min-height: 86px; padding: 12px; place-items: center; color: #fff; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.09); border-radius: 15px; font-size: 11px; font-weight: 800; overflow-wrap: anywhere; }.battle-select-versus b { color: var(--app-lime); font-size: 13px; }
.battle-select-messages { margin: 14px 0 0; padding: 16px 20px; background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 15px; }.battle-select-messages p { margin: 3px 0; font-size: 12px; }.battle-select-messages .is-success { color: #5f7c10; }.battle-select-messages .is-warning { color: #c04d3f; }
.battle-select-grid { display: grid; margin-top: 16px; grid-template-columns: minmax(0,1.45fr) minmax(300px,.7fr); gap: 16px; }.battle-roster, .battle-opponent { padding: 26px; background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 22px; }.battle-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 17px; }.battle-section-heading h2 { margin: 0; font-size: 22px; }.battle-section-heading a { color: var(--app-orange); font-size: 10px; font-weight: 800; }
.battle-roster-list { display: grid; gap: 8px; }.exotic-app .battle-roster-card { position: relative; display: grid !important; width: 100%; min-height: 104px; padding: 12px 45px 12px 12px !important; grid-template-columns: 82px minmax(0,1fr) auto; align-items: center; gap: 14px; color: var(--app-ink) !important; background: #f1eee5 !important; border: 1px solid transparent !important; border-radius: 15px !important; text-align: left; }.exotic-app .battle-roster-card:hover { background: #e8f6ac !important; border-color: #9bb62d !important; }.exotic-app .battle-roster-card:disabled { opacity: .48; cursor: not-allowed; transform: none !important; }.battle-roster-card > img { width: 76px; height: 76px; object-fit: contain; image-rendering: pixelated; }.battle-roster-card__body { display: flex; min-width: 0; flex-direction: column; }.battle-roster-card__body small, .battle-roster-card__body em { color: var(--app-muted); font-size: 9px; font-style: normal; }.battle-roster-card__body strong { font-size: 14px; }.battle-health { width: 100%; height: 7px; overflow: hidden; margin: 8px 0 5px; background: rgba(16,43,34,.12); border-radius: 20px; }.battle-health i { display: block; height: 100%; background: linear-gradient(90deg,#78a926,var(--app-lime)); border-radius: inherit; }.battle-roster-card__types { display: flex; flex-direction: column; gap: 3px; }.battle-roster-card__types img { width: auto; max-width: 52px; height: 18px; object-fit: contain; }.battle-card-arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 17px; font-style: normal; }
.battle-opponent-list { display: grid; gap: 8px; }.battle-opponent-card { display: flex; min-height: 87px; padding: 10px; align-items: center; gap: 12px; background: #f1eee5; border-radius: 14px; }.battle-opponent-card > img { width: 66px; height: 66px; object-fit: contain; image-rendering: pixelated; }.battle-opponent-card div { display: flex; min-width: 0; flex-direction: column; }.battle-opponent-card small, .battle-opponent-card span { color: var(--app-muted); font-size: 9px; }.battle-opponent-card strong { font-size: 13px; }.battle-opponent-note { margin: 17px 0 0; padding-top: 15px; border-top: 1px solid var(--app-border); font-size: 10px; }

/* Gym directory */
.gym-directory { width: min(1180px, calc(100% - 40px)) !important; }
.gym-hero { position: relative; display: flex; min-height: 220px; padding: 38px 42px; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden; color: #fff; background: linear-gradient(125deg, #153f35, var(--app-deep)); border-radius: 28px; }
.gym-hero::after { content: ""; position: absolute; width: 330px; height: 330px; right: -110px; top: -180px; border: 1px solid rgba(217,247,95,.18); border-radius: 50%; box-shadow: 0 0 0 48px rgba(217,247,95,.025), 0 0 0 96px rgba(217,247,95,.02); }
.gym-hero > * { position: relative; z-index: 1; }
.gym-hero > div > span { color: var(--app-lime); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.gym-hero h1 { margin: 8px 0; color: #fff; font-size: clamp(34px, 5vw, 58px); }
.gym-hero p { max-width: 650px; margin: 0; color: rgba(255,255,255,.62); }
.gym-hero > img { width: 110px; height: 110px; margin-right: 40px; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(0,0,0,.25)); }
.gym-region-nav { position: sticky; z-index: 20; top: 82px; display: flex; margin: 14px 0 28px; padding: 10px; overflow-x: auto; gap: 5px; background: rgba(246,242,232,.92); border: 1px solid var(--app-border); border-radius: 50px; backdrop-filter: blur(14px); scrollbar-width: none; }
.gym-region-nav::-webkit-scrollbar { display: none; }
.gym-region-nav a { flex: 0 0 auto; padding: 8px 14px; color: var(--app-muted); border-radius: 50px; font-size: 10px; font-weight: 800; text-decoration: none; }
.gym-region-nav a:hover { color: var(--app-ink); background: var(--app-lime); }
.gym-regions { display: grid; gap: 28px; }
.gym-region { scroll-margin-top: 150px; }
.gym-region > header { display: flex; align-items: flex-end; justify-content: space-between; padding: 0 4px 12px; border-bottom: 1px solid var(--app-border); }
.gym-region > header span { color: var(--app-orange); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.gym-region > header h2 { margin: 0; font-size: 25px; }
.gym-region > header small { color: var(--app-muted); font-size: 10px; }
.gym-card-grid { display: grid; margin-top: 12px; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.gym-card { display: flex; min-height: 260px; padding: 18px; flex-direction: column; background: var(--app-paper); border: 1px solid var(--app-border); border-radius: 18px; }
.gym-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(16,43,34,.08); }
.gym-card__trainer { display: flex; align-items: center; gap: 12px; }
.gym-card__trainer > img { width: 74px; height: 74px; object-fit: contain; }
.gym-card__trainer div { min-width: 0; }
.gym-card__trainer span { color: var(--app-muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gym-card__trainer h3 { margin: 1px 0; font-size: 16px; }
.gym-card__trainer small { color: var(--app-orange); font-size: 9px; font-weight: 700; }
.gym-card__badge { display: flex; margin: 17px 0; padding: 12px; align-items: center; gap: 10px; background: #f1eee5; border-radius: 12px; }
.gym-card__badge img { width: 36px; height: 36px; object-fit: contain; }
.gym-card__badge span { color: var(--app-muted); font-size: 10px; }
.gym-card__action { display: flex; min-height: 42px; margin-top: auto; padding: 0 14px; align-items: center; justify-content: space-between; color: var(--app-ink) !important; background: var(--app-lime); border-radius: 50px; font-size: 11px; font-weight: 800; text-decoration: none !important; }
.gym-card__action:hover { background: #e7ff79; transform: translateY(-2px); }

/* Pokémon Center */
.pokemon-center { width:min(1180px,calc(100% - 40px))!important; color:var(--app-ink); }
.pokemon-center-hero { position:relative; display:flex; min-height:245px; padding:42px 46px; overflow:hidden; align-items:center; justify-content:space-between; gap:35px; color:#fff; background:linear-gradient(125deg,var(--app-deep),var(--app-forest)); border-radius:28px; }
.pokemon-center-hero::after { position:absolute; right:-85px; top:-155px; width:410px; height:410px; border:1px solid rgba(217,247,95,.23); border-radius:50%; box-shadow:0 0 0 50px rgba(217,247,95,.03),0 0 0 100px rgba(217,247,95,.02); content:""; }
.pokemon-center-hero__copy { position:relative; z-index:1; max-width:660px; }
.pokemon-center-hero__copy > span,.pokemon-center-panel__header > div > span { color:var(--app-lime); font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.pokemon-center-hero h1 { margin:5px 0 10px; color:#fff; font-size:clamp(35px,5vw,58px); letter-spacing:-.055em; line-height:1; }
.pokemon-center-hero p { max-width:590px; margin:0; color:rgba(255,255,255,.62); font-size:14px; line-height:1.6; }
.pokemon-center-hero__status { position:relative; z-index:1; display:grid; min-width:325px; padding:20px; grid-template-columns:1fr 1fr 112px; align-items:center; gap:8px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:20px; backdrop-filter:blur(10px); }
.pokemon-center-hero__status > div { padding:0 12px; border-right:1px solid rgba(255,255,255,.1); }
.pokemon-center-hero__status span,.pokemon-center-hero__status strong { display:block; }
.pokemon-center-hero__status span { color:rgba(255,255,255,.45); font-size:8px; font-weight:800; text-transform:uppercase; }
.pokemon-center-hero__status strong { margin-top:3px; color:#fff; font-size:29px; line-height:1; }
.pokemon-center-hero__status strong small { color:rgba(255,255,255,.48); font-size:12px; }
.pokemon-center-hero__status img { width:112px; height:74px; object-fit:contain; image-rendering:pixelated; }
.pokemon-center-notice { display:flex; margin-top:14px; padding:15px 18px; align-items:center; gap:10px; border:1px solid; border-radius:14px; font-size:11px; font-weight:700; }
.pokemon-center-notice--success { color:#526d16; background:#eff8d5; border-color:#cfe294; }
.pokemon-center-notice--error { color:#9b4034; background:#fff0ed; border-color:#f2c4bd; }
.pokemon-center-layout { display:grid; margin-top:16px; grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr); align-items:start; gap:16px; }
.pokemon-center-panel { background:var(--app-paper); border:1px solid var(--app-border); border-radius:23px; box-shadow:0 15px 38px rgba(16,43,34,.06); }
.pokemon-center-panel__header { display:flex; padding:28px 29px 22px; align-items:flex-start; justify-content:space-between; gap:18px; border-bottom:1px solid var(--app-border); }
.pokemon-center-panel__header > div > span { color:var(--app-orange); }
.pokemon-center-panel__header h2 { margin:3px 0 5px; font-size:25px; letter-spacing:-.035em; }
.pokemon-center-panel__header p { margin:0; color:var(--app-muted); font-size:10px; }
.pokemon-center-panel__icon { display:grid; width:43px; height:43px; flex:0 0 43px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:13px; }
.pokemon-center-swap__form { padding:26px 29px 29px; }
.pokemon-center-swap__flow { display:grid; grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr); align-items:center; gap:12px; }
.pokemon-center-picker { min-width:0; }
.pokemon-center-picker > label { display:flex; margin:0 0 9px; align-items:center; gap:7px; color:var(--app-ink); font-size:9px; font-weight:900; text-transform:uppercase; }
.pokemon-center-picker > label > span { display:grid; width:21px; height:21px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:50%; font-size:8px; }
.pokemon-center-preview { position:relative; min-height:225px; padding:26px 18px 20px; overflow:hidden; background:#f4f1e8; border:1px solid var(--app-border); border-radius:18px; text-align:center; }
.pokemon-center-preview::before { position:absolute; left:50%; top:59px; width:110px; height:110px; background:#fff; border-radius:50%; content:""; transform:translateX(-50%); }
.pokemon-center-preview__slot { display:inline-flex; position:relative; z-index:1; padding:5px 8px; color:var(--app-muted); background:#e8e4d9; border-radius:50px; font-size:8px; font-weight:800; text-transform:uppercase; }
.pokemon-center-preview__visual { position:relative; z-index:1; display:grid; height:120px; place-items:center; }
.pokemon-center-preview__visual img { width:105px; height:105px; object-fit:contain; image-rendering:pixelated; }
.pokemon-center-preview strong,.pokemon-center-preview small { position:relative; z-index:1; display:block; }
.pokemon-center-preview strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.pokemon-center-preview small { margin-top:3px; color:var(--app-muted); font-size:8px; }
.pokemon-center-picker select { margin-top:9px; }
.pokemon-center-swap__direction { display:flex; align-items:center; flex-direction:column; gap:6px; color:var(--app-muted); }
.pokemon-center-swap__direction span { display:grid; width:41px; height:41px; place-items:center; color:#fff; background:var(--app-forest); border-radius:50%; }
.pokemon-center-swap__direction small { font-size:7px; font-weight:800; text-transform:uppercase; }
.pokemon-center-ball { width:62px; height:62px; flex-basis:62px; }
.pokemon-center-ball > span { width:17px; height:17px; }
.pokemon-center-ball.is-hidden { display:none; }
.exotic-app .pokemon-center-primary { display:flex; width:100%; min-height:50px; margin-top:20px; align-items:center; justify-content:center; gap:9px; color:var(--app-deep)!important; background:var(--app-lime)!important; border:0!important; border-radius:999px!important; font-size:11px!important; font-weight:900!important; }
.exotic-app .pokemon-center-primary:hover { background:#e7ff79!important; box-shadow:0 12px 25px rgba(115,147,26,.18)!important; }
.pokemon-center-form-note,.pokemon-center-form-error { margin:9px 0 0; font-size:9px; text-align:center; }
.pokemon-center-form-note { color:var(--app-muted); }
.pokemon-center-form-error { color:#a34236; }
.pokemon-center-empty { min-height:430px; padding:55px 30px; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; }
.pokemon-center-empty h3 { margin:16px 0 5px; font-size:20px; }
.pokemon-center-empty p { max-width:390px; margin:0; font-size:11px; }
.pokemon-center-empty a { display:inline-flex; margin-top:17px; align-items:center; gap:9px; color:var(--app-orange)!important; font-size:10px; font-weight:900; text-decoration:none!important; }
.pokemon-center-panel__header--lineup { align-items:center; }
.pokemon-center-lineup__count { display:grid; width:47px; height:47px; flex:0 0 47px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:14px; font-size:11px; font-weight:900; }
.pokemon-center-lineup__grid { display:grid; padding:15px; gap:8px; }
.pokemon-center-lineup-card { position:relative; display:grid; min-height:93px; padding:10px 12px; grid-template-columns:24px 70px minmax(0,1fr); align-items:center; gap:9px; background:#f4f1e8; border:1px solid transparent; border-radius:15px; }
.pokemon-center-lineup-card.needs-care { background:#fff4ec; border-color:#f2cdbb; }
.pokemon-center-lineup-card__slot { display:grid; width:24px; height:24px; place-items:center; color:var(--app-muted); background:#e5e1d6; border-radius:8px; font-size:8px; font-weight:900; }
.pokemon-center-lineup-card > img { width:70px; height:70px; object-fit:contain; image-rendering:pixelated; }
.pokemon-center-lineup-card__copy { min-width:0; }
.pokemon-center-lineup-card__copy > span,.pokemon-center-lineup-card__copy > strong,.pokemon-center-lineup-card__copy > small { display:block; }
.pokemon-center-lineup-card__copy > span { color:var(--app-orange); font-size:7px; font-weight:800; text-transform:uppercase; }
.pokemon-center-lineup-card__copy > strong { margin:1px 0 5px; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.pokemon-center-lineup-card__copy > small { color:var(--app-muted); font-size:8px; }
.pokemon-center-health > div { height:6px; overflow:hidden; background:#dedbd1; border-radius:20px; }
.pokemon-center-health i { display:block; height:100%; background:linear-gradient(90deg,#6d9d25,var(--app-lime)); border-radius:inherit; }
.pokemon-center-lineup-card.needs-care .pokemon-center-health i { background:linear-gradient(90deg,#e45842,#ff9776); }
.pokemon-center-health small { display:block; margin-top:4px; color:var(--app-muted); font-size:7px; }
.pokemon-center-lineup-card--empty { border:1px dashed rgba(16,43,34,.16); background:#faf8f2; }
.pokemon-center-lineup-card--empty .pokemon-center-ball { width:45px; height:45px; justify-self:center; flex-basis:45px; border-width:3px; opacity:.48; }
.pokemon-center-lineup-card--empty .pokemon-center-ball > span { width:12px; height:12px; }
.pokemon-center-heal { padding:0 15px 18px; text-align:center; }
.exotic-app .pokemon-center-heal button { display:flex; width:100%; min-height:48px; align-items:center; justify-content:center; gap:8px; color:#fff!important; background:var(--app-forest)!important; border:0!important; border-radius:999px!important; font-size:10px!important; font-weight:900!important; }
.exotic-app .pokemon-center-heal button:hover { color:#fff!important; background:var(--app-deep)!important; }
.exotic-app .pokemon-center-heal button:disabled { color:#7e8985!important; background:#e9e6dc!important; cursor:not-allowed; }
.pokemon-center-heal small { display:block; margin-top:7px; color:var(--app-muted); font-size:8px; }

@media (max-width:980px) {
    .pokemon-center-hero { align-items:flex-start; flex-direction:column; }
    .pokemon-center-hero__status { width:100%; min-width:0; }
    .pokemon-center-layout { grid-template-columns:1fr; }
}

@media (max-width:700px) {
    .pokemon-center { width:calc(100% - 24px)!important; }
    .pokemon-center-hero { min-height:0; padding:28px 22px; border-radius:21px; }
    .pokemon-center-hero h1 { font-size:38px; }
    .pokemon-center-hero__status { grid-template-columns:1fr 1fr; }
    .pokemon-center-hero__status img { display:none; }
    .pokemon-center-panel__header { padding:22px 18px 18px; }
    .pokemon-center-swap__form { padding:20px 16px 22px; }
    .pokemon-center-swap__flow { grid-template-columns:1fr; }
    .pokemon-center-swap__direction { flex-direction:row; justify-content:center; }
    .pokemon-center-swap__direction span { transform:rotate(90deg); }
    .pokemon-center-preview { min-height:205px; }
    .pokemon-center-lineup-card { grid-template-columns:22px 58px minmax(0,1fr); }
    .pokemon-center-lineup-card > img { width:58px; height:58px; }
}

/* Authentication journey */
.auth-page {
    min-height: 100vh;
    padding: 112px 24px 72px;
    background:
        radial-gradient(circle at 5% 8%, rgba(122, 193, 173, .16), transparent 29%),
        radial-gradient(circle at 96% 11%, rgba(255, 112, 72, .13), transparent 27%),
        var(--app-cream);
}
.auth-shell {
    display: grid;
    width: min(1100px, 100%);
    min-height: 660px;
    margin: 0 auto;
    grid-template-columns: minmax(360px, .9fr) minmax(450px, 1.1fr);
    overflow: hidden;
    background: var(--app-paper);
    border: 1px solid var(--app-border);
    border-radius: 30px;
    box-shadow: 0 28px 80px rgba(16, 43, 34, .12);
}
.auth-story {
    position: relative;
    display: flex;
    min-width: 0;
    padding: 42px;
    overflow: hidden;
    flex-direction: column;
    color: #fff;
    background: linear-gradient(145deg, #174a3b 0%, var(--app-deep) 74%);
}
.auth-story::before,
.auth-story::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(217, 247, 95, .14);
    border-radius: 50%;
    pointer-events: none;
}
.auth-story::before { width: 420px; height: 420px; right: -265px; top: -185px; box-shadow: 0 0 0 54px rgba(217, 247, 95, .025), 0 0 0 108px rgba(217, 247, 95, .018); }
.auth-story::after { width: 260px; height: 260px; left: -170px; bottom: -135px; }
.auth-story > * { position: relative; z-index: 2; }
.auth-story__copy { max-width: 410px; margin-top: 28px; }
.auth-eyebrow { display: block; color: #71861f; font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.auth-eyebrow--light { color: var(--app-lime); }
.auth-story__copy h1 { margin: 11px 0 16px; color: #fff; font-size: clamp(39px, 4.4vw, 56px); line-height: 1.02; letter-spacing: -.045em; }
.auth-story__copy h1 em { color: var(--app-lime); font-style: normal; }
.auth-story__copy p { max-width: 380px; margin: 0; color: rgba(255, 255, 255, .65); font-size: 13px; line-height: 1.7; }
.auth-story__features { display: grid; margin-top: auto; gap: 13px; }
.auth-story__features > div { display: grid; grid-template-columns: 31px 1fr; align-items: start; gap: 11px; }
.auth-story__features > div > span { display: grid; width: 29px; height: 29px; place-items: center; color: var(--app-deep); background: var(--app-lime); border-radius: 9px; font-family: Manrope, sans-serif; font-size: 8px; font-weight: 900; }
.auth-story__features p { margin: 2px 0 0; color: rgba(255, 255, 255, .55); font-size: 10px; line-height: 1.45; }
.auth-story__features strong { color: #fff; }
.auth-story__art { position: absolute; z-index: 1; width: 170px; height: 170px; right: -9px; bottom: 43px; opacity: .18; }
.auth-story__art img { position: absolute; z-index: 2; width: 82px; height: 82px; left: 44px; top: 45px; object-fit: contain; image-rendering: pixelated; }
.auth-orbit { position: absolute; inset: 0; border: 1px solid var(--app-lime); border-radius: 50%; }
.auth-orbit--two { inset: 26px; border-color: rgba(255, 255, 255, .42); }
.auth-panel { display: flex; padding: 62px 62px 42px; flex-direction: column; justify-content: center; background: var(--app-paper); }
.auth-panel__header { margin-bottom: 31px; }
.auth-panel__header h2 { margin: 7px 0 8px; color: var(--app-ink); font-size: clamp(29px, 3vw, 38px); line-height: 1.1; letter-spacing: -.035em; }
.auth-panel__header p { margin: 0; color: var(--app-muted); font-size: 12px; }
.auth-panel__header p a { color: var(--app-orange) !important; font-weight: 800; }
.auth-form { display: grid; gap: 20px; }
.auth-field { display: grid; gap: 7px; }
.auth-field > label,
.auth-field__label-row label { margin: 0; color: var(--app-ink); font-size: 10px; font-weight: 800; }
.auth-field__label-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.auth-field__label-row a { color: var(--app-orange) !important; font-size: 9px; font-weight: 800; text-decoration: none !important; }
.auth-input-wrap { position: relative; }
.auth-input-wrap > svg { position: absolute; z-index: 2; width: 17px; height: 17px; left: 16px; top: 50%; fill: none; stroke: #809088; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transform: translateY(-50%); pointer-events: none; }
.exotic-app .auth-input-wrap > input {
    min-height: 54px !important;
    padding: 12px 48px 12px 46px !important;
    color: var(--app-ink) !important;
    background: #f8f6ef !important;
    border: 1px solid rgba(16, 43, 34, .12) !important;
    border-radius: 14px !important;
    font-size: 12px !important;
    transition: background .18s, border-color .18s, box-shadow .18s;
}
.exotic-app .auth-input-wrap > input::placeholder { color: #9ba7a2; }
.exotic-app .auth-input-wrap > input:focus { background: #fff !important; border-color: var(--app-orange) !important; box-shadow: 0 0 0 4px rgba(255, 112, 72, .11) !important; outline: 0; }
.auth-field.has-error .auth-input-wrap > input { border-color: #cf5847 !important; background: #fff7f5 !important; }
.auth-field > small { color: var(--app-muted); font-size: 8px; }
.auth-field__error { margin: 0; color: #bc4b3d; font-size: 9px; font-weight: 700; }
.exotic-app .auth-password-toggle { position: absolute; z-index: 3; width: 38px; min-height: 38px; right: 8px; top: 50%; display: grid; padding: 0 !important; place-items: center; color: #7b8c85 !important; background: transparent !important; border: 0 !important; border-radius: 10px !important; box-shadow: none !important; transform: translateY(-50%) !important; }
.auth-password-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.exotic-app .auth-password-toggle:hover { color: var(--app-orange) !important; background: #fff !important; box-shadow: none !important; }
.auth-password-toggle.is-visible svg { fill: rgba(255, 112, 72, .12); color: var(--app-orange); }
.auth-check { display: flex; width: fit-content; margin: -2px 0 1px; align-items: center; gap: 9px; color: var(--app-muted); font-size: 10px; cursor: pointer; }
.auth-check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.auth-check > span { display: grid; width: 18px; height: 18px; place-items: center; background: #fff; border: 1px solid rgba(16, 43, 34, .2); border-radius: 6px; }
.auth-check > span::after { content: "✓"; color: var(--app-deep); font-size: 11px; font-weight: 900; opacity: 0; transform: scale(.5); transition: opacity .16s, transform .16s; }
.auth-check input:checked + span { background: var(--app-lime); border-color: #adc849; }
.auth-check input:checked + span::after { opacity: 1; transform: scale(1); }
.auth-check input:focus-visible + span { outline: 3px solid rgba(255, 112, 72, .28); outline-offset: 3px; }
.exotic-app button.auth-submit { display: flex !important; width: 100%; min-height: 55px !important; padding: 0 20px !important; align-items: center; justify-content: space-between; color: #fff !important; background: var(--app-deep) !important; border-radius: 14px !important; font-size: 11px !important; }
.exotic-app .auth-submit > span { display: grid; width: 29px; height: 29px; place-items: center; color: var(--app-deep); background: var(--app-lime); border-radius: 50%; font-size: 15px; transition: transform .2s; }
.exotic-app button.auth-submit:hover { color: #fff !important; background: #164738 !important; box-shadow: 0 13px 28px rgba(8, 37, 29, .16) !important; transform: translateY(-1px); }
.exotic-app .auth-submit:hover > span { transform: translateX(3px); }
.auth-switch { display: flex; margin-top: 27px; padding-top: 23px; align-items: center; justify-content: center; gap: 5px; border-top: 1px solid var(--app-border); color: var(--app-muted); font-size: 10px; }
.auth-switch a { color: var(--app-orange) !important; font-weight: 900; text-decoration: none !important; }
.auth-security-note { display: flex; margin: 18px 0 0; align-items: center; justify-content: center; gap: 7px; color: #87958f; font-size: 8px; }
.auth-security-note span { color: #7fa227; font-size: 7px; }
.auth-alert { display: flex; margin: -11px 0 22px; padding: 12px 14px; align-items: center; gap: 10px; border-radius: 12px; }
.auth-alert > span { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 50%; font-size: 10px; font-weight: 900; }
.auth-alert p { margin: 0; font-size: 10px; font-weight: 700; }
.auth-alert--error { color: #9f3f33; background: #fff0ed; border: 1px solid #f4d4cc; }
.auth-alert--error > span { color: #fff; background: #cf5847; }
.auth-alert--success { color: #536d13; background: #eff7d7; border: 1px solid #dae8ac; }
.auth-alert--success > span { color: var(--app-deep); background: var(--app-lime); }

/* Registration */
.auth-page--register { padding-bottom: 86px; }
.auth-shell--register { width: min(1280px, 100%); min-height: 0; grid-template-columns: 340px minmax(0, 1fr); align-items: stretch; overflow: visible; }
.auth-story--register { min-height: 760px; border-radius: 29px 0 0 29px; }
.auth-story--register .auth-story__copy { margin-top: 28px; }
.auth-story--register .auth-story__copy h1 { font-size: clamp(34px, 3.6vw, 47px); }
.auth-steps { display: grid; margin: 44px 0 0; padding: 0; gap: 21px; list-style: none; }
.auth-steps li { position: relative; display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: 11px; opacity: .58; }
.auth-steps li:not(:last-child)::after { content: ""; position: absolute; width: 1px; height: 19px; left: 17px; top: 39px; background: rgba(255, 255, 255, .18); }
.auth-steps li > span { display: grid; width: 35px; height: 35px; place-items: center; color: #fff; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; font-size: 9px; font-weight: 900; }
.auth-steps li.is-active { opacity: 1; }
.auth-steps li.is-active > span { color: var(--app-deep); background: var(--app-lime); border-color: var(--app-lime); }
.auth-steps strong,
.auth-steps small { display: block; }
.auth-steps strong { color: #fff; font-size: 10px; }
.auth-steps small { margin-top: 2px; color: rgba(255, 255, 255, .5); font-size: 8px; }
.auth-selected-partner { display: flex; min-height: 112px; margin-top: auto; padding: 15px 13px 15px 20px; align-items: center; justify-content: space-between; overflow: hidden; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); border-radius: 18px; }
.auth-selected-partner small,
.auth-selected-partner strong { display: block; }
.auth-selected-partner small { color: rgba(255, 255, 255, .5); font-size: 8px; text-transform: uppercase; }
.auth-selected-partner strong { margin-top: 2px; color: #fff; font-size: 15px; }
.auth-selected-partner img { width: 87px; height: 87px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 9px 12px rgba(0, 0, 0, .22)); }
.auth-panel--register { padding: 48px 50px 52px; justify-content: flex-start; border-radius: 0 29px 29px 0; }
.auth-panel--register .auth-panel__header { margin-bottom: 27px; }
.auth-form--register { gap: 17px; }
.auth-form-section { min-width: 0; margin: 0; padding: 23px; background: #faf8f2; border: 1px solid var(--app-border); border-radius: 19px; }
.auth-form-section legend { display: flex; width: 100%; margin: 0 0 19px; padding: 0; align-items: center; gap: 10px; color: var(--app-ink); border: 0; }
.auth-form-section legend > span { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: var(--app-deep); background: var(--app-lime); border-radius: 10px; font-size: 9px; font-weight: 900; }
.auth-form-section legend strong,
.auth-form-section legend small { display: block; }
.auth-form-section legend strong { font-size: 12px; }
.auth-form-section legend small { margin-top: 1px; color: var(--app-muted); font-size: 8px; font-weight: 500; }
.auth-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.auth-strength { display: grid; grid-template-columns: repeat(3, 1fr) auto; align-items: center; gap: 5px; }
.auth-strength i { height: 3px; background: #dddcd5; border-radius: 5px; transition: background .18s; }
.auth-strength span { min-width: 82px; margin-left: 3px; color: var(--app-muted); font-size: 7px; text-align: right; }
.auth-strength[data-score="1"] i:nth-child(1) { background: #d96550; }
.auth-strength[data-score="2"] i:nth-child(-n+2) { background: #e4ae3a; }
.auth-strength[data-score="3"] i { background: #86aa29; }
.auth-choice-grid { display: grid; gap: 8px; }
.auth-choice-grid--starters { max-height: 345px; padding: 2px 5px 2px 2px; overflow-y: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); scrollbar-color: #b9c4bf transparent; scrollbar-width: thin; }
.auth-starter-choice,
.auth-avatar-choice { position: relative; display: block; margin: 0; cursor: pointer; }
.auth-starter-choice input,
.auth-avatar-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.auth-starter-choice > span { position: relative; display: grid; min-height: 111px; padding: 9px 7px; place-items: center; overflow: hidden; background: #fff; border: 1px solid var(--app-border); border-radius: 13px; text-align: center; transition: border-color .18s, background .18s, transform .18s, box-shadow .18s; }
.auth-starter-choice img { width: 57px; height: 57px; object-fit: contain; image-rendering: pixelated; transition: transform .18s; }
.auth-starter-choice b { color: var(--app-ink); font-size: 9px; }
.auth-starter-choice small { margin-top: -2px; color: var(--app-muted); font-size: 7px; }
.auth-starter-choice i,
.auth-avatar-choice i { position: absolute; display: grid; width: 18px; height: 18px; right: 6px; top: 6px; place-items: center; color: var(--app-deep); background: var(--app-lime); border-radius: 50%; font-size: 8px; font-style: normal; font-weight: 900; opacity: 0; transform: scale(.55); transition: opacity .18s, transform .18s; }
.auth-starter-choice:hover > span { border-color: #bdce75; transform: translateY(-1px); }
.auth-starter-choice:hover img { transform: translateY(-2px) scale(1.06); }
.auth-starter-choice input:checked + span { background: #f1f8d5; border-color: #a7bd4a; box-shadow: inset 0 0 0 1px #a7bd4a; }
.auth-starter-choice input:checked + span i,
.auth-avatar-choice input:checked + span i { opacity: 1; transform: scale(1); }
.auth-starter-choice input:focus-visible + span,
.auth-avatar-choice input:focus-visible + span { outline: 3px solid rgba(255, 112, 72, .28); outline-offset: 2px; }
.auth-choice-grid--avatars { max-height: 350px; padding: 2px 5px 2px 2px; overflow-y: auto; grid-template-columns: repeat(6, minmax(0, 1fr)); scrollbar-color: #b9c4bf transparent; scrollbar-width: thin; }
.auth-avatar-choice > span { position: relative; display: grid; min-height: 126px; padding: 10px 7px 9px; place-items: center; overflow: hidden; background: #fff; border: 1px solid var(--app-border); border-radius: 13px; text-align: center; transition: border-color .18s, background .18s, transform .18s; }
.auth-avatar-choice img { width: 62px; height: 62px; object-fit: contain; image-rendering: pixelated; }
.auth-avatar-choice b { color: var(--app-ink); font-size: 8px; line-height: 1.15; }
.auth-avatar-choice small { margin-top: -2px; color: var(--app-muted); font-size: 7px; }
.auth-avatar-choice:hover > span { border-color: #bdce75; transform: translateY(-1px); }
.auth-avatar-choice input:checked + span { background: #f1f8d5; border-color: #9db53a; box-shadow: inset 0 0 0 1px #9db53a; }
.auth-register-footer { display: grid; margin-top: 2px; grid-template-columns: minmax(0, 1fr) minmax(235px, 330px); align-items: center; gap: 22px; }
.auth-register-footer p { margin: 0; color: var(--app-muted); font-size: 8px; line-height: 1.55; }

@media (max-width: 1040px) {
    .auth-shell { grid-template-columns: 330px minmax(0, 1fr); }
    .auth-story { padding: 34px; }
    .auth-panel { padding: 48px 42px 38px; }
    .auth-shell--register { grid-template-columns: 285px minmax(0, 1fr); }
    .auth-panel--register { padding: 40px 34px 44px; }
    .auth-choice-grid--starters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .auth-choice-grid--avatars { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
    .auth-page { padding: 92px 13px 50px; }
    .auth-shell,
    .auth-shell--register { grid-template-columns: 1fr; border-radius: 24px; }
    .auth-story,
    .auth-story--register { min-height: 0; padding: 29px 27px 31px; border-radius: 23px 23px 0 0; }
    .auth-story__copy,
    .auth-story--register .auth-story__copy { margin-top: 12px; }
    .auth-story__copy h1 { max-width: 520px; font-size: 38px; }
    .auth-story__features { margin-top: 32px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
    .auth-story__features > div { display: block; }
    .auth-story__features p { margin-top: 7px; }
    .auth-story__art { display: none; }
    .auth-panel,
    .auth-panel--register { padding: 38px 28px 34px; border-radius: 0 0 23px 23px; }
    .auth-steps { display: flex; margin-top: 30px; }
    .auth-steps li { flex: 1; grid-template-columns: 30px 1fr; }
    .auth-steps li:not(:last-child)::after { display: none; }
    .auth-steps li > span { width: 30px; height: 30px; }
    .auth-selected-partner { position: absolute; width: 180px; right: 26px; bottom: 27px; margin: 0; }
}
@media (max-width: 560px) {
    .auth-page { padding-inline: 10px; }
    .auth-story,
    .auth-story--register { padding: 25px 22px 27px; }
    .auth-story__copy h1 { font-size: 34px; }
    .auth-story__features { grid-template-columns: 1fr; }
    .auth-story__features > div { display: grid; }
    .auth-panel,
    .auth-panel--register { padding: 31px 20px 28px; }
    .auth-panel__header h2 { font-size: 29px; }
    .auth-switch { align-items: flex-start; flex-direction: column; }
    .auth-field-grid { grid-template-columns: 1fr; }
    .auth-form-section { padding: 17px 13px; }
    .auth-choice-grid--starters { max-height: 375px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .auth-choice-grid--avatars { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .auth-steps { gap: 8px; }
    .auth-steps li { grid-template-columns: 30px 1fr; }
    .auth-steps small { display: none; }
    .auth-selected-partner { position: relative; width: 100%; right: auto; bottom: auto; margin-top: 27px; }
    .auth-register-footer { grid-template-columns: 1fr; gap: 12px; }
}

/* Currency identity */
.currency-value { display: inline-flex; align-items: center; gap: 7px; }
.currency-icon { width: 19px; height: 19px; flex: 0 0 19px; object-fit: contain; vertical-align: middle; }
.currency-icon--large { width: 34px; height: 34px; flex-basis: 34px; }
.currency-icon--hero { width: .95em; height: .95em; margin-right: 10px; vertical-align: -.08em; }
.currency-value--secondary { display: flex; margin-top: 3px; }
.currency-value--secondary .currency-icon { width: 15px; height: 15px; flex-basis: 15px; }
.profile-detail dt { display: inline-flex; align-items: center; gap: 6px; }
.profile-detail dt .currency-icon { width: 17px; height: 17px; flex-basis: 17px; }
.daily-spin__prize .currency-icon { width: 17px; height: 17px; flex-basis: 17px; }
.subscription-card li .currency-icon { width: 18px; height: 18px; flex-basis: 18px; margin-top: -3px; }
.leaderboard-card .currency-value { justify-content: flex-end; }
.leaderboard-card .currency-icon { width: 18px; height: 18px; flex-basis: 18px; }

/* App footer */
.app-footer { padding: 64px 0 28px; color: #fff; background: var(--app-deep); border-top: 1px solid rgba(255,255,255,.06); }
.app-footer__inner { display: grid; width: min(1180px, calc(100% - 40px)); margin: auto; grid-template-columns: 1fr 1fr; gap: 45px 80px; }
.app-brand--footer { color: #fff !important; }.app-brand--footer .app-brand__mark { border-color: #fff; }.app-brand--footer .app-brand__mark span { background: var(--app-deep); border-color: #fff; }
.app-footer p { max-width: 380px; margin: 15px 0 0; color: rgba(255,255,255,.48); font-size: 12px; }
.app-footer__links { display: grid; grid-template-columns: repeat(2,1fr); gap: 30px; }.app-footer__links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }.app-footer__links strong { margin-bottom: 5px; color: var(--app-lime); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }.app-footer__links a { color: rgba(255,255,255,.68); font-size: 12px; text-decoration: none; }.app-footer__links a:hover { color: #fff; transform: translateX(3px); }
.app-footer__legal { display: flex; grid-column: 1 / -1; justify-content: space-between; gap: 20px; padding-top: 24px; color: rgba(255,255,255,.32); border-top: 1px solid rgba(255,255,255,.08); font-size: 9px; }

@media (max-width: 1220px) {
    .app-header__inner { width: calc(100% - 28px); gap: 14px; }.app-navigation > a, .app-nav-group > summary { padding-inline: 9px; font-size: 11px; }.app-quick-link { display: none; }.app-user-menu > summary { min-width: 0; }.app-user-menu > summary > span { display: none; }.app-nav-panel--wide { transform: translateX(-40%); }.gym-card-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 1120px) {
    .app-header { height: 70px; }.app-header__inner { justify-content: space-between; }.app-menu-toggle { display: block; order: 3; }.app-header__actions { margin-left: auto; }.app-user-menu > summary { border: 0; background: transparent; }.app-navigation { position: fixed; inset: 70px 0 auto; display: none; max-height: calc(100vh - 70px); overflow: auto; padding: 18px 20px 28px; flex-direction: column; align-items: stretch; gap: 5px; background: var(--app-cream); border-top: 1px solid var(--app-border); box-shadow: 0 24px 45px rgba(16,43,34,.12); }.app-navigation.is-open { display: flex; }.app-navigation > a, .app-nav-group > summary { min-height: 46px; justify-content: space-between; padding: 0 14px; border-radius: 12px; font-size: 13px; }.app-nav-group { width: 100%; }.app-nav-panel, .app-nav-panel--wide, .app-nav-panel--regions { position: static; min-width: 0; margin: 2px 0 10px; transform: none; grid-template-columns: 1fr; box-shadow: none; }.app-nav-panel--regions .app-nav-panel__featured { grid-column:auto; }.app-nav-panel--wide > div + div { padding-top: 10px; border-top: 1px solid var(--app-border); border-left: 0; }.exotic-app #page.nk-main, .exotic-app .nk-main { padding-top: 70px !important; }
}

@media (max-width: 700px) {
    body.exotic-app { font-size: 14px; }.app-header__inner { width: calc(100% - 24px); }.app-brand { font-size: 15px; }.app-brand__mark { width: 28px; height: 28px; flex-basis: 28px; }.app-login-link { display: none; }.app-primary-action { min-height: 37px; padding-inline: 14px; }.app-user-menu > summary img { width: 31px; height: 31px; }.exotic-app .content-area.container, .exotic-app #primary.container, .exotic-app .container { width: calc(100% - 24px); }.exotic-app .site-content { padding-top: 25px; }.exotic-app h3.is-style-squadforce-decorated { min-height: 125px; padding: 28px 24px; border-radius: 21px; font-size: 32px !important; }.exotic-app h3.is-style-squadforce-decorated::after { display: none; }.exotic-app .ghostkit-grid-inner { margin: -6px; }.exotic-app .ghostkit-grid-inner > [class*="ghostkit-col"] { width: 100% !important; max-width: 100% !important; flex-basis: 100% !important; padding: 6px; }.exotic-app .bg-dark-2 { padding: 18px !important; }.exotic-app table { display: block; overflow-x: auto; white-space: nowrap; }.exotic-app table th, .exotic-app table td { padding: 12px !important; }.app-footer { padding-top: 48px; }.app-footer__inner { width: calc(100% - 32px); grid-template-columns: 1fr; }.app-footer__links { grid-template-columns: 1fr 1fr; }.app-footer__legal { flex-direction: column; }.exotic-app .nk-image-slider img { min-height: 260px; }
}

@media (max-width: 900px) { .dashboard-workspace { grid-template-columns: 1fr; }.dashboard-stat-grid { grid-template-columns: repeat(2, 1fr); }.pvp-queue-hero, .battle-select-hero { grid-template-columns: 1fr; }.pvp-readiness { align-items: flex-start; }.pvp-queue-options { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }.battle-select-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .gym-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 700px) { .dashboard-overview { margin-top: -12px; }.dashboard-welcome { min-height: 0; padding: 26px 22px; align-items: stretch; flex-direction: column; }.dashboard-primary { min-width: 0; }.dashboard-stat-grid { gap: 8px; }.dashboard-stat { min-height: 112px; padding: 15px; }.dashboard-stat strong { font-size: 24px; }.dashboard-actions, .dashboard-inbox { padding: 18px; }.dashboard-action-grid { grid-template-columns: 1fr; }.dashboard-action { min-height: 116px; }.dashboard-request-grid, .pvp-queue-meta { grid-template-columns: 1fr; }.pvp-queue-hero, .pvp-queue-panel, .battle-select-hero { padding: 22px !important; }.pvp-queue-options { grid-template-columns: 1fr !important; }.pvp-format { min-height: 88px; }.battle-select-shell { width: calc(100% - 24px) !important; }.battle-roster, .battle-opponent { padding: 18px; }.battle-roster-card { grid-template-columns: 58px minmax(0,1fr) !important; }.battle-roster-card > img { width: 55px; height: 55px; }.battle-roster-card__types { display: none; }.battle-select-versus { grid-template-columns: 1fr; }.battle-select-versus b { margin: -7px 0; }.battle-select-versus span { min-height: 55px; }.gym-directory { width: calc(100% - 24px) !important; }.gym-hero { min-height: 0; padding: 26px 22px; }.gym-hero > img { display: none; }.gym-region-nav { top: 72px; border-radius: 15px; }.gym-card-grid { grid-template-columns: 1fr; }.gym-card { min-height: 225px; } }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .exotic-app *, .exotic-app *::before, .exotic-app *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Subscription storefront */
.feature-shell.subscription-page { width:min(1240px,calc(100% - 40px)); }
.subscription-hero { position:relative; display:grid; min-height:338px; padding:48px 56px; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); align-items:center; gap:28px; overflow:hidden; color:#fff; background:radial-gradient(circle at 78% 26%,rgba(170,212,79,.22),transparent 29%),linear-gradient(118deg,#10392d 8%,#071f1b 72%); border-radius:28px; }
.subscription-hero::before { content:""; position:absolute; inset:auto -8% -85% 38%; height:360px; border:1px solid rgba(217,247,95,.13); border-radius:50%; box-shadow:0 0 0 60px rgba(217,247,95,.025),0 0 0 130px rgba(217,247,95,.016); }
.subscription-hero__copy { position:relative; z-index:2; max-width:600px; }
.subscription-hero .feature-eyebrow { color:var(--app-lime); font-size:11px; }
.subscription-hero h1 { margin:14px 0 16px; color:#fff; font-size:clamp(40px,4.9vw,67px); line-height:1.02; letter-spacing:-.045em; }
.subscription-hero h1 em { color:var(--app-lime); font-style:normal; }
.subscription-hero p { max-width:520px; margin:0; color:rgba(255,255,255,.75); font-size:15px; line-height:1.7; }
.subscription-hero__link { display:inline-flex; margin-top:24px; align-items:center; gap:13px; color:var(--app-deep)!important; background:var(--app-lime); border-radius:99px; padding:13px 18px; font-size:12px; font-weight:800; text-decoration:none!important; }
.subscription-hero__link:hover { color:var(--app-deep)!important; background:#eaff91; transform:translateY(-2px); }
.subscription-hero__link span { font-size:16px; line-height:1; }
.subscription-hero__art { position:relative; z-index:1; width:min(100%,360px); height:264px; justify-self:center; }
.subscription-hero__orbit { position:absolute; inset:0; margin:auto; border:1px solid rgba(219,245,120,.22); border-radius:50%; }
.subscription-hero__orbit--outer { width:260px; height:260px; transform:rotate(-22deg) scaleX(1.2); }
.subscription-hero__orbit--inner { width:204px; height:204px; border-color:rgba(219,245,120,.13); }
.subscription-hero__emblem { position:absolute; top:39px; left:50%; display:grid; width:190px; height:190px; place-items:center; background:linear-gradient(145deg,#d7f676,#7faf37 72%); border:11px solid #143f30; border-radius:50%; box-shadow:0 0 0 2px rgba(224,251,131,.66),0 26px 48px rgba(0,0,0,.38),inset 0 3px 14px rgba(255,255,255,.45); transform:translateX(-50%); }
.subscription-hero__emblem::before { content:""; position:absolute; inset:18px; border:2px solid rgba(16,57,45,.35); border-radius:50%; }
.subscription-hero__emblem span { color:#18422d; font-size:91px; line-height:1; text-shadow:0 3px rgba(255,255,255,.35); }
.subscription-hero__spark { position:absolute; color:var(--app-lime); font-size:27px; }
.subscription-hero__spark--one { top:10px; right:34px; }.subscription-hero__spark--two { bottom:11px; left:34px; font-size:37px; }
.subscription-hero__float { position:absolute; display:flex; min-height:37px; padding:0 11px; align-items:center; gap:7px; color:var(--app-ink); background:#fffdf5; border:1px solid rgba(16,43,34,.08); border-radius:10px; box-shadow:0 12px 28px rgba(0,0,0,.22); font-size:11px; font-weight:800; white-space:nowrap; }
.subscription-hero__float img { width:19px; height:19px; }
.subscription-hero__float--money { top:49px; left:-8px; transform:rotate(-7deg); }.subscription-hero__float--odds { right:-17px; bottom:40px; transform:rotate(6deg); }
.subscription-benefits { display:grid; margin-top:14px; padding:19px 23px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; background:#fffdf8; border:1px solid var(--app-border); border-radius:18px; }
.subscription-benefits > div { display:flex; align-items:center; gap:12px; }.subscription-benefits > div + div { padding-left:18px; border-left:1px solid var(--app-border); }
.subscription-benefits__icon { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; color:#51751f; background:#eef5d7; border-radius:12px; font-size:19px; font-weight:800; }
.subscription-benefits p { margin:0; line-height:1.4; }.subscription-benefits strong,.subscription-benefits small { display:block; }.subscription-benefits strong { color:var(--app-ink); font-size:12px; }.subscription-benefits small { color:var(--app-muted); font-size:10px; }
.subscription-current { display:flex; margin-top:17px; padding:22px 25px; align-items:center; justify-content:space-between; gap:25px; background:#eaf4d3; border:1px solid #c5db95; border-radius:19px; }
.subscription-current__heading { display:flex; min-width:225px; align-items:center; gap:12px; }.subscription-current__mark { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; color:#fff; background:#51751f; border-radius:50%; font-size:17px; font-weight:800; }.subscription-current h2 { margin:2px 0 0; color:var(--app-ink); font-size:17px; }
.subscription-current__details { display:flex; justify-content:flex-end; gap:25px; }.subscription-current__details div { display:flex; flex-direction:column; gap:2px; }.subscription-current__details span { color:#5b7153; font-size:10px; }.subscription-current__details strong { color:var(--app-ink); font-size:12px; }
.subscription-current__actions { display:flex; max-width:225px; flex:0 0 auto; align-items:stretch; flex-direction:column; gap:6px; }.subscription-current__actions .feature-button { min-height:42px; padding:0 16px; white-space:nowrap; }.subscription-current__actions small { color:#5b7153; font-size:9px; line-height:1.4; text-align:center; }
.subscription-plans { margin-top:49px; scroll-margin-top:95px; }.subscription-plans__heading { display:flex; margin-bottom:20px; align-items:end; justify-content:space-between; gap:24px; }.subscription-plans__heading h2 { margin:4px 0 5px; color:var(--app-ink); font-size:clamp(26px,3vw,36px); letter-spacing:-.035em; }.subscription-plans__heading p { margin:0; color:var(--app-muted); font-size:12px; }.subscription-plans__cadence { flex:0 0 auto; padding:9px 13px; color:#4a674d; background:#eaf2d9; border-radius:50px; font-size:10px; font-weight:800; }
.subscription-page .subscription-grid { display:grid; margin:0; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; }
.subscription-page .subscription-card { min-width:0; min-height:0; padding:23px 20px 20px; border-color:var(--app-border); border-top:4px solid var(--plan-color,var(--app-lime)); border-radius:19px; box-shadow:0 8px 28px rgba(16,43,34,.045); }
.subscription-page .subscription-card.is-featured { background:#fcfff4; border-color:#a9c758; border-top-color:#a9c758; box-shadow:0 16px 35px rgba(64,93,23,.11); }.subscription-page .subscription-card.is-current { background:#f5f8ee; border-color:#87aa41; border-top-color:#87aa41; }.subscription-page .subscription-card.is-unavailable { opacity:.75; }
.subscription-card__top { display:flex; min-height:22px; align-items:center; justify-content:space-between; gap:5px; }.subscription-card__index { color:var(--app-muted); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.subscription-card__badge { padding:5px 8px; color:#375118; background:#e3f1b9; border-radius:99px; font-size:9px; font-weight:800; white-space:nowrap; }.subscription-card__badge--current { color:#fff; background:#51751f; }
.subscription-page .subscription-card h3 { margin:21px 0 8px; color:var(--app-ink); font-size:21px; line-height:1.2; letter-spacing:-.025em; }.subscription-page .subscription-price { gap:4px; }.subscription-page .subscription-price strong { color:var(--app-ink); font-size:34px; line-height:1; letter-spacing:-.04em; }.subscription-page .subscription-price span { color:var(--app-muted); font-size:11px; }.subscription-card__billing { margin:7px 0 0; color:var(--app-muted); font-size:10px; }
.subscription-card__reward { min-height:155px; margin-top:22px; padding:17px 14px; background:#f3f1e9; border-radius:14px; }.subscription-card__reward > span { display:block; color:var(--app-muted); font-size:10px; font-weight:700; }.subscription-card__reward > strong { display:flex; margin-top:8px; align-items:center; gap:7px; color:var(--app-ink); font-size:24px; line-height:1.15; letter-spacing:-.035em; white-space:nowrap; }.subscription-card__reward > strong img { width:26px; height:26px; flex:0 0 26px; }.subscription-card__reward > small { display:block; margin:3px 0 0 33px; color:var(--app-muted); font-size:10px; }.subscription-card__cash { display:flex; margin-top:14px; align-items:center; gap:6px; color:#65511b; font-size:10px; font-weight:800; }.subscription-card__cash img { width:17px; height:17px; }
.subscription-card__perks { display:grid; margin:18px 0 20px; gap:0; }.subscription-card__label { margin-bottom:6px; color:var(--app-muted); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.subscription-card__perks > div { display:flex; min-height:31px; align-items:center; justify-content:space-between; gap:8px; color:#566b61; font-size:11px; border-bottom:1px solid var(--app-border); }.subscription-card__perks > div strong { color:var(--app-ink); font-size:11px; white-space:nowrap; }.subscription-card__perks .subscription-card__yard { margin-top:6px; border:0; }.subscription-card__yard strong { color:#47721b!important; }
.subscription-page .subscription-card form { margin-top:auto; }.subscription-page .subscription-card .feature-button { min-height:45px; gap:8px; font-size:11px!important; }.subscription-page .subscription-card.is-featured .feature-button:not(:disabled) { color:#fff!important; background:var(--app-deep)!important; }.subscription-page .subscription-card.is-featured .feature-button:not(:disabled):hover { background:#235441!important; }.subscription-page .subscription-card .feature-button:disabled { color:#6c766e!important; background:#e8e9df!important; }.subscription-page a:focus-visible,.subscription-page button:focus-visible { outline:3px solid #ff9b66; outline-offset:3px; }
.subscription-plans__footnote { margin:13px 0 0; color:var(--app-muted); font-size:10px; }
.subscription-how { display:grid; margin-top:36px; padding:27px 30px; grid-template-columns:220px 1fr; gap:25px; background:#fffdf8; border:1px solid var(--app-border); border-radius:20px; }.subscription-how h2 { margin:5px 0 0; color:var(--app-ink); font-size:24px; line-height:1.2; }.subscription-how ol { display:grid; margin:0; padding:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; list-style:none; }.subscription-how li { display:flex; gap:9px; }.subscription-how li > span { display:grid; width:29px; height:29px; flex:0 0 29px; place-items:center; color:#4f711f; background:#edf5d5; border-radius:9px; font-size:10px; font-weight:900; }.subscription-how strong { color:var(--app-ink); font-size:11px; }.subscription-how p { margin:5px 0 0; color:var(--app-muted); font-size:10px; line-height:1.55; }
@media (max-width:1100px) { .subscription-page .subscription-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.subscription-page .subscription-card { padding:24px; }.subscription-card__reward > strong { font-size:29px; } }
@media (max-width:800px) { .subscription-hero { grid-template-columns:1fr; min-height:0; padding:40px; }.subscription-hero__art { display:none; }.subscription-hero__copy { max-width:620px; }.subscription-benefits { gap:10px; padding:16px; }.subscription-benefits > div + div { padding-left:10px; }.subscription-how { grid-template-columns:1fr; }.subscription-current { align-items:flex-start; flex-direction:column; }.subscription-current__details { justify-content:flex-start; flex-wrap:wrap; } }
@media (max-width:600px) { .feature-shell.subscription-page { width:calc(100% - 24px); }.subscription-hero { padding:32px 24px; border-radius:21px; }.subscription-hero h1 { font-size:40px; }.subscription-hero p { font-size:13px; }.subscription-benefits { grid-template-columns:1fr; }.subscription-benefits > div + div { padding:10px 0 0; border-left:0; border-top:1px solid var(--app-border); }.subscription-plans { margin-top:37px; }.subscription-plans__heading { align-items:flex-start; flex-direction:column; gap:12px; }.subscription-page .subscription-grid { grid-template-columns:1fr; }.subscription-page .subscription-card { padding:23px; }.subscription-current__details { gap:16px 24px; }.subscription-how { padding:23px; }.subscription-how ol { grid-template-columns:1fr; gap:16px; } }

/* Unified feature surfaces */
.feature-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:118px 0 70px; }
.feature-hero, .pass-hero { position:relative; display:flex; min-height:230px; padding:42px; align-items:center; justify-content:space-between; gap:32px; overflow:hidden; color:#fff; background:linear-gradient(128deg,#164638,var(--app-deep)); border-radius:28px; }
.feature-hero::after, .pass-hero::after { content:""; position:absolute; right:-110px; top:-220px; width:420px; height:420px; border:1px solid rgba(217,247,95,.2); border-radius:50%; box-shadow:0 0 0 55px rgba(217,247,95,.025),0 0 0 110px rgba(217,247,95,.018); }
.feature-hero > *, .pass-hero > * { position:relative; z-index:1; }
.feature-hero h1, .pass-hero h1 { margin:5px 0 10px; color:#fff; font-size:clamp(38px,5vw,64px); line-height:1; }
.feature-hero p, .pass-hero p { max-width:650px; margin:0; color:rgba(255,255,255,.64); font-size:15px; }
.feature-hero p strong { color:#fff; }
.feature-eyebrow { display:block; color:#789428; font-size:9px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.feature-hero .feature-eyebrow, .pass-hero .feature-eyebrow { color:var(--app-lime); }
.feature-section { margin-top:20px; padding:28px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:22px; }
.feature-section__header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.feature-section__header h2 { margin:2px 0 0; font-size:26px; }
.feature-count { padding:7px 11px; color:var(--app-muted); background:#f1eee5; border-radius:50px; font-size:10px; font-weight:800; }
.feature-button { display:inline-flex; min-height:46px; padding:0 20px; align-items:center; justify-content:center; gap:14px; color:var(--app-deep)!important; background:var(--app-lime)!important; border:0!important; border-radius:50px!important; font:800 11px/1 "DM Sans",sans-serif!important; text-decoration:none!important; cursor:pointer; }
.feature-button:hover { color:var(--app-deep)!important; background:#e7ff79!important; transform:translateY(-2px); box-shadow:0 12px 24px rgba(115,147,26,.16); }
.feature-button:disabled { color:#8b938e!important; background:#ece9df!important; box-shadow:none; cursor:not-allowed; transform:none; }
.feature-button--light { color:var(--app-ink)!important; background:#fff!important; }
.feature-button--secondary { color:var(--app-ink)!important; background:#f1eee5!important; border:1px solid var(--app-border)!important; }
.feature-text-link { color:var(--app-orange)!important; font-size:11px; font-weight:800; text-decoration:none!important; }
.feature-notice { display:flex; margin-top:14px; padding:17px 20px; align-items:center; gap:20px; color:var(--app-ink); background:#fff9dd; border:1px solid rgba(188,146,22,.2); border-radius:15px; }
.feature-notice strong { flex:0 0 auto; }.feature-notice span { color:var(--app-muted); font-size:12px; }
.feature-notice--success { background:#edf7cf; border-color:rgba(104,139,15,.22); }.feature-notice--danger { color:#8b2d22; background:#fff0ed; border-color:#f2c4bd; }
.feature-empty { width:100%; padding:45px 25px; color:var(--app-ink); background:#f4f1e8; border:1px dashed rgba(16,43,34,.18); border-radius:18px; text-align:center; }
.feature-empty > span { display:grid; width:48px; height:48px; margin:0 auto 12px; place-items:center; color:var(--app-ink); background:var(--app-lime); border-radius:50%; font-size:20px; }.feature-empty h2,.feature-empty h3 { margin:0 0 5px; }.feature-empty p { margin:0 0 15px; }
.feature-progress { height:9px; overflow:hidden; background:rgba(16,43,34,.11); border-radius:30px; }.feature-progress > span { display:block; height:100%; background:linear-gradient(90deg,var(--app-orange),#f5bc45,var(--app-lime)); border-radius:inherit; }
.feature-pagination { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:25px; }
.feature-pagination__control,
.feature-pagination__status { display:inline-flex; min-height:42px; align-items:center; justify-content:center; border:1px solid var(--app-border); border-radius:999px; padding:9px 16px; background:#fff; color:var(--app-ink); font-size:13px; font-weight:800; }
.feature-pagination__control { transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.feature-pagination__control:not(.is-disabled):hover { transform:translateY(-1px); border-color:var(--app-coral); box-shadow:0 8px 20px rgba(17,48,39,.09); color:var(--app-coral); }
.feature-pagination__control.is-disabled { opacity:.45; cursor:not-allowed; }
.feature-pagination__status { background:var(--app-mist); color:var(--app-muted); }

/* Exotic Pass */
.pass-tracks { display:grid; margin:16px 0 22px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.pass-track { display:flex; min-height:155px; padding:24px; flex-direction:column; color:var(--app-ink)!important; background:#edf5d8; border:1px solid #d3e3a7; border-radius:18px; text-decoration:none!important; }
.pass-track--subscriber { background:#fff0e8; border-color:#f6d9c8; }
.pass-track strong { margin:6px 0; font-size:22px; }.pass-track small { color:var(--app-muted); font-size:11px; }.pass-track b { margin-top:auto; padding-top:14px; color:var(--app-orange); font-size:11px; }
.pass-track-tabs { display:flex; margin-top:18px; padding:5px; gap:5px; background:#ebe8df; border-radius:14px; }.pass-track-tabs a { flex:1; padding:12px; color:var(--app-muted)!important; border-radius:10px; font-size:12px; font-weight:800; text-align:center; text-decoration:none!important; }.pass-track-tabs a.is-active { color:var(--app-ink)!important; background:#fff; box-shadow:0 2px 8px rgba(16,43,34,.08); }
.reward-card a.reward-card__locked { display:block; color:var(--app-orange)!important; text-decoration:none!important; }
.dashboard-pass { display:grid; margin:14px 0 0; padding:20px 24px; grid-template-columns:minmax(140px,1fr) minmax(180px,1.5fr) auto; align-items:center; gap:24px; color:var(--app-ink)!important; background:#f0f6db; border:1px solid #d7e4ad; border-radius:18px; text-decoration:none!important; }.dashboard-pass:hover { border-color:#a7c16c; }.dashboard-pass__copy,.dashboard-pass__progress { display:flex; flex-direction:column; gap:4px; }.dashboard-pass__copy strong { font-size:22px; }.dashboard-pass small { color:var(--app-muted); font-size:10px; }.dashboard-pass__progress .feature-progress { display:block; width:100%; }.dashboard-pass__link { color:var(--app-orange); font-size:11px; font-weight:800; white-space:nowrap; }
@media (max-width:700px) { .pass-tracks { grid-template-columns:1fr; }.dashboard-pass { grid-template-columns:1fr; gap:10px; }.dashboard-pass__link { margin-top:3px; } }
.pass-hero { display:grid; grid-template-columns:1fr auto; }
.pass-level-card { display:grid; grid-column:1/-1; padding:20px 22px; grid-template-columns:auto 1fr; gap:8px 24px; color:var(--app-ink); background:#fff; border-radius:18px; }
.pass-level-card > div:first-child { grid-row:1/3; display:flex; align-items:center; gap:12px; }.pass-level-card > div:first-child span { color:var(--app-muted); font-size:10px; font-weight:800; text-transform:uppercase; }.pass-level-card > div:first-child strong { font-size:32px; }
.pass-xp { display:flex; align-items:center; justify-content:space-between; gap:15px; }.pass-xp b { font-size:12px; }.pass-xp span { color:var(--app-muted); font-size:10px; }
.pass-level-card .feature-progress { grid-column:2; }
.mission-grid, .reward-preview-grid, .reward-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.mission-card { min-height:220px; padding:20px; background:#f4f1e8; border:1px solid transparent; border-radius:16px; }.mission-card.is-complete { background:#f1f8d8; border-color:#d0df96; }
.mission-card__top, .mission-card__progress { display:flex; align-items:center; justify-content:space-between; gap:12px; }.mission-card__top span { color:var(--app-muted); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.mission-card__top b { color:var(--app-orange); font-size:10px; }.mission-card h3 { min-height:48px; margin:13px 0 16px; font-size:17px; }.mission-card__progress { margin-bottom:7px; color:var(--app-muted); font-size:10px; }.mission-card__progress b,.mission-card__progress strong { color:var(--app-ink); }.mission-card .feature-button,.mission-card__status { width:100%; margin-top:18px; }.mission-card__status { display:block; color:var(--app-muted); font-size:10px; font-weight:800; text-align:center; text-transform:uppercase; }
.reward-preview { padding:18px; text-align:center; background:#f4f1e8; border-radius:16px; }.reward-preview > span { color:var(--app-orange); font-size:9px; font-weight:800; }.reward-preview img { display:block; width:90px; height:90px; margin:10px auto; object-fit:contain; }.reward-preview h3 { margin:0; font-size:14px; }.reward-preview small { color:var(--app-muted); font-size:9px; }
.reward-track { margin-top:16px; }.reward-card { position:relative; display:flex; min-height:285px; padding:20px; flex-direction:column; background:var(--app-paper); border:1px solid var(--app-border); border-radius:18px; }.reward-card.is-unlocked { border-color:#aabe54; box-shadow:inset 0 3px var(--app-lime); }.reward-card.is-claimed { background:#eef4dc; }.reward-card header { display:flex; align-items:center; justify-content:space-between; gap:10px; }.reward-card header span { color:var(--app-orange); font-size:9px; font-weight:800; text-transform:uppercase; }.reward-card header b { color:var(--app-muted); font-size:9px; }.reward-card img { width:105px; height:105px; margin:18px auto 8px; object-fit:contain; }.reward-card h2 { margin:0 0 18px; font-size:15px; text-align:center; }.reward-card form,.reward-card .feature-button { width:100%; margin-top:auto; }.reward-card__locked { margin-top:auto; padding:12px; color:var(--app-muted); background:#f1eee5; border-radius:11px; font-size:9px; font-weight:700; text-align:center; }

/* Billing */
.billing-hero__trust { display:flex; min-width:240px; padding:17px; align-items:center; gap:12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:16px; }.billing-hero__trust > span { display:grid; width:40px; height:40px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:12px; font-weight:900; }.billing-hero__trust div { display:flex; flex-direction:column; }.billing-hero__trust b { color:#fff; font-size:11px; }.billing-hero__trust small { color:rgba(255,255,255,.5); font-size:9px; }
.billing-grid,.subscription-grid { display:grid; margin-top:18px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.subscription-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.billing-card,.subscription-card { position:relative; display:flex; min-height:360px; padding:26px; flex-direction:column; background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; }.billing-card.is-featured,.subscription-card.is-featured { border-color:#abc641; box-shadow:0 18px 40px rgba(90,117,19,.12); }.billing-card.is-unavailable,.subscription-card.is-unavailable { opacity:.82; }
.billing-card__badge { position:absolute; right:16px; top:16px; padding:6px 9px; color:var(--app-deep); background:var(--app-lime); border-radius:30px; font-size:8px; font-weight:900; text-transform:uppercase; }.billing-card h2 { margin:30px 0 0; font-size:30px; }.billing-card > p { margin:0; }.billing-price { display:flex; margin:auto 0 18px; padding-top:20px; flex-direction:column; border-top:1px solid var(--app-border); }.billing-price strong { font-size:24px; }.billing-price small { color:var(--app-muted); font-size:9px; }.billing-card form,.billing-card .feature-button,.subscription-card form,.subscription-card .feature-button { width:100%; }
.subscription-card h2 { margin:24px 0 5px; color:var(--plan-color,var(--app-ink)); font-size:21px; }.subscription-price { display:flex; align-items:baseline; gap:5px; }.subscription-price strong { font-size:30px; }.subscription-price small { color:var(--app-muted); }.subscription-card ul { display:grid; margin:23px 0; padding:20px 0; gap:10px; border-block:1px solid var(--app-border); list-style:none; }.subscription-card li { display:flex; gap:9px; color:var(--app-muted); font-size:10px; }.subscription-card li span { color:#6f8c19; font-weight:900; }

/* Currency shop */
.wallet-shop__hero { position:relative; overflow:hidden; background:radial-gradient(circle at 72% -10%,rgba(217,247,95,.18),transparent 31%),linear-gradient(125deg,#123c2e,#071f19); }
.wallet-shop__hero::after { content:""; position:absolute; right:-85px; bottom:-150px; width:330px; height:330px; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018); }
.wallet-shop__intro { position:relative; z-index:1; max-width:630px; }
.wallet-shop__wallet { position:relative; z-index:1; min-width:380px; padding:20px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:20px; backdrop-filter:blur(10px); }
.wallet-shop__wallet-label { display:block; margin:0 0 10px 3px; color:rgba(255,255,255,.55); font-size:8px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.wallet-shop__wallet > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.wallet-shop__balance { display:flex; min-width:0; padding:14px; align-items:center; gap:11px; background:rgba(255,255,255,.08); border-radius:14px; }
.wallet-shop__balance img { width:34px; height:34px; flex:0 0 34px; object-fit:contain; filter:drop-shadow(0 5px 7px rgba(0,0,0,.18)); }
.wallet-shop__balance span,.wallet-shop__balance small,.wallet-shop__balance strong { display:block; min-width:0; }
.wallet-shop__balance small { color:rgba(255,255,255,.55); font-size:8px; font-weight:700; white-space:nowrap; }
.wallet-shop__balance strong { overflow:hidden; color:#fff; font-size:18px; text-overflow:ellipsis; }
.wallet-shop__balance--cash { background:rgba(255,112,72,.13); }
.wallet-shop__tabs { position:relative; z-index:3; display:grid; max-width:700px; margin:-25px auto 24px; padding:6px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; background:#e9e5da; border:1px solid var(--app-border); border-radius:18px; box-shadow:0 14px 30px rgba(16,43,34,.12); }
.wallet-shop__tabs a { display:flex; min-height:66px; padding:10px 16px; align-items:center; gap:12px; color:var(--app-muted)!important; border-radius:13px; text-decoration:none!important; transition:background .18s,box-shadow .18s,transform .18s; }
.wallet-shop__tabs a:hover { transform:translateY(-1px); }
.wallet-shop__tabs a.is-active,.wallet-shop__tabs a:focus { color:var(--app-ink)!important; background:var(--app-paper); box-shadow:0 4px 12px rgba(16,43,34,.09); }
.wallet-shop__tabs img { width:34px; height:34px; flex:0 0 34px; object-fit:contain; }
.wallet-shop__tabs span,.wallet-shop__tabs strong,.wallet-shop__tabs small { display:block; }
.wallet-shop__tabs strong { font-size:11px; }.wallet-shop__tabs small { margin-top:2px; color:var(--app-muted); font-size:8px; }
.wallet-shop__section { scroll-margin-top:95px; margin-top:16px; padding:28px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:22px; }
.wallet-shop__section--cash { background:linear-gradient(145deg,#fffdf8,#fff8f1); }
.wallet-shop__section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; }
.wallet-shop__section-heading h2 { margin:2px 0 3px; font-size:27px; }.wallet-shop__section-heading p { margin:0; color:var(--app-muted); font-size:11px; }
.wallet-shop__currency-mark { display:inline-flex; padding:9px 12px; align-items:center; gap:7px; color:#557015; background:#edf7cf; border-radius:999px; font-size:9px; font-weight:900; white-space:nowrap; }
.wallet-shop__currency-mark--cash { color:#9d4931; background:#ffebe3; }.wallet-shop__currency-mark img { width:18px; height:18px; object-fit:contain; }
.wallet-shop .billing-grid { margin-top:22px; }
.wallet-shop .billing-card { min-height:330px; overflow:hidden; background:#f7f4ec; transition:transform .18s,border-color .18s,box-shadow .18s; }
.wallet-shop .billing-card::after { content:""; position:absolute; right:-36px; top:-52px; width:135px; height:135px; background:rgba(217,247,95,.14); border-radius:50%; }
.wallet-shop .billing-card--cash::after { background:rgba(255,112,72,.12); }
.wallet-shop .billing-card:not(.is-unavailable):hover { border-color:#b7ca67; box-shadow:0 18px 38px rgba(16,43,34,.09); transform:translateY(-4px); }
.wallet-shop .billing-card--cash:not(.is-unavailable):hover { border-color:#eda58f; }
.billing-card__reward { display:flex; margin:38px 0 0; align-items:center; gap:11px; }
.billing-card__reward img { width:38px; height:38px; object-fit:contain; filter:drop-shadow(0 7px 8px rgba(16,43,34,.16)); }
.billing-card__reward h3 { margin:0; color:var(--app-ink); font-size:27px; line-height:1; }
.wallet-shop .billing-card > p { margin:5px 0 0 49px; color:var(--app-muted); font-size:9px; font-weight:700; }
.wallet-shop .billing-card__badge { z-index:2; }
.wallet-shop__assurance { display:flex; margin:16px 0 0; padding:20px 24px; align-items:center; gap:15px; color:var(--app-ink); background:#edf7cf; border:1px solid #d3e3a7; border-radius:18px; }
.wallet-shop__assurance > span { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; color:#fff; background:var(--app-forest); border-radius:11px; font-weight:900; }
.wallet-shop__assurance strong { display:block; font-size:11px; }.wallet-shop__assurance p { margin:2px 0 0; color:var(--app-muted); font-size:9px; }
@media (max-width:900px) { .wallet-shop__wallet { width:100%; min-width:0; }.wallet-shop__tabs { margin:14px 0 20px; max-width:none; } }
@media (max-width:560px) { .wallet-shop__wallet > div,.wallet-shop__tabs { grid-template-columns:1fr; }.wallet-shop__section { padding:20px 16px; }.wallet-shop__section-heading { align-items:flex-start; flex-direction:column; }.wallet-shop__currency-mark { display:none; }.wallet-shop__assurance { align-items:flex-start; } }

/* Inventory and market */
.inventory-hero > img { width:120px; height:120px; margin-right:40px; object-fit:contain; filter:drop-shadow(0 18px 20px rgba(0,0,0,.25)); }.inventory-list { display:grid; gap:8px; }.inventory-item { display:grid; min-height:94px; padding:14px; grid-template-columns:66px 1fr auto; align-items:center; gap:15px; background:#f4f1e8; border-radius:14px; }.inventory-item__image { display:grid; width:66px; height:66px; place-items:center; background:#fff; border-radius:12px; }.inventory-item__image img { max-width:45px; max-height:45px; }.inventory-item__copy span { color:var(--app-orange); font-size:8px; font-weight:800; text-transform:uppercase; }.inventory-item__copy h3 { margin:1px 0; font-size:15px; }.inventory-item__copy p { margin:0; font-size:10px; }.inventory-item__quantity { min-width:80px; padding:11px; text-align:right; border-left:1px solid var(--app-border); }.inventory-item__quantity span { display:block; color:var(--app-muted); font-size:8px; text-transform:uppercase; }.inventory-item__quantity strong { font-size:20px; }.badge-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }.badge-card { display:flex; min-height:150px; padding:16px; align-items:center; justify-content:center; flex-direction:column; background:#f4f1e8; border-radius:15px; }.badge-card img { width:62px; height:62px; object-fit:contain; }.badge-card strong { margin-top:7px; font-size:11px; }.badge-card span { color:var(--app-muted); font-size:8px; }
.market-balance { min-width:210px; padding:20px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:18px; }.market-balance span,.market-balance small { display:block; color:rgba(255,255,255,.5); font-size:9px; text-transform:uppercase; }.market-balance strong { display:block; color:#fff; font-size:30px; }.market-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.market-card { display:flex; min-height:365px; padding:20px; flex-direction:column; background:#f4f1e8; border:1px solid transparent; border-radius:17px; }.market-card:hover { border-color:#cbdc83; transform:translateY(-2px); }.market-card__image { display:grid; height:110px; margin-bottom:14px; place-items:center; background:#fff; border-radius:13px; }.market-card__image img { width:72px; height:72px; object-fit:contain; image-rendering:pixelated; }.market-card h3 { margin:2px 0; font-size:18px; }.market-card > p { margin:0; min-height:45px; font-size:10px; }.market-card__price { display:flex; margin:18px 0 12px; align-items:end; justify-content:space-between; border-top:1px solid var(--app-border); padding-top:12px; }.market-card__price span,.market-card form label { color:var(--app-muted); font-size:8px; font-weight:800; text-transform:uppercase; }.market-card__price strong { font-size:20px; }.market-card__buy { display:grid; grid-template-columns:90px 1fr; gap:7px; }.market-card__buy .feature-button { width:100%; }
.battle-item-target { display:block; width:100%; margin:12px 0; padding:10px 12px; border:1px solid var(--app-border); border-radius:8px; background:#fff; color:var(--app-ink); }
.market-category-nav { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0; }.market-category-nav a { display:inline-flex; align-items:center; gap:8px; padding:9px 13px; border:1px solid var(--app-border); border-radius:999px; background:#fff; color:var(--app-ink); font-weight:700; }.market-category-nav span { color:var(--app-muted); }
.inventory-use-form { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:15px 0 22px; }.inventory-use-form label { font-weight:700; }.inventory-use-form select { min-width:160px; max-width:100%; padding:10px; border:1px solid var(--app-border); border-radius:8px; background:#fff; color:var(--app-ink); }

/* Battle command experience */
.battle-turn-header { display:flex; padding:30px 34px; align-items:center; justify-content:space-between; gap:30px; color:#fff; background:linear-gradient(125deg,#143f34,var(--app-deep)); border-radius:24px; }.battle-turn-header h1 { margin:3px 0 6px; color:#fff; font-size:38px; }.battle-turn-header p { margin:0; color:rgba(255,255,255,.6); }.battle-turn-header p strong { color:#fff; }.battle-turn-header__status { padding:9px 13px; color:var(--app-deep); background:var(--app-lime); border-radius:50px; font-size:9px; font-weight:900; text-transform:uppercase; }
.battle-log { display:flex; margin-top:12px; padding:15px 18px; gap:20px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:14px; }.battle-log > strong { flex:0 0 auto; font-size:10px; text-transform:uppercase; }.battle-log p { margin:0; font-size:10px; }.battle-log .is-success { color:#648116; }.battle-log .is-danger { color:#bc4b3d; }
.battle-arena { position:relative; display:grid; margin-top:14px; padding:32px; grid-template-columns:1fr 90px 1fr; align-items:center; gap:18px; background:#e9e5da; border-radius:24px; }.combatant-card { position:relative; padding:20px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; }.combatant-card.is-player { box-shadow:inset 0 4px var(--app-lime); }.combatant-card.is-opponent { box-shadow:inset 0 4px var(--app-orange); }.combatant-card__label { display:flex; justify-content:space-between; color:var(--app-muted); font-size:8px; font-weight:800; text-transform:uppercase; }.combatant-card__body { display:grid; grid-template-columns:130px 1fr; align-items:center; gap:15px; }.combatant-card__body > img { width:130px; height:130px; object-fit:contain; image-rendering:pixelated; }.combatant-card__body span { color:var(--app-orange); font-size:9px; font-weight:800; }.combatant-card__body h2 { margin:1px 0 11px; font-size:24px; }.combatant-card__body small { color:var(--app-muted); font-size:9px; }.combatant-health > span { display:flex; justify-content:space-between; color:var(--app-muted); font-size:9px; }.combatant-health > span b { color:var(--app-ink); }.combatant-health > div { height:8px; margin:5px 0; overflow:hidden; background:#e2ded3; border-radius:20px; }.combatant-health i { display:block; height:100%; background:linear-gradient(90deg,#72a322,var(--app-lime)); }.is-opponent .combatant-health i { background:linear-gradient(90deg,#de543f,#ff9c73); }.combatant-types { display:flex; gap:5px; }.combatant-types img { height:18px; width:auto; }.battle-versus { text-align:center; }.battle-versus span { display:grid; width:48px; height:48px; margin:auto; place-items:center; color:#fff; background:var(--app-deep); border-radius:50%; font-weight:900; }.battle-versus i { display:block; width:1px; height:45px; margin:auto; background:rgba(16,43,34,.18); }
.battle-command-panel,.battle-bag { position:relative; margin-top:14px; padding:26px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; }.battle-command-panel__heading h2,.battle-bag h2 { margin:2px 0 18px; font-size:23px; }.battle-moves { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.battle-move { margin:0; cursor:pointer; }.battle-move input { position:absolute; opacity:0; pointer-events:none; }.battle-move > span { display:flex; min-height:74px; padding:14px; flex-direction:column; justify-content:center; background:#f4f1e8; border:1px solid transparent; border-radius:13px; }.battle-move b { font-size:12px; }.battle-move small { color:var(--app-muted); font-size:8px; }.battle-move input:checked + span { background:#eef8c9; border-color:#a8be51; box-shadow:inset 0 0 0 1px #a8be51; }.battle-primary-action { width:100%; margin-top:12px; }.battle-swap-form { position:absolute; right:26px; top:26px; }.battle-bag header { display:flex; justify-content:space-between; }.battle-bag header > span { color:var(--app-muted); font-size:9px; font-weight:800; }.battle-items { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }.battle-items label { margin:0; }.battle-items input { position:absolute; opacity:0; }.battle-items label > span { display:flex; min-width:155px; padding:10px 12px; align-items:center; gap:8px; background:#f4f1e8; border:1px solid transparent; border-radius:12px; cursor:pointer; }.battle-items img { width:30px; height:30px; object-fit:contain; }.battle-items b { font-size:10px; }.battle-items small { margin-left:auto; color:var(--app-muted); }.battle-items input:checked + span { border-color:#a8be51; background:#eef8c9; }.battle-bag__empty { width:100%; padding:15px; color:var(--app-muted); background:#f4f1e8; border-radius:12px; font-size:10px; }

/* Maps, news, trading, leaderboards */
.recent-catches { margin-top:20px; padding:28px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:22px; }.recent-catches > .content-area.container { width:100%!important; margin:0!important; }.recent-catches .ghostkit-grid-inner { display:grid!important; margin:0!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.catch-card { display:flex; min-height:230px; padding:18px; align-items:center; flex-direction:column; background:#f4f1e8; border:1px solid transparent; border-radius:17px; text-align:center; }.catch-card:hover { border-color:#cbdc83; transform:translateY(-2px); }.catch-card__sprite { display:grid; width:100%; height:105px; place-items:center; background:#fff; border-radius:13px; }.catch-card__sprite img { width:84px; height:84px; object-fit:contain; image-rendering:pixelated; }.catch-card > span { margin-top:12px; color:var(--app-orange); font-size:8px; font-weight:800; text-transform:uppercase; }.catch-card h3 { margin:1px 0; font-size:15px; }.catch-card a { margin-top:auto; color:var(--app-muted)!important; font-size:9px; font-weight:700; text-decoration:none!important; }
.route-dashboard .news-feed,
.route-dashboard .tweet-feed { width:100%!important; max-width:920px; padding:0!important; }
.route-dashboard .tweet-card { overflow:hidden; margin:0 0 16px; color:var(--app-ink); background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; box-shadow:0 14px 36px rgba(16,43,34,.07); }
.route-dashboard .tweet-card__header { padding:20px 22px 11px; }
.route-dashboard .tweet-card__avatar,.route-dashboard .tweet-comment__avatar,.route-dashboard .tweet-comment-form__avatar { background:#f1eee5; }
.route-dashboard .tweet-card__avatar { border-color:rgba(255,112,72,.7); }
.route-dashboard .tweet-card__author,.route-dashboard .tweet-comment__author { color:var(--app-ink); }
.route-dashboard .tweet-card__author:hover,.route-dashboard .tweet-comment__author:hover { color:var(--app-orange); }
.route-dashboard .tweet-card__time,.route-dashboard .tweet-comment__time { color:var(--app-muted); }
.exotic-app.route-dashboard .tweet-card__delete { min-height:34px!important; padding:0!important; color:var(--app-muted)!important; background:transparent!important; border-radius:50%!important; }
.exotic-app.route-dashboard .tweet-card__delete:hover { color:#b44739!important; background:#fff0ed!important; transform:none!important; box-shadow:none!important; }
.route-dashboard .tweet-card__body { padding:8px 22px 20px; color:var(--app-ink); }
.route-dashboard .tweet-card__summary { color:var(--app-muted); }
.route-dashboard .tweet-card__reaction-summary a,.route-dashboard .tweet-card__comment-count { color:var(--app-muted)!important; }
.route-dashboard .tweet-card__summary-icon--like { background:var(--app-orange); }
.route-dashboard .tweet-card__summary-icon--dislike { background:#708079; }
.route-dashboard .tweet-card__actions { border-color:var(--app-border); }
.route-dashboard .tweet-action { min-height:40px; color:var(--app-muted); background:transparent; }
.route-dashboard .tweet-action:hover,.route-dashboard .tweet-action:focus { color:var(--app-ink); background:#f4f1e8; }
.route-dashboard .tweet-action.is-active,.route-dashboard .tweet-action.likedTweet,.route-dashboard .tweet-action.dislikedTweet { color:var(--app-orange); background:#fff3ee; }
.route-dashboard .tweet-comments { background:#f6f2e8; border-color:var(--app-border); }
.route-dashboard .tweet-comments__status { color:var(--app-muted); }
.route-dashboard .tweet-comment__bubble { color:var(--app-ink); background:#fff; border:1px solid var(--app-border); }
.route-dashboard .tweet-comment__delete { min-height:28px!important; padding:0!important; color:var(--app-muted)!important; background:transparent!important; border-radius:50%!important; }
.route-dashboard .tweet-comment__delete:hover { color:#b44739!important; background:#fff0ed!important; transform:none!important; }
.route-dashboard .tweet-comment-form__field { padding:9px 12px 8px; background:#fff; border:1px solid var(--app-border); }
.route-dashboard .tweet-comment-form__field:focus-within { border-color:var(--app-orange); box-shadow:0 0 0 3px rgba(255,112,72,.1); }
.route-dashboard .tweet-comment-form__input { min-height:24px!important; max-height:130px; padding:0!important; color:var(--app-ink)!important; background:transparent!important; border:0!important; border-radius:0!important; resize:none; }
.route-dashboard .tweet-comment-form__hint { color:var(--app-muted); }
.exotic-app.route-dashboard .tweet-comment-form__submit { min-height:32px!important; padding:0 15px!important; color:var(--app-deep)!important; background:var(--app-lime)!important; border-radius:999px!important; font-size:10px!important; }
.exotic-app.route-dashboard .tweet-comment-form__submit:hover { background:#e7ff79!important; transform:none!important; box-shadow:none!important; }
.route-dashboard .tweet-comment-form__error { color:#b44739; }
.route-dashboard .news-social-card__badge { display:inline-flex; margin-left:auto; padding:7px 10px; align-items:center; gap:6px; color:#587315; background:#edf7cf; border-radius:999px; font-size:9px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.route-dashboard .news-social-card__avatar-mark { display:block; width:48px; height:48px; flex-basis:48px; border-width:3px; box-shadow:0 0 0 3px rgba(255,112,72,.12); }
.route-dashboard .news-social-card__avatar-mark > span { width:14px; height:14px; }
.route-dashboard .news-social-card__headline { margin:2px 22px 0; padding:18px 20px; background:linear-gradient(135deg,#f2f8d9,#fff6ea); border:1px solid rgba(16,43,34,.08); border-radius:15px; }
.route-dashboard .news-social-card__headline span { color:var(--app-orange); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.route-dashboard .news-social-card__headline h4 { margin:3px 0 0; color:var(--app-ink); font-size:20px; line-height:1.25; }
.route-dashboard .news-social-card__body { padding-top:17px; color:var(--app-muted); }
.route-dashboard .dashboard-social-empty { display:flex; min-height:170px; margin-bottom:16px; padding:30px; align-items:center; justify-content:center; flex-direction:column; gap:5px; color:var(--app-muted); background:var(--app-paper); border:1px dashed rgba(16,43,34,.18); border-radius:20px; text-align:center; }
.route-dashboard .dashboard-social-empty > i { display:grid; width:44px; height:44px; margin-bottom:4px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:50%; }
.route-dashboard .dashboard-social-empty strong { color:var(--app-ink); font-size:14px; }
.route-dashboard .dashboard-social-empty--compact { min-height:105px; margin:0; border:0; }
.route-dashboard .dashboard-social-person { display:flex; padding:10px 4px; align-items:center; gap:11px; border-bottom:1px solid var(--app-border); }
.route-dashboard .dashboard-social-person:last-child { border-bottom:0; }
.route-dashboard .dashboard-social-person img { width:42px; height:42px; object-fit:cover; border-radius:50%; }
.route-dashboard .dashboard-social-person a { color:var(--app-ink)!important; font-size:12px; font-weight:800; }
.trade-builder-heading { margin:0; padding:19px 24px; font-size:18px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:18px 18px 0 0; }.trade-builder { padding:24px; background:var(--app-paper); border:1px solid var(--app-border); border-top:0; border-radius:0 0 18px 18px; }.trade-builder__picker { align-items:center; padding:16px; background:#f4f1e8; border-radius:15px; }.trade-builder__sprite { text-align:center; }.trade-builder__sprite img { width:88px; height:88px; object-fit:contain; image-rendering:pixelated; }.trade-builder__preview a { color:var(--app-orange)!important; font-size:15px; font-weight:800; }.trade-builder__preview { color:var(--app-muted); font-size:11px; }.trade-builder__select label { display:block; margin-bottom:5px; color:var(--app-muted); font-size:9px; font-weight:800; text-transform:uppercase; }.trade-builder__select br { display:none; }.trade-builder__select .feature-button { width:100%; margin-top:10px; }.trade-builder__selection { margin-top:13px; padding:18px; border:1px dashed rgba(16,43,34,.18); border-radius:15px; }.trade-builder__selection-header { display:flex; align-items:end; justify-content:space-between; }.trade-builder__selection-header strong { font-size:11px; }.trade-builder__selection-header p { margin:0; font-size:9px; }.setupTradesBox { display:flex!important; margin:12px 0 0!important; gap:8px; }.trade-slot { display:grid; min-width:145px; padding:10px; grid-template-columns:44px 1fr 14px; align-items:center; gap:7px; background:#f4f1e8; border-radius:11px; }.trade-slot__sprite { width:44px;height:44px;object-fit:contain; }.trade-slot div { display:flex; min-width:0; flex-direction:column; }.trade-slot strong { overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }.trade-slot span { color:var(--app-muted); font-size:8px; }.trade-slot__gender { width:13px; }.trade-builder__submit { width:100%; margin-top:2px; }

/* Trading center */
.trading-shell { padding-bottom:88px; }.trading-hero,.offer-hero { position:relative; display:flex; min-height:282px; padding:43px 46px; align-items:center; justify-content:space-between; gap:32px; overflow:hidden; color:#fff; background:linear-gradient(128deg,#174c3e,#08251d); border-radius:28px; }.trading-hero::after,.offer-hero::after { content:""; position:absolute; right:-130px; bottom:-190px; width:450px; height:450px; border:1px solid rgba(217,247,95,.23); border-radius:50%; box-shadow:0 0 0 55px rgba(217,247,95,.035),0 0 0 105px rgba(217,247,95,.02); }.trading-hero > *,.offer-hero > * { position:relative; z-index:1; }.trading-hero h1,.offer-hero h1 { margin:7px 0 11px; color:#fff; font-size:clamp(35px,4.6vw,58px); line-height:1.03; }.trading-hero p,.offer-hero p { max-width:600px; margin:0; color:rgba(255,255,255,.67); }.trading-hero p strong,.offer-hero p strong { color:#fff; }.trading-hero__trust { display:grid; min-width:210px; padding:18px; grid-template-columns:38px 1fr; column-gap:12px; align-items:center; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.13); border-radius:17px; }.trading-hero__trust i { display:grid; width:38px; height:38px; grid-row:span 2; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:12px; }.trading-hero__trust span,.trading-hero__trust small { display:block; }.trading-hero__trust span { color:#fff; font-size:11px; font-weight:800; }.trading-hero__trust small { color:rgba(255,255,255,.56); font-size:9px; }.trading-hero--market { background:linear-gradient(125deg,#244c81,#103e44); }.trading-hero--offers { background:linear-gradient(125deg,#5c3940,#172f34); }.trading-hero__stat { display:flex; min-width:165px; padding:24px; flex-direction:column; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); border-radius:18px; }.trading-hero__stat strong { color:var(--app-lime); font:800 42px/1 Manrope,sans-serif; }.trading-hero__stat span { margin-top:5px; color:rgba(255,255,255,.64); font-size:10px; font-weight:700; }
.trade-nav { display:flex; margin:18px 0; padding:6px; gap:4px; overflow-x:auto; background:rgba(255,253,248,.72); border:1px solid var(--app-border); border-radius:18px; }.trade-nav__item { display:flex; min-height:49px; min-width:max-content; padding:0 15px; align-items:center; gap:9px; flex:1; color:var(--app-muted)!important; border-radius:13px; font-size:11px; font-weight:800; text-decoration:none!important; }.trade-nav__item i { color:var(--app-orange); }.trade-nav__item b { display:grid; min-width:22px; height:22px; margin-left:auto; place-items:center; color:var(--app-muted); background:#ece9df; border-radius:50%; font-size:9px; }.trade-nav__item.is-active { color:var(--app-ink)!important; background:var(--app-paper); box-shadow:0 5px 12px rgba(16,43,34,.07); }.trade-nav__item.is-active b { color:var(--app-deep); background:var(--app-lime); }.trade-flash { display:flex; margin:18px 0; padding:15px 18px; align-items:center; gap:12px; background:#fff4e8; border:1px solid #f0cda9; border-radius:15px; }.trade-flash.is-success { background:#eff7d9; border-color:#c9df8a; }.trade-flash > i { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; color:#a45832; background:#ffe2cb; border-radius:50%; }.trade-flash.is-success > i { color:#557217; background:var(--app-lime); }.trade-flash strong { display:block; font-size:11px; }.trade-flash p { margin:0; font-size:10px; }
.trade-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:14px; }.trade-panel,.trade-help-card,.offer-trade-summary,.offer-builder,.market-toolbar { background:var(--app-paper); border:1px solid var(--app-border); border-radius:21px; }.trade-panel--builder,.offer-builder { padding:25px; }.trade-panel__header,.offer-trade-summary > header,.trade-section__header { display:flex; align-items:end; justify-content:space-between; gap:16px; }.trade-panel__header h2,.offer-trade-summary h2,.trade-section h2,.market-toolbar h2 { margin:2px 0 0; font-size:21px; }.trade-limit { padding:7px 9px; color:#647a1a; background:#edf5cb; border-radius:30px; font-size:8px; font-weight:900; text-transform:uppercase; }.trade-picker { display:grid; max-height:312px; margin:20px 0 12px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; overflow:auto; }.trade-picker__item { display:grid; min-width:0; padding:9px; grid-template-columns:42px 1fr 22px; align-items:center; gap:8px; color:var(--app-ink); background:#f4f1e8; border:1px solid transparent; border-radius:12px; text-align:left; cursor:pointer; }.trade-picker__item:hover,.trade-picker__item.is-selected { background:#f3f9da; border-color:#c7dc81; }.trade-picker__item img { width:42px; height:42px; object-fit:contain; image-rendering:pixelated; }.trade-picker__item span { display:flex; min-width:0; flex-direction:column; }.trade-picker__item strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.trade-picker__item small { color:var(--app-muted); font-size:8px; }.trade-picker__item i { display:grid; width:20px; height:20px; place-items:center; color:var(--app-muted); background:#fffdf8; border-radius:50%; font-size:8px; }.trade-picker__item.is-selected i { color:var(--app-deep); background:var(--app-lime); }.trade-selection { min-height:108px; padding:16px; background:#fbfaf5; border:1px dashed rgba(16,43,34,.22); border-radius:15px; }.trade-selection > div:first-child { display:flex; align-items:end; justify-content:space-between; gap:10px; }.trade-selection > div:first-child strong { font-size:10px; }.trade-selection > div:first-child b { color:var(--app-orange); }.trade-selection > p { margin:9px 0 0; font-size:10px; }.trade-selection__items { display:grid; margin-top:10px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }.trade-selection__item { display:grid; padding:7px; grid-template-columns:30px 1fr 21px; align-items:center; gap:7px; background:#edf4d6; border-radius:9px; }.trade-selection__item img { width:30px; height:30px; object-fit:contain; }.trade-selection__item span { display:flex; min-width:0; flex-direction:column; }.trade-selection__item strong { overflow:hidden; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }.trade-selection__item small { color:var(--app-muted); font-size:7px; }.trade-selection__item button { display:grid; width:20px; height:20px; place-items:center; color:var(--app-muted); background:transparent; border:0; border-radius:50%; cursor:pointer; }.trade-selection__item button:hover { color:#c84d40; background:#fff; }.trade-submit { width:100%; margin-top:12px; }.trade-help-card { padding:25px; background:linear-gradient(145deg,#f2f7de,#fffdf8); }.trade-help-card h2 { margin:4px 0 8px; font-size:22px; }.trade-help-card p { margin:0; font-size:11px; }.trade-help-card ul { display:grid; margin:21px 0 0; padding:15px 0 0; gap:11px; border-top:1px solid var(--app-border); list-style:none; }.trade-help-card li { display:flex; align-items:center; gap:8px; color:var(--app-muted); font-size:10px; }.trade-help-card li i { color:#68891a; }.trade-section { margin-top:35px; }.trade-section__header { margin-bottom:13px; }.trade-section__header > span { color:var(--app-muted); font-size:10px; font-weight:800; }.trade-listing,.market-listing,.sent-offer { margin-bottom:13px; padding:22px; background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; }.trade-listing__header,.market-listing > header,.sent-offer > header,.received-offer > header { display:flex; align-items:center; justify-content:space-between; gap:13px; }.trade-status { color:#638019; font-size:8px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }.trade-status i { margin-right:4px; color:#9bbd2a; font-size:7px; }.trade-listing h3,.sent-offer h3 { margin:4px 0 1px; font-size:16px; }.trade-listing small,.sent-offer small,.market-listing small { color:var(--app-muted); font-size:9px; }.trade-text-button { padding:7px 0; color:#c35c4d; background:transparent; border:0; border-bottom:1px solid rgba(195,92,77,.35); font:800 9px "DM Sans",sans-serif; cursor:pointer; }.trade-pokemon-grid { display:grid; margin-top:16px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.trade-pokemon-card { display:grid; min-width:0; padding:10px; grid-template-columns:50px 1fr 14px; align-items:center; gap:8px; background:#f4f1e8; border-radius:13px; }.trade-pokemon-card__sprite { display:grid; width:50px; height:50px; place-items:center; background:#fffdf8; border-radius:10px; }.trade-pokemon-card__sprite img { width:48px; height:48px; object-fit:contain; image-rendering:pixelated; }.trade-pokemon-card__copy { display:flex; min-width:0; flex-direction:column; }.trade-pokemon-card__copy span { overflow:hidden; color:var(--app-orange); font-size:7px; font-weight:800; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }.trade-pokemon-card__copy strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.trade-pokemon-card__copy small { color:var(--app-muted); font-size:8px; }.trade-pokemon-card__gender { width:12px; max-height:12px; object-fit:contain; }.trade-pokemon-card--compact { padding:8px; grid-template-columns:38px 1fr 12px; }.trade-pokemon-card--compact .trade-pokemon-card__sprite { width:38px; height:38px; }.trade-pokemon-card--compact .trade-pokemon-card__sprite img { width:36px; height:36px; }.trade-pokemon-card--compact .trade-pokemon-card__copy strong { font-size:9px; }.trade-pokemon-card--compact .trade-pokemon-card__copy span { font-size:6px; }.trade-pokemon-card--compact .trade-pokemon-card__copy small { font-size:7px; }.trade-offer-divider { display:flex; margin:18px 0 12px; align-items:center; gap:10px; color:var(--app-muted); font-size:9px; font-weight:800; text-transform:uppercase; }.trade-offer-divider::before,.trade-offer-divider::after { content:""; height:1px; flex:1; background:var(--app-border); }.trade-offer-divider b { color:var(--app-orange); }.received-offer { padding:15px; background:#fbfaf4; border:1px solid var(--app-border); border-radius:15px; }.received-offer__trainer,.market-listing__trainer { display:flex; min-width:0; align-items:center; gap:8px; }.received-offer__trainer img,.market-listing__trainer img,.offer-hero__trainer img { width:32px; height:32px; object-fit:cover; border-radius:10px; }.received-offer__trainer div,.market-listing__trainer div { display:flex; min-width:0; flex-direction:column; line-height:1.25; }.received-offer__trainer span,.market-listing__trainer span { color:var(--app-muted); font-size:8px; }.received-offer__trainer strong,.market-listing__trainer strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.trade-money { display:inline-flex; padding:6px 9px; align-items:center; gap:5px; color:#976125; background:#fff0d7; border-radius:30px; font-size:9px; font-weight:800; }.received-offer__actions { display:flex; margin-top:12px; gap:7px; }.received-offer__actions form { flex:1; }.received-offer__actions .feature-button { width:100%; min-height:38px; padding:0 12px; font-size:9px!important; }.trade-offer-empty { display:flex; padding:17px; align-items:center; gap:11px; color:var(--app-muted); background:#f7f5ee; border-radius:13px; }.trade-offer-empty > i { display:grid; width:34px; height:34px; place-items:center; color:var(--app-muted); background:#ece9df; border-radius:50%; }.trade-offer-empty strong,.trade-offer-empty span { display:block; }.trade-offer-empty strong { color:var(--app-ink); font-size:10px; }.trade-offer-empty span { font-size:9px; }.trade-empty-list { display:flex; min-height:220px; padding:25px; align-items:center; justify-content:center; flex-direction:column; color:var(--app-muted); background:rgba(255,253,248,.65); border:1px dashed rgba(16,43,34,.2); border-radius:20px; text-align:center; }.trade-empty-list > i { display:grid; width:48px; height:48px; margin-bottom:11px; place-items:center; color:var(--app-deep); background:var(--app-lime); border-radius:15px; font-size:18px; }.trade-empty-list h3 { margin:0 0 3px; color:var(--app-ink); font-size:16px; }.trade-empty-list p { max-width:390px; margin:0 0 14px; font-size:10px; }
.market-toolbar { display:flex; margin-top:18px; padding:20px; align-items:end; justify-content:space-between; gap:20px; }.market-toolbar form { display:grid; min-width:min(100%,570px); grid-template-columns:1fr 1fr auto; gap:7px; }.market-toolbar label,.trade-money-input { display:flex; flex-direction:column; gap:4px; }.market-toolbar label > span,.trade-money-input > span { color:var(--app-muted); font-size:8px; font-weight:800; text-transform:uppercase; }.market-toolbar select,.trade-money-input input { width:100%; height:40px; padding:0 11px; color:var(--app-ink); outline:0; background:#f4f1e8; border:1px solid transparent; border-radius:10px; font:700 10px "DM Sans",sans-serif; }.market-toolbar select:focus,.trade-money-input input:focus { border-color:#aac751; background:#fffdf8; }.market-toolbar .feature-button { min-height:40px; padding:0 14px; font-size:9px!important; }.market-listings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.market-listing { display:flex; min-height:265px; margin:0; flex-direction:column; }.market-listing > header { align-items:flex-start; }.market-listing__trainer img { width:37px; height:37px; }.market-listing__trainer strong { font-size:11px; }.market-listing__action { width:100%; min-height:40px; margin-top:auto; font-size:9px!important; }.trade-back { display:inline-flex; margin:0 0 14px; align-items:center; gap:8px; color:var(--app-muted)!important; font-size:10px; font-weight:800; text-decoration:none!important; }.trade-back:hover { color:var(--app-ink)!important; transform:translateX(-2px); }.offer-hero { min-height:245px; background:linear-gradient(125deg,#413c68,#123e3b); }.offer-hero__trainer { display:flex; min-width:155px; padding:14px; align-items:center; gap:10px; flex-wrap:wrap; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.13); border-radius:17px; }.offer-hero__trainer img { width:42px; height:42px; }.offer-hero__trainer span { width:calc(100% - 52px); color:rgba(255,255,255,.57); font-size:8px; }.offer-hero__trainer strong { width:calc(100% - 52px); overflow:hidden; color:#fff; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.offer-trade-summary { margin-top:17px; padding:22px; }.offer-builder { margin-top:14px; }.offer-builder__grid { display:grid; margin-top:18px; grid-template-columns:minmax(0,1fr) minmax(250px,.75fr); gap:14px; }.offer-builder .trade-picker { max-height:362px; margin:0; }.offer-builder .trade-selection { min-height:100%; }.trade-money-input { margin-top:14px; padding-top:13px; border-top:1px solid var(--app-border); }.trade-money-input small { color:var(--app-muted); font-size:8px; }.sent-offers { display:grid; gap:12px; }.sent-offer { margin:0; }.sent-offer__sides { display:grid; margin-top:16px; grid-template-columns:1fr 30px 1fr; align-items:center; gap:10px; }.sent-offer__sides > section > .feature-eyebrow { display:block; margin-bottom:7px; }.sent-offer__sides .trade-pokemon-grid { margin:0; grid-template-columns:repeat(2,minmax(0,1fr)); }.sent-offer__exchange { display:grid; width:29px; height:29px; place-items:center; color:#6b891e; background:#eff5d6; border-radius:50%; font-size:10px; }.sent-offer__sides .trade-money { margin-top:8px; }.sent-offer__heading h3 { margin-top:5px; }
.leaderboard-hero__mark { display:grid; width:100px; height:100px; margin-right:45px; place-items:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:25px; font-size:40px; }.leaderboard-grid { display:grid; margin-top:16px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.leaderboard-card { overflow:hidden; background:var(--app-paper); border:1px solid var(--app-border); border-radius:20px; }.leaderboard-card > header { display:flex; padding:20px; align-items:end; justify-content:space-between; border-bottom:1px solid var(--app-border); }.leaderboard-card h2 { margin:2px 0 0; font-size:18px; }.leaderboard-card > header > span { color:var(--app-muted); font-size:9px; font-weight:800; }.leaderboard-card ol { margin:0; padding:0; list-style:none; }.leaderboard-card li { display:grid; min-height:66px; padding:9px 16px; grid-template-columns:30px 1fr auto; align-items:center; gap:9px; border-bottom:1px solid var(--app-border); }.leaderboard-card li:last-child { border:0; }.leaderboard-rank { display:grid; width:25px; height:25px; place-items:center; color:var(--app-muted); background:#f1eee5; border-radius:50%; font-size:9px; font-weight:900; }.leaderboard-card li:nth-child(-n+3) .leaderboard-rank { color:var(--app-deep); background:var(--app-lime); }.leaderboard-card li > a { display:flex; min-width:0; align-items:center; gap:10px; color:var(--app-ink)!important; text-decoration:none!important; }.leaderboard-card li img { width:34px; height:34px; object-fit:cover; border-radius:10px; }.leaderboard-card li strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; }.leaderboard-card li > div { text-align:right; }.leaderboard-card li > div b,.leaderboard-card li > div small { display:block; }.leaderboard-card li > div b { font-size:12px; }.leaderboard-card li > div small { color:var(--app-muted); font-size:7px; text-transform:uppercase; }.leaderboard-empty { display:block!important; color:var(--app-muted); font-size:11px; text-align:center; }.pokemon-ranking-list { display:grid; gap:7px; }.pokemon-ranking-list article { display:grid; min-height:72px; padding:10px 14px; grid-template-columns:30px 55px 1fr auto; align-items:center; gap:10px; background:#f4f1e8; border-radius:13px; }.pokemon-ranking-list article > img { width:52px; height:52px; object-fit:contain; image-rendering:pixelated; }.pokemon-ranking-list article > div:not(.pokemon-ranking-list__stats) span { color:var(--app-orange); font-size:8px; font-weight:800; }.pokemon-ranking-list h3 { margin:0; font-size:13px; }.pokemon-ranking-list small { color:var(--app-muted); font-size:8px; }.pokemon-ranking-list small a { color:var(--app-ink)!important; }.pokemon-ranking-list__stats { text-align:right; }.pokemon-ranking-list__stats span,.pokemon-ranking-list__stats b { display:block; }.pokemon-ranking-list__stats span { color:var(--app-muted); font-size:9px; }.pokemon-ranking-list__stats b { font-size:10px; }

@media (max-width:980px) {
    .feature-shell { padding-top:100px; }.mission-grid,.reward-preview-grid,.reward-track,.billing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.subscription-grid { grid-template-columns:1fr; }.badge-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.market-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.battle-arena { grid-template-columns:1fr; }.battle-versus i { display:none; }.combatant-card__body { grid-template-columns:105px 1fr; }.combatant-card__body > img { width:105px;height:105px; }.battle-moves { grid-template-columns:repeat(2,minmax(0,1fr)); }.recent-catches .ghostkit-grid-inner { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .feature-shell { width:calc(100% - 24px); padding:88px 0 45px; }.feature-hero,.pass-hero { min-height:0; padding:26px 22px; align-items:flex-start; flex-direction:column; }.feature-hero h1,.pass-hero h1 { font-size:36px; }.feature-section { padding:18px; }.feature-section__header { align-items:flex-start; }.feature-notice { align-items:flex-start; flex-direction:column; gap:5px; }.pass-hero { display:flex; }.pass-level-card { width:100%; grid-template-columns:1fr; }.pass-level-card > div:first-child { grid-row:auto; }.pass-level-card .feature-progress { grid-column:auto; }.pass-xp { align-items:flex-start; flex-direction:column; gap:2px; }.mission-grid,.reward-preview-grid,.reward-track,.billing-grid,.market-grid,.leaderboard-grid { grid-template-columns:1fr; }.badge-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.inventory-hero > img,.leaderboard-hero__mark { display:none; }.inventory-item { grid-template-columns:54px 1fr; }.inventory-item__image { width:54px;height:54px; }.inventory-item__quantity { grid-column:2; padding:0; border:0; text-align:left; }.billing-hero__trust,.market-balance { width:100%; min-width:0; }.battle-turn-header { padding:24px; align-items:flex-start; flex-direction:column; }.battle-turn-header h1 { font-size:31px; }.battle-arena { padding:14px; }.combatant-card__body { grid-template-columns:85px 1fr; }.combatant-card__body > img { width:85px;height:85px; }.battle-command-panel,.battle-bag { padding:18px; }.battle-swap-form { position:static; margin-top:8px; }.battle-swap-form .feature-button { width:100%; }.battle-moves { grid-template-columns:1fr 1fr; }.recent-catches { padding:18px; }.recent-catches .ghostkit-grid-inner { grid-template-columns:1fr; }.trade-builder { padding:15px; }.trade-builder__picker > div { margin-bottom:12px; }.trade-builder__selection-header { align-items:flex-start; flex-direction:column; }.pokemon-ranking-list article { grid-template-columns:25px 45px 1fr; }.pokemon-ranking-list__stats { grid-column:3; text-align:left; }
}
