:root{--green:#5aa344;--green-dark:#3e7d2c;--cream:#fffaf0;--ink:#3b2f22;--muted:#8a7a66;--red:#d9534f;--gold:#f5b82e;--panel:#fff6e5;--card:#fff;--shadow:0 3px 0 #0000002e;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:none;background:#5cb8e6;margin:0;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#game,#game canvas{position:fixed;inset:0;width:100vw!important;height:100vh!important;height:100dvh!important}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer;border:none}button:disabled{opacity:.5;cursor:default}.hud{top:calc(10px + var(--safe-top));left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));justify-content:space-between;gap:10px;display:flex;position:absolute;pointer-events:none!important}.pill{box-shadow:var(--shadow);background:#fffaf0f2;border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-size:17px;display:flex}.pill.coins{padding:6px 16px}.lvl{background:var(--gold);color:#fff;text-shadow:0 1px #0000004d;border-radius:50%;place-items:center;width:38px;height:38px;font-size:19px;display:grid}.xp{background:#e7dcc8;border-radius:10px;width:min(36vw,180px);height:20px;position:relative;overflow:hidden}.xpfill{background:linear-gradient(#8ee06a,#54b23a);height:100%;transition:width .4s}.xp span{place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;inset:0}.bottombar{bottom:calc(12px + var(--safe-bottom));gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.bigbtn{background:var(--cream);width:78px;height:72px;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;font-size:30px;line-height:1;display:flex;position:relative}.bigbtn span{margin-top:4px;font-size:13px;font-weight:700}.bigbtn.small{width:56px;font-size:24px}.bigbtn:active,.btn:active,.card:active,.round:active{box-shadow:none;transform:translateY(2px)}.badge{background:var(--red);color:#fff;border-radius:12px;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:14px;font-style:normal;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.placebar{bottom:calc(14px + var(--safe-bottom));background:var(--cream);box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;align-items:center;gap:12px;padding:8px 8px 8px 18px;font-weight:700;display:flex;position:absolute;left:50%;transform:translate(-50%)}.round{width:48px;height:48px;box-shadow:var(--shadow);background:#eee3cf;border-radius:50%;font-size:20px}.round.ok{background:var(--green);color:#fff}.round.cancel{background:var(--red);color:#fff}.sheet-wrap{justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet-backdrop{background:#00000040;position:absolute;inset:0}.sheet{width:min(640px,100%);max-height:78vh;background:var(--panel);max-height:78dvh;padding-bottom:var(--safe-bottom);border-radius:24px 24px 0 0;flex-direction:column;animation:.18s ease-out slideUp;display:flex;position:relative;box-shadow:0 -4px 20px #0003}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}}.sheet-head{justify-content:space-between;align-items:center;padding:14px 16px 8px 20px;display:flex}.sheet-head h2{margin:0;font-size:22px}.sheet-body{touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:4px 16px 18px;overflow-y:auto}.center{text-align:center}.big{font-size:18px}.meta{color:var(--muted);font-size:13px}.row{align-items:center;display:flex}.gap{justify-content:center;gap:10px;margin-top:12px}.btn{background:var(--green);color:#fff;box-shadow:0 3px 0 var(--green-dark);border-radius:14px;padding:11px 18px;font-size:16px;font-weight:700}.btn.secondary{color:var(--ink);background:#eee3cf;box-shadow:0 3px #cfc2aa}.btn.danger{background:var(--red);box-shadow:0 3px #a33a37}.btn.wide{width:100%;margin-top:12px;display:block}.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin-top:10px;display:grid}.card{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:10px 6px}.card.selected{outline:3px solid var(--green)}.card.locked{background:#f1ebe0}.card .icon,.slot .icon,.recipe .icon{font-size:36px;line-height:1.1}.card .name,.recipe .name{font-size:14px;font-weight:700}.seg{background:#eee3cf;border-radius:14px;flex-wrap:wrap;gap:6px;padding:4px;display:flex}.seg button{white-space:nowrap;background:0 0;border-radius:10px;flex:1;padding:9px 8px;font-size:14px;font-weight:700}.seg button.on{box-shadow:var(--shadow);background:#fff}.slots{justify-content:center;gap:10px;margin:6px 0;display:flex}.slot{width:92px;box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:16px;padding:8px 4px}.slot.empty{color:var(--muted);background:#f1ebe0;place-items:center;min-height:70px;font-size:26px;display:grid}.slot.ready{outline:3px solid var(--green)}.list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.recipe{box-shadow:var(--shadow);background:#fff;border-radius:16px;align-items:center;gap:12px;padding:10px 12px;display:flex}.recipe.locked{background:#f1ebe0}.grow{flex:1;min-width:0}.have{color:var(--green-dark);font-weight:700}.need{color:var(--red);font-weight:700}.order{box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:12px}.order.empty{text-align:center;color:var(--muted);background:#f1ebe0}.order .lines{flex-wrap:wrap;justify-content:center;gap:14px;font-size:22px;display:flex}.order .reward{text-align:center;margin-top:6px;font-weight:700}.order .gap{margin-top:8px}.chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{box-shadow:var(--shadow);background:#fff;border-radius:999px;padding:6px 12px;font-weight:700}.sellbar{text-align:center;margin-top:14px;font-weight:700}label.field{font-weight:700;display:block}label.field input{width:100%;font:inherit;-webkit-user-select:text;user-select:text;border:2px solid #e2d6c0;border-radius:12px;margin-top:6px;padding:12px;font-size:17px;display:block}.toast{top:calc(64px + var(--safe-top));color:#fff;white-space:nowrap;background:#3b2f22eb;border-radius:999px;padding:10px 18px;font-weight:700;position:absolute;left:50%;transform:translate(-50%);pointer-events:none!important}@media (max-width:420px){.bigbtn{width:68px;height:64px;font-size:26px}.xp{width:30vw}}.visitbar{bottom:calc(14px + var(--safe-bottom));background:var(--cream);width:max-content;max-width:calc(100% - 24px);box-shadow:var(--shadow);border-radius:24px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px;padding:10px 12px;font-weight:700;display:flex;position:absolute;left:50%;transform:translate(-50%)}.visitbar span{text-align:center;padding:0 6px}.mycode{box-shadow:var(--shadow);background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px;padding:14px;font-weight:700;display:flex}.mycode b{letter-spacing:6px;-webkit-user-select:text;user-select:text;font-size:34px}.inputrow{gap:8px;margin-top:6px}.inputrow input{text-transform:uppercase;letter-spacing:3px;margin-top:0!important}.code{word-break:break-all;-webkit-user-select:text;user-select:text;background:#fff;border-radius:12px;padding:12px;font-family:ui-monospace,monospace}.qty{text-align:center;min-width:40px;font-size:20px}.sheet-body h3{margin:18px 0 4px;font-size:16px}
