:root{--paper:#f4ebdd;--paper-raised:#fff9ee;--ink:#3f2923;--muted:#725e54;--brand:#8f3528;--brand-dark:#69261e;--accent:#9a6b35;--line:#cdbca6;--danger:#a52424;--success:#356a45;--focus:#155e75;--serif:STSong,"Songti SC","Noto Serif SC",Georgia,serif;--sans:"Microsoft YaHei","PingFang SC","Noto Sans SC",system-ui,sans-serif;--shadow:0 18px 48px rgba(63,41,35,.15)}
*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);background-image:radial-gradient(rgba(111,78,55,.05) .7px,transparent .7px);background-size:7px 7px}button,input,select,textarea{font:inherit;color:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.58}img{max-width:100%}[hidden]{display:none!important}.skip-link{position:fixed;z-index:1000;left:16px;top:8px;padding:10px 16px;background:var(--focus);color:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}.eyebrow{display:block;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.18em}.seal{width:70px;height:70px;border:2px solid var(--brand);color:var(--brand);display:grid;place-items:center;font:700 32px var(--serif);transform:rotate(-3deg)}.center-view{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:16px}.center-view p{color:var(--muted)}
.button{min-height:44px;border:1px solid transparent;border-radius:8px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;text-decoration:none;background:transparent;transition:background-color .2s,color .2s,border-color .2s,transform .2s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--brand);color:#fffaf0}.button-primary:hover{background:var(--brand-dark)}.button-secondary{background:var(--paper-raised);color:var(--brand);border-color:var(--brand)}.button-quiet{color:var(--ink)}.button-quiet:hover{background:rgba(143,53,40,.08)}.button-danger{background:#fff6f2;color:var(--danger);border-color:var(--danger)}.text-button{min-height:44px;border:0;background:transparent;color:var(--brand);font-weight:800;padding:8px}.icon-button{width:44px;height:44px;border:0;background:transparent;font-size:26px;border-radius:8px}.button:focus-visible,.text-button:focus-visible,.icon-button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.login-view{min-height:100dvh;display:grid;place-items:center;padding:32px 16px}.login-paper{width:min(760px,100%);padding:clamp(28px,5vw,56px);border:1px solid var(--line);border-radius:16px;background:rgba(255,249,238,.96);box-shadow:var(--shadow);text-align:center;position:relative}.login-paper:before{content:"";position:absolute;inset:10px;border:1px solid rgba(143,53,40,.22);border-radius:10px;pointer-events:none}.login-paper h1{font:700 clamp(40px,7vw,68px)/1.15 var(--serif);letter-spacing:.08em;margin:8px 0}.login-lead{color:var(--muted);margin:0 auto 28px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.role-card{min-height:180px;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fffdfa;display:grid;justify-items:center;align-content:center;gap:8px}.role-card:hover,.role-card[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 8px 24px rgba(143,53,40,.12)}.role-mark{width:54px;height:54px;border:1px solid var(--brand);display:grid;place-items:center;color:var(--brand);font:700 25px var(--serif);border-radius:50%}.role-card strong{font:700 22px var(--serif)}.role-card small{color:var(--muted)}.login-form{position:relative;max-width:400px;margin:28px auto 0;text-align:left}.login-form .button-primary{width:100%;margin-top:4px}.login-form .text-button{width:100%;margin-top:4px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span,.sort-field>span{font-size:13px;font-weight:800}.field b{color:var(--danger)}.field input,.field select,.field textarea,.sort-field select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fffdfa}.field textarea{resize:vertical}.form-error{min-height:25px;margin:8px 0;color:var(--danger);font-weight:700}.helper{color:var(--muted);margin:8px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field-wide{grid-column:1/-1}
.app-header{min-height:82px;padding:12px clamp(16px,4vw,52px);position:sticky;top:0;z-index:40;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;border-bottom:1px solid var(--line);background:rgba(244,235,221,.95);backdrop-filter:blur(10px)}.brand-button{border:0;background:transparent;justify-self:start;display:flex;flex-direction:column;text-align:left}.brand-cn{font:700 25px/1.1 var(--serif);letter-spacing:.14em}.brand-en{margin-top:4px;color:var(--muted);font-size:9px;letter-spacing:.2em}.primary-nav{display:flex;gap:6px;padding:4px;border:1px solid var(--line);border-radius:10px;background:rgba(255,249,238,.72)}.primary-nav button{min-height:44px;padding:8px 16px;border:0;border-radius:7px;background:transparent;font-weight:800}.primary-nav button[aria-current="page"]{background:var(--brand);color:#fffaf0}.unread-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 5px;border-radius:20px;background:#fff;color:var(--brand);font-size:11px}.account-actions{justify-self:end;display:flex;align-items:center;gap:8px}.account-actions>span{color:var(--muted);font-size:13px}
.menu-shell{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100dvh - 82px)}.filters{padding:32px 24px;border-right:1px solid var(--line);position:sticky;top:82px;height:calc(100dvh - 82px);overflow:auto;background:rgba(255,249,238,.32)}.filters h2{font:700 24px/1.2 var(--serif);margin:7px 0 22px}.filters .field{margin-bottom:17px}.menu-main{padding:clamp(28px,4vw,54px)}.menu-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}.menu-heading h1,.page-heading h1{font:700 clamp(36px,5vw,62px)/1.08 var(--serif);letter-spacing:.04em;margin:7px 0}.menu-heading p,.page-heading p{margin:0;color:var(--muted);font-size:17px}.menu-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sort-field{display:flex;align-items:center;gap:8px}.sort-field select{min-width:145px}.dish-count{color:var(--muted);font-size:14px;margin:18px 0}.dish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dish-card{min-width:0;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper-raised);padding:0;overflow:hidden;box-shadow:0 5px 18px rgba(63,41,35,.08);transition:box-shadow .2s,transform .2s,border-color .2s}.dish-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(63,41,35,.14);border-color:#ae8d72}.dish-card-visual{aspect-ratio:4/3;position:relative;overflow:hidden;background:#ead8c6;display:grid;place-items:center}.dish-card-visual img{width:100%;height:100%;object-fit:cover}.dish-pattern{width:100%;height:100%;display:grid;place-items:center;color:var(--brand);font:700 48px var(--serif);background-color:#f3e3d1;background-image:radial-gradient(circle at 20% 20%,rgba(143,53,40,.14) 0 3px,transparent 3.5px);background-size:24px 24px}.dish-card-body{padding:17px}.dish-card h2{font:700 21px/1.3 var(--serif);margin:0 0 7px}.dish-card p{min-height:48px;margin:0;color:var(--muted);font-size:13px}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tag,.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#ead8c6;color:#60352d;font-size:12px;font-weight:800}.empty-state{text-align:center;padding:80px 20px}.empty-state .seal{margin:0 auto}.empty-state h2{font-family:var(--serif)}
.content-view{max-width:1160px;margin:0 auto;padding:clamp(20px,4vw,52px)}.wide-view{max-width:1440px}.view-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:24px}.view-toolbar>div:nth-child(2){text-align:center}.view-toolbar h1{font:700 30px var(--serif);margin:3px 0}.toolbar-actions{justify-self:end;display:flex;gap:8px}.recipe-sheet,.form-paper,.order-detail{border:1px solid var(--line);border-radius:14px;background:var(--paper-raised);box-shadow:var(--shadow);overflow:hidden}.detail-visual{height:min(42vw,420px);min-height:240px;background:#ead8c6}.detail-visual img{width:100%;height:100%;object-fit:cover}.detail-header{padding:clamp(24px,5vw,56px) clamp(22px,6vw,70px) 18px}.detail-header h1{font:700 clamp(36px,5vw,58px)/1.15 var(--serif);margin:8px 0}.detail-header p{max-width:740px;color:var(--muted)}.detail-tags{display:flex;flex-wrap:wrap;gap:8px;padding:0 clamp(22px,6vw,70px) 30px}.recipe-columns{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:32px clamp(22px,6vw,70px);border-block:1px solid var(--line)}.recipe-section h2,.steps-section h2{font:700 25px var(--serif);color:var(--brand);margin:0 0 18px}.ingredient-list{margin:0}.ingredient-list div{display:grid;grid-template-columns:1fr auto;gap:18px;padding:9px 0;border-bottom:1px dotted var(--line)}.ingredient-list dt,.ingredient-list dd{margin:0}.ingredient-list dd{font-weight:800}.steps-section{padding:36px clamp(22px,6vw,70px)}.steps-list{list-style:none;margin:0;padding:0;counter-reset:steps}.steps-list li{counter-increment:steps;display:grid;grid-template-columns:42px 1fr;gap:14px;margin-bottom:20px}.steps-list li:before{content:counter(steps,decimal-leading-zero);width:38px;height:38px;border:1px solid var(--brand);border-radius:50%;display:grid;place-items:center;color:var(--brand);font-size:11px;font-weight:800}.chef-note{margin:0 clamp(22px,6vw,70px) 40px;padding:18px 20px;border-left:4px solid var(--accent);background:#f1dfc7}.customer-cta{padding:28px clamp(22px,6vw,70px);text-align:right}
.form-paper{padding:clamp(20px,4vw,44px)}fieldset{border:0;margin:0 0 34px;padding:0}legend{width:100%;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line);font:700 22px var(--serif);color:var(--brand)}.recipe-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.image-tools{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:start;gap:16px}.upload-box{min-height:96px;padding:18px;border:1px dashed var(--brand);border-radius:10px;background:#fffdfa;display:grid;place-items:center;color:var(--brand);font-weight:800}.upload-box input{width:100%;margin-top:8px}.editor-image-preview{margin:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f8eddf}.editor-image-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}.form-actions{display:flex;justify-content:flex-end;gap:10px}
.page-heading{padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:20px}.orders-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:20px;min-height:600px}.orders-list{display:grid;align-content:start;gap:10px}.order-row{width:100%;padding:16px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper-raised)}.order-row[aria-current="true"]{border-color:var(--brand);box-shadow:0 0 0 2px rgba(143,53,40,.15)}.order-row-head{display:flex;justify-content:space-between;gap:8px}.order-row strong{font-family:var(--serif)}.order-row p{margin:6px 0 0;color:var(--muted);font-size:13px}.order-row.unread strong:before{content:"新";display:inline-grid;place-items:center;width:25px;height:25px;margin-right:7px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px}.order-detail{min-height:440px;padding:clamp(20px,4vw,38px)}.empty-order{min-height:360px;display:grid;place-content:center;text-align:center;color:var(--muted)}.order-detail-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.order-detail h2{font:700 30px var(--serif);margin:4px 0}.order-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.order-fact{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffdfa}.order-fact small{display:block;color:var(--muted)}.order-items{padding:18px 0;border-block:1px solid var(--line)}.order-items h3,.order-notes h3{font-family:var(--serif);color:var(--brand)}.order-items ol{columns:2}.order-notes{padding:14px 0}.status-actions,.guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.status-pill[data-status="new"]{background:#f1dfc7}.status-pill[data-status="completed"]{background:#dcebdd;color:#275738}.status-pill[data-status="rejected"],.status-pill[data-status="cancelled"]{background:#eee4d7;color:#675c55}
dialog{width:min(520px,calc(100% - 32px));max-height:92dvh;border:1px solid var(--line);border-radius:16px;background:var(--paper-raised);color:var(--ink);padding:26px;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(35,21,17,.58)}dialog h2{font:700 28px var(--serif);margin:5px 0}.large-dialog{width:min(1100px,calc(100% - 32px));padding:0;overflow:auto}.large-dialog>form{padding:0}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.large-dialog .dialog-head{position:sticky;top:0;z-index:3;padding:22px 26px 15px;border-bottom:1px solid var(--line);background:var(--paper-raised)}.stepper{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:22px 26px;padding:0}.stepper li{position:relative;padding-top:30px;text-align:center;color:var(--muted);font-size:13px;font-weight:800}.stepper li:before{content:"";position:absolute;left:50%;top:8px;width:14px;height:14px;border:2px solid var(--line);border-radius:50%;background:var(--paper-raised);transform:translateX(-50%);z-index:1}.stepper li:after{content:"";position:absolute;left:-50%;right:50%;top:15px;height:1px;background:var(--line)}.stepper li:first-child:after{display:none}.stepper li.active{color:var(--brand)}.stepper li.active:before{border-color:var(--brand);background:var(--brand)}.order-step{padding:0 26px;min-height:360px}.order-step:first-of-type{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:20px}.order-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.order-pick{min-height:64px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fffdfa;display:flex;align-items:start;gap:10px}.order-pick input{width:20px;height:20px;margin-top:3px;accent-color:var(--brand)}.order-pick span{display:grid}.order-pick small{color:var(--muted)}.advice-box{align-self:start;position:sticky;top:110px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#f1dfc7}.advice-box h3{font-family:var(--serif);margin-top:0}.advice-box p{margin:8px 0}.order-review-final{padding:22px;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.order-review-final h3{font-family:var(--serif);color:var(--brand)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.large-dialog .dialog-actions{position:sticky;bottom:0;z-index:3;padding:16px 26px;margin-top:20px;border-top:1px solid var(--line);background:var(--paper-raised)}.guide-links{display:grid;gap:8px;margin:18px 0}.guide-links a{min-height:44px;padding:10px;border:1px solid var(--brand);border-radius:8px;color:var(--brand);text-decoration:none;font-weight:800}#guide-qr{display:block;max-width:100%;height:auto;margin:12px auto;background:#fff;padding:10px}.toast{position:fixed;z-index:100;right:24px;bottom:24px;max-width:390px;padding:13px 17px;border-radius:8px;background:var(--ink);color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(16px);pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:none}.toast.error{background:var(--danger)}
@media(max-width:1023px){.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-shell{grid-template-columns:220px minmax(0,1fr)}.orders-layout{grid-template-columns:310px minmax(0,1fr)}.order-facts{grid-template-columns:repeat(2,1fr)}.image-tools{grid-template-columns:1fr 1fr}.editor-image-preview{grid-column:1/-1;max-width:320px}}
@media(max-width:767px){.app-header{min-height:72px;padding:10px 12px;grid-template-columns:1fr auto}.brand-cn{font-size:20px}.brand-en,.account-actions>span{display:none}.primary-nav{position:fixed;z-index:50;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));justify-content:stretch;background:var(--paper-raised);box-shadow:var(--shadow)}.primary-nav button{flex:1}.account-actions{grid-column:2}.account-actions .button{padding:8px}.menu-shell{display:block}.filters{position:static;width:auto;height:auto;padding:18px 16px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px}.filters>.eyebrow,.filters>h2,.filters>.text-button{grid-column:1/-1}.filters h2{margin-bottom:4px}.filters .field{margin:0}.menu-main{padding:26px 16px 100px}.menu-heading{display:block}.menu-heading h1{font-size:40px}.menu-actions{margin-top:18px;justify-content:stretch}.menu-actions>*{flex:1}.sort-field{flex-basis:100%}.dish-grid{grid-template-columns:1fr}.dish-card{display:grid;grid-template-columns:112px 1fr}.dish-card-visual{aspect-ratio:1/1}.dish-card-body{padding:14px}.dish-card p{min-height:auto}.content-view{padding:16px 16px 100px}.view-toolbar{grid-template-columns:auto 1fr}.view-toolbar>div:nth-child(2){text-align:left}.view-toolbar>span{display:none}.toolbar-actions{grid-column:1/-1;justify-self:stretch}.toolbar-actions .button{flex:1}.detail-visual{height:240px}.detail-header{padding:24px 20px 14px}.detail-tags{padding:0 20px 24px}.recipe-columns{grid-template-columns:1fr;gap:30px;padding:28px 20px}.steps-section{padding:30px 20px}.chef-note{margin:0 20px 28px}.customer-cta{padding:20px}.form-grid,.recipe-editor-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.image-tools{grid-template-columns:1fr}.editor-image-preview{grid-column:auto}.orders-layout{grid-template-columns:1fr}.order-detail{min-height:0}.order-facts{grid-template-columns:1fr 1fr}.order-items ol{columns:1}.large-dialog{width:calc(100% - 12px);max-height:96dvh}.order-step:first-of-type{display:block}.order-picks{grid-template-columns:1fr}.advice-box{position:static;margin-top:16px}.role-grid{grid-template-columns:1fr}.role-card{min-height:140px}.form-actions .button{flex:1}.toast{left:16px;right:16px;bottom:88px}.guide-actions .button{flex:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
#order-step-1{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:20px}
@media(max-width:767px){#order-step-1{display:block}}
.danger-zone{display:flex;justify-content:flex-end;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-only{display:none}
.menu-layout{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100dvh - 82px)}.filters{padding:32px 24px;border-right:1px solid var(--line);position:sticky;top:82px;height:calc(100dvh - 82px);overflow:auto;background:rgba(255,249,238,.36)}.filter-heading{display:flex;align-items:start;justify-content:space-between}.filters h2{font:700 24px/1.2 var(--serif);margin:6px 0 20px}.search-field{height:48px;display:flex;align-items:center;gap:9px;background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;padding:0 12px}.search-field:focus-within{outline:3px solid var(--focus);outline-offset:2px}.search-field input{min-width:0;width:100%;height:100%;border:0;outline:0;background:transparent}.filter-group{margin-top:20px}.filter-group label{display:block;margin-bottom:7px;font-size:13px;font-weight:800}.filter-group select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper-raised);padding:8px 34px 8px 10px}.aside-note{margin-top:32px;padding:18px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper-raised);position:relative}.aside-note:before{content:"";position:absolute;inset:7px;border:1px solid rgba(143,53,40,.22);border-radius:6px;pointer-events:none}.aside-note span{font:700 16px var(--serif);color:var(--brand)}.aside-note p{position:relative;margin:8px 0 0;font-size:13px;color:var(--muted)}
.menu-content{padding:clamp(28px,4vw,56px)}.menu-hero{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}.menu-hero h1{font:700 clamp(36px,5vw,64px)/1.08 var(--serif);letter-spacing:.06em;margin:6px 0 8px}.menu-hero p{margin:0;color:var(--muted);font-size:18px}.menu-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sort-control{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800}.sort-control select{min-height:44px;padding:8px 34px 8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper-raised)}.dish-count{color:var(--muted);font-size:14px}.active-filters{display:flex;flex-wrap:wrap;gap:8px;min-height:24px;margin:18px 0}.filter-chip,.tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#ead8c6;color:#60352d;font-size:12px;font-weight:700}.dish-card{cursor:pointer;box-shadow:0 2px 8px rgba(63,41,35,.08)}.dish-pattern{position:relative;font-size:52px}.dish-pattern:after{content:"";position:absolute;inset:14px;border:1px solid rgba(143,53,40,.38);border-radius:50%;pointer-events:none}.dish-meta{color:var(--muted);font-size:12px;min-height:40px}.mastery-badge{display:inline-flex;align-items:center;min-height:28px;margin-top:12px;border-radius:999px;padding:4px 10px;background:#ead2bc;color:#6d3027;font-size:12px;font-weight:800}.mastery-badge[data-level="招牌菜"]{background:var(--brand);color:#fffaf0}.mastery-badge[data-level="想学"]{background:#eee4d7;color:#675c55;border:1px dashed #9a8678}
.detail-view,.editor-view{max-width:1180px;margin:0 auto;padding:clamp(20px,4vw,52px)}.detail-toolbar,.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.detail-actions{display:flex;align-items:center;gap:10px}.recipe-sheet,.form-paper{box-shadow:0 20px 60px rgba(63,41,35,.18)}.detail-header{display:flex;justify-content:space-between;align-items:start;gap:24px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 clamp(22px,6vw,70px) 30px}.recipe-sheet h2{font:700 25px var(--serif);margin:0 0 20px;color:var(--brand)}.cook-note{margin:0 clamp(22px,6vw,70px) 48px;padding:20px 24px;background:#f1dfc7;border-left:4px solid var(--accent)}.cook-note span{font:700 16px var(--serif);color:var(--brand)}.cook-note p{margin:6px 0 0}.editor-toolbar>div{text-align:center}.editor-toolbar h1{font:700 30px var(--serif);margin:3px 0}.form-recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.field-error{min-height:18px;color:var(--danger)!important}.repeat-list{display:grid;gap:10px}.repeat-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 44px;gap:8px;align-items:start}.repeat-row input,.repeat-row textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fffdfa}.repeat-row textarea{resize:vertical}.step-editor-list .repeat-row{grid-template-columns:42px minmax(0,1fr) 44px}.step-number{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--brand);border-radius:50%;color:var(--brand);font-size:12px;font-weight:800}.remove-row{width:44px;height:44px;border:0;background:transparent;color:var(--danger);cursor:pointer;border-radius:8px}.remove-row:hover{background:#fff0eb}.add-row{min-height:44px;margin-top:10px;border:1px dashed var(--brand);background:transparent;color:var(--brand);border-radius:8px;padding:8px 12px;display:inline-flex;align-items:center;gap:7px;font-weight:800;cursor:pointer}
.attribute-panes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attribute-panes label{display:flex;min-width:0;flex-direction:column;gap:7px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.attribute-panes label>span{font-size:13px;font-weight:800}.image-source-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:16px}.image-source-option{min-width:0;overflow:hidden;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fffdfa;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.image-source-option strong{font:700 17px var(--serif);color:var(--brand)}.image-source-option input{width:100%;min-height:44px}.image-source-option small,.image-preview small{color:var(--muted)}.image-preview{width:100%;min-width:0;display:grid;gap:8px;margin:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f8eddf;overflow:hidden}.image-preview img{display:block;width:100%;max-width:240px;aspect-ratio:4/3;object-fit:cover;border-radius:7px;background:#ead8c6}.image-generation-status{display:block;min-height:24px;margin-top:8px;color:var(--muted)}
@media(max-width:1023px){.menu-layout{grid-template-columns:220px minmax(0,1fr)}.menu-content{padding:32px 24px}}
@media(max-width:767px){.mobile-only{display:inline-flex}.menu-layout{display:block;min-height:calc(100dvh - 72px)}.filters{position:fixed;z-index:60;inset:0 8% 0 0;height:100dvh;top:0;transform:translateX(-110%);transition:transform .2s;background:var(--paper-raised);box-shadow:var(--shadow);padding:24px;display:block;border-right:1px solid var(--line)}.filters.open{transform:none}.menu-content{padding:28px 16px 100px}.menu-hero{align-items:start}.menu-hero h1{font-size:40px}.menu-hero p{font-size:16px}.menu-tools{flex-direction:column;align-items:end;min-width:158px}.sort-control{width:100%;justify-content:flex-end}.sort-control span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.sort-control select{max-width:158px}.aside-note{display:none}.dish-card p{display:none}.dish-meta{min-height:auto}.detail-view,.editor-view{padding:16px 16px 100px}.detail-toolbar{margin-bottom:14px}.detail-header{display:block;padding:24px 20px 12px}.detail-header .mastery-badge{margin-top:16px}.tag-list{padding:0 20px 24px}.cook-note{margin:0 20px 30px}.editor-toolbar{align-items:start}.editor-toolbar>div{text-align:left;flex:1}.editor-toolbar h1{font-size:23px}.editor-toolbar .button span{display:none}.form-paper{padding:20px 16px}.form-recipe-grid,.attribute-panes,.image-source-grid{grid-template-columns:1fr}.repeat-row{grid-template-columns:minmax(0,1fr) 100px 44px}}
.order-guests{display:grid;grid-template-columns:auto 110px 1fr;align-items:center;gap:12px;margin-bottom:20px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f1dfc7;font-weight:800}.order-guests input{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fffdfa}.order-guests small{color:var(--muted);font-weight:400}.order-picks{display:grid;grid-template-columns:1fr;gap:18px}.order-category{margin:0;padding:0;border:1px solid var(--line);border-radius:11px;background:rgba(255,253,250,.65);overflow:hidden}.order-category legend{display:flex;justify-content:space-between;align-items:center;width:100%;margin:0;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:#f1dfc7;font:700 19px var(--serif);color:var(--brand)}.order-category legend small{font:12px var(--sans);color:var(--muted)}.order-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.order-selection-summary{display:block;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line);font-family:var(--serif);color:var(--brand)}
@media(max-width:767px){.order-guests{grid-template-columns:1fr 90px}.order-guests small{grid-column:1/-1}.order-category-grid{grid-template-columns:1fr}}

.connection-status{position:fixed;z-index:90;top:8px;left:50%;max-width:calc(100% - 24px);padding:9px 14px;border:1px solid var(--danger);border-radius:8px;background:#fff6f2;color:var(--danger);font-size:13px;font-weight:800;transform:translateX(-50%);box-shadow:var(--shadow)}
.install-app{display:none}.install-steps{margin:20px 0 0;padding-left:24px}.install-steps li{margin:12px 0}.install-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}

@media(max-width:767px){
  .login-view{padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .app-header{min-height:calc(72px + env(safe-area-inset-top));padding-top:max(10px,env(safe-area-inset-top))}
  .primary-nav{padding-bottom:env(safe-area-inset-bottom)}
  .menu-hero{display:block}.menu-tools{min-width:0;margin-top:18px;flex-direction:row;align-items:center;justify-content:flex-start}.sort-control{width:auto;justify-content:flex-start}.sort-control select{max-width:172px}.dish-count{flex-basis:100%}
  .editor-toolbar{position:sticky;z-index:35;top:calc(72px + env(safe-area-inset-top));padding:8px 4px;background:rgba(244,235,221,.97)}
  .large-dialog{max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)))}.large-dialog .dialog-head{padding-top:max(16px,env(safe-area-inset-top))}.large-dialog .dialog-actions{padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .orders-layout:not(.show-detail) .order-detail,.orders-layout:not(.show-detail) .order-mobile-back{display:none}.orders-layout.show-detail .orders-list{display:none}.orders-layout.show-detail .order-mobile-back{justify-self:start}.orders-layout.show-detail .order-detail{display:block}
  .install-app{position:fixed;z-index:70;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));padding:14px 12px 14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper-raised);box-shadow:var(--shadow);align-items:center;justify-content:space-between;gap:12px}.install-app>div:first-child{display:grid}.install-app strong{font-family:var(--serif);color:var(--brand)}.install-app span{font-size:12px;color:var(--muted)}
  input,select,textarea{font-size:16px}
}

@media(display-mode:standalone){.install-app{display:none!important}.app-header{padding-top:max(12px,env(safe-area-inset-top))}}
