:root{--bg0: #e7f1ec;--bg1: #f4f7f5;--ink: #173028;--ink-soft: #4a6359;--line: rgba(23, 48, 40, .1);--panel: rgba(255, 255, 255, .72);--panel-solid: #ffffff;--accent: #2f6b55;--accent-deep: #1f4a3b;--warm: #d9773a;--warm-soft: #fff1e6;--ok: #2d8a5e;--shadow: 0 18px 50px rgba(23, 48, 40, .08);--radius: 22px;--font-display: "ZCOOL XiaoWei", "Noto Sans SC", serif;--font-body: "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%,#cfe4d8 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#f3e4d4 0%,transparent 50%),linear-gradient(180deg,var(--bg0),var(--bg1) 45%,#eef3f0);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}.app{width:min(980px,100%);margin:0 auto;padding:20px 16px 120px}.hero{position:relative;overflow:hidden;border-radius:28px;padding:28px 24px 24px;color:#f7fbf8;background:linear-gradient(135deg,#1f4a3beb,#2f6b55e0),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");box-shadow:var(--shadow);animation:rise .7s ease both}.hero:after{content:"";position:absolute;right:-40px;bottom:-50px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);pointer-events:none}.brand{font-family:var(--font-display);font-size:clamp(2.4rem,8vw,3.4rem);letter-spacing:.04em;margin:0 0 8px;line-height:1.1}.hero p{margin:0;max-width:28em;color:#f7fbf8db;font-size:.98rem;line-height:1.55}.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#ffffff24;border:1px solid rgba(255,255,255,.18);font-size:.85rem}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 8px;padding:6px;border-radius:18px;background:#ffffff8c;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rise .75s ease .05s both}.tab{border:0;background:transparent;color:var(--ink-soft);padding:12px 10px;border-radius:14px;font-weight:600;transition:background .2s ease,color .2s ease,transform .2s ease}.tab.active{background:var(--panel-solid);color:var(--accent-deep);box-shadow:0 8px 20px #1730280f}.panel{margin-top:14px;animation:rise .6s ease both}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0 12px}.section-title h2{margin:0;font-size:1.05rem;font-weight:700}.section-title span{color:var(--ink-soft);font-size:.85rem}.members{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.member{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:10px 14px;border-radius:999px;transition:transform .18s ease,background .18s ease,border-color .18s ease}.member:hover{transform:translateY(-1px)}.member.active{background:var(--accent);border-color:var(--accent);color:#fff}.categories{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px;scrollbar-width:none}.category-board{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.category-group-label{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--accent);margin:4px 2px 2px}.category-group .categories{margin-bottom:0;padding-bottom:4px}.categories::-webkit-scrollbar{display:none}.cat{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px 14px;border-radius:999px;font-weight:500}.cat.active{background:var(--ink);border-color:var(--ink);color:#fff}.menu-list{display:flex;flex-direction:column;gap:10px}.dish{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .18s ease,box-shadow .18s ease}.dish-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.dish-remove{border:0;background:transparent;color:var(--ink-soft);font-size:.75rem;padding:0 4px;opacity:.7}.dish-remove:hover{color:#b42318;opacity:1}.add-dish{margin-top:22px;padding:16px;border-radius:var(--radius);background:#ffffffb3;border:1px dashed rgba(47,107,85,.35)}.add-dish-row{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin-bottom:8px}.field{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;color:var(--ink);outline:none}.field:focus{border-color:var(--accent)}.emoji-picks{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;max-height:148px;overflow-y:auto;padding:4px 2px 2px}.emoji-pick{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:1.15rem}.emoji-pick.active{border-color:var(--accent);background:#e8f4ee}.dish:hover{transform:translateY(-1px);box-shadow:0 10px 28px #1730280f}.dish-emoji{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;font-size:1.6rem;background:linear-gradient(160deg,#f3faf6,#e7f0ea)}.dish h3{margin:0 0 4px;font-size:1rem}.dish p{margin:0;color:var(--ink-soft);font-size:.82rem}.qty{display:inline-flex;align-items:center;gap:8px}.qty button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1.1rem;line-height:1;transition:background .15s ease,color .15s ease}.qty button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.qty span{min-width:1.2em;text-align:center;font-weight:600}.cart-bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);width:min(940px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;border-radius:22px;background:#173028f0;color:#fff;box-shadow:0 18px 40px #17302847;z-index:20;animation:slideUp .35s ease both}.cart-bar strong{font-size:1.15rem}.cart-bar .muted{opacity:.75;font-size:.85rem}.primary{border:0;background:var(--warm);color:#fff;padding:12px 18px;border-radius:16px;font-weight:700;transition:transform .15s ease,filter .15s ease}.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.ghost{border:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px 12px;border-radius:12px}.orders{display:flex;flex-direction:column;gap:12px}.order{padding:16px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line)}.order-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.order-head h3{margin:0;font-size:1.05rem}.status{font-size:.78rem;font-weight:700;padding:5px 10px;border-radius:999px}.status.pending{background:var(--warm-soft);color:#a85a1f}.status.cooking{background:#e8f1ff;color:#2a5f9e}.status.done{background:#e5f6ec;color:var(--ok)}.order-items{margin:0;padding:0;list-style:none;color:var(--ink-soft);font-size:.92rem}.order-items li{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.order-note{margin-top:8px;padding:8px 10px;border-radius:12px;background:#d9773a14;color:#8a4d1c;font-size:.86rem}.order-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.order-actions button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 12px;font-size:.86rem}.empty{text-align:center;padding:48px 16px;color:var(--ink-soft);border:1px dashed var(--line);border-radius:var(--radius);background:#fff6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#101c1873;display:grid;place-items:end center;padding:16px;z-index:30;animation:fade .2s ease both}.modal{width:min(520px,100%);background:#fff;border-radius:24px 24px 20px 20px;padding:20px;box-shadow:var(--shadow);animation:slideUp .28s ease both}.modal h3{margin:0 0 6px;font-family:var(--font-display);font-size:1.6rem}.modal .hint{margin:0 0 14px;color:var(--ink-soft);font-size:.9rem}.cart-lines{list-style:none;margin:0 0 12px;padding:0;max-height:240px;overflow:auto}.cart-lines li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}textarea{width:100%;min-height:78px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:14px;outline:none;background:#f8faf9}textarea:focus{border-color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;top:18px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;z-index:40;animation:fade .2s ease both;font-size:.9rem}.toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.modal-backdrop .modal{animation-name:rise}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (max-width: 640px){.app{padding-bottom:130px}.dish{grid-template-columns:48px 1fr}.dish-side{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}.add-dish-row{grid-template-columns:1fr}}
