:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--canvas:#f7f7f2;--surface:#fff;--ink:#181817;--muted:#65655f;--line:#d8d8d0;--soft-line:#e9e9e2;--focus:#3158a0;--error:#a51f2b;--success:#176b4d;--action:#176b4d;--action-hover:#10583d;--on-action:#fff;--wheel-ink:#181817;--radius:6px;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box;letter-spacing:0}[hidden]{display:none!important}html{background:var(--canvas);min-width:320px;color:var(--ink)}body{background:var(--canvas);overscroll-behavior-y:contain;min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,a[href]{cursor:pointer}button:disabled{cursor:wait;opacity:.62}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,dialog:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0;line-height:1.12}p{margin:0}svg{display:block}.app-shell{width:min(100%,1240px);min-height:100dvh;padding:0 24px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.app-shell--compact{width:min(100%,680px)}.skip-link{z-index:30;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface);min-height:44px;color:var(--ink);padding:11px 14px;font-weight:800;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.topbar{min-height:72px;padding-top:env(safe-area-inset-top);justify-content:space-between;align-items:center;display:flex}.brand{min-height:44px;color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font-size:15px;font-weight:900;text-decoration:none;display:inline-flex}.brand svg{width:21px;height:21px;color:var(--action)}.topbar-actions{gap:8px;display:flex}.icon-button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:border-color .18s,background-color .18s,transform .18s;display:inline-flex}.icon-button svg{width:20px;height:20px}.header-list-button{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:44px;color:var(--ink);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:800;transition:border-color .18s,background-color .18s,transform .18s;display:inline-flex}.header-list-button svg{width:18px;height:18px}.workspace{outline:none;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:56px;padding:20px 0 40px;display:grid}.wheel-area{justify-items:center;min-width:0;display:grid;overflow:clip}.page-heading{width:min(100%,560px);margin-bottom:20px}.section-label{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:800}.page-heading h1{font-size:clamp(36px,5.5cqw,58px);font-weight:900}.category-filter{border:0;width:min(100%,560px);margin:0 0 18px;padding:0}.category-filter legend{color:var(--muted);margin-bottom:9px;padding:0;font-size:13px;font-weight:700}.category-options{flex-wrap:wrap;gap:8px;display:flex}.category-option{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:58px;min-height:44px;color:var(--ink);padding:9px 14px;font-size:14px;font-weight:700;transition:border-color .18s,background-color .18s,color .18s,transform .18s}.category-option.is-selected{border-color:var(--action);background:var(--action);color:var(--on-action)}.wheel-stage{--wheel-size:min(100%, 56dvh, 500px);width:var(--wheel-size);aspect-ratio:1;isolation:isolate;position:relative;container-type:inline-size}.wheel-disc{transform:rotate(var(--rotation));border:4px solid var(--ink);background:var(--wheel-background);will-change:transform;backface-visibility:hidden;border-radius:50%;position:absolute;inset:0;overflow:hidden;box-shadow:0 18px 50px #2e3d3429,inset 0 0 0 2px #ffffffb8}.wheel-disc:after{aspect-ratio:1;content:"";background:#ffffffb8;border:2px solid #18181747;border-radius:50%;width:16%;position:absolute;inset:50%;transform:translate(-50%,-50%)}.wheel-label{z-index:1;width:22%;max-height:2.7em;transform:translate(-50%, -50%) rotate(var(--counter-rotation,0deg));color:var(--wheel-ink);text-align:center;text-wrap:balance;text-shadow:0 1px #fff6;-webkit-line-clamp:2;backface-visibility:hidden;will-change:transform;-webkit-box-orient:vertical;padding:2px;font-size:clamp(10px,3cqw,13px);font-weight:800;line-height:1.28;display:-webkit-box;position:absolute;overflow:hidden}.wheel-pointer{z-index:4;transform-origin:50% 5%;clip-path:polygon(0 0,100% 0,50% 100%);background:var(--ink);filter:drop-shadow(0 3px 1px #18181738);width:34px;height:48px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.spin-button{z-index:5;aspect-ratio:1;border:8px solid var(--surface);background:var(--action);width:112px;color:var(--on-action);white-space:nowrap;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:20px;font-weight:800;transition:background-color .18s,transform .18s;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 18px #2e3d3433}.spin-button:active:not(:disabled){transform:translate(-50%,-49%)scale(.98)}.result-band{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);text-align:center;align-content:center;width:min(100%,560px);min-height:112px;margin-top:24px;padding:18px 0;display:grid}.result-label{color:var(--muted);justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:800;display:inline-flex}.result-label svg{width:16px;height:16px;color:var(--success)}.result-value{color:var(--ink);margin-top:5px;font-size:30px;font-weight:900;line-height:1.2}.result-meta{color:var(--muted);margin-top:5px;font-size:12px}.result-band.has-result .result-value{color:var(--success)}.control-rail{border-left:1px solid var(--line);align-self:stretch;padding:34px 0 0 40px}.control-rail h2,.pool-dialog h2{font-size:25px;font-weight:900}.dish-form{margin-top:24px}.form-field>label,.search-field>span:first-child{margin-bottom:9px;font-size:14px;font-weight:800;display:block}.form-field+.form-field{margin-top:16px}input,select{border-radius:var(--radius);background:var(--surface);width:100%;min-height:52px;color:var(--ink);border:1px solid #a4a49d;padding:0 14px;font-size:16px}select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding-right:40px}input::placeholder{color:#74746e}.primary-button,.secondary-button{border-radius:var(--radius);text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:11px 16px;font-weight:800;line-height:1.2;text-decoration:none;transition:transform .16s,background-color .16s,border-color .16s;display:inline-flex}.primary-button{border:1px solid var(--action);background:var(--action);color:var(--on-action)}.secondary-button{border:1px solid var(--ink);background:var(--surface);color:var(--ink)}.primary-button svg,.secondary-button svg{flex:none;width:18px;height:18px}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}.add-button{width:100%;margin-top:18px}.fit-button{width:-moz-fit-content;width:fit-content;margin-top:24px}.field-help,.field-feedback{min-height:20px;margin-top:7px;font-size:13px;line-height:1.5}.field-help{color:var(--muted)}.field-feedback{font-weight:700}.field-feedback[data-kind=error]{color:var(--error)}.field-feedback[data-kind=success]{color:var(--success)}.dish-bank-shell{width:min(100%,920px)}.dish-bank-section{outline:none;padding:28px 0 64px}.dish-bank-heading{margin-bottom:28px}.dish-bank-heading h1{font-size:46px;font-weight:900}.back-button{min-height:44px;color:var(--ink);background:0 0;border:0;align-items:center;gap:4px;margin:0 0 20px -8px;padding:8px;font-size:14px;font-weight:800;display:inline-flex}.back-button svg{width:19px;height:19px}.bank-add-section{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:32px;padding:24px 0 30px;display:grid}.bank-add-section h2{font-size:24px;font-weight:800}.bank-add-section .dish-form{margin-top:0}.bank-search-block{z-index:6;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--canvas) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin:0 0 18px;padding:16px 0 14px;position:sticky;top:0}.bank-search-block>label{margin-bottom:7px;font-size:14px;font-weight:800;display:block}.bank-search-control{border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface);align-items:center;min-height:50px;display:flex;position:relative}.bank-search-control>svg{width:19px;height:19px;color:var(--muted);flex:none;margin-left:14px}.bank-search-control input{background:0 0;border:0;outline:0;min-width:0;min-height:48px;padding:0 8px 0 10px}.bank-search-control:focus-within{outline:3px solid color-mix(in srgb, var(--focus) 28%, transparent);outline-offset:2px}.bank-search-control button{width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin-right:2px;padding:0;display:grid}.bank-search-control button svg{width:18px;height:18px}.bank-search-status{min-height:20px;color:var(--muted);margin-top:7px;font-size:12px;font-weight:700}.dish-bank-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dish-bank-grid .dish-item{border-color:var(--ink);background:var(--surface);content-visibility:auto;contain-intrinsic-size:auto 86px;min-height:86px;padding:16px}.dish-bank-grid .dish-item h3{font-size:18px;line-height:1.35}.pool-dialog{border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface);width:min(100% - 32px,760px);max-height:min(82dvh,780px);color:var(--ink);padding:24px;overflow:hidden;box-shadow:0 24px 70px #18181738}.pool-dialog::backdrop{background:#18181794}.dialog-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.search-field{margin-top:24px;display:block}.search-input{display:block;position:relative}.search-input svg{width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input input{padding-left:42px}.dialog-count{color:var(--muted);margin:16px 0 10px;font-size:13px;font-weight:700}.dish-grid{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:calc(min(82dvh,780px) - 230px);padding-right:4px;display:grid;overflow-y:auto}.dish-item{border:1px solid var(--soft-line);border-radius:var(--radius);background:var(--canvas);min-width:0;padding:12px}.dish-item h3{font-size:15px;font-weight:800}.dish-item p{color:var(--muted);margin-top:5px;font-size:11px}.dish-item .dish-category{border:1px solid var(--line);background:var(--canvas);border-radius:3px;align-items:center;min-height:24px;margin-top:9px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.pool-empty{color:var(--muted);text-align:center;grid-column:1/-1;padding:40px 0}.loading-view{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:56px;padding:40px 0;display:grid}.loading-wheel{place-items:center;min-height:570px;display:grid}.loading-wheel span{aspect-ratio:1;background:var(--soft-line);border-radius:50%;width:min(100%,500px);animation:1.4s ease-in-out infinite alternate skeleton-pulse}.loading-controls{border-left:1px solid var(--line);align-content:start;gap:14px;padding:40px 0 0 40px;display:grid}.loading-controls span{border-radius:var(--radius);background:var(--soft-line);height:52px;animation:1.4s ease-in-out infinite alternate skeleton-pulse;display:block}.loading-controls span:first-child{width:62%;height:28px}@keyframes skeleton-pulse{0%{opacity:.58}to{opacity:1}}.error-view{outline:none;padding:100px 0}.error-view h1{max-width:12ch;font-size:42px;font-weight:900}.error-view>p:not(.section-label){max-width:36ch;color:var(--muted);margin-top:16px;line-height:1.65}.spin{animation:.9s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.clipboard-fallback,.live-region{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:fixed;overflow:hidden}@media (hover:hover){.icon-button:hover,.header-list-button:hover{border-color:var(--ink);background:var(--canvas)}.back-button:hover{color:var(--action)}.primary-button:hover:not(:disabled),.spin-button:hover:not(:disabled){background:var(--action-hover)}.category-option:hover:not(.is-selected){border-color:var(--ink);background:var(--canvas)}.secondary-button:hover:not(:disabled){background:var(--ink);color:var(--surface)}}@media (max-width:820px){.app-shell{padding-left:18px;padding-right:18px}.workspace,.loading-view{grid-template-columns:minmax(0,1fr);gap:36px}.control-rail,.loading-controls{border-top:1px solid var(--line);border-left:0;padding:32px 0 0}}@media (max-width:560px){.topbar{min-height:64px}.brand{font-size:14px}.topbar-actions{gap:6px}.header-list-button{padding:0 10px}.workspace{padding-top:10px}.page-heading{margin-bottom:14px}.page-heading h1{font-size:38px}.wheel-stage{--wheel-size:min(100%, 390px)}.spin-button{border-width:6px;width:104px;font-size:16px}.wheel-pointer{width:28px;height:40px}.result-band{min-height:100px;margin-top:18px;padding:14px 0}.result-value{font-size:26px}.control-rail{padding-top:28px}.dish-grid{grid-template-columns:minmax(0,1fr)}.dish-bank-section{padding-top:16px;padding-bottom:48px}.dish-bank-heading{margin-bottom:22px}.dish-bank-heading h1{font-size:38px}.bank-add-section{grid-template-columns:minmax(0,1fr);gap:16px;padding-top:20px}.dish-bank-grid{grid-template-columns:minmax(0,1fr)}.dish-bank-grid .dish-item{contain-intrinsic-size:auto 78px;min-height:78px;padding:14px}.pool-dialog{width:calc(100% - 20px);max-height:88dvh;padding:18px}.dish-grid{max-height:calc(88dvh - 220px)}}@media (min-width:700px) and (max-height:620px){.topbar{min-height:58px}.workspace{grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:36px;padding-top:0}.page-heading{margin-bottom:6px}.page-heading h1{font-size:32px}.wheel-stage{--wheel-size:min(56dvh, 330px)}.result-band{min-height:82px;margin-top:10px;padding:8px 0}.result-value{font-size:23px}.control-rail{padding-top:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.wheel-disc,.wheel-label{will-change:auto}}
/*$vite$:1*/