:root{color:#2d241d;background:#f6f1e8;font-family:Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f6f1e8}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}.app-shell{min-height:100vh;padding-bottom:76px}.page{width:min(100%,720px);margin:0 auto;padding:18px 14px}.hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:16px 0 12px;border-radius:8px;background:transparent;border:0}.compact-hero h1{margin-bottom:4px}h1{margin:4px 0 8px;font-size:28px;line-height:1.15;letter-spacing:0}h2{margin:0 0 10px;font-size:17px;letter-spacing:0}p{margin:0;color:#766b60;line-height:1.6}.eyebrow{color:#2f6f5e;font-weight:800;font-size:13px}.icon-button{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#dd6b3d;color:#fff;font-size:26px;font-weight:700}.icon-button svg,.bottom-nav svg,.retry-button svg{display:block}.search-box,.field{display:grid;gap:8px;margin:14px 0;color:#5b5047;font-weight:700}.search-box{grid-template-columns:24px 1fr;align-items:center;padding:0 12px;height:48px;border:1px solid #e5d8c6;border-radius:8px;background:#fffaf2}input,textarea,select{width:100%;border:1px solid #e5d8c6;border-radius:8px;background:#fff;color:#2d241d;padding:11px 12px}.search-box input{border:0;padding:0;background:transparent;outline:0}textarea{min-height:96px;resize:vertical}.category-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}.category-row button{flex:0 0 auto;padding:8px 13px;border-radius:999px;color:#5e5348;background:#eee3d2}.category-row .active{color:#fff;background:#2f6f5e}.dish-card,.panel,.history-card{border:1px solid #eadfce;border-radius:8px;background:#fffaf2;margin:12px 0;overflow:hidden}.dish-grid,.skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dish-grid .dish-card{margin:0}.dish-image,.detail-image{display:block;position:relative;aspect-ratio:4 / 3;min-height:0;color:#fff;font-weight:800;background:#2f6f5e;overflow:hidden}.dish-image>span,.detail-image>span{width:100%;height:100%;display:grid;place-items:center}.dish-image img,.detail-image img,.cached-image-shell,.cached-image-shell img,.preview{width:100%;height:100%;object-fit:cover}.cached-image-shell{display:block;position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:#efe3d3;transition:opacity .12s ease}.cached-image-shell.is-ready{opacity:1}.cached-image-shell img{display:block}.cached-image-fallback{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-weight:800}.dish-content,.panel,.history-card{padding:14px}.dish-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.dish-name{font-size:18px;font-weight:800}.pill{flex:0 0 auto;border-radius:999px;padding:4px 9px;color:#2f6f5e;background:#e3f1eb;font-size:12px;font-weight:800}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.actions button,.secondary,.full-button{min-height:42px;border-radius:8px;display:grid;place-items:center;color:#fff;background:#dd6b3d;font-weight:800}.secondary{background:#2f6f5e}.full-button{width:100%;margin:16px 0;min-height:48px}.full-button:disabled{opacity:.55}.plain-header{margin:6px 0 18px}.empty,.notice{border:1px dashed #d7c7b4;border-radius:8px;padding:18px;text-align:center;color:#695f55;background:#fffaf2}.empty p{margin-bottom:12px}.retry-button{min-height:38px;padding:0 14px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;color:#fff;background:#2f6f5e;font-weight:800}.skeleton-card{height:220px;border-radius:8px;border:1px solid #eadfce;background:linear-gradient(90deg,#fffaf2,#efe3d3,#fffaf2);background-size:240% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-240% 0}}.notice{border-style:solid;color:#2f6f5e}.detail-image{height:240px;border-radius:8px;overflow:hidden;margin-bottom:16px}.detail-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.meta-grid,.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.meta-grid div,.manage-card{border-radius:8px;padding:13px;background:#fffaf2;border:1px solid #eadfce}.meta-grid span,.manage-card span,.subtle{display:block;color:#766b60;font-size:13px}.multiline{white-space:pre-line}.cart-row,.manage-row,.order-mini{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #eadfce}.cart-row:last-child,.manage-row:last-child,.order-mini:last-child{border-bottom:0}.qty{display:flex;align-items:center;gap:9px}.qty button{width:30px;height:30px;border-radius:50%;background:#eee3d2;color:#2d241d;font-weight:900}.manage-card{min-height:92px;text-align:left;color:inherit}.manage-card strong{display:block;margin-bottom:8px}.manage-row a,.link-danger{margin-left:12px;color:#dd6b3d;background:transparent;font-weight:800}.form{display:grid;gap:2px}.preview{height:180px;border-radius:8px;border:1px solid #eadfce}.preview-frame{position:relative}.preview-frame span{position:absolute;inset:auto 10px 10px;border-radius:8px;padding:8px 10px;color:#fff;background:#2d241db8;font-size:13px;font-weight:700}.check{display:flex;align-items:center;gap:8px;margin:12px 0}.check input{width:auto}.wide{width:100%;margin-top:12px}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,720px);display:grid;grid-template-columns:repeat(3,1fr);background:#fffaf2f5;border-top:1px solid #eadfce;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-nav a{min-height:62px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;place-items:center;color:#7b7066;font-weight:800}.bottom-nav a.router-link-active{color:#dd6b3d}.bottom-nav span{min-width:20px;padding:2px 6px;border-radius:999px;color:#fff;background:#dd6b3d}.login-view{min-height:calc(100vh - 36px);display:grid;place-items:center}.login-panel{width:min(100%,360px);border:1px solid #eadfce;border-radius:8px;background:#fffaf2;padding:18px}@media(max-width:360px){.dish-grid,.skeleton-grid,.meta-grid,.manage-grid{grid-template-columns:1fr}}
