:root{color-scheme:light dark;--accent: var(--tg-theme-button-color, #2ea6ff);--accent-text: var(--tg-theme-button-text-color, #ffffff);--surface: var(--tg-theme-secondary-bg-color, #f5f5f5);--surface-strong: var(--tg-theme-secondary-bg-color, #eeeeee)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #111111)}button,input,select{font-family:inherit}.screen{min-height:100vh;padding:12px}.center{display:flex;align-items:center;justify-content:center;gap:8px;min-height:60vh}.error{color:var(--tg-theme-destructive-text-color, #d33333)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.page-transition{animation:page-transition-in .22s ease}@keyframes page-transition-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.page-transition{animation:none}}.app-header{padding:14px;border-radius:14px;background:var(--surface);margin-bottom:12px}.app-header-name{font-weight:700;font-size:18px}.app-header-stats{display:flex;gap:8px;margin-top:8px}.stat-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:var(--tg-theme-bg-color, #ffffff);font-size:13px;font-variant-numeric:tabular-nums;opacity:.9}.view-tabs{display:flex;gap:6px;margin-bottom:12px;padding:4px;border-radius:14px;background:var(--surface)}.view-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 6px;border-radius:10px;border:none;background:transparent;color:var(--tg-theme-text-color, #111111);font-size:13px;font-weight:600;text-decoration:none;opacity:.65;transition:background-color .18s ease,opacity .18s ease,color .18s ease}.view-tab.active{background:var(--accent);color:var(--accent-text);opacity:1}.view-tab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.universe-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px}.tab{flex:none;display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;border:none;background:var(--surface-strong);color:var(--tg-theme-text-color, #111111);font-size:14px}.tab.active{background:var(--accent);color:var(--accent-text)}.filters{display:flex;gap:8px;margin-bottom:12px}.search-input-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.search-input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--tg-theme-hint-color, #cccccc);background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #111111);font-size:14px}.tier-select{flex:none;max-width:42%;padding:8px 6px;border-radius:8px;border:1px solid var(--tg-theme-hint-color, #cccccc);background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #111111);font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.grid-loading{display:flex;justify-content:center;padding:16px 0;color:var(--tg-theme-hint-color, #999)}.load-more-button{display:block;width:100%;margin-top:12px;padding:10px;border:none;border-radius:10px;background:var(--surface-strong);color:var(--tg-theme-text-color, #111111);font-size:14px;font-weight:600;cursor:pointer}.card{position:relative;display:block;width:100%;border:none;cursor:pointer;font:inherit;text-align:center;background:var(--surface);border-radius:12px;padding:6px;transition:transform .12s ease,box-shadow .12s ease}.card:active{transform:scale(.96)}.card-tier-dot{position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 2px var(--tg-theme-bg-color, #ffffff)}.card img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:8px}.card-name{font-size:12px;margin-top:6px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;opacity:.7;margin-top:2px}.card-meta-stars{display:inline-flex;align-items:center;gap:2px}.empty{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;opacity:.7;margin-top:40px}.progress-page{display:flex;flex-direction:column;gap:12px}.progress-row{background:var(--surface);border-radius:10px;padding:10px 12px}.progress-row-header{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.progress-row-title{display:inline-flex;align-items:center;gap:6px;font-weight:600}.progress-row-count{opacity:.7;font-variant-numeric:tabular-nums}.progress-bar-track{height:8px;border-radius:999px;background:var(--tg-theme-bg-color, #e6e6e6);overflow:hidden}.progress-bar-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.progress-row-percent{margin-top:4px;font-size:12px;text-align:right;opacity:.7;font-variant-numeric:tabular-nums}.back-button{display:inline-flex;align-items:center;gap:6px;border:none;background:var(--surface-strong);color:var(--tg-theme-text-color, #111111);padding:8px 14px;border-radius:8px;font-size:14px;margin-bottom:12px}.card-page-image{width:100%;max-height:320px;object-fit:contain;border-radius:12px;background:var(--surface)}.card-page-body{margin-top:14px;display:flex;flex-direction:column;gap:8px}.card-page-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding-bottom:8px;border-bottom:1px solid var(--surface-strong)}.card-page-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;opacity:.8}.card-page-description{display:flex;gap:6px;font-size:14px;opacity:.85;line-height:1.4;margin:4px 0}.tier-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.star-row{display:inline-flex;align-items:center;gap:2px;color:#f59e0b}.battle-pass-page{display:flex;flex-direction:column;gap:14px}.battle-pass-summary{background:var(--surface);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.battle-pass-summary-top{display:flex;justify-content:space-between;font-size:14px}.battle-pass-summary-need{opacity:.7;font-size:12px;font-variant-numeric:tabular-nums}.battle-pass-track{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px}.bp-column{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto;padding:4px;border-radius:14px}.bp-column-current{background:var(--surface);box-shadow:0 0 0 1px var(--accent) inset}.bp-level-label{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.bp-column-current .bp-level-label{opacity:1;font-weight:700;color:var(--accent)}.bp-tile{width:58px;height:58px;border-radius:14px;border:none;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;transition:transform .12s ease}.bp-tile-reward{display:flex;flex-direction:column;align-items:center;gap:2px;font-variant-numeric:tabular-nums}.bp-tile-coins{display:inline-flex;align-items:center;gap:2px;font-size:10px;opacity:.85}.bp-tile-free{background:var(--surface-strong);color:var(--tg-theme-text-color, #111111)}.bp-tile-premium{background:linear-gradient(145deg,#ffd76a,#d99a2b);color:#3a2500;box-shadow:0 0 0 1px #d99a2b99 inset}.bp-tile-locked{opacity:.4}.bp-tile-claimed{opacity:.55}.bp-tile-ready:active{transform:scale(.92)}.bp-tile:disabled{cursor:default}.battle-pass-nav{display:flex;align-items:center;gap:12px;justify-content:center}.battle-pass-nav-page{font-size:13px;opacity:.7;font-variant-numeric:tabular-nums;min-width:44px;text-align:center}.battle-pass-nav button{display:flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:10px;border:none;background:var(--surface-strong);color:var(--tg-theme-text-color, #111111)}.battle-pass-nav button:disabled{opacity:.35}.battle-pass-claim-all{display:flex;flex-direction:column;gap:8px;margin-top:4px}.battle-pass-claim-all button{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:10px;border:none;background:var(--surface-strong);color:var(--tg-theme-text-color, #111111);font-weight:600}.battle-pass-claim-all button:disabled{opacity:.5}
