:root{--ink:#1f2a37;--muted:#5d6b77;--card:#fffffff2;--line:#dbe3e1;--track:#e6ecea;--teal:#14a89c;--orange:#ff8a2a;--red:#e8483f;--navy:#27406b;--off:#c3ccd2;--side:312px}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;background:#dfe8f1;margin:0;font:14px/1.45 -apple-system,PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}canvas{touch-action:none;display:block}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.bar{background:var(--track);border-radius:3px;height:6px;display:block;overflow:hidden}.bar>i{background:var(--teal);width:0;height:100%;transition:width .25s,background .25s;display:block}.bar>i.low{background:var(--orange)}.bar>i.out{background:var(--red)}.bar.big{height:8px;margin:4px 0 12px}.bar.big>i{background:var(--orange)}.hint{color:var(--muted);margin:0;font-size:12px}.pos{color:var(--teal)}.neg{color:var(--red)}.hud{top:calc(8px + env(safe-area-inset-top,0px));pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;left:8px;right:8px}.hud>*{pointer-events:auto}.chip{background:var(--card);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:5px 9px;display:flex;box-shadow:0 1px 6px #14283c1f}.chip b{font-size:15px}.stars{color:#f2a516;letter-spacing:-1px}.chip.month .bar{width:54px}.chip.month .bar>i{background:var(--orange)}.seg{gap:3px;display:flex}.seg button{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:34px;padding:3px 8px;font-size:13px}.seg button.on{background:var(--navy);border-color:var(--navy);color:#fff}.hud .speed{background:var(--card);border-radius:10px;padding:3px;box-shadow:0 1px 6px #14283c1f}.hud .speed button{border:0}.cashier{right:14px;bottom:calc(var(--sheet,120px) + 14px);background:var(--off);color:#fff;text-align:center;border:0;border-radius:50%;place-content:center;width:80px;height:80px;font-size:17px;font-weight:700;line-height:1.2;transition:background .2s,transform .1s;display:grid;position:absolute;box-shadow:0 4px 14px #14283c40}.cashier small{font-size:11px;font-weight:400;display:block}.cashier.ok{background:var(--teal);animation:1.2s ease-in-out infinite ready}.cashier.away{background:#9aa5ad;font-size:13px}.cashier:active{transform:scale(.94)}@keyframes ready{50%{box-shadow:0 0 0 10px #14a89c2e,0 4px 14px #14283c40}}@media (prefers-reduced-motion:reduce){.cashier.ok{animation:none}.bar>i{transition:none}}.panel{background:var(--card);padding:4px 12px calc(10px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;max-height:62%;position:absolute;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -4px 16px #14283c26}.grab{background:0 0;border:0;width:44px;height:14px;margin:0 auto 2px;display:block;position:relative}.grab:after{content:"";background:var(--off);border-radius:2px;height:4px;position:absolute;top:5px;left:6px;right:6px}.chips{grid-template-columns:repeat(6,1fr);gap:5px;display:grid}.mini{text-align:center;background:#f1f4f3;border:1px solid #0000;border-radius:9px;flex-direction:column;align-items:stretch;gap:4px;padding:5px 2px 6px;font-size:12px;display:flex}.mini .bar{height:4px;margin:0 4px}.mini small{color:var(--muted);font-size:11px}.mini.sel{border-color:var(--teal);background:#fff}.mini.alert{border-color:var(--red)}.rows{padding-top:8px;display:none}.panel.open .rows{display:block}.row{border-top:1px solid var(--line);gap:6px;padding:10px 0;display:none}.panel.open .row.sel{display:grid}.row .head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.row .head b{font-size:15px}.row .n{font-variant-numeric:tabular-nums;color:var(--muted)}.row .flag{color:var(--red);font-size:12px}.row .seg button{flex:1}.act{background:var(--teal);color:#fff;border:0;border-radius:10px;padding:9px;font-weight:600}.today{color:var(--muted);margin:10px 0 4px;font-size:12px}.link{color:var(--muted);background:0 0;border:0;padding:4px 0;font-size:13px;text-decoration:underline}.panel.open .today{display:none}@media (min-width:900px){.hud{right:calc(var(--side) + 24px)}.cashier{right:calc(var(--side) + 28px);width:92px;height:92px;bottom:20px}.panel{width:var(--side);border-radius:14px;max-height:none;padding:12px 14px;inset:12px 12px 12px auto}.grab,.chips{display:none}.rows,.panel.open .rows{padding-top:0;display:block}.row,.panel.open .row{display:grid}.row:first-child{border-top:0;padding-top:2px}.panel.open .today{display:block}}.modal{z-index:5;background:#0f192359;place-items:end center;display:grid;position:absolute;inset:0}.modal[hidden]{display:none}.card{width:min(460px,100%);max-height:calc(100% - 40px);padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:18px 18px 0 0;overflow:auto;box-shadow:0 -6px 24px #00000026}@media (min-width:900px){.modal{place-items:center}.card{border-radius:16px}}.card h2{margin:0 0 8px;font-size:20px}.card p{margin:8px 0}.box{background:#f1f5f4;border-radius:10px;padding:8px 10px}.box.soft{background:#f6f3ee}.box.good{background:#e3f5f2}.box ul{margin:6px 0 0;padding-left:1.2em}.box li{margin:3px 0}.opts{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 14px;display:grid}.opts button{border:1px solid var(--line);background:#fff;border-radius:12px;gap:2px;padding:10px 4px;display:grid}.opts button.on{border-color:var(--teal);box-shadow:inset 0 0 0 2px var(--teal)}.opts small{color:var(--muted)}.primary{background:var(--teal);color:#fff;border:0;border-radius:12px;width:100%;padding:12px;font-size:16px;font-weight:700}.card table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0}.card td{border-bottom:1px solid var(--line);padding:5px 0}.card td:last-child{text-align:right;white-space:nowrap;padding-left:8px}.card tr.total td{border-bottom:0;font-size:16px;font-weight:700}.gear{border:0;padding:5px 9px;font-size:16px}.settings{z-index:7;top:calc(52px + env(safe-area-inset-top,0px));background:#fff;border-radius:14px;gap:8px;width:min(260px,100% - 16px);padding:12px 14px;display:grid;position:absolute;right:8px;box-shadow:0 8px 28px #14283c40}.settings[hidden]{display:none}.settings-head{justify-content:space-between;align-items:center;display:flex}.settings .x{color:var(--muted);background:0 0;border:0;padding:2px 6px;font-size:16px}.settings .label{color:var(--muted);margin:4px 0 0;font-size:12px}.settings .langs button{flex:1}.toggle{background:0 0;border:0;justify-content:space-between;align-items:center;padding:4px 0;font-size:14px;display:flex}.toggle i{background:var(--teal);border-radius:10px;width:36px;height:20px;transition:background .2s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:2px;left:18px}.toggle.off i{background:var(--off)}.toggle.off i:after{left:2px}.settings .link{text-align:left}@media (min-width:900px){.settings{right:calc(var(--side) + 24px)}}.tut{z-index:8;pointer-events:none;position:absolute;inset:0}.tut[hidden]{display:none}.tut.block:has(.tut-ring[hidden]){background:#0f192373}.tut-ring{box-shadow:0 0 0 3px var(--orange);border-radius:12px;transition:left .15s,top .15s,width .15s,height .15s;position:absolute}.tut.block .tut-ring{box-shadow:0 0 0 3px var(--orange), 0 0 0 100vmax #0f192373}.tut-ring[hidden]{display:none}.tut-card{pointer-events:auto;background:#fff;border-radius:14px;padding:12px 14px;position:absolute;box-shadow:0 8px 28px #00000047}.tut-card b{margin-bottom:2px;font-size:15px;display:block}.tut-card p{color:var(--ink);margin:0;font-size:13px}.tut-card:after{content:"";left:var(--ax,50%);background:#fff;width:14px;height:14px;margin-left:-7px;display:none;position:absolute;transform:rotate(45deg)}.tut-card.above:after{display:block;bottom:-7px}.tut-card.below:after{display:block;top:-7px}.tut-acts{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.tut-acts>span{align-items:center;gap:6px;display:flex}.tut-skip{color:var(--muted);background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.tut-ok,.tut-alt{border:0;border-radius:9px;padding:6px 12px;font-weight:600}.tut-ok{background:var(--teal);color:#fff}.tut-alt{background:#eef1f0}.tut-wait{color:var(--orange);font-size:12px;font-weight:600}.soundboard{z-index:9;background:#fff;border-radius:12px;flex-wrap:wrap;gap:6px;max-width:320px;padding:10px;display:flex;position:absolute;top:60px;left:8px;box-shadow:0 4px 16px #0003}.soundboard b{width:100%}.soundboard button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 8px}.lvchip{border:0;position:relative}.lv{color:#fff;background:#f2a516;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:700}.bar.xp{width:46px}.bar.xp>i{background:#f2a516}.bar.big.xp{width:auto}.dot{background:var(--red);border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px;box-shadow:0 0 0 2px #fff}.dot[hidden]{display:none}.chips{grid-template-columns:repeat(7,1fr)}.mini span,.mini small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shopchip span{font-size:15px;line-height:1.1}.mini.locked{opacity:.55}.mini.locked span:before{content:"🔒";margin-right:1px;font-size:10px}.shopbtn{background:#f2a516;display:none}.row.is-locked .seg,.row.is-locked .act,.row.is-locked .hint,.row.is-locked .bar{display:none}.locked{color:var(--muted);margin:0;font-size:12px}.locked:empty{display:none}.shop-hint{text-align:left;width:100%;font:inherit;color:var(--ink);background:#fff4dc;border:0}.tabs{margin:10px 0 8px}.tabs button{flex:1}.shop-list{gap:8px;margin-bottom:12px;display:grid}.unlock{background:#f6f7f8;border-radius:12px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.unlock .ic{text-align:center;font-size:22px}.unlock small{color:var(--muted);font-size:12px;line-height:1.4;display:block}.unlock.level{opacity:.55}.unlock .buy{background:var(--teal);color:#fff;white-space:nowrap;border:0;border-radius:9px;padding:7px 10px;font-weight:700}.pill{white-space:nowrap;background:#e6ecea;border-radius:999px;padding:3px 9px;font-size:12px;display:inline-block}.toast{z-index:9;left:50%;top:calc(64px + env(safe-area-inset-top,0px));color:#fff;text-align:center;background:#27406b;border-radius:12px;max-width:calc(100% - 32px);padding:9px 14px;font-weight:600;position:absolute;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.toast[hidden]{display:none}@media (min-width:900px){.shopbtn{width:100%;margin-bottom:4px;display:block}.toast{left:calc(50% - var(--side) / 2)}}.goalchip{border:0}.goals{flex:0 0 100%;display:none}.ui.goals-open .goals{display:block}.goals ul{background:var(--card);border-radius:10px;max-width:100%;margin:0;padding:6px 10px;list-style:none;display:inline-block;box-shadow:0 1px 6px #14283c1f}.goals li,.goalsbox li{grid-template-columns:16px 1fr auto;align-items:baseline;gap:6px;padding:1px 0;font-size:13px;display:grid}.goals li i,.goalsbox li i{color:var(--muted);font-style:normal}.goals li small,.goalsbox li small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.goals li.done span,.goalsbox li.done span{color:var(--muted);text-decoration:line-through}li.done i,li.done small{color:var(--teal)!important}li.failed i{color:var(--red)!important}li.failed span{color:var(--muted)}.goalsbox ul{margin:6px 0 0;padding:0;list-style:none}.cook{z-index:6;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:18px 18px 0 0;gap:8px;display:grid;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0003}.cook[hidden]{display:none}.cook .hint{margin:0}.cook-head{align-items:center;gap:12px;display:flex}.cook-head b{white-space:nowrap;font-size:17px}.cook-time{flex:1;height:8px}.ticket{background:#fff8e6;border:1px dashed #e0c48a;border-radius:8px;margin:0;padding:6px 10px;font-size:15px;font-weight:600}.ticket small{color:var(--muted);margin-right:4px;font-weight:400}.cook-cup{background:#f6f3ee;border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px;min-height:36px;padding:4px 6px;display:flex}.cook-cup button{background:#fff;border:0;border-radius:999px;padding:4px 9px;font-size:13px;box-shadow:0 1px 2px #0000001f}.cook-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.cook-grid.buns{grid-template-columns:repeat(4,1fr)}.cook-grid button{border:1px solid var(--line);background:#fff;border-radius:12px;place-content:center;gap:2px;min-height:66px;padding:8px 2px;font-size:13px;display:grid;position:relative}.cook-grid button span{font-size:24px;line-height:1.1}.cook-grid button:active{background:#f1f5f4;transform:scale(.95)}.cook-grid kbd{color:var(--muted);font:10px/1 inherit;display:none;position:absolute;top:3px;right:5px}.cook-coffee{grid-template-columns:96px 1fr;align-items:center;gap:16px;display:grid}.cup{background:#fbf7f2;border:3px solid #8a6a4a;border-top:0;border-radius:0 0 18px 18px;height:128px;position:relative;overflow:hidden}.cup.cup-S{justify-self:center;width:78px;height:96px}.cup.cup-L{height:140px}.cup .fill{background:linear-gradient(#8b5a36,#5c3a22);height:0;position:absolute;bottom:0;left:0;right:0}.cup .line{left:0;right:0;bottom:var(--line);border-top:3px dashed var(--red);position:absolute}.pour{background:var(--navy);color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:18px;min-height:104px;font-size:18px;font-weight:700}.pour.on{background:#6b4226;transform:scale(.98)}.cook-result{text-align:center;border-radius:inherit;background:#fffffff0;place-content:center;gap:4px;display:grid;position:absolute;inset:0}.cook-result b{letter-spacing:2px;font-size:38px}.cook-result small{color:var(--muted);font-size:15px}.cook-result.s3 small{color:var(--teal);font-weight:700}@media (min-width:900px){.cook{left:calc((100% - var(--side) - 24px) / 2 - 240px);border-radius:16px;width:480px;bottom:20px;right:auto}.cook-grid kbd{display:block}}.hearts{color:var(--red);letter-spacing:1px;font-weight:400}.goalsbox li.failed .hearts,.goalsbox li.done .hearts{text-decoration:none}.cook-head .first{color:#9a6400;background:#fff1d6}.regbox li.reg-happy i,.regbox li.reg-happy small{color:var(--teal)}.regbox li.reg-bad small,.regbox .hearts{color:var(--red)}
