:root{--bg: #fbf5ec;--bg-2: #f4e6d3;--surface: #fffdf9;--ink: #3a322a;--muted: #8b7d6d;--line: #e8dcc9;--line-strong: #d8c6ae;--accent: #c9764a;--accent-soft: #f0d3bd;--gold: #e3a94f;--glow: #ffd9a3;--cat: #c9cecd;--cat-dark: #7b8387;--cat-belly: #fbfbf9;--cat-ear: #e8b0b0;--cat-eye: #7fa86a;--shadow: 0 20px 44px -28px rgba(94, 66, 41, .5);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #17130f;--bg-2: #1f1812;--surface: #221b15;--ink: #f2e9dc;--muted: #a99a88;--line: #33291f;--line-strong: #463829;--accent: #e09162;--accent-soft: #4a3527;--gold: #f0be6a;--glow: #7a5527;--cat: #b3bbbc;--cat-dark: #4b5256;--cat-belly: #eceee9;--cat-ear: #b98484;--cat-eye: #93c07a;--shadow: 0 20px 44px -28px rgba(0, 0, 0, .7)}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(1200px 620px at 50% -12%,var(--bg-2) 0%,transparent 62%),var(--bg);color:var(--ink);font-family:ui-sans-serif,-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.page{position:relative;min-height:100vh;max-width:720px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;overflow:hidden}.aurora{position:absolute;top:-220px;left:50%;width:620px;height:420px;transform:translate(-50%);background:radial-gradient(closest-side,color-mix(in srgb,var(--gold) 26%,transparent),transparent 78%);filter:blur(24px);pointer-events:none}.bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px dashed var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;font-size:14px;letter-spacing:.14em;color:var(--muted)}.mark{width:17px;height:17px;flex:none}.mark-body{fill:var(--cat-dark)}.mark-eye,.mark-nose{fill:var(--surface)}.actions{display:flex;gap:2px}button{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:999px;background:transparent;color:inherit;transition:background .18s ease,color .18s ease,transform .18s ease,opacity .18s ease}button:disabled{opacity:.45;cursor:default}.ghost{padding:6px 14px;font-size:13px;color:var(--muted)}.ghost:hover{color:var(--ink);background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}.primary{padding:10px 26px;font-size:14px;font-weight:600;letter-spacing:.04em;color:#fffaf3;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white),var(--accent));box-shadow:0 10px 22px -14px color-mix(in srgb,var(--accent) 70%,transparent)}.primary:hover:not(:disabled){transform:translateY(-1px)}.link{padding:0 4px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.stage{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:52px 0 64px}.art{width:min(358px,74vw);margin-bottom:10px}.art svg{width:100%;height:auto;overflow:visible}.g-ground{fill:color-mix(in srgb,var(--accent) 16%,transparent)}.g-roof{fill:var(--accent)}.g-chimney{fill:color-mix(in srgb,var(--accent) 78%,#000)}.g-body{fill:var(--surface);stroke:var(--line-strong);stroke-width:2.5}.g-window{fill:var(--glow)}.g-mullion{fill:none;stroke:var(--surface);stroke-width:3.2;stroke-linecap:round}.g-door{fill:var(--accent-soft);stroke:var(--line-strong);stroke-width:2}.g-knob{fill:var(--accent)}.g-string{stroke:var(--line-strong);stroke-width:1.6}.g-bell{fill:var(--gold)}.g-bell-clapper{fill:color-mix(in srgb,var(--gold) 55%,#6b4a12)}.g-star{fill:color-mix(in srgb,var(--gold) 70%,transparent)}.g-halo{fill:color-mix(in srgb,var(--glow) 22%,transparent)}.g-moon{fill:var(--glow)}.g-moon-inner{fill:color-mix(in srgb,var(--gold) 55%,var(--glow))}.g-path{fill:color-mix(in srgb,var(--accent-soft) 72%,transparent)}.g-fence{fill:none;stroke:var(--line-strong);stroke-width:2.2;stroke-linecap:round}.g-bush{fill:color-mix(in srgb,var(--accent) 22%,var(--surface))}.g-cat-body{fill:var(--cat);stroke:color-mix(in srgb,var(--cat-dark) 60%,transparent);stroke-width:1.1}.g-cat-belly{fill:var(--cat-belly)}.g-cat-ear{fill:var(--cat-ear)}.g-cat-tail{fill:none;stroke:var(--cat);stroke-width:7;stroke-linecap:round}.g-cat-nose{fill:var(--accent)}.g-cat-whisker{fill:none;stroke:var(--line-strong);stroke-width:1;stroke-linecap:round}.g-cat-collar{fill:var(--accent)}.g-paw{fill:color-mix(in srgb,var(--cat-dark) 26%,transparent)}.g-cat-stripe{fill:none;stroke:var(--cat-dark);stroke-width:1.6;stroke-linecap:round;opacity:.9}.g-cat-shadow{fill:color-mix(in srgb,var(--cat-dark) 16%,transparent)}.g-cat-halo{fill:color-mix(in srgb,var(--glow) 45%,transparent)}.g-cat-eye{fill:var(--cat-eye)}.g-cat-pupil{fill:color-mix(in srgb,var(--ink) 82%,var(--cat-eye))}.g-cat-spark{fill:var(--cat-belly)}.g-cat-mouth{fill:none;stroke:color-mix(in srgb,var(--cat-dark) 70%,var(--ink));stroke-width:.9;stroke-linecap:round}.g-window-cat{fill:color-mix(in srgb,var(--ink) 55%,transparent)}.g-smoke{fill:color-mix(in srgb,var(--muted) 30%,transparent)}.bell{transform-box:view-box;transform-origin:120px 26px;animation:sway 5.2s ease-in-out infinite}@keyframes sway{0%,to{transform:rotate(-2.6deg)}50%{transform:rotate(2.6deg)}}.f1{animation:twinkle 4.4s ease-in-out infinite}.f2{animation:twinkle 5.8s ease-in-out infinite .9s}.f3{animation:twinkle 6.6s ease-in-out infinite 1.8s}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}.s1{animation:rise 5s ease-in-out infinite}.s2{animation:rise 6.4s ease-in-out infinite 1.2s}@keyframes rise{0%{opacity:0;transform:translateY(6px)}35%{opacity:.85}to{opacity:0;transform:translate(4px,-14px)}}.greeting{margin:22px 0 0;font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",ui-serif,Georgia,serif;font-size:clamp(28px,5vw,42px);font-weight:600;line-height:1.5;letter-spacing:.02em;white-space:pre-wrap;overflow-wrap:anywhere;text-wrap:balance}.meta{margin:20px 0 0;font-size:12.5px;color:var(--muted);letter-spacing:.04em}.hint{font-size:13px;color:var(--muted)}.alert{margin:18px 0 0;padding:10px 16px;font-size:13.5px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.editor{width:100%;max-width:560px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:inherit;font-family:inherit;font-size:17px;line-height:1.7;text-align:center;resize:vertical;min-height:160px;box-shadow:var(--shadow)}.editor:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:2px;border-color:transparent}.row{display:flex;align-items:center;gap:14px;margin-top:16px}.login{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;padding:24px 22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.login-title{margin:0;font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:17px;letter-spacing:.1em;color:var(--muted)}.login input{width:100%;padding:11px 16px;border:1px solid var(--line);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:15px;text-align:center;letter-spacing:.08em}.login input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:2px;border-color:transparent}.login .alert{width:100%;margin-top:4px}.foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0 30px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--muted);letter-spacing:.06em}.note:before{content:"✿";margin-right:7px;color:color-mix(in srgb,var(--gold) 85%,transparent)}.foot a{color:var(--muted);text-decoration:none}.foot a:hover{text-decoration:underline;text-underline-offset:3px}@media(max-width:520px){.page{padding:0 18px}.stage{padding:28px 0 40px}.foot{flex-direction:column;gap:6px;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.bell,.f1,.f2,.f3,.s1,.s2{animation:none}button{transition:none}}.nav{display:flex;gap:2px;margin-left:auto;margin-right:6px}.nav a{padding:6px 13px;border-radius:999px;font-size:13px;color:var(--muted);text-decoration:none;transition:background .18s ease,color .18s ease}.nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}.nav a.active{color:var(--ink);background:color-mix(in srgb,var(--accent-soft) 75%,transparent)}.home{display:flex;flex-direction:column;align-items:center}.schedule{width:100%;max-width:560px;margin:0 auto;text-align:left}.edit-btn{margin-top:20px;font-size:12.5px;letter-spacing:.06em}.stage.wide{justify-content:flex-start;padding-top:26px}.login-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--bg) 74%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.login-overlay .login{width:100%;max-width:320px}.login .row{margin-top:4px;justify-content:center}.locked{width:100%;max-width:440px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 24px;border:1px dashed var(--line);border-radius:20px;background:color-mix(in srgb,var(--surface) 65%,transparent)}.locked-cat{width:62px;height:62px;opacity:.9}.locked-title{margin:6px 0 0;font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:17px;letter-spacing:.08em}.locked .hint{margin:0 0 6px}.cal-head{display:flex;align-items:center;gap:6px;margin-bottom:16px}.cal-month{font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:16.5px;letter-spacing:.06em;min-width:132px;text-align:center}.nav-btn{padding:4px 12px;font-size:18px;line-height:1;color:var(--muted)}.today-btn{margin-left:auto;font-size:12.5px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-wd{padding-bottom:6px;text-align:center;font-size:11.5px;letter-spacing:.1em;color:var(--muted)}.cal-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1.3 / 1;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);font-size:14px;transition:background .16s ease,color .16s ease}.cal-cell:hover{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.cal-cell.muted{color:color-mix(in srgb,var(--muted) 50%,transparent)}.cal-cell.today{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.cal-cell.picked{background:var(--accent);border-color:transparent;color:#fffaf3}.cal-dot{position:absolute;bottom:7px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.cal-cell.picked .cal-dot{background:#fffaf3}.day-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px;padding-top:16px;border-top:1px dashed var(--line)}.day-label{font-size:13.5px;letter-spacing:.06em;color:var(--muted)}.add-btn{font-size:13px;color:var(--accent);padding:4px 10px}.add-form{display:flex;flex-direction:column;gap:8px;padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.add-form input{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:14px}.add-form input:focus{outline:2px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:1px;border-color:transparent}.add-title{font-size:15px!important}.add-row{display:flex;align-items:center;gap:8px}.add-row input[type=time]{width:118px;flex:none}.add-row .primary{padding:8px 20px}.day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.day-item{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:opacity .18s ease}.day-item.done{opacity:.55}.day-item.done .item-title{text-decoration:line-through}.tick{flex:none;width:22px;height:22px;margin-top:2px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line-strong);border-radius:50%;background:transparent;padding:0}.tick svg{width:13px;height:13px;fill:none;stroke:transparent;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.day-item.done .tick{background:var(--accent);border-color:var(--accent)}.day-item.done .tick svg{stroke:#fffaf3}.item-main{flex:1;min-width:0}.item-title{margin:0;font-size:14.5px;line-height:1.55;overflow-wrap:anywhere}.item-note{margin:2px 0 0;font-size:12.5px;color:var(--muted);white-space:pre-wrap}.item-time{flex:none;padding-top:2px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.del{flex:none;padding:2px 8px;font-size:16px;line-height:1;color:var(--muted)}.empty{margin:20px 0;text-align:center;font-size:13px;letter-spacing:.06em;color:var(--muted)}@media(max-width:520px){.nav{margin-left:0}.bar{flex-wrap:wrap;row-gap:6px}.cal-month{min-width:112px;font-size:15px}}.wheel-page{width:100%;max-width:560px;margin:0 auto;text-align:left}.wheel-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.chip{padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:13px;letter-spacing:.04em}.chip:hover{color:var(--ink);border-color:var(--line-strong)}.chip.active{background:var(--accent);border-color:transparent;color:#fffaf3}.ghost-chip{border-style:dashed;color:var(--accent);padding:6px 12px}.wheel-stage{position:relative;display:flex;justify-content:center;padding:18px 0 6px}.wheel-svg{width:min(360px,76vw);height:auto;overflow:visible;-webkit-user-select:none;user-select:none}.wheel-rotor{transform-origin:0 0}.wheel-label{font-size:9.5px;font-weight:500;letter-spacing:.02em;fill:#4a3a2c}.hub-text{font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:11px;fill:var(--muted)}.pointer{position:absolute;top:8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:15px solid var(--accent);filter:drop-shadow(0 2px 3px rgba(0,0,0,.18));z-index:2}.wheel-actions{display:flex;justify-content:center;margin:14px 0 4px}.spin-btn{padding:12px 42px;font-size:15px;letter-spacing:.16em}.result{margin:12px 0 0;text-align:center;font-size:14px;letter-spacing:.05em;color:var(--muted)}.result strong{font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:21px;color:var(--accent);letter-spacing:.06em}.options-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px;padding-top:16px;border-top:1px dashed var(--line);font-size:13px;letter-spacing:.06em;color:var(--muted)}.option-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.option-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:10px}.option-row:hover{background:color-mix(in srgb,var(--accent-soft) 28%,transparent)}.dot{flex:none;width:10px;height:10px;border-radius:3px;border:1px solid rgba(0,0,0,.06)}.opt-label{flex:1;min-width:0;padding:5px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:14px}.opt-label:hover{border-color:var(--line)}.opt-label:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--surface)}.opt-label.static{padding-left:0}.opt-weight{width:62px;padding:5px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.opt-weight:hover{border-color:var(--line)}.opt-weight.static{text-align:right;color:var(--muted)}.opt-pct{width:46px;text-align:right;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.weight-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.weight-label input{width:66px;text-align:right}.wheel-manage{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;font-size:12.5px}.danger{color:var(--accent)}.danger:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}@media(prefers-reduced-motion:reduce){.wheel-rotor{transition:none!important}}.pct-wrap{display:inline-flex;align-items:center;gap:1px;flex:none}.pct-wrap i{font-style:normal;font-size:12px;color:var(--muted)}.opt-shares{width:46px;padding:5px 4px 5px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.opt-shares:hover{border-color:var(--line)}.opt-shares:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--surface)}.pct-hint{margin:10px 0 0;font-size:11.5px;color:var(--muted);letter-spacing:.04em}.hub-text.len-1{font-size:12px}.hub-text.len-2{font-size:9px}.hub-text.len-3{font-size:7px}.hub-field{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:12.5px;color:var(--muted)}.hub-field input{width:56px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:13px;text-align:center}.menu-page,.orders-page{width:100%;max-width:600px;margin:0 auto;text-align:left}.menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.menu-title{font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:16px;letter-spacing:.08em;color:var(--muted)}.small{padding:4px 10px;font-size:12.5px}.menu-body{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;height:min(60vh,520px)}.cat-rail{display:flex;flex-direction:column;gap:2px;overflow-y:auto;padding-right:2px}.cat-item{position:relative;padding:10px 8px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:13px;text-align:left}.cat-item.active{background:var(--surface);border-color:var(--line);color:var(--ink);font-weight:600}.cat-item.add{color:var(--accent);border-style:dashed;border-color:var(--line)}.cat-dot{position:absolute;top:11px;right:7px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.dish-scroll{overflow-y:auto;padding-right:2px}.dish-section+.dish-section{margin-top:6px}.dish-section-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 6px 4px;background:var(--bg);font-size:12px;letter-spacing:.06em;color:var(--muted)}.section-actions{display:flex;gap:8px}.link{padding:0;border:none;background:none;color:var(--muted);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:2px}.link.danger{color:var(--accent)}.dish{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px dashed var(--line)}.dish-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.dish.off{opacity:.5}.dish-main{flex:1;min-width:0}.dish-name{margin:0;font-size:14.5px;font-weight:500;line-height:1.4}.off-tag{margin-left:5px;padding:0 4px;border:1px solid var(--line);border-radius:4px;font-size:10.5px;color:var(--muted)}.dish-desc{margin:2px 0 0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-price{margin:0;font-size:13px;color:var(--accent);font-variant-numeric:tabular-nums}.dish-edit{display:flex;gap:8px;flex:none}.stepper{display:flex;align-items:center;gap:6px;flex:none}.stepper.small .step{width:20px;height:20px;font-size:13px}.step{width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;background:transparent;color:var(--ink);font-size:15px;line-height:1}.step.plus{background:var(--accent);border-color:transparent;color:#fffaf3}.step-num{min-width:16px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.cart-bar{position:sticky;bottom:12px;display:flex;align-items:center;gap:12px;margin-top:14px;padding:9px 10px 9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:var(--shadow)}.cart-info{display:flex;align-items:center;gap:10px;flex:1;padding:0;background:transparent;border:none;color:inherit}.cart-badge{min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent);color:#fffaf3;font-size:12px}.cart-total{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.cart-hint{font-size:12px;color:var(--muted)}.bar-enter-active,.bar-leave-active{transition:opacity .2s ease,transform .2s ease}.bar-enter-from,.bar-leave-to{opacity:0;transform:translateY(8px)}.sheet{display:flex;flex-direction:column;gap:10px;width:100%;max-width:420px;max-height:84vh;overflow-y:auto;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.sheet-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.sheet-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sheet-row{display:flex;align-items:center;gap:10px;font-size:14px}.sheet-name{flex:1;min-width:0;overflow-wrap:anywhere}.sheet-price{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.sheet-qty{min-width:28px;text-align:right;font-size:13px;color:var(--muted)}.sheet-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:10px;border-top:1px dashed var(--line)}.sheet-total{margin-right:auto;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}.field input{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:14px}.field.check{flex-direction:row;align-items:center;gap:8px}.field.check input{width:16px;height:16px}.confirm-total{margin:0;font-size:13px;color:var(--muted)}.done-title{margin:0;text-align:center;font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:18px}.done-sub{margin:0;text-align:center;font-size:13px;color:var(--muted)}.link-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;border-radius:999px;text-decoration:none}.orders-head{display:flex;justify-content:center;margin-bottom:14px}.seg{display:inline-flex;padding:3px;border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.seg button{padding:6px 20px;border:none;border-radius:999px;background:transparent;color:var(--muted);font-size:13px}.seg button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 6px -3px #0003}.order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.order-card{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:transform .15s ease}.order-card:hover{transform:translateY(-1px)}.order-top{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--muted)}.order-status{padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:11.5px}.order-status.placed{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.order-status.done{color:#5b7f56;border-color:color-mix(in srgb,#5b7f56 35%,transparent)}.order-status.cancelled{color:var(--muted);text-decoration:line-through}.order-items{margin:6px 0;font-size:14px;line-height:1.5}.order-bottom{display:flex;align-items:baseline;justify-content:space-between;font-size:12.5px;color:var(--muted)}.order-total{font-size:14.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.order-note{margin:0;font-size:12.5px;color:var(--muted)}.recipe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.recipe-row{display:flex;align-items:center;gap:10px;padding:11px 8px;border-radius:10px;cursor:pointer}.recipe-row:hover{background:color-mix(in srgb,var(--accent-soft) 30%,transparent)}.recipe-name{flex:1;font-size:14.5px}.recipe-meta{font-size:12px;color:var(--muted)}.recipe-total{min-width:60px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.add-dish-row{display:flex;align-items:center;gap:8px}.add-dish-row select{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px}@media(max-width:520px){.nav{flex-wrap:wrap;gap:0}.nav a{padding:5px 8px;font-size:12px}.menu-body{grid-template-columns:72px minmax(0,1fr)}}.recipe-link{margin-top:3px;font-size:11.5px}.recipe-sheet{max-height:84vh}.recipe-sub{font-size:12px;color:var(--muted);max-width:60%;text-align:right}.recipe-label{margin:8px 0 0;font-size:12px;letter-spacing:.1em;color:var(--accent)}.recipe-text{margin:4px 0 0;font-size:14px;line-height:1.8;white-space:pre-wrap;color:var(--ink)}.field textarea{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13.5px;line-height:1.65;resize:vertical}.field textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:1px;border-color:transparent}.recipe-action{min-width:68px;text-align:right;font-size:12.5px;color:var(--accent);letter-spacing:.04em}.dish-thumb{flex:none;width:54px;height:54px;border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.dish-thumb img{width:100%;height:100%;object-fit:cover;display:block}.empty-thumb{border:none;background:transparent}.row-thumb{flex:none;width:40px;height:40px;border-radius:8px;overflow:hidden;display:inline-flex}.row-thumb.small{width:34px;height:34px}.row-thumb img{width:100%;height:100%;object-fit:cover;display:block}.recipe-hero{margin:2px 0 6px;border-radius:12px;overflow:hidden;max-height:200px}.recipe-hero img{width:100%;max-height:200px;object-fit:cover;display:block}.photo-field{display:flex;flex-direction:column;gap:6px}.photo-label{font-size:12.5px;color:var(--muted)}.photo-row{display:flex;align-items:center;gap:12px}.photo-preview{width:92px;height:92px;border-radius:10px;object-fit:cover;flex:none;background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.photo-empty{display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);background:transparent;color:var(--muted);font-size:12px}.photo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}@media(max-width:520px){.dish-thumb{width:46px;height:46px}}.done-serve{margin:6px 0 0;text-align:center;font-size:12.5px;color:var(--accent)}.order-serve{margin:-2px 0 6px;font-size:12px;color:var(--accent)}.serve-line{margin:0;font-size:13px;color:var(--accent)}.order-link{flex:none;margin-right:2px;font-size:12px;color:var(--accent);text-decoration:none}.menu-actions{display:flex;align-items:center;gap:8px}.import-sheet{max-width:460px}.import-row{display:flex;align-items:center;gap:10px}.field-row{display:grid;grid-template-columns:1fr 110px;gap:10px}.import-seg{align-self:flex-start;margin-bottom:2px}.import-warn{margin:0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:12.5px;color:var(--accent)}.edit-link{flex:none;margin-right:6px;font-size:12px;color:var(--muted);text-decoration:none}.edit-link:hover{color:var(--accent)}.cat-breathe{transform-box:fill-box;transform-origin:50% 100%;animation:cat-breathe 4.6s ease-in-out infinite}@keyframes cat-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.022)}}.cat-tail-group{transform-box:fill-box;transform-origin:10% 95%;animation:cat-tail 5.4s ease-in-out infinite}@keyframes cat-tail{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(4.5deg)}}.cat-ears-group{transform-box:fill-box;transform-origin:50% 100%;animation:cat-ears 7.6s ease-in-out infinite}@keyframes cat-ears{0%,60%,78%,to{transform:rotate(0)}64%{transform:rotate(-5deg)}68%{transform:rotate(3deg)}72%{transform:rotate(-2deg)}}.cat-head-group{transform-box:fill-box;transform-origin:50% 96%;animation:cat-lookup 12s ease-in-out infinite}@keyframes cat-lookup{0%,42%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(-2.6deg) translateY(-.7px)}62%{transform:rotate(-2.6deg) translateY(-.7px)}70%{transform:rotate(0) translateY(0)}}.g-cat-eye,.g-cat-pupil,.g-cat-spark{transform-box:fill-box;transform-origin:50% 50%;animation:cat-blink 6.4s ease-in-out infinite}@keyframes cat-blink{0%,91%,to{transform:scaleY(1)}94%{transform:scaleY(.12)}97%{transform:scaleY(1)}}.g-door-light{fill:color-mix(in srgb,var(--glow) 65%,transparent);animation:cat-door-light 6.4s ease-in-out infinite}@keyframes cat-door-light{0%,to{opacity:.16}50%{opacity:.4}}.g-mote{fill:color-mix(in srgb,var(--glow) 85%,transparent)}.m1{animation:rise 7.6s ease-in-out infinite}.m2{animation:rise 9.4s ease-in-out infinite 2.6s}.waiting{display:inline-flex;align-items:center;gap:8px;margin:18px 0 0;font-size:12.5px;letter-spacing:.16em;color:var(--muted)}.waiting-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:waiting-dot 3s ease-in-out infinite}@keyframes waiting-dot{0%,to{opacity:.45;box-shadow:0 0 color-mix(in srgb,var(--accent) 35%,transparent)}50%{opacity:1;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 0%,transparent)}}.typing{display:inline-flex;align-items:flex-end;gap:3px;padding-bottom:1px}.typing i{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.25;animation:typing 1.6s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.22s}.typing i:nth-child(3){animation-delay:.44s}@keyframes typing{0%,70%,to{opacity:.2;transform:translateY(0)}35%{opacity:.85;transform:translateY(-1.5px)}}@media(prefers-reduced-motion:reduce){.cat-breathe,.cat-tail-group,.cat-ears-group,.cat-head-group,.g-cat-eye,.g-cat-pupil,.g-cat-spark,.g-door-light,.g-mote,.waiting-dot,.typing i{animation:none}}.games-page{width:100%;max-width:720px;margin:0 auto;text-align:left}.games-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.games-title{margin:0;font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:20px;letter-spacing:.08em}.games-sub{margin:4px 0 0;font-size:12.5px;color:var(--muted)}.games-picked{flex:none;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:12px}.games-filter{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.games-filter button{padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:12.5px}.games-filter button.active{background:var(--accent);border-color:transparent;color:#fffaf3}.games-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;align-items:stretch}.game-card{display:flex;flex-direction:column;height:100%;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.game-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.game-open{display:flex;flex-direction:column;gap:0;padding:0;border:none;background:transparent;text-align:left;color:inherit}.game-cover{position:relative;display:block;height:200px;overflow:hidden;background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.game-cover img{width:100%;height:100%;object-fit:cover;display:block}.game-cover-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:10px;font-family:Songti SC,"Noto Serif SC",ui-serif,serif;font-size:15px;letter-spacing:.08em;text-align:center;color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.game-cover-placeholder.big{font-size:22px;aspect-ratio:3 / 2;border-radius:12px}.game-picked-dot{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fffaf3;font-size:11px}.game-body{display:flex;flex:1;flex-direction:column;gap:3px;padding:10px 12px 6px}.game-name{font-size:15px;font-weight:600;letter-spacing:.02em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.game-type,.game-meta{font-size:12px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.game-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;min-height:44px;align-content:flex-start;overflow:hidden}.stat{padding:1px 7px;border-radius:6px;background:color-mix(in srgb,var(--accent-soft) 55%,transparent);font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums}.game-pick{margin:auto 12px 12px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:10px;background:transparent;color:var(--ink);font-size:12.5px}.game-pick.on{background:var(--accent);border-color:transparent;color:#fffaf3}.games-tray{margin:16px 0 0;padding-top:12px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--muted)}.game-sheet-cover{margin-bottom:8px;border-radius:12px;overflow:hidden;max-height:220px}.game-sheet-cover img{width:100%;max-height:220px;object-fit:cover;display:block}.game-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0}.game-facts div{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent-soft) 32%,transparent);font-size:12.5px}.game-facts dt{color:var(--muted)}.game-facts dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}@media(max-width:520px){.games-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.game-facts{grid-template-columns:1fr}}.games-note{margin:18px 0 0;font-size:11.5px;line-height:1.7;color:var(--muted);letter-spacing:.02em}.games-head-right{display:flex;align-items:center;gap:8px;flex:none}.game-editor{max-width:520px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.games-page.has-bar{padding-bottom:96px}.games-bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(680px,calc(100vw - 32px));margin:0;z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--surface) 92%,transparent)}.games-bar .cart-info{gap:12px}.games-bar .cart-total{font-size:13px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-games{margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent-soft) 40%,transparent);font-size:13.5px;line-height:1.7}.games-booked{margin:14px 0 0;padding:10px 14px;border:1px dashed color-mix(in srgb,var(--accent) 35%,transparent);border-radius:10px;font-size:12.5px;color:var(--accent);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.game-tags{position:absolute;top:8px;left:8px;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 16px);z-index:1}.game-tags em,.detail-tags em{font-style:normal;padding:2px 7px;border-radius:6px;font-size:10.5px;letter-spacing:.04em;color:#fffaf3;background:var(--accent);box-shadow:0 1px 5px #00000038;white-space:nowrap}.game-tags em.tag-boss,.detail-tags em.tag-boss{background:#c2703f}.game-tags em.tag-new,.detail-tags em.tag-new{background:#5d8a6b}.game-tags em.tag-hot,.detail-tags em.tag-hot{background:#c2503f}.game-tags em.tag-easy,.detail-tags em.tag-easy{background:#6b86a8}.game-tags em.tag-heavy,.detail-tags em.tag-heavy{background:#7a5c8f}.game-tags em.tag-duo,.detail-tags em.tag-duo{background:#a8803f}.game-tags em.tag-party,.detail-tags em.tag-party{background:#b8607f}.game-tags em.tag-todo,.detail-tags em.tag-todo{background:#6d8299}.game-tags em.tag-default,.detail-tags em.tag-default{background:color-mix(in srgb,var(--accent) 80%,#6b5b4b)}.detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0}.tag-picker{display:flex;flex-wrap:wrap;gap:7px}.tag-choice{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--muted);font-size:12px;transition:background .15s ease,color .15s ease,border-color .15s ease}.tag-choice .tag-check{font-size:11px;opacity:.7}.tag-choice.on{color:#fffaf3;border-color:transparent;box-shadow:0 2px 6px #00000024}.tag-choice.on .tag-check{opacity:1}.tag-choice.on.tag-boss{background:#c2703f}.tag-choice.on.tag-new{background:#5d8a6b}.tag-choice.on.tag-hot{background:#c2503f}.tag-choice.on.tag-easy{background:#6b86a8}.tag-choice.on.tag-heavy{background:#7a5c8f}.tag-choice.on.tag-duo{background:#a8803f}.tag-choice.on.tag-party{background:#b8607f}.tag-choice.on.tag-todo{background:#6d8299}.tag-choice.tag-boss{border-color:color-mix(in srgb,#c2703f 45%,var(--line))}.tag-choice.tag-new{border-color:color-mix(in srgb,#5d8a6b 45%,var(--line))}.tag-choice.tag-hot{border-color:color-mix(in srgb,#c2503f 45%,var(--line))}.tag-choice.tag-easy{border-color:color-mix(in srgb,#6b86a8 45%,var(--line))}.tag-choice.tag-heavy{border-color:color-mix(in srgb,#7a5c8f 45%,var(--line))}.tag-choice.tag-duo{border-color:color-mix(in srgb,#a8803f 45%,var(--line))}.tag-choice.tag-party{border-color:color-mix(in srgb,#b8607f 45%,var(--line))}.tag-choice.tag-todo{border-color:color-mix(in srgb,#6d8299 45%,var(--line))}.tag-emoji{font-size:12px;line-height:1}
