:root{--bg:#F7F5EF;--surface:#FFFFFF;--ink:#1B1D24;--muted:#6F6A61;--accent:#E8492E;--money:#0E8A5F;--money-soft:#E3F2EA;--boost:#F2A81D;--chain:#245CFF;--chain-soft:#E7EDFE;--line-green:#06C755;--border:#E4E0D5;--error:#B3261E}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:system-ui,sans-serif}button{color:inherit;font:inherit;min-width:0;overflow-wrap:anywhere}.app-shell{display:grid;grid-template-columns:minmax(0,430px);gap:24px;width:min(520px,calc(100vw - 28px));margin:0 auto;padding:24px 0}.app-shell.internal{grid-template-columns:minmax(0,430px) minmax(360px,1fr);width:min(1180px,calc(100vw - 28px))}.shell-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.shell-switch button{min-height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:800}.shell-switch .active{border-color:var(--ink);background:#fffdfa;color:var(--ink)}.device{display:flex;flex-direction:column;min-height:790px;max-height:900px;overflow:hidden;border:1px solid var(--border);border-radius:28px;background:var(--surface)}.app-top,.brand,.section-title,.quote,.store-item{display:flex;align-items:center}.app-top{justify-content:space-between;padding:16px;border-bottom:1px solid var(--border);background:#fffdfa}.brand{gap:10px}.top-actions{display:flex;align-items:center;gap:6px}.api-sync{max-width:92px;overflow:hidden;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#f3f0e7;color:var(--muted);font-size:11px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.api-sync.ok{border-color:var(--money);background:var(--money-soft);color:var(--money)}.api-sync.bad{border-color:var(--error);background:#fff6f4;color:var(--error)}.sync-alert{display:flex;justify-content:space-between;gap:10px;padding:9px 16px;border-bottom:1px solid #f4cfc8;background:#fff7f4;color:var(--error);font-size:12px;font-weight:800}.sync-alert span{color:#7a463c;font-weight:700}.brand img{width:42px;height:42px;border-radius:10px}.brand span,small,.quote span,.store-item span{color:var(--muted);font-size:12px}.wallet,.tabs button,.section-title button,.quote button,.store-item button,.primary{border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.wallet{min-height:36px;padding:0 10px;color:var(--chain);font-weight:800}.tabs{display:none;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));border-bottom:1px solid var(--border)}.tabs button{min-height:44px;border:0;border-radius:0;color:var(--muted);font-size:13px}.tabs .active{color:var(--accent);font-weight:800}.coach-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);background:#fffdfa}.coach-strip div{min-width:0}.coach-strip b,.coach-strip span{display:block;min-width:0;overflow-wrap:anywhere}.coach-strip b{font-size:13px}.coach-strip span{margin-top:2px;color:var(--muted);font-size:11px;font-weight:800}.coach-strip button{min-height:34px;padding:0 11px;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff;cursor:pointer;font-size:12px;font-weight:900}.screen{flex:1;min-height:0;overflow-y:auto;padding:16px}.bottom-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:2px;padding:8px 10px 10px;border-top:1px solid var(--border);background:rgba(248,251,255,0.96)}.bottom-tabs button{display:grid;place-items:center;gap:2px;min-width:0;min-height:48px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.bottom-tabs span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#f3f0e7;font-size:11px;font-weight:900}.bottom-tabs b{font-size:11px;line-height:1}.bottom-tabs .active{color:var(--accent);font-weight:900}.bottom-tabs .active span{background:#fff1e7;color:var(--accent)}.passbook-head{padding:18px;border:1px solid var(--border);border-radius:10px;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(228,224,213,0.8) 32px),#fffdfa}.joy-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-content:end;min-height:260px;padding:18px;overflow:hidden;border-radius:20px;background:linear-gradient(180deg,rgba(27,29,36,0.03),rgba(27,29,36,0.88)),url("../assets/game-covers.jpg");color:#fff}.joy-hero div{grid-column:1 / -1;display:grid;gap:4px}.joy-hero span{width:fit-content;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,0.92);color:var(--ink);font-size:12px;font-weight:900}.joy-hero b{overflow-wrap:anywhere;font-size:34px;line-height:1.05}.joy-hero small{color:rgba(255,255,255,0.86);font-size:14px;font-weight:800}.joy-hero button{min-height:44px;padding:0 14px;border:1px solid rgba(255,255,255,0.5);border-radius:10px;background:rgba(255,255,255,0.16);color:#fff;cursor:pointer;font-weight:900}.joy-hero .primary{border-color:var(--accent);background:var(--accent)}.simple-reward-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.simple-reward-flow span{display:grid;place-items:center;min-height:58px;padding:8px 5px;border:1px solid #dde8d8;border-radius:12px;background:#f8fbf6;color:var(--muted);font-size:11px;font-weight:900;text-align:center}.simple-reward-flow b{display:grid;place-items:center;width:24px;height:24px;margin-bottom:3px;border-radius:999px;background:var(--money);color:#fff;font-size:12px}.simple-reward-flow .active{border-color:var(--accent);background:#fff6f4;color:var(--ink)}.simple-reward-flow .done{border-color:var(--money);background:var(--money-soft);color:var(--ink)}.play-mood-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.play-mood-deck button{display:grid;align-content:space-between;min-height:104px;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.play-mood-deck .instant{border-color:rgba(36,92,255,.18);background:#fffdfa;color:var(--chain)}.play-mood-deck .boost{border-color:rgba(242,168,29,.45);background:#fff8ef;color:#8a5b00}.play-mood-deck .social{border-color:rgba(6,199,85,.24);background:#ecfff5;color:var(--money)}.play-mood-deck span{font-size:11px;font-weight:900}.play-mood-deck b{min-width:0;margin-top:10px;overflow-wrap:anywhere;font-size:15px;line-height:1.12}.play-mood-deck small{margin-top:6px;color:var(--muted);font-size:11px;font-weight:800}.quest-map,.home-next-games{display:grid;gap:8px;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fffdfa}.quest-map button{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:62px;padding:10px;border:1px solid #eadfcb;border-radius:12px;background:#fff;cursor:pointer;text-align:left}.quest-map button>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#fff1e7;color:var(--accent);font-size:12px;font-weight:900}.quest-map b,.quest-map small{grid-column:2;min-width:0;overflow-wrap:anywhere}.quest-map b{font-size:15px}.quest-map small{color:var(--muted);font-size:12px}.quest-map strong{grid-column:3;grid-row:1 / span 2;color:var(--money);font-size:13px}.home-balance-pill{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid rgba(14,138,95,0.18);border-radius:14px;background:var(--money-soft)}.home-balance-pill>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:end}.home-balance-pill span,.home-balance-pill small{color:var(--muted);font-size:12px;font-weight:800}.home-balance-pill strong{grid-column:1;color:var(--money);font-size:30px}.home-balance-pill small{grid-column:2;grid-row:1 / span 2}.home-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.home-shortcuts button{min-height:64px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left}.home-shortcuts b,.home-shortcuts span{display:block}.home-shortcuts span{margin-top:3px;color:var(--muted);font-size:12px}.home-game-chip{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:74px;padding:8px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;text-align:left}.home-game-chip .art{width:54px;height:58px;border-radius:10px}.home-game-chip b,.home-game-chip small{grid-column:2;min-width:0;overflow-wrap:anywhere}.home-game-chip small{color:var(--muted);font-size:11px}.home-game-chip strong{grid-column:3;grid-row:1 / span 2;padding:8px 10px;border-radius:999px;background:#fff1e7;color:var(--accent);font-size:12px}.consent-card,.wallet-connect{display:grid;gap:12px;margin-bottom:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff4e8}.consent-card b,.wallet-connect b{display:block;font-size:18px}.consent-card span,.consent-card small,.wallet-connect span,.wallet-connect p{color:var(--muted);font-size:12px;line-height:1.5}.consent-card span{color:var(--accent);font-weight:900}.consent-card small{display:block;margin-top:4px}.consent-card button,.wallet-connect button{min-height:40px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:800}.consent-card button:first-of-type,.wallet-connect button:first-of-type{border-color:var(--accent);background:var(--accent);color:white}.consent-sheet{position:sticky;top:0;z-index:8;display:grid;gap:10px;margin-bottom:12px;padding:13px;border:1px solid rgba(232,73,46,.34);border-radius:10px;background:#fff8ef;box-shadow:0 10px 24px rgba(27,29,36,.12)}.consent-sheet b,.consent-sheet span,.consent-sheet small{display:block;min-width:0}.consent-sheet span{color:var(--accent);font-size:11px;font-weight:900}.consent-sheet b{margin-top:2px;font-size:17px}.consent-sheet small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.45}.consent-sheet div:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.consent-sheet button{min-height:40px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:900}.consent-sheet button:first-child{border-color:var(--accent);background:var(--accent);color:#fff}.wallet-connect{min-height:320px;align-content:center}.wallet-connect.required{border-color:rgba(36,92,255,0.35);background:var(--chain-soft)}.wallet-event{display:block}.system-screen{display:grid;align-content:center;gap:12px;min-height:520px;padding:20px;border:1px solid var(--border);border-radius:10px;background:#fffdfa}.system-screen span{color:var(--muted);font-size:12px;font-weight:900}.system-screen b{font-size:28px}.system-screen p{margin:0;color:var(--muted);line-height:1.55}.system-screen button{min-height:42px;border:0;border-radius:8px;background:var(--ink);color:white;font-weight:900}.passbook-head span{color:var(--muted);font-size:12px}.passbook-head strong{display:block;margin:6px 0;color:var(--money);font-size:44px;font-variant-numeric:tabular-nums}.cashout-meter{display:grid;gap:7px;margin-top:12px}.cashout-meter b,.cashout-meter em{color:var(--muted);font-size:12px;font-style:normal}.cashout-meter>span{display:block;height:9px;overflow:hidden;border-radius:999px;background:#e8e3d7}.cashout-meter i{display:block;height:100%;border-radius:inherit;background:var(--money)}.balance-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 12px}.balance-split span{display:grid;gap:2px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.balance-split b{overflow-wrap:anywhere;color:var(--ink);font-size:16px}.payout-readiness{display:grid;gap:8px;padding:12px;border:1px solid rgba(14,138,95,0.22);border-radius:12px;background:rgba(227,242,234,0.82)}.payout-readiness div{display:flex;justify-content:space-between;gap:10px}.payout-readiness b{color:var(--money)}.payout-readiness span,.payout-readiness small{color:var(--muted);font-size:12px;font-weight:800}.payout-readiness i{display:block;height:9px;overflow:hidden;border-radius:999px;background:rgba(14,138,95,0.16)}.payout-readiness i span{display:block;height:100%;border-radius:inherit;background:var(--money)}.dummy-settlement{display:grid;gap:4px;margin-top:10px;padding:10px;border:1px solid rgba(14,138,95,0.24);border-radius:10px;background:var(--money-soft)}.dummy-settlement b,.dummy-settlement span{min-width:0;overflow-wrap:anywhere}.dummy-settlement span{color:var(--muted);font-size:12px;font-weight:800}.dummy-settlement-action{display:grid;gap:7px;margin-top:10px;padding:10px;border:1px dashed rgba(36,92,255,0.36);border-radius:10px;background:var(--chain-soft)}.dummy-settlement-action span{color:var(--muted);font-size:12px;font-weight:800}.dummy-settlement-action button{min-height:38px;border:1px solid var(--chain);border-radius:8px;background:var(--chain);color:#fff;cursor:pointer;font-weight:900}.reward-runway{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid rgba(36,92,255,0.16);border-radius:14px;background:#fffdfa}.reward-runway>div:not(.section-title){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.reward-runway span{display:grid;gap:4px;min-width:0;min-height:62px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--muted);font-size:11px;font-weight:900}.reward-runway b{min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:15px}.reward-runway .active{border-color:var(--chain);background:var(--chain-soft);color:var(--chain)}.reward-runway .done{border-color:var(--money);background:var(--money-soft);color:var(--money)}.passbook-actions{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:12px}.passbook-actions button{min-height:40px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:800}.passbook-actions .primary{border-color:var(--accent);background:var(--accent);color:white}.habit-board,.game-zone,.quote{margin-top:14px}.habit-board,.quote{padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.habit-board{display:grid;gap:12px;background:#fffdfa}.habit-meter{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center}.habit-meter b{color:var(--ink);font-size:14px}.habit-meter>span{display:block;height:9px;overflow:hidden;border-radius:999px;background:#efe9df}.habit-meter i{display:block;height:100%;border-radius:inherit;background:var(--money)}.habit-meter em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900}.stamp-head,.section-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}h2,p{margin:0}.stamp-head span,.section-title span{color:var(--muted);font-size:12px}.journey-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.journey-row button{display:grid;place-items:center;min-width:0;min-height:48px;padding:6px 3px;border:1px solid var(--border);border-radius:8px;background:#fff8f0;color:var(--ink);cursor:pointer}.journey-row b,.journey-row span{min-width:0;line-height:1.1}.journey-row b{font-size:13px}.journey-row span{color:var(--muted);font-size:10px;font-weight:800}.journey-row .done{border-color:var(--accent);background:#fff1e7;color:var(--accent)}.journey-row .done span{color:var(--accent)}.journey-row .current{border-color:var(--money);box-shadow:inset 0 0 0 1px var(--money)}.habit-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.habit-proof div{min-height:52px;padding:9px 8px;border:1px solid #eee3d5;border-radius:8px;background:#fff8ef}.habit-proof b,.habit-proof span{display:block;min-width:0}.habit-proof b{font-size:16px}.habit-proof span{margin-top:2px;color:var(--muted);font-size:10px;font-weight:800}.journey-nudge{margin-top:8px;width:100%;padding:10px 12px;border:1px solid #e0eadb;border-radius:8px;background:#f5fbf1;text-align:left}.journey-nudge b,.journey-nudge span{display:block}.journey-nudge span{margin-top:2px;color:var(--muted);font-size:11px;font-weight:800}.boost-ticket-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #dcebd8;border-radius:8px;background:#f4fbef}.boost-ticket-card span,.boost-ticket-card small{color:var(--muted);font-size:11px;font-weight:800}.boost-ticket-card b{display:block;margin:2px 0;font-size:16px}.boost-ticket-card button{min-width:108px;min-height:42px}.section-title button{min-height:30px;padding:0 10px;color:var(--chain)}.art{display:block;width:70px;height:92px;border-radius:12px;background:url("../assets/game-covers.jpg");background-position:0% center;background-size:500% 100%}.art.chef{background-position:25% center}.art.survey{background-position:100% center}.art.dragon{background-position:50% center}.art.garden{background-position:75% center}.spin-card{display:grid;gap:10px;padding:14px;border:1px solid rgba(6,199,85,.28);border-radius:10px;background:#f4fff9}.spin-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.spin-head span,.spin-head small{display:block;color:var(--muted);font-size:12px;font-weight:800}.spin-head b{display:block;margin:3px 0;color:var(--ink);font-size:18px}.spin-head button{min-height:40px;padding:0 14px;border:1px solid var(--money);border-radius:8px;background:var(--money);color:#fff;cursor:pointer;font-weight:900}.spin-head button:disabled{opacity:.48;cursor:not-allowed}.spin-result{margin:0;padding:10px;border:1px solid rgba(14,138,95,.24);border-radius:8px;background:#fff;color:var(--money);font-size:13px;font-weight:900}.spin-odds{display:grid;gap:8px}.spin-odds summary{cursor:pointer;color:var(--chain);font-size:12px;font-weight:900}.spin-odds div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.spin-odds span{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:34px;padding:7px 8px;border:1px solid #dbeee3;border-radius:8px;background:#fff}.spin-odds b{font-size:12px}.spin-odds em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900}@media (max-width:480px){.spin-head,.spin-odds div{grid-template-columns:1fr}}
