:root{--bg: #faf7f2;--card: #ffffff;--text: #1c1917;--muted: #78716c;--accent: #ea580c;--accent-hover: #c2410c;--border: #e7e5e4;--radius: 14px;--safe-b: env(safe-area-inset-bottom, 0px);--cart-h: 64px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.45;color:var(--text);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg)}button{font:inherit;cursor:pointer;border:none;border-radius:10px;touch-action:manipulation}input,textarea{font:inherit;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--card);min-height:44px}textarea{min-height:88px;resize:vertical}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px}.main-col{min-width:0}.app-shell{max-width:1200px;margin:0 auto;padding:12px 14px calc(var(--cart-h) + var(--safe-b) + 24px)}@media(min-width:900px){.app-shell{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start;padding-bottom:24px}.cart-rail{position:sticky;top:12px}.mobile-cart-bar{display:none!important}}.top-bar{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000f}.top-bar h1{margin:0 0 4px;font-size:1.25rem;font-weight:700}.top-meta{font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px}.field{margin-bottom:12px}.row-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.btn{padding:10px 16px;min-height:44px;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--border)}.category-block{margin-bottom:22px}.category-title{font-size:1.05rem;font-weight:700;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--accent);display:inline-block}.dish-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:10px;align-items:flex-start}.dish-img{width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--border);flex-shrink:0}.dish-body{flex:1;min-width:0}.dish-name{font-weight:600;margin:0 0 4px}.dish-desc{font-size:.8rem;color:var(--muted);margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dish-price{color:var(--accent);font-weight:700}.dish-ctrl{display:flex;align-items:center;gap:8px;margin-top:8px}.dish-ctrl button{width:36px;height:36px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center}.dish-ctrl span{min-width:24px;text-align:center;font-weight:600}.cart-rail-inner{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #0000000f}.cart-rail-inner h2{margin:0 0 12px;font-size:1rem}.cart-line{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;margin-bottom:8px}.cart-line span:first-child{flex:1;min-width:0}.cart-total{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-weight:700;display:flex;justify-content:space-between}.mobile-cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--border);padding:10px 14px calc(10px + var(--safe-b));display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -4px 20px #00000014}.mobile-cart-bar .info{font-size:.9rem}.mobile-cart-bar .info strong{color:var(--accent)}.err{color:#b91c1c;font-size:.9rem;margin:8px 0}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000073;display:flex;align-items:flex-end;justify-content:center;padding:16px}@media(min-width:600px){.modal-bg{align-items:center}}.modal{background:var(--card);border-radius:var(--radius);width:100%;max-width:420px;max-height:88dvh;overflow:auto;padding:20px}.modal h2{margin:0 0 14px;font-size:1.1rem}.modal-actions{display:flex;gap:10px;margin-top:16px}.modal-actions .btn{flex:1}.success-box{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:12px 14px;border-radius:10px;font-size:.9rem;margin-top:12px;word-break:break-all}.muted{color:var(--muted);font-size:.85rem}
