:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f1ec;--surface:#fffdf9;--surface-strong:#fff;--line:#d9cfc2;--ink:#252321;--muted:#6e675f;--brown:#7b452d;--brown-soft:#8e614c;--teal:#2d8b7c;--teal-soft:#67b7a8;--gold:#d47934;--danger:#a63a2b;--success:#247457;--focus:#1d5fd1;--button-primary-bg:#1f766f;--button-primary-bg-hover:#196b64;--button-primary-bg-active:#124f4a;--button-primary-border:#1a6861;--button-accent-bg:#1f766f;--button-accent-bg-hover:#196b64;--button-accent-bg-active:#124f4a;--button-accent-border:#1a6861;--button-secondary-bg:#fffdf9;--button-secondary-bg-hover:#f4fbf7;--button-secondary-border:#d9cfc2;--button-secondary-border-hover:#2d8b7c61;--button-shadow-rest:0 3px 8px #4b37230d;--button-shadow-hover:0 9px 20px #2d8b7c1a;--button-shadow-accent:0 10px 22px #1f766f29;--motion-fast:.14s;--motion-medium:.22s;--motion-slow:.36s;--ease-standard:cubic-bezier(.2, 0, .15, 1);--ease-emphasized:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body{-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100%}body{background:var(--bg);color:var(--ink);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.72}a{color:inherit}.studio-app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.studio-app-shell.nav-collapsed{grid-template-columns:78px minmax(0,1fr)}.studio-shell-sider{z-index:20;background:linear-gradient(#fffdf9f0 0%,#f4f1ecf5 100%);border-right:1px solid #d9cfc2d1;min-width:0;position:relative;box-shadow:10px 0 30px #4b37230b}.studio-side-rail{grid-template-rows:auto minmax(0,1fr) auto;gap:18px;height:100dvh;padding:18px 12px;display:grid;position:sticky;top:0}.studio-side-brand{align-items:center;gap:11px;min-width:0;padding:0 6px 8px;display:flex}.studio-side-brand.collapsed{justify-content:center;padding-left:0;padding-right:0}.studio-side-brand-mark{color:#17645d;background:#eef8f4;border:1px solid #2d8b7c3d;border-radius:8px;flex:none;place-items:center;width:38px;height:38px;font-size:17px;font-weight:950;display:inline-grid;box-shadow:0 10px 22px #2d8b7c17}.studio-side-brand-copy{gap:2px;min-width:0;display:grid}.studio-side-brand-copy strong{color:#27231f;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:900;line-height:1.2;overflow:hidden}.studio-side-brand-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;overflow:hidden}.studio-side-nav{align-content:start;gap:5px;min-height:0;display:grid}.studio-side-link{color:#574f47;min-width:0;min-height:46px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);animation:studio-rail-item-enter .3s var(--ease-emphasized) backwards;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:7px 10px;text-decoration:none;display:flex;position:relative;overflow:hidden}.studio-side-link:nth-child(2){animation-delay:42ms}.studio-side-link:nth-child(3){animation-delay:84ms}.studio-side-link:nth-child(4){animation-delay:.126s}.studio-side-link:hover,.studio-side-link:focus-visible{color:var(--ink);background:#fffdf9ad;border-color:#d9cfc2db;outline:none;transform:translate(2px)}.studio-side-link.active{color:#17645d;background:linear-gradient(90deg,#f0faf6f5,#fffdf9bd);border-color:#2d8b7c38;box-shadow:inset 0 1px #ffffffb8,0 9px 20px #2d8b7c0f}.studio-side-link.active:before{opacity:.78;transform-origin:50%;width:3px;animation:studio-rail-active-bar .3s var(--ease-emphasized) both;content:"";background:currentColor;border-radius:999px;display:block;position:absolute;top:10px;bottom:10px;left:7px}.studio-side-link.active:after{border-radius:inherit;opacity:0;pointer-events:none;width:38%;animation:studio-rail-active-scan 1.65s var(--ease-standard) .18s both;content:"";background:linear-gradient(90deg,#0000 0%,#fffdf9bd 52%,#0000 100%);display:block;position:absolute;inset:1px auto 1px -42%}.studio-side-link.collapsed{justify-content:center;width:42px;min-height:42px;margin:0 auto;padding:0}.studio-side-link.collapsed:hover,.studio-side-link.collapsed:focus-visible{transform:translateY(-1px)}.studio-side-link.collapsed.active:before{width:auto;height:3px;inset:auto 10px 6px}.studio-side-link-icon{color:currentColor;width:22px;transition:color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.studio-side-link.loading .studio-side-link-icon:after{background:var(--gold);content:"";border-radius:999px;width:6px;height:6px;position:absolute;top:-4px;right:-5px;box-shadow:0 0 0 4px #d479341f}.studio-side-link:hover .studio-side-link-icon,.studio-side-link:focus-visible .studio-side-link-icon{transform:translateY(-1px)scale(1.04)}.studio-side-link-copy{gap:2px;min-width:0;display:grid}.studio-side-link-copy strong,.studio-side-link-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-side-link-copy strong{font-size:13px;font-weight:900;line-height:1.2}.studio-side-link-copy small{color:var(--muted);font-size:11px;font-weight:750}.studio-side-footer{display:grid}.studio-side-toggle,.studio-mobile-menu-button,.studio-mobile-close-button{color:#514940;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);background:#fffdf9eb;border:1px solid #d9cfc2e0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.studio-side-toggle:after,.studio-mobile-menu-button:after,.studio-mobile-close-button:after{opacity:0;pointer-events:none;content:"";background:linear-gradient(90deg,#0000 0%,#fffdf9a8 52%,#0000 100%);width:42%;position:absolute;inset:0 auto 0 -52%;transform:skew(-13deg)}.studio-side-toggle{gap:8px;width:100%;min-height:36px;font-size:12px;font-weight:850}.studio-side-toggle:hover,.studio-side-toggle:focus-visible,.studio-mobile-menu-button:hover,.studio-mobile-menu-button:focus-visible,.studio-mobile-close-button:hover,.studio-mobile-close-button:focus-visible{color:#17645d;background:#f4fbf7;border-color:#2d8b7c4d;outline:none;box-shadow:0 8px 18px #2d8b7c14}.studio-side-toggle:hover:after,.studio-side-toggle:focus-visible:after,.studio-mobile-menu-button:hover:after,.studio-mobile-menu-button:focus-visible:after,.studio-mobile-close-button:hover:after,.studio-mobile-close-button:focus-visible:after{animation:studio-surface-sheen .76s var(--ease-standard) both}.studio-shell-main{min-width:0;animation:studio-shell-main-enter .34s var(--ease-emphasized) backwards;grid-template-rows:auto minmax(0,1fr);display:grid}.studio-top-bar{z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f4f1eceb;border-bottom:1px solid #d9cfc2cc;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:74px;padding:14px 20px;display:grid;position:sticky;top:0}.studio-mobile-menu-button{width:38px;height:38px;display:none}.studio-top-bar-heading{min-width:0;animation:studio-top-item-enter .32s var(--ease-emphasized) backwards}.studio-top-bar-heading h1{color:#211f1d;margin:0;font-size:23px;line-height:1.15}.studio-top-bar-heading p{color:var(--muted);margin:5px 0 0;font-size:13px;font-weight:700;line-height:1.4}.studio-top-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:inline-flex}.studio-tour-trigger{color:#4b443d;white-space:nowrap;min-height:42px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffdf9e6;border:1px solid #d9cfc2e6;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:850;display:inline-flex;box-shadow:0 4px 14px #4b37230a}.studio-tour-trigger:disabled{color:#17645d;opacity:1;background:#f4fbf7eb;border-color:#2d8b7c2e;box-shadow:0 6px 14px #2d8b7c14}.studio-tour-trigger:disabled:hover,.studio-tour-trigger:disabled:focus-visible{transform:none}.studio-tour-trigger:hover,.studio-tour-trigger:focus-visible{color:#17645d;background:#f4fbf7;border-color:#2d8b7c4d;outline:none;transform:translateY(-1px);box-shadow:0 10px 24px #2d8b7c14}.studio-account{min-width:0;animation:studio-top-item-enter .32s var(--ease-emphasized) 70ms backwards;position:relative}.studio-account-trigger{color:#4b443d;max-width:min(360px,38vw);min-height:42px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffdf9f0;border:1px solid #d9cfc2e6;border-radius:8px;align-items:center;gap:9px;padding:5px 9px 5px 6px;display:inline-flex;box-shadow:0 4px 14px #4b37230a}.studio-account-trigger:hover,.studio-account-trigger:focus-visible,.studio-account[data-open=true] .studio-account-trigger{color:#17645d;background:#f9fffb;border-color:#2d8b7c47;outline:none;transform:translateY(-1px);box-shadow:0 10px 24px #2d8b7c14}.studio-account-avatar,.studio-account-panel-avatar{color:#17645d;background:#eaf4ef;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.studio-account-avatar{width:30px;height:30px}.studio-account-copy{text-align:left;min-width:0;display:grid}.studio-account-copy strong{color:currentColor;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:900;line-height:1.2;overflow:hidden}.studio-account-copy small{color:var(--muted);font-size:11px;font-weight:800;line-height:1.2}.studio-account-caret{transition:transform var(--motion-fast) var(--ease-standard);flex:none}.studio-account[data-open=true] .studio-account-caret{transform:rotate(180deg)}.studio-account-panel{z-index:40;transform-origin:100% 0;width:min(280px,100vw - 24px);animation:studio-account-panel-enter .18s var(--ease-emphasized) backwards;background:#fffdf9fa;border:1px solid #d9cfc2eb;border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 44px #4b372324}.studio-account-panel-head{align-items:center;gap:10px;min-width:0;display:flex}.studio-account-panel-avatar{width:34px;height:34px}.studio-account-panel-head div{gap:2px;min-width:0;display:grid}.studio-account-panel-head strong,.studio-account-panel-head span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-account-panel-head strong{color:var(--ink);font-size:13px;font-weight:900}.studio-account-panel-head span{color:var(--muted);font-size:12px;font-weight:800}.studio-account-logout{width:100%;min-height:38px;color:var(--danger);background:#f8efeb;border:0;border-radius:8px;justify-content:flex-start;align-items:center;gap:8px;padding:0 11px;font-size:13px;font-weight:850;display:flex}.studio-account-logout:hover,.studio-account-logout:focus-visible{background:#f3e0da;outline:none}.product-tour-root .ant-tour{max-width:min(360px,100vw - 24px)}.product-tour-root .ant-tour-content{border:1px solid #d9cfc2db;border-radius:8px;box-shadow:0 22px 58px #4b37232e}.product-tour-root .ant-tour-title{color:#211f1d;font-size:15px;font-weight:900}.product-tour-description{color:#625a51;margin:0;font-size:13px;font-weight:700;line-height:1.55}.product-tour-root .ant-tour-buttons{align-items:center}.product-tour-root .ant-tour .ant-btn{border-radius:8px;font-weight:850}.product-tour-root .ant-tour .ant-btn .button-spinner{margin-right:6px}.studio-shell-content{min-width:0;padding:18px 20px 22px}.studio-shell-content.content-wide{padding-left:18px;padding-right:18px}.studio-shell-content.content-standard>*,.studio-shell-content.content-template>*{margin-left:auto;margin-right:auto}.studio-shell-content.content-standard>*{max-width:1180px}.studio-shell-content.content-template>*{max-width:1760px}.studio-mobile-nav-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#25232147;align-items:stretch;display:flex;position:fixed;inset:0}.studio-mobile-nav-sheet{width:min(340px,100vw - 30px);height:100dvh;animation:mobile-nav-enter var(--motion-medium) var(--ease-emphasized) both;background:#fffdf9fa;border-right:1px solid #d9cfc2eb;grid-template-rows:auto minmax(0,1fr);display:grid;box-shadow:20px 0 44px #4b372324}.studio-mobile-nav-sheet .studio-side-link{animation-name:studio-rail-item-enter}.studio-mobile-nav-head{border-bottom:1px solid #d9cfc2bd;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:14px;display:flex}.studio-mobile-close-button{width:38px;height:38px}.workflow-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:2040px;margin:0 auto 14px;display:grid}.workflow-step{background:var(--surface);min-width:0;transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard), opacity var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard);border:1px solid #eadfd2;border-radius:8px;align-items:center;gap:9px;padding:9px 10px;display:flex;box-shadow:0 8px 22px #4b37230a}.workflow-step>span{width:26px;height:26px;color:var(--brown);background:#f2e6d8;border-radius:999px;flex:none;place-items:center;font-size:12px;font-weight:900;display:inline-grid}.workflow-step div{min-width:0}.workflow-step strong,.workflow-step small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.workflow-step strong{color:#3f3831;font-size:13px;line-height:1.2}.workflow-step small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:800}.workflow-step.active{background:#f0faf6;border-color:#2d8b7c57;box-shadow:0 10px 24px #2d8b7c17,inset 0 0 0 1px #2d8b7c14}.workflow-step.active>span,.workflow-step.done>span{background:var(--teal);color:#fff;box-shadow:0 6px 14px #2d8b7c29}.workflow-step.idle{opacity:.66}.route-loading-content,.route-loading-page{background:var(--bg);display:grid}.route-loading-content{min-width:0;min-height:0}.route-loading-page{place-items:stretch center;min-height:100vh;padding:20px}.route-loading-shell{background:var(--surface);border:1px solid #d9cfc2f5;border-radius:8px;grid-template-rows:auto auto minmax(0,1fr);width:min(1180px,100%);padding:16px;animation:.16s ease-out both route-loading-enter;display:grid;overflow:auto;box-shadow:0 12px 34px #4b372314}.route-loading-page .route-loading-shell{min-height:calc(100vh - 40px)}.route-loading-content .route-loading-shell{min-height:520px}.route-loading-page .route-loading-shell{box-shadow:0 10px 30px #4b37230f}.route-loading-header{color:var(--ink);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;display:grid}.route-loading-header strong{color:var(--brown);font-size:18px;line-height:1.24;display:block}.route-loading-header p{color:var(--muted);margin:5px 0 0;font-size:13px;font-weight:760;line-height:1.4}.route-loading-spinner{border:3px solid #2d8b7c29;border-top-color:var(--teal);border-radius:999px;width:22px;height:22px;animation:.85s linear infinite busy-spin}.route-loading-topbar{grid-template-columns:minmax(180px,1fr) 130px 96px;gap:10px;margin-top:18px;display:grid}.route-loading-section{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:14px;overflow:hidden}.route-loading-section-head{justify-content:space-between;align-items:center;gap:10px;padding:14px;display:flex}.route-loading-table{border-top:1px solid #eadfd2;overflow:hidden}.route-loading-workbench{grid-template-columns:minmax(340px,460px) minmax(0,1fr);align-items:start;gap:14px;max-width:2040px;min-height:0;margin:14px auto 0;display:grid}.route-skeleton-field{height:38px}.route-skeleton-field.short{width:min(220px,70%)}.route-loading-target-workbench,.route-loading-target-buffet{justify-items:initial;padding:0;display:block;overflow:visible}.route-skeleton-workflow-title{width:min(130px,100%);height:14px}.route-skeleton-workflow-note{width:min(170px,100%);height:10px;margin-top:5px}.route-skeleton-icon{border-radius:8px;width:20px;height:20px}.route-skeleton-icon.large{border-radius:999px;width:42px;height:42px}.route-skeleton-segmented{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:12px;padding:4px;display:grid}.route-skeleton-segmented .route-skeleton{border-radius:6px;height:36px}.route-skeleton-upload{background:linear-gradient(#fffaf4eb,#fffffff5),radial-gradient(at 16% 18%,#2d8b7c14,#0000 30%);border:1.5px dashed #d8bd9b;border-radius:8px;place-items:center;gap:8px;min-height:132px;margin-top:12px;padding:18px;display:grid}.route-skeleton-two-fields{margin-top:12px}.route-skeleton-generate-panel{position:static}.route-skeleton-button{border-radius:8px;width:132px;height:40px}.route-skeleton-button.small{width:92px}.route-skeleton-editable-facts{min-height:300px}.route-skeleton-dish-row .route-skeleton{border-radius:7px;height:34px}.route-skeleton-dish-row small .route-skeleton{height:12px}.route-workbench-preview-stage{min-height:680px;display:grid;overflow:visible}.route-workbench-menu-page{--menu-page-preview-width:620px;--menu-page-preview-height:calc(var(--menu-page-preview-width) * 297 / 210);width:var(--menu-page-preview-width);min-width:var(--menu-page-preview-width);height:var(--menu-page-preview-height);background:url(/menu-assets/jiangnan-print-page.webp) 50%/100% 100% no-repeat,#fbf7ef;border-radius:8px;align-content:start;gap:14px;margin:0 auto;padding:72px 88px;display:grid;overflow:hidden;box-shadow:0 16px 44px #3d2c1d1a}.route-skeleton-preview-title{width:58%;height:24px;margin:0 auto 8px}.route-skeleton-preview-line{width:100%}.route-skeleton-preview-line.short{width:68%;margin-left:16%}.route-loading-workbench-content{animation:.16s ease-out both route-loading-enter}.route-loading-table-head,.route-loading-row{gap:10px;min-width:760px;padding:12px 14px;display:grid}.route-loading-table-head{background:#fff8ef}.route-loading-row+.route-loading-row{border-top:1px solid #f0e7dc}.route-skeleton{background:linear-gradient(90deg,#eadfd200,#ffffffb8,#eadfd200) 0 0/180px 100%,#eadfd2;border-radius:999px;min-width:0;height:12px;animation:1.2s ease-in-out infinite route-skeleton-shimmer;display:block;overflow:hidden}.route-skeleton-title{width:min(360px,100%);height:26px}.route-skeleton-chip{height:28px}.route-skeleton-chip.short{width:96px}.route-skeleton-heading{width:min(180px,45vw);height:18px}.route-skeleton-pill{width:88px;height:18px}.exports-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;max-width:1180px;margin:0 auto;padding:16px;box-shadow:0 10px 30px #4b37230f}.templates-layout{grid-template-columns:minmax(380px,560px) minmax(420px,1fr);grid-template-areas:"workflow detail";align-items:start;gap:14px;margin:0 auto;display:grid}.background-workflow-column{grid-area:workflow;gap:14px;min-width:0;display:grid}.templates-preview-panel{grid-area:detail}.background-generator-panel,.background-library-panel,.templates-preview-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0;box-shadow:0 10px 30px #4b37230f}.route-loading-templates-layout{align-items:start}.route-loading-templates-generator,.route-loading-templates-library,.route-loading-templates-preview,.route-loading-dishes-panel{min-width:0}.route-loading-sidebar-stack{gap:10px;display:grid}.route-loading-sidebar-block{gap:8px;display:grid}.route-loading-sidebar-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.route-loading-sidebar-list{gap:8px;margin-top:2px;display:grid}.route-loading-sidebar-item{background:#f3eadf;border-radius:8px;height:44px;display:block}.route-loading-templates-library .route-loading-sidebar-list{grid-template-columns:repeat(2,minmax(0,1fr))}.route-loading-templates-library .route-loading-sidebar-item{height:148px}.route-skeleton-field.tall{width:100%;height:116px}.route-loading-templates-canvas{gap:14px;padding:8px 0 0;display:grid}.route-loading-templates-preview-card{background:linear-gradient(#fff,#fff8ef);border:1px solid #eadfd2;border-radius:8px;gap:10px;padding:16px;display:grid}.route-loading-templates-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.route-loading-templates-thumb{background:#f4ebe0;border-radius:8px;min-height:92px;display:block}.route-loading-dishes-toolbar{margin-top:12px}.route-loading-dishes-table{border:1px solid #eadfd2;border-radius:8px;gap:0;margin-top:12px;display:grid;overflow:hidden}.route-loading-dishes-head{background:#fff8ef}.route-loading-dishes-head .route-skeleton,.route-loading-dishes-row .route-skeleton{border-radius:6px;height:34px}.route-loading-dishes-row{border-top:1px solid #f0e7dc}.background-generator-panel,.background-library-panel{gap:12px;padding:14px;display:grid}.background-generator-panel{align-content:start}.background-panel-title,.background-library-header{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.background-panel-title{justify-content:flex-start}.background-panel-title svg{color:#2d8b7c;flex:none;margin-top:2px}.background-panel-title h2,.background-panel-title p,.background-library-header h2,.background-library-header p{margin:0}.background-panel-title h2,.background-library-header h2{color:#3d2c1d;font-size:17px;line-height:1.25}.background-panel-title p,.background-library-header p{color:var(--muted);margin-top:4px;font-size:12px;font-weight:780;line-height:1.42}.background-library-header strong{color:#17645d;background:#f5fbf8;border:1px solid #2d8b7c29;border-radius:999px;flex:none;padding:4px 9px;font-size:12px;font-weight:900}.background-library-header-actions{flex:none;align-items:center;gap:7px;display:inline-flex}.background-library-collapse-button{color:#5f554b;white-space:nowrap;background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-height:28px;padding:0 8px;font-size:12px;font-weight:900;display:inline-flex}.background-library-collapse-button:hover,.background-library-collapse-button:focus-visible{color:#17645d;background:#f7fbf8;border-color:#2d8b7c57;outline:none}.background-library-collapse-button .open{transform:rotate(180deg)}.background-library-panel.collapsed{gap:10px}.background-library-summary{width:100%;color:inherit;text-align:left;background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.background-library-summary:hover,.background-library-summary:focus-visible{background:#f7fbf8;border-color:#2d8b7c61;outline:none}.background-library-summary-thumb{background-color:var(--template-swatch,#f7efdc);background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #eadfd2;border-radius:6px;width:78px;min-height:44px;display:block}.background-library-summary-copy{gap:3px;min-width:0;display:grid}.background-library-summary-copy strong,.background-library-summary-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.background-library-summary-copy strong{color:#3f3831;font-size:13px;line-height:1.25}.background-library-summary-copy small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.32}.background-library-summary>svg{color:#17645d}.templates-filter-block{gap:6px;min-width:0;display:grid}.templates-filter-block>span{color:#4e463e;font-size:12px;font-weight:850}.template-compact-control{border-radius:8px;min-height:36px;padding:3px}.template-compact-control .segmented-option{border-radius:6px;min-height:28px;padding:0 8px;font-size:12px;font-weight:850;line-height:1}.template-series-control{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:0}.template-series-control .segmented-option,.template-source-control .segmented-option,.template-status-control .segmented-option{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-inline:6px;overflow:hidden}.template-source-control,.template-status-control{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}.background-library-filters{gap:9px;display:grid}.background-primary-filters{grid-template-columns:minmax(124px,.82fr) minmax(154px,1fr) minmax(154px,1fr) auto;align-items:end;gap:8px;min-width:0;display:grid}.background-filter-toggle,.background-filter-clear{color:#5f554b;background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;justify-content:center;align-items:center;min-height:36px;font-size:12px;font-weight:900;display:inline-flex}.background-filter-toggle{white-space:nowrap;align-self:end;gap:6px;padding:0 10px}.background-filter-toggle:hover,.background-filter-toggle:focus-visible,.background-filter-toggle.active{color:#17645d;background:#f7fbf8;border-color:#2d8b7c57;outline:none}.background-filter-toggle>span{color:#fff;background:#17645d;border-radius:999px;place-items:center;min-width:18px;height:18px;font-size:11px;line-height:1;display:inline-grid}.background-filter-toggle .open{transform:rotate(180deg)}.background-advanced-filters{background:#fffdf9;border:1px solid #eadfd2;border-radius:8px;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr) auto;align-items:end;gap:8px;padding:10px;display:grid}.background-filter-clear{align-self:end;padding:0 10px}.background-filter-clear:hover,.background-filter-clear:focus-visible{color:#a63a2b;border-color:#a63a2b47;outline:none}.template-color-filter{grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:5px;display:grid}.template-color-chip{color:#5f554b;text-align:center;background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:32px;padding:0 7px;font-size:12px;font-weight:850;display:inline-flex}.template-color-swatch{background:var(--template-chip-color,#d9cfc2);border:1px solid #4b372329;border-radius:999px;flex:none;width:11px;height:11px}.template-color-chip:hover,.template-color-chip:focus-visible,.template-color-chip.active{color:#17645d;background:#f7fbf8;border-color:#2d8b7c66;outline:none}.template-color-chip.active{box-shadow:inset 0 0 0 1px #2d8b7c1f}.background-asset-grid{grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:10px;min-height:360px;max-height:calc(100vh - 230px);padding-right:2px;display:grid;overflow:auto}.background-generator-panel .field{margin-top:0}.background-generator-panel textarea{min-height:132px}.background-asset-card{min-width:0;min-height:304px;transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;display:grid;position:relative;overflow:hidden}.background-asset-card:hover,.background-asset-card.active{border-color:#2d8b7c6b;box-shadow:0 8px 18px #4b372314}.background-asset-card.active{background:#f5fbf8;box-shadow:inset 0 0 0 2px #2d8b7c33,0 8px 18px #4b372314}.background-asset-select{min-width:0;min-height:100%;color:inherit;text-align:left;background:0 0;border:0;gap:7px;padding:7px;display:grid}.background-asset-card-body{gap:5px;min-width:0;display:grid}.background-asset-card-body strong,.background-asset-card-body small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.background-asset-card-body strong{color:#3f3831;font-size:13px;line-height:1.25}.background-asset-card-body small,.templates-empty{color:var(--muted);font-size:12px;font-weight:800;line-height:1.32}.background-asset-thumb{background-color:var(--template-swatch,#f7efdc);background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid #eadfd2;border-radius:6px;width:100%;min-height:126px;display:block}.background-asset-badges{z-index:1;flex-wrap:wrap;gap:5px;max-width:calc(100% - 52px);min-height:0;display:flex;position:absolute;top:10px;left:10px}.background-asset-badge{color:#6a5f55;background:#fffdf9e0;border:1px solid #4b372321;border-radius:999px;align-items:center;min-height:18px;padding:0 6px;font-size:10px;font-weight:900;display:inline-flex}.background-asset-badge.preset{color:#17645d;background:#f5fbf8;border-color:#2d8b7c2e}.background-asset-badge.generated{color:#7a5d38;background:#fff7eb;border-color:#7a66522e}.background-asset-badge.archived{color:#a63a2b;background:#fff3ec;border-color:#a63a2b2e}.background-asset-preview-button{color:#5f554b;background:#fffdf9e6;border:1px solid #4b372324;border-radius:999px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:10px;right:10px}.background-asset-preview-button:hover,.background-asset-preview-button:focus-visible{color:#17645d;border-color:#2d8b7c5c;outline:none}.templates-empty{background:#fffaf4;border:1px dashed #ddcfbf;border-radius:8px;grid-column:1/-1;margin:0;padding:12px}.templates-preview-panel{align-content:start;gap:12px;padding:14px;display:grid}.templates-preview-header{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.templates-preview-header h2,.templates-preview-header p{margin:0}.templates-preview-header h2{color:#3d2c1d;font-size:18px;line-height:1.25}.templates-preview-header p{color:var(--muted);margin-top:4px;font-size:13px;font-weight:760;line-height:1.4}.templates-preview-header .ant-btn{border-radius:8px;flex:none;align-items:center;gap:6px;font-weight:850;display:inline-flex}.templates-preview-grid{grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;display:grid}.templates-preview-card{align-content:start;gap:8px;min-width:0;display:grid}.templates-preview-card h3{color:#5f554b;margin:0;font-size:13px;line-height:1.25}.template-full-background{background-color:var(--template-swatch,#f7efdc);background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid #eadfd2;border-radius:8px;width:100%;max-height:min(46vh,520px)}.templates-menu-effect{background:#f6efe5;border:1px solid #eadfd2;border-radius:8px;min-width:0;max-height:min(52vh,560px);padding:10px;overflow:auto}.templates-menu-effect .menu-spread{--menu-page-preview-width:min(340px, 100%)}@media screen and (min-width:1640px){.templates-preview-grid{grid-template-columns:minmax(200px,.36fr) minmax(340px,.64fr)}.templates-menu-effect .menu-spread{--menu-page-preview-width:min(360px, 21vw)}}@media screen and (max-width:1540px){.templates-layout{grid-template-columns:minmax(360px,420px) minmax(0,1fr);grid-template-areas:"workflow detail"}.background-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.background-filter-toggle{grid-column:1/-1}.background-advanced-filters{grid-template-columns:minmax(0,1fr)}.background-asset-grid{grid-template-columns:minmax(0,1fr);max-height:min(520px,100vh - 260px)}.background-asset-card{min-height:72px}.background-asset-select{grid-template-columns:88px minmax(0,1fr);align-items:center;min-height:70px}.background-asset-thumb{aspect-ratio:1.68;background-size:cover;min-height:54px}.background-asset-badges{order:0;max-width:76px;position:absolute;top:10px;left:10px}.background-asset-card-body{align-content:center;min-height:0;padding-right:34px}}@media screen and (max-width:1120px){.templates-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"workflow""detail"}.background-asset-grid{grid-template-columns:repeat(auto-fill,minmax(154px,1fr));min-height:0;max-height:none}.background-asset-card{min-height:304px}.background-asset-select{grid-template-columns:minmax(0,1fr);align-items:stretch;min-height:100%}.background-asset-thumb{aspect-ratio:auto;background-size:contain;min-height:126px}.background-asset-badges{order:0;position:absolute;top:10px;left:10px}.templates-preview-header{grid-template-columns:minmax(0,1fr);display:grid}.templates-preview-header .ant-btn{justify-content:center;width:100%}}.background-detail-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}@media screen and (max-width:1120px){.background-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}.background-meta-item{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;gap:3px;min-width:0;padding:8px;display:grid}.background-meta-item small{color:var(--muted);font-size:11px;font-weight:850}.background-meta-item strong{color:#3f3831;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:900;line-height:1.25;overflow:hidden}.background-detail-actions{justify-content:flex-end;gap:8px;display:flex}.background-detail-actions .ant-btn{border-radius:8px;align-items:center;gap:6px;font-weight:850;display:inline-flex}.background-detail-delete-button{min-height:36px}.background-readonly-note{color:var(--muted);background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;margin:0;padding:9px 10px;font-size:12px;font-weight:820}.background-detail-empty{color:var(--muted);text-align:center;background:#fffaf4;border:1px dashed #ddcfbf;border-radius:8px;justify-items:center;gap:8px;padding:28px;display:grid}.background-detail-empty strong{color:#3f3831;font-size:15px}.background-detail-empty p{max-width:320px;margin:0;font-size:12px;font-weight:800;line-height:1.45}.exports-panel+.exports-panel{margin-top:14px}.history-section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.history-section-title h2{color:var(--brown);margin:0;font-size:17px;line-height:1.2}.history-section-title span{color:var(--muted);font-size:12px;font-weight:800}.history-title-actions{align-items:center;gap:8px;display:inline-flex}.history-table .ant-table{color:var(--ink);background:#fff}.history-table .ant-table-thead>tr>th{color:var(--muted);background:#fff8ef;font-size:12px;font-weight:850}.history-table .ant-table-tbody>tr>td{vertical-align:middle}.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row){animation:history-row-enter .22s var(--ease-emphasized) both;will-change:transform, opacity}.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row):nth-child(2){animation-delay:25ms}.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row):nth-child(3){animation-delay:50ms}.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row):nth-child(4){animation-delay:75ms}.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row):nth-child(n+5){animation-delay:95ms}.history-table .ant-btn{border-color:var(--button-secondary-border);background:var(--button-secondary-bg);min-height:30px;color:var(--brown);box-shadow:var(--button-shadow-rest);border-radius:7px;align-items:center;gap:6px;font-weight:800;transition:background .14s cubic-bezier(.2,0,.15,1),border-color .14s cubic-bezier(.2,0,.15,1),box-shadow .14s cubic-bezier(.2,0,.15,1),color .14s cubic-bezier(.2,0,.15,1),transform .14s cubic-bezier(.2,0,.15,1);display:inline-flex}.history-table .ant-btn-primary{border-color:var(--button-accent-border);background:linear-gradient(180deg, #24887f 0%, var(--button-accent-bg) 100%);color:#fff;box-shadow:0 8px 18px #1f766f29,inset 0 1px #ffffff2e}.history-table .ant-btn-dangerous{color:var(--danger);box-shadow:none;background:#fffaf4;border-color:#a63a2b33}.history-table .ant-btn:not(.ant-btn-primary):not(.ant-btn-dangerous):not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--button-secondary-border-hover);background:var(--button-secondary-bg-hover);color:var(--brown);box-shadow:var(--button-shadow-hover);transform:translateY(-1px)}.history-table .ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--button-accent-bg-hover);background:linear-gradient(180deg, #218078 0%, var(--button-accent-bg-hover) 100%);color:#fff;box-shadow:var(--button-shadow-accent);transform:translateY(-1px)}.history-table .ant-btn-dangerous:not(:disabled):not(.ant-btn-disabled):hover{color:#8f2f25;background:#fff3ec;border-color:#a63a2b57;transform:translateY(-1px);box-shadow:0 8px 18px #a63a2b1a}.history-table .ant-btn:not(:disabled):not(.ant-btn-disabled):active{transform:translateY(0);box-shadow:0 3px 8px #4b372314}.history-table .ant-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.history-table .ant-btn:disabled,.history-table .ant-btn.ant-btn-disabled{box-shadow:none;transform:none}.history-table .history-delete-button{justify-content:center;min-width:78px}.history-table .history-row-deleting>td{background:#fffaf4}.history-row-deleting .history-thumbnail-cell,.history-row-deleting .history-menu-cell,.history-row-deleting .history-version-cell,.history-row-deleting .history-source{opacity:.62;transition:opacity .16s}.history-delete-status{min-height:24px;color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.history-delete-status:before{border:2px solid #a8663940;border-top-color:var(--danger);content:"";border-radius:999px;width:12px;height:12px;animation:.85s linear infinite busy-spin}.history-table-client{min-width:0;position:relative}.history-table-client.preparing .history-table-client-content{pointer-events:none;visibility:hidden;position:absolute;inset:0;overflow:hidden}.history-table-client.ready .history-table-client-content{animation:.14s ease-out both history-table-ready}.history-table-loading{min-height:260px}.history-table-skeleton{background:#fff;border:1px solid #eadfd2;border-radius:8px;overflow:hidden}.history-skeleton-row{gap:10px;min-width:720px;padding:13px 14px;display:grid}.history-skeleton-row.heading{background:#fff8ef}.history-skeleton-row+.history-skeleton-row{border-top:1px solid #f0e7dc}.history-menu-cell,.history-version-cell{gap:3px;min-width:0;display:grid}.history-menu-cell strong,.history-menu-cell span,.history-menu-cell small,.history-version-cell span,.history-source,.export-filename{overflow-wrap:anywhere;min-width:0;display:block}.history-menu-cell strong{color:#3f3831;line-height:1.25}.history-menu-cell span,.history-menu-cell small,.history-version-cell span{color:var(--muted);font-size:12px;line-height:1.35}.history-source{max-width:100%;color:var(--brown);font-size:13px;font-weight:800}.history-source.muted,.export-filename.muted{color:var(--muted);font-size:12px}.history-image-thumb,.history-image-thumb img{object-fit:cover;background:#fbf7ef;border-radius:6px}.history-thumbnail-cell{gap:7px;width:132px;min-width:0;display:grid}.history-thumbnail-caption{gap:2px;min-width:0;display:grid}.history-thumbnail-caption strong,.history-thumbnail-caption span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.history-thumbnail-caption strong{color:#3f3831;font-size:12px;line-height:1.25}.history-thumbnail-caption span{color:var(--brown-soft);font-size:11px;font-weight:800;line-height:1.25}.history-rendered-thumbnail{width:104px;height:92px;color:var(--brown);cursor:pointer;background:#f7f0e6;border:1px solid #eadfd2;border-radius:6px;transition:border-color .14s cubic-bezier(.2,0,.15,1),box-shadow .14s cubic-bezier(.2,0,.15,1),transform .14s cubic-bezier(.2,0,.15,1);display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff9e}.dish-library-panel{gap:12px;min-width:0;display:grid}.dish-library-toolbar{grid-template-columns:minmax(220px,1fr) 150px 150px auto;align-items:center;gap:10px;min-width:0;display:grid}.dish-library-panel .ant-table-wrapper{min-width:0;max-width:100%}.dish-library-row-updating>td{background:#fffaf4}.dish-library-row-updating .ant-btn{opacity:.9}.dish-library-name-cell,.dish-library-source-cell{gap:3px;min-width:0;display:grid}.dish-library-name-cell strong,.dish-library-name-cell span,.dish-library-name-cell small,.dish-library-source-cell strong,.dish-library-source-cell span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dish-library-name-cell strong,.dish-library-source-cell strong,.dish-library-price{color:#3f3831;font-weight:850}.dish-library-name-cell span,.dish-library-name-cell small,.dish-library-source-cell span,.muted-inline{color:var(--muted);font-size:12px}.dish-library-form-row{width:100%}.dish-library-form-row .ant-form-item{flex:1 1 0;min-width:0}.dish-library-form-row .ant-input-number,.dish-library-form-row .ant-select{width:100%}@media (max-width:760px){.dish-library-toolbar{grid-template-columns:minmax(0,1fr)}}.history-rendered-thumbnail:hover,.history-rendered-thumbnail:focus-visible{border-color:#2d8b7c5c;outline:none;transform:translateY(-1px);box-shadow:0 8px 18px #4b37231a,inset 0 0 0 1px #ffffffb8}.history-rendered-thumbnail-preview{pointer-events:none;position:absolute;inset:0;overflow:hidden}.history-rendered-thumbnail-preview .menu-spread{pointer-events:none;transform-origin:top;margin:0;position:absolute;top:2px;left:50%;transform:translate(-50%)scale(.1)}.history-rendered-thumbnail-preview .menu-spread[data-page-count="2"]{top:10px;transform:translate(-50%)scale(.079)}.history-rendered-thumbnail>span{color:#fffaf4;opacity:0;text-align:center;background:#1f766fdb;padding:5px 4px;font-size:10px;font-weight:850;line-height:1.1;transition:opacity .14s cubic-bezier(.2,0,.15,1);position:absolute;bottom:0;left:0;right:0}.history-rendered-thumbnail:hover>span,.history-rendered-thumbnail:focus-visible>span{opacity:1}.history-preview-meta{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.history-preview-meta span{color:var(--muted);background:#fff8ef;border:1px solid #eadfd2;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.history-preview-canvas{background:#f3eadf;border:1px solid #eadfd2;border-radius:8px;max-height:min(68vh,680px);padding:16px;overflow:auto}.history-preview-canvas .menu-spread{margin:0 auto}.workspace-grid{grid-template-columns:minmax(340px,460px) minmax(0,1fr);align-items:start;gap:14px;max-width:2040px;margin:0 auto;display:grid}.input-panel{grid-area:1/1}.preview-panel{grid-area:1/2}.workspace-grid.preview-editing{grid-template-columns:minmax(0,1fr)}.workspace-grid.preview-editing>.input-panel{display:none}.workspace-grid.preview-editing>.preview-panel{grid-column:1}@media (max-width:1100px){.workspace-grid{grid-template-columns:minmax(0,1fr)}.input-panel,.preview-panel{grid-area:auto/1/auto/-1}.input-panel .editable-dish-table{min-height:0;max-height:none;padding-right:0;overflow:visible}.editable-dish-table .dish-section h3{box-shadow:none;position:static}}.input-panel,.preview-panel{border:1px solid var(--line);background:var(--surface);min-width:0;animation:panel-enter var(--motion-slow) var(--ease-emphasized) both;border-radius:8px;padding:16px;box-shadow:0 10px 30px #4b37230f}.preview-panel{animation-delay:40ms;overflow:hidden;container-type:inline-size}.panel-title,.preview-toolbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-title{color:#5c4437;justify-content:flex-start}.panel-title-with-actions{justify-content:space-between;align-items:center}.panel-title-main{align-items:center;gap:10px;min-width:0;display:flex}.panel-title h2{margin:0;font-size:16px;line-height:1.2}.panel-title.compact h2{font-size:14px}.clear-workbench-button{color:#8a5e4a;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-size:13px;font-weight:900;display:inline-flex}.clear-workbench-button:hover:not(:disabled){color:#6f4c3a;background:#b7795414}.clear-workbench-button:disabled{cursor:not-allowed;opacity:.45}.field{gap:6px;margin-top:12px;display:grid}.field span{color:#4e463e;font-size:12px;font-weight:800}.field input,.field select,.field textarea,.ui-select-trigger{border:1px solid var(--line);width:100%;color:var(--ink);transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard);background:#fff;border-radius:8px;outline:none;padding:10px 11px}.ui-select-trigger{text-align:left;justify-content:space-between;align-items:center;gap:10px;min-height:41px;display:inline-flex}.ui-select-value{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.ui-select-trigger[data-disabled]{cursor:not-allowed;opacity:.58}.upload-dropzone{color:#5c4437;text-align:center;cursor:pointer;min-height:132px;transition:border-color var(--motion-medium) var(--ease-standard), background var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard);background:linear-gradient(#fffdf9f0,#fffffffa),radial-gradient(at 16% 18%,#2d8b7c12,#0000 30%);border:1.5px dashed #d8cdbf;border-radius:8px;place-items:center;gap:7px;margin-top:12px;padding:18px;display:grid;position:relative}.upload-dropzone:hover{transform:translateY(-1px);box-shadow:0 10px 28px #4b372314}.segmented-control{background:#f7f3ec;border:1px solid #ddd2c6;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:12px;padding:4px;display:grid}.segmented-option{color:#5f554b;background:0 0;border:0;border-radius:6px;min-height:36px;font-weight:850;transition:background .16s,color .16s,transform .16s}.segmented-option:not(:disabled):hover{color:#17645d;background:#ffffffad;transform:translateY(-1px)}.segmented-option[data-state=on]{color:#17645d;background:#fff;box-shadow:0 5px 12px #2d8b7c14,inset 0 0 0 1px #2d8b7c33}.segmented-option:disabled,.segmented-control[data-disabled] .segmented-option{cursor:not-allowed;opacity:.62}.output-mode-control{margin-top:0}.template-compact-control.segmented-control{min-height:36px;padding:3px}.template-compact-control .segmented-option{min-height:28px;padding:0 8px;font-size:12px;line-height:1}.template-source-control.segmented-control,.template-status-control.segmented-control{grid-template-columns:repeat(3,minmax(0,1fr))}.template-series-control.segmented-control{grid-template-columns:repeat(5,minmax(0,1fr))}.ui-select-content{z-index:80;min-width:var(--radix-select-trigger-width);max-width:min(360px,100vw - 24px);max-height:min(320px, var(--radix-select-content-available-height));background:#fffdf9;border:1px solid #d9cfc2;border-radius:8px;overflow:hidden;box-shadow:0 18px 42px #47311e2e}.ui-select-viewport{padding:5px}.ui-select-item{color:#3f3831;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;outline:none;align-items:center;min-height:34px;padding:7px 32px 7px 10px;font-size:13px;font-weight:760;transition:background .14s,color .14s;display:flex;position:relative}.ui-select-item[data-highlighted]{color:var(--brown);background:#fff4e8}.ui-select-item[data-state=checked]{color:#175f54}.ui-select-item[data-disabled]{cursor:not-allowed;opacity:.5}.ui-select-item-indicator{color:var(--teal);display:inline-flex;position:absolute;right:10px}.design-box{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;gap:0;margin-top:12px;padding:12px;display:grid}.design-box .field:first-child{margin-top:0}.design-box textarea{min-height:104px}.design-result{color:#246f62;background:#f4fbf8;border:1px solid #2d8b7c33;border-radius:8px;gap:7px;margin-top:10px;padding:10px;font-size:12px;line-height:1.4;display:grid}.design-result strong,.design-result span,.design-result small{overflow-wrap:anywhere}.design-section-preview{gap:4px;display:grid}.design-section-preview b,.design-skipped summary{color:#175f54;font-size:12px}.design-section-preview div,.design-skipped div{flex-wrap:wrap;gap:5px;display:flex}.design-result small{background:#fff;border:1px solid #2d8b7c33;border-radius:999px;padding:3px 7px}.design-skipped{border-top:1px solid #2d8b7c29;padding-top:6px}.design-skipped summary{cursor:pointer;font-weight:850}.design-skipped small{color:#7b4a34;border-color:#815b362e}.print-settings-panel{background:#fffdf9;border:1px solid #eadfd2;border-radius:8px;gap:10px;margin-top:12px;padding:12px;display:grid}.print-settings-panel .field{margin-top:0}.background-candidate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.background-group-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.background-group-tab{color:#5f554b;text-align:left;min-width:0;min-height:44px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffaf4;border:1px solid #e4d8cb;border-radius:8px;justify-items:start;gap:2px;padding:7px 8px;display:grid}.background-group-tab span,.background-group-tab small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.background-group-tab span{font-size:12px;font-weight:900}.background-group-tab small{color:var(--muted);font-size:11px;font-weight:800}.background-group-tab:hover:not(:disabled),.background-group-tab:focus-visible{background:#f7fbf8;border-color:#2d8b7c5c;outline:none;transform:translateY(-1px);box-shadow:0 6px 14px #4b372314}.background-group-tab.active{color:#17645d;background:#eef8f4;border-color:#2d8b7c8a;box-shadow:inset 0 0 0 1px #2d8b7c1f}.background-candidate{color:#5f554b;min-width:0;transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffaf4;border:1px solid #e2d7ca;border-radius:8px;display:grid;position:relative;overflow:hidden}.background-candidate:hover{border-color:#2d8b7c5c;transform:translateY(-1px);box-shadow:0 8px 18px #4b372314}.background-candidate.active{border-color:#2d8b7c94;box-shadow:0 0 0 2px #2d8b7c1f,0 8px 18px #4b372314}.background-candidate-select{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;gap:5px;padding:6px;display:grid}.background-candidate-select:disabled{cursor:not-allowed;opacity:.72}.background-candidate-select:focus-visible,.background-candidate-action:focus-visible{outline-offset:2px;outline:2px solid #2d8b7c8c}.background-candidate-preview{aspect-ratio:var(--background-preview-aspect-ratio,210 / 297);background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-page.webp) center / contain no-repeat), #f7efdc;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:6px;display:block}.background-candidate-select small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;line-height:1.2;overflow:hidden}.background-selected-badge{color:#17645d;text-align:center;background:#f0faf6f0;border:1px solid #2d8b7c33;border-radius:999px;min-width:36px;padding:5px 7px;font-size:11px;font-weight:900;line-height:1;position:absolute;top:8px;left:8px;box-shadow:0 5px 14px #37281a1a}.background-candidate-actions{gap:5px;display:flex;position:absolute;top:8px;right:8px}.background-candidate-actions .ant-popconfirm-open,.background-candidate-actions .ant-popover-open,.background-candidate-actions>span{display:grid}.background-candidate-action{color:#5f554b;cursor:pointer;background:#fffdf9e6;border:1px solid #4b37232e;border-radius:999px;place-items:center;width:28px;height:28px;display:grid;box-shadow:0 5px 14px #37281a1f}.background-candidate-action:hover:not(:disabled){color:#246f62;border-color:#2d8b7c5c}.background-candidate-action.danger:hover:not(:disabled){color:#b44434;border-color:#b444346b}.background-candidate-action:disabled{cursor:wait;opacity:.72}.background-empty-note{color:var(--muted);background:#fffaf4;border:1px dashed #ddcfbf;border-radius:8px;grid-column:1/-1;padding:10px;font-size:12px;font-weight:800}.background-generate-actions{grid-template-columns:76px minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.background-generate-actions .secondary-button,.background-generate-actions .ghost-button{min-height:40px;margin-top:0}.compact-field input{padding-left:8px;padding-right:6px}.background-message{color:#246f62;font-size:12px;font-weight:800}.background-error{color:var(--danger);font-size:12px;font-weight:800}.background-preview-overlay{z-index:1000;background:#291f1675;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.background-preview-dialog{background:#fffdf9;border:1px solid #4e3a2424;border-radius:8px;gap:12px;width:min(1180px,100vw - 32px);max-height:calc(100vh - 32px);padding:18px;display:grid;overflow:hidden;box-shadow:0 28px 80px #2d231747}.background-preview-dialog-header{border-bottom:1px solid #eadfd2;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.background-preview-close-button{color:#5f554b;cursor:pointer;background:#fffdf9e6;border:1px solid #4b37232e;border-radius:999px;flex:none;place-items:center;width:32px;height:32px;display:grid}.background-preview-close-button:hover{color:#246f62;border-color:#2d8b7c5c}.background-preview-modal .ant-modal-content{background:#fffdf9;overflow:hidden}.background-preview-modal .ant-modal-header{background:0 0;border-bottom:1px solid #eadfd2;margin-bottom:12px;padding-bottom:12px}.background-preview-title{gap:3px;display:grid}.background-preview-title strong{color:#3d2c1d;font-size:17px;line-height:1.25}.background-preview-title span{color:var(--muted);font-size:12px;font-weight:800;display:block}.background-preview-content{grid-template-columns:minmax(260px,.42fr) minmax(420px,.58fr);gap:14px;min-height:0;max-height:min(72vh,700px);display:grid;overflow:auto}.background-preview-pane{align-content:start;gap:8px;min-width:0;display:grid}.background-preview-pane h3{color:#5f554b;margin:0;font-size:13px;line-height:1.25}.background-preview-asset{background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-page.webp) center / contain no-repeat), #f7efdc;background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid #eadfd2;border-radius:8px;width:100%;max-height:72vh}.background-preview-menu{background:#f6efe5;border:1px solid #eadfd2;border-radius:8px;min-width:0;padding:10px;overflow:auto}.background-preview-menu .menu-spread{--menu-page-preview-width:min(360px, 44vw)}.upload-dropzone.dragging,.upload-dropzone:focus-within{border-color:var(--teal);background:linear-gradient(#f0faf6f5,#fffffffa),radial-gradient(at 50% 18%,#2d8b7c1f,#0000 36%);box-shadow:0 0 0 3px #2d8b7c1f}.upload-dropzone.dragging{transform:translateY(-2px)scale(1.01);box-shadow:0 16px 34px #2d8b7c21,0 0 0 3px #2d8b7c24}.upload-dropzone strong{overflow-wrap:anywhere;max-width:100%;font-size:15px;line-height:1.25}.upload-dropzone small{color:var(--muted);font-size:12px;font-weight:800}.upload-icon{width:42px;height:42px;color:var(--teal);transition:background var(--motion-medium) var(--ease-standard), color var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-emphasized);background:#eef7f3;border-radius:999px;place-items:center;display:grid}.upload-dropzone:hover .upload-icon,.upload-dropzone.dragging .upload-icon{color:var(--teal);background:#eaf4ef;transform:translateY(-2px)}.upload-input{opacity:0;cursor:pointer;position:absolute;inset:0}.input-note{color:#246f62;animation:status-enter var(--motion-medium) var(--ease-emphasized) both;background:#f0faf6;border:1px solid #2d8b7c38;border-radius:8px;margin:9px 0 0;padding:8px 10px;font-size:12px;font-weight:800;line-height:1.35}.generate-sticky-panel{z-index:8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard);background:#fffdf9f5;border:1px solid #d9cfc2e6;border-radius:8px;gap:9px;margin-top:12px;padding:10px;display:grid;position:sticky;bottom:12px;box-shadow:0 14px 32px #4b37231a}.generate-sticky-panel.ready{background:#f7fbf8f5;border-color:#2d8b7c4d}.generate-sticky-panel.dirty{background:#fffcf4f7;border-color:#d4793447}.generate-status{gap:2px;min-width:0;display:grid}.generate-status strong{color:#5c4437;font-size:13px;line-height:1.2}.generate-status span{color:var(--muted);font-size:12px;font-weight:760;line-height:1.35}.generate-sticky-panel.ready .generate-status strong{color:var(--teal)}.generate-sticky-panel.dirty .generate-status strong{color:#7c5a24}.generate-actions{grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr);gap:8px;margin-top:0;display:grid}.generate-actions .primary-button,.generate-actions .secondary-button{width:100%;margin-top:0}.raw-text-panel,.editable-facts{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;margin-top:12px;padding:10px}.raw-text-panel summary{cursor:pointer;color:var(--brown);font-size:13px;font-weight:850}.raw-text-panel textarea{min-height:128px}.editable-facts{background:#fffdf9;gap:10px;display:grid}.editable-title-row{grid-template-columns:minmax(0,1fr);display:grid}.editable-facts .field{margin-top:0}.editable-dish-table{border-top:0;gap:8px;min-height:220px;max-height:min(470px,100vh - 470px);padding-top:4px}.section-order-editor{background:#fbf8f3;border:1px solid #e8ddd0;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;display:grid}.section-order-editor-head{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.section-order-editor-head strong{color:var(--brown);font-size:12px;font-weight:850}.section-add-button{min-height:30px;padding:0 8px}.editable-fact-actions{gap:6px;display:inline-flex}.section-order-chip{min-height:36px;color:var(--brown);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fff;border:1px solid #e1d2c1;border-radius:8px;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:5px;font-size:12px;font-weight:800;display:grid;position:relative}.section-order-drag{appearance:none;color:#7b6049;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#f7eddf;border:0;border-radius:7px;justify-content:center;align-items:center;gap:2px;min-height:28px;display:inline-flex}.section-order-drag span{color:#7b6049;background:#f0e3d4;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:inline-flex}.section-order-chip input{min-width:0;color:var(--ink);background:#fff;border:1px solid #e5d8ca;border-radius:7px;outline:none;padding:7px 8px;font-weight:780}.section-order-chip small{color:var(--muted);white-space:nowrap}.section-remove-button{appearance:none;color:#8a6d52;background:#fff;border:1px solid #eadfd2;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.section-order-chip.dragging,.editable-dish-row.dragging{z-index:5;opacity:.72;box-shadow:0 10px 24px #4b372324}.section-order-drag:disabled,.section-remove-button:disabled{cursor:default;opacity:.56}.editable-dish-row{transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);background:#fff;border:1px solid #e5d9cb;border-radius:8px;gap:9px;padding:10px;display:grid;position:relative;box-shadow:0 1px 2px #4834220a}.editable-dish-row:hover{border-color:#d4c2af;box-shadow:0 5px 14px #48342212}.dish-row-main{grid-template-columns:42px minmax(180px,1fr) minmax(96px,.28fr) 30px;align-items:end;gap:8px;display:grid}.dish-row-details{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding-left:50px;display:grid}.dish-fact-field,.dish-detail-field{gap:4px;min-width:0;display:grid}.dish-fact-field>span,.dish-detail-field>span{color:#877665;font-size:11px;font-weight:750}.dish-drag-handle{appearance:none;color:#8a6d52;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:40px;min-height:38px;transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard);background:#fffaf4;border:0;border-radius:8px;justify-content:center;align-items:center;gap:2px;display:inline-flex}.section-order-chip:hover,.dish-drag-handle:hover:not(:disabled){border-color:#2d8b7c6b;box-shadow:0 6px 14px #2d8b7c14}.dish-drag-handle span{width:20px;height:20px;color:var(--brown);background:#f3e7da;border-radius:999px;grid-row:auto;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.dish-drag-handle:disabled{cursor:default;opacity:.72}.editable-dish-row input,.locked-dish-name-input input{min-width:0;color:var(--ink);background:#fff;border:1px solid #e5d8ca;border-radius:7px;outline:none;padding:9px 10px;font-weight:700}.locked-dish-name-input{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;display:grid}.locked-dish-markers{flex-wrap:wrap;gap:4px;max-width:84px;display:inline-flex}.locked-dish-markers b{min-height:30px;color:var(--brown);white-space:nowrap;background:#f7eddf;border:1px solid #d8c6b3;border-radius:7px;align-items:center;padding:0 6px;font-size:12px;font-weight:850;display:inline-flex}.editable-dish-row select{color:#5f554b;background:#fff;border:1px solid #e5d8ca;border-radius:7px;outline:none;min-width:0;min-height:38px;padding:8px;font-weight:750}.dish-row-details small{color:#9a8b7c;white-space:nowrap;padding-bottom:9px}.dish-fact-remove-button{color:#9f4f45;margin-bottom:5px}.editable-dish-row input:focus,.editable-dish-row select:focus,.section-order-chip input:focus,.dish-drag-handle:focus-visible,.section-order-drag:focus-visible,.section-remove-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.field textarea{resize:vertical;min-height:260px;line-height:1.55}.field input:focus,.field select:focus,.field textarea:focus,.ui-select-trigger:focus-visible,.segmented-option:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.repair-target-flash{animation:repair-target-flash 1.15s var(--ease-emphasized) both}.two-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.primary-button,.secondary-button,.ghost-button{appearance:none;min-height:40px;color:inherit;white-space:nowrap;box-shadow:var(--button-shadow-rest);transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);will-change:transform;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 13px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex;position:relative;transform:translate(0,0)}.primary-button svg,.secondary-button svg,.ghost-button svg{flex:none}.primary-button:not(:disabled):hover,.secondary-button:not(:disabled):hover,.ghost-button:not(:disabled):hover{transform:translateY(-1px)}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active,.ghost-button:not(:disabled):active{transition-duration:80ms;transform:translateY(0)scale(.985)}.primary-button:not(:disabled):hover{border-color:var(--button-primary-bg-hover);background:linear-gradient(180deg, #24847b 0%, var(--button-primary-bg-hover) 100%);box-shadow:var(--button-shadow-accent)}.primary-button.accent:not(:disabled):hover{border-color:var(--button-accent-bg-hover);background:linear-gradient(180deg, #24847b 0%, var(--button-accent-bg-hover) 100%);box-shadow:var(--button-shadow-accent)}.primary-button:not(:disabled):active{border-color:var(--button-primary-bg-active);background:var(--button-primary-bg-active);box-shadow:0 3px 8px #1f766f24}.primary-button.accent:not(:disabled):active{border-color:var(--button-accent-bg-active);background:var(--button-accent-bg-active);box-shadow:0 3px 8px #1f766f24}.secondary-button:not(:disabled):hover,.ghost-button:not(:disabled):hover{box-shadow:var(--button-shadow-hover)}.secondary-button:not(:disabled):hover{border-color:var(--button-secondary-border-hover);background:var(--button-secondary-bg-hover);color:#17645d}.secondary-button:not(:disabled):active{background:#eaf4ef;border-color:#2d8b7c6b;box-shadow:0 3px 8px #2d8b7c14}.ghost-button:not(:disabled):hover{color:#17645d;background:#f4fbf7;border-color:#2d8b7c24}.ghost-button:not(:disabled):active{box-shadow:none;background:#eaf4ef}.primary-button{border-color:var(--button-primary-border);background:linear-gradient(180deg, #24847b 0%, var(--button-primary-bg) 100%);color:#fff;width:100%;margin-top:14px;box-shadow:0 8px 18px #1f766f26,inset 0 1px #ffffff2e}.primary-button.accent{border-color:var(--button-accent-border);background:linear-gradient(180deg, #24847b 0%, var(--button-accent-bg) 100%);box-shadow:0 8px 18px #1f766f29,inset 0 1px #ffffff2e}.secondary-button{border-color:var(--button-secondary-border);background:var(--button-secondary-bg);color:#5f554b}.primary-button:disabled,.primary-button.accent:disabled{color:#86796f;box-shadow:none;opacity:1;background:#e7e0d8;border-color:#d7d0c7;transform:none}.secondary-button:disabled{color:#93887e;box-shadow:none;opacity:1;background:#f6f2ed;border-color:#e1d9d0;transform:none}.ghost-button{min-height:30px;color:var(--muted);box-shadow:none;background:0 0;padding:0 8px}.ghost-button:disabled{color:#9a9188;box-shadow:none;opacity:1;transform:none}.menu-list{gap:6px;margin-top:12px;display:grid}.menu-item{border:1px solid var(--line);text-align:left;width:100%;transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard);background:#fff;border-radius:8px;gap:3px;padding:8px 10px;display:grid}.menu-item.active{border-color:var(--teal);box-shadow:inset 3px 0 0 var(--teal)}.menu-item:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 8px 18px #4b372314}.menu-item.active:not(:disabled):hover{box-shadow:inset 3px 0 0 var(--teal), 0 8px 18px #4b372314}.menu-item strong{overflow-wrap:anywhere;line-height:1.25}.menu-item span{color:var(--muted);font-size:12px}.menu-item small{color:var(--brown-soft);overflow-wrap:anywhere;font-size:11px;font-weight:800;line-height:1.25}.menu-item.compact{padding:7px 9px}.menu-history-more{border:1px solid var(--line);background:#fffaf4a8;border-radius:8px;overflow:hidden}.menu-history-more summary{cursor:pointer;color:var(--brown);padding:8px 10px;font-size:12px;font-weight:800;list-style-position:inside}.menu-history-more>div{gap:6px;max-height:220px;padding:0 8px 8px;display:grid;overflow:auto}.dish-table{isolation:isolate;gap:12px;min-height:260px;max-height:min(520px,100vh - 360px);padding-right:2px;display:grid;position:relative;overflow:auto}.dish-section h3{z-index:2;background:var(--surface);color:var(--teal);margin:0;padding:6px 0;font-size:14px;line-height:1.3;position:sticky;top:0;box-shadow:0 1px #eadfd2,0 8px 12px #fffdf9f5}.dish-row{border-bottom:1px solid #eee4d9;grid-template-columns:30px minmax(0,1fr);gap:4px 8px;padding:8px 0;display:grid}.dish-row span{width:24px;height:24px;color:var(--brown);background:#f3e7da;border-radius:999px;grid-row:span 2;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.dish-row strong,.dish-row small{overflow-wrap:anywhere;min-width:0}.dish-row small{color:var(--muted)}.preview-toolbar{z-index:6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf9f5;border-bottom:1px solid #eadfd2;flex-wrap:wrap;align-items:flex-start;margin:-16px -16px 14px;padding:12px 16px;position:sticky;top:0}.preview-toolbar .panel-title{flex:180px;min-width:0}.preview-action-stack{justify-content:flex-end;align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.export-actions{flex-wrap:nowrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}.export-actions .primary-button,.export-actions .secondary-button{width:auto;margin-top:0}.export-primary-action{min-width:122px}.export-tertiary-action{min-width:106px;padding-inline:10px}.export-save-action{background:#fffdf9}.export-hint{max-width:240px;color:var(--muted);text-align:left;font-size:12px;font-weight:800;line-height:1.35;display:block}.export-hint.ready{color:var(--success)}.export-hint.dirty{color:#7c5a24}.quality-panel{animation:status-enter var(--motion-medium) var(--ease-emphasized) both;transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard);background:#fffdf9;border:1px solid #eadfd2;border-radius:8px;grid-template-columns:minmax(140px,.42fr) minmax(0,1fr);gap:10px;margin-top:12px;padding:10px;display:grid}.quality-panel.ready{background:#f7fbf8;border-color:#2d8b7c47}.quality-panel.warning{background:#fff8e8;border-color:#d479345c}.quality-panel.blocked{background:#fff6f2;border-color:#a63a2b47;box-shadow:0 10px 26px #a63a2b14}.quality-summary{align-content:start;gap:2px;min-width:0;display:grid}.quality-summary span,.quality-summary small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}.quality-summary strong{color:var(--brown);font-size:16px;line-height:1.25}.quality-repair-action{justify-content:center;align-items:center;gap:6px;width:100%;min-height:34px;margin-top:8px;font-size:13px;font-weight:900;display:inline-flex;box-shadow:0 8px 18px #1f766f29,inset 0 1px #ffffff2e}.quality-repair-action svg{flex:none}.quality-panel.ready .quality-summary strong{color:var(--teal)}.quality-panel.blocked .quality-summary strong{color:var(--danger)}.quality-checks{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:7px;min-width:0;display:grid}.quality-check{min-width:0;transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard);background:#fffaf4;border:1px solid #d9cfc2c2;border-radius:8px;gap:2px;padding:8px;display:grid}button.quality-check{appearance:none;text-align:left;width:100%;font:inherit;cursor:pointer}button.quality-check:hover,button.quality-check:focus-visible{border-color:#2d8b7c70;outline:none;transform:translateY(-1px);box-shadow:0 0 0 3px #2d8b7c1f}.quality-check.ready{background:#f0faf6;border-color:#2d8b7c33}.quality-check.warning{background:#fffaf0;border-color:#d4793447}.quality-check.blocked{background:#fff7f4;border-color:#a63a2b3d}.quality-check b,.quality-check span,.quality-check small{overflow-wrap:anywhere;min-width:0;line-height:1.32}.quality-check b{color:var(--brown);font-size:12px}.quality-check span{color:var(--ink);font-size:12px;font-weight:760}.quality-check small{color:var(--teal);font-size:11px;font-weight:900}.version-strip{animation:status-enter var(--motion-medium) var(--ease-emphasized) both;transition:background var(--motion-medium) var(--ease-standard), border-color var(--motion-medium) var(--ease-standard), box-shadow var(--motion-medium) var(--ease-standard);background:linear-gradient(#fffffcfa,#f8fbf8f5),linear-gradient(90deg,#1f766f17,#0000 48%);border:1px solid #2d8b7c24;border-radius:8px;grid-template-columns:minmax(260px,420px) auto;align-items:end;gap:12px;margin:-2px 0 12px;padding:10px 12px;display:grid;box-shadow:inset 3px 0 #1f766f2e}.version-picker,.version-actions{min-width:0}.version-picker{gap:6px;display:grid}.version-picker-label{color:var(--muted);font-size:12px;font-weight:850}.version-picker .ui-select-trigger{color:#4f473f;min-height:42px;animation:version-select-confirm .28s var(--ease-emphasized) both;will-change:transform, opacity;background:#ffffffeb;border-color:#2d8b7c33;padding:9px 11px;font-size:13px;font-weight:840}.version-picker .ui-select-trigger:hover{background:#fff;border-color:#1f766f57}.version-picker .ui-select-trigger:focus-visible{border-color:#1f766f7a;box-shadow:0 0 0 3px #1f766f1f}.version-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.version-actions .secondary-button{background:#fff;width:auto;margin-top:0}.version-actions .primary-button{width:auto;min-height:38px;margin-top:0}.preview-format-toolbar{background:#f6faf7;border-top:1px solid #2d8b7c29;border-bottom:1px solid #2d8b7c33;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:10px 14px;margin:0 -16px 14px;padding:10px 16px;display:grid}.preview-format-primary,.preview-format-controls{min-width:0}.preview-format-primary{grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:9px;display:grid}.preview-format-heading{color:#17645d;align-items:center;gap:6px;min-width:0;display:inline-flex}.preview-format-heading strong{text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:12px;font-weight:900;overflow:hidden}.preview-format-primary input,.preview-format-primary textarea{width:100%;min-height:36px;color:var(--ink);font:inherit;resize:vertical;background:#fff;border:1px solid #2d8b7c3d;border-radius:7px;padding:7px 9px;font-size:13px;line-height:1.35}.preview-format-primary input:focus,.preview-format-primary textarea:focus{border-color:#1f766f85;outline:0;box-shadow:0 0 0 3px #1f766f1a}.preview-format-controls{justify-content:flex-end;align-items:end;gap:8px;display:flex}.preview-format-select,.preview-chapter-spacing{color:var(--muted);gap:4px;font-size:11px;font-weight:850;display:grid}.preview-format-select{width:116px}.preview-format-select .ui-select-trigger{min-height:32px;padding:5px 8px}.preview-chapter-spacing{width:190px}.preview-chapter-spacing .segmented-control{min-height:32px}.preview-format-stepper{grid-template-columns:28px minmax(34px,auto) 28px;align-items:center;gap:3px;display:grid}.preview-format-stepper>span{color:var(--muted);grid-column:1/-1;font-size:11px;font-weight:850}.preview-format-stepper button,.preview-history-actions button{color:#5f554b;background:#fff;border:1px solid #d9cfc2e6;border-radius:7px;place-items:center;width:28px;height:28px;padding:0;display:inline-grid}.preview-format-stepper button:hover:not(:disabled),.preview-format-stepper button:focus-visible,.preview-history-actions button:hover:not(:disabled),.preview-history-actions button:focus-visible{color:#17645d;border-color:#1f766f6b;outline:0}.preview-format-stepper output{color:#4f473f;text-align:center;min-width:38px;font-size:11px;font-weight:850}.preview-format-reset{margin-bottom:0}.preview-history-actions{gap:4px;display:flex}.preview-stage{transition:box-shadow var(--motion-medium) var(--ease-standard), outline-color var(--motion-medium) var(--ease-standard);outline-offset:6px;border-radius:10px;outline:2px solid #0000}.preview-scroll-area{-webkit-overflow-scrolling:touch;border-radius:8px;width:100%;max-width:100%;padding:4px 0 10px;scroll-padding:16px;display:block;overflow:auto hidden}.preview-stage.just-updated{animation:preview-update-pulse 1.4s var(--ease-emphasized);outline-color:#2d8b7c80;box-shadow:0 0 0 8px #2d8b7c17}.preview-stage.just-updated .menu-spread{animation:preview-paper-settle var(--motion-slow) var(--ease-emphasized) both}.menu-spread{--menu-page-preview-width:620px;--menu-page-preview-height:calc(var(--menu-page-preview-width) * 297 / 210);--menu-background-layer:url(/menu-assets/jiangnan-print-page.webp) center / 100% 100% no-repeat;grid-template-columns:var(--menu-page-preview-width);width:var(--menu-page-preview-width);min-width:var(--menu-page-preview-width);justify-content:center;gap:0;max-width:none;margin:0 auto;padding:4px 0;display:grid;overflow:visible;container-type:inline-size}.menu-spread[data-page-count="2"]{grid-template-columns:repeat(2, var(--menu-page-preview-width));width:calc(var(--menu-page-preview-width) * 2);min-width:calc(var(--menu-page-preview-width) * 2);background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-spread.webp) center / 100% 100% no-repeat), #fbf7ef;border-radius:10px;justify-content:stretch;max-width:none;margin:0 auto;padding:0;position:relative;overflow:visible;box-shadow:0 18px 48px #3d2c1d21}.preview-scroll-area:has(.menu-spread[data-page-count="2"]) .menu-spread{margin-left:0;margin-right:auto}.menu-spread[data-page-count="2"]:before{content:none}.menu-page{width:var(--menu-page-preview-width);height:var(--menu-page-preview-height);aspect-ratio:auto;--page-pad:0px;--frame-pad-block-start:clamp(46px, 12.4cqw, 88px);--frame-pad-inline:clamp(54px, 14.4cqw, 104px);--frame-pad-block-end:clamp(42px, 11.2cqw, 82px);--body-gap:clamp(8px, 1.9cqw, 13px);--section-gap:clamp(5px, 1.3cqw, 8px);--dish-gap:clamp(4px, 1cqw, 7px);--chapter-before-gap:clamp(12px, 2.8cqw, 18px);background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-page.webp) center / 100% 100% no-repeat), #fbf7ef;padding:var(--page-pad);-moz-text-size-adjust:100%;text-size-adjust:100%;border:0;border-radius:8px;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 16px 44px #3d2c1d1a;container-type:inline-size}.menu-spread[data-page-count="2"] .menu-page{box-shadow:none;background:0 0;border-radius:0}.menu-spread-header{z-index:2;pointer-events:none;text-align:center;justify-items:center;gap:5px;width:min(54%,720px);display:grid;position:absolute;top:clamp(30px,4.2%,58px);left:50%;transform:translate(-50%)}.menu-spread-header .menu-title-stack h1{max-width:min(100%,14em);font-size:clamp(27px,3.4cqw,43px)}.menu-spread-header .menu-subtitle{font-size:clamp(17px,2.2cqw,25px)}.menu-spread-header .menu-ornament{width:min(48%,360px)}.menu-spread[data-has-spread-header=true] .menu-page-frame{padding-top:clamp(138px,22cqw,188px)}.menu-spread[data-page-count="2"] .menu-page[data-side=left]{border-right:0;border-radius:10px 0 0 10px}.menu-spread[data-page-count="2"] .menu-page[data-side=right]{border-left:0;border-radius:0 10px 10px 0}.menu-page:before,.menu-page:after{content:none}.menu-page-frame{z-index:1;height:100%;box-shadow:none;padding:var(--frame-pad-block-start) var(--frame-pad-inline) var(--frame-pad-block-end);text-align:center;background:0 0;border:0;border-radius:0;flex-direction:column;display:flex;position:relative}.menu-page-frame:before,.menu-page-frame:after{content:none}.menu-page[data-density=compact]{--page-pad:0px;--frame-pad-block-start:clamp(42px, 11.2cqw, 80px);--frame-pad-inline:clamp(50px, 13.4cqw, 96px);--frame-pad-block-end:clamp(38px, 10.3cqw, 72px);--body-gap:clamp(8px, 1.8cqw, 12px);--section-gap:clamp(4px, 1cqw, 7px);--dish-gap:clamp(3px, .8cqw, 6px)}.menu-page[data-density=packed]{--page-pad:0px;--frame-pad-block-start:clamp(38px, 9.8cqw, 70px);--frame-pad-inline:clamp(48px, 12.6cqw, 90px);--frame-pad-block-end:clamp(36px, 9cqw, 64px);--body-gap:clamp(5px, 1.15cqw, 8px);--section-gap:clamp(3px, .76cqw, 5px);--dish-gap:clamp(2px, .52cqw, 4px);--chapter-before-gap:clamp(7px, 1.5cqw, 10px)}.menu-page[data-chapter-spacing=compact]{--chapter-before-gap:clamp(6px, 1.35cqw, 9px)}.menu-page[data-chapter-spacing=spacious]{--chapter-before-gap:clamp(17px, 3.7cqw, 25px)}.menu-page[data-density=packed][data-chapter-spacing=compact]{--chapter-before-gap:clamp(4px, .85cqw, 6px)}.menu-page[data-density=packed][data-chapter-spacing=spacious]{--chapter-before-gap:clamp(10px, 2.05cqw, 14px)}.menu-page[data-mode=concise]{--frame-pad-block-start:clamp(42px, 11.2cqw, 80px);--frame-pad-inline:clamp(50px, 13.9cqw, 100px);--frame-pad-block-end:clamp(38px, 10.3cqw, 76px);--body-gap:clamp(8px, 1.75cqw, 12px);--section-gap:clamp(4px, 1cqw, 7px);--dish-gap:clamp(3px, .75cqw, 6px)}.menu-page[data-mode=concise][data-density=packed]{--frame-pad-block-start:clamp(36px, 9.5cqw, 68px);--frame-pad-inline:clamp(48px, 12.6cqw, 92px);--frame-pad-block-end:clamp(34px, 9cqw, 64px);--body-gap:clamp(5px, 1.12cqw, 8px);--section-gap:clamp(3px, .75cqw, 5px);--dish-gap:clamp(2px, .52cqw, 4px)}.menu-page[data-mode=refined]{--frame-pad-block-start:clamp(46px, 13cqw, 92px);--frame-pad-inline:clamp(58px, 17cqw, 116px);--frame-pad-block-end:clamp(42px, 11.6cqw, 84px);--body-gap:clamp(7px, 1.55cqw, 10px);--section-gap:clamp(4px, .95cqw, 6px);--dish-gap:clamp(2px, .55cqw, 4px)}.menu-page[data-mode=refined][data-density=compact]{--frame-pad-block-start:clamp(42px, 11.6cqw, 82px);--frame-pad-inline:clamp(54px, 15.6cqw, 108px);--frame-pad-block-end:clamp(40px, 10.6cqw, 78px);--body-gap:clamp(8px, 1.8cqw, 12px);--section-gap:clamp(4px, .9cqw, 6px);--dish-gap:clamp(2px, .52cqw, 4px)}.menu-page[data-mode=refined][data-density=packed]{--frame-pad-block-start:clamp(40px, 10.8cqw, 78px);--frame-pad-inline:clamp(54px, 14.4cqw, 102px);--frame-pad-block-end:clamp(38px, 9.8cqw, 72px);--body-gap:clamp(6px, 1.4cqw, 10px);--section-gap:clamp(2px, .48cqw, 4px);--dish-gap:clamp(1px, .34cqw, 3px)}.menu-page[data-mode=refined][data-fit=spacious]{--frame-pad-block-start:clamp(52px, 14.2cqw, 100px);--frame-pad-inline:clamp(58px, 17cqw, 116px);--frame-pad-block-end:clamp(48px, 12.8cqw, 92px);--body-gap:clamp(12px, 2.55cqw, 19px);--section-gap:clamp(7px, 1.45cqw, 11px);--dish-gap:clamp(4px, 1cqw, 7px)}.menu-page[data-mode=refined][data-fit=balanced]{--frame-pad-block-start:clamp(42px, 11.6cqw, 82px);--frame-pad-inline:clamp(52px, 15.8cqw, 108px);--frame-pad-block-end:clamp(40px, 10.3cqw, 76px);--body-gap:clamp(8px, 1.65cqw, 12px);--section-gap:clamp(4px, .95cqw, 7px);--dish-gap:clamp(2px, .55cqw, 4px)}.menu-page[data-mode=refined][data-fit=dense]{--frame-pad-block-start:clamp(38px, 10.3cqw, 74px);--frame-pad-inline:clamp(50px, 13.9cqw, 98px);--frame-pad-block-end:clamp(36px, 9.4cqw, 68px)}.menu-page[data-density=airy]{--frame-pad-block-start:clamp(70px, 16.5cqw, 120px);--frame-pad-inline:clamp(58px, 12.2cqw, 96px);--frame-pad-block-end:clamp(56px, 11.8cqw, 92px);--body-gap:clamp(13px, 2.8cqw, 22px);--section-gap:clamp(8px, 1.8cqw, 12px);--dish-gap:clamp(7px, 1.6cqw, 11px)}.menu-page-header{justify-items:center;gap:4px;display:grid}.menu-page[data-density=packed] .menu-page-header{gap:3px}.menu-title-stack{justify-items:center;gap:4px;display:grid}.menu-page[data-density=packed] .menu-title-stack{gap:3px}.menu-title-stack h1{color:var(--brown);overflow-wrap:normal;text-wrap:balance;word-break:keep-all;text-shadow:0 1px 4px #fff9efcc;max-width:min(100%,12em);margin:0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(24px,7.8cqw,38px);font-weight:700;line-height:1.08}.menu-page[data-density=packed] .menu-title-stack h1{font-size:clamp(22px,6.2cqw,31px);line-height:1.02}.menu-page[data-mode=refined][data-density=packed] .menu-title-stack h1{max-width:min(100%,10em);font-size:clamp(20px,5.45cqw,28px);line-height:1.04}.menu-subtitle{color:var(--brown);word-break:keep-all;text-shadow:0 1px 4px #fff9efc7;margin:0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(17px,5.1cqw,25px);font-weight:700;line-height:1.12}.menu-page[data-density=packed] .menu-subtitle{font-size:clamp(15px,4.2cqw,21px);line-height:1.06}.menu-page[data-mode=refined][data-density=packed] .menu-subtitle{font-size:clamp(13px,3.55cqw,18px);line-height:1.06}.menu-ornament{grid-template-columns:minmax(42px,1fr) auto minmax(42px,1fr);align-items:center;gap:clamp(6px,1.3cqw,10px);width:min(58%,260px);margin-top:4px;display:grid}.menu-page[data-density=packed] .menu-ornament{gap:clamp(4px,.95cqw,7px);width:min(54%,220px);margin-top:2px}.menu-ornament-dot{background:#75beb4c2;border-radius:999px;width:clamp(4px,1cqw,6px);height:clamp(4px,1cqw,6px);display:block;box-shadow:0 0 0 4px #75beb414,0 1px 2px #fffcf5b8}.menu-page[data-density=packed] .menu-ornament-dot{width:clamp(3px,.8cqw,5px);height:clamp(3px,.8cqw,5px)}.menu-ornament-line{background:linear-gradient(90deg,#75beb400,#75beb485,#75beb400);height:1px;display:block;box-shadow:0 1px 2px #fffcf5b8}.menu-page-body{align-content:start;gap:var(--body-gap);flex:1;padding-top:4px;display:grid;overflow:hidden}.menu-page[data-mode=concise] .menu-page-body{align-content:start;padding-top:0}.menu-page[data-mode=refined] .menu-page-body{align-content:center;padding-top:0}.menu-page[data-mode=refined][data-fit=spacious] .menu-page-body{align-content:space-evenly}.menu-page[data-mode=refined][data-fit=balanced] .menu-page-body{align-content:center}.menu-page[data-mode=refined][data-fit=dense] .menu-page-body{align-content:start}.menu-page[data-density=packed] .menu-page-body{padding-top:clamp(8px,1.8cqw,14px)}.menu-page[data-mode=refined][data-density=packed] .menu-page-body{gap:var(--body-gap);padding-top:0}.menu-page[data-density=airy] .menu-page-body{align-content:center}.menu-section-preview{justify-items:center;gap:var(--section-gap);display:grid}.section-insert-block{justify-items:center;gap:calc(var(--section-gap) * .35);max-width:100%;margin-block-start:var(--chapter-before-gap);display:grid}.menu-page-body>.menu-section-preview:first-child>.section-insert-block:first-child{margin-block-start:0}.menu-scaled-text{font-size:calc(1em * var(--menu-element-scale,1))}.menu-section-preview h2{color:var(--teal);text-shadow:0 1px 4px #fffcf5c2;margin:0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(17px,5.6cqw,26px);font-weight:700;line-height:1.2}.menu-page[data-density=compact] .menu-section-preview h2{font-size:clamp(16px,5cqw,24px)}.menu-page[data-density=packed] .menu-section-preview h2{font-size:clamp(14px,4.15cqw,20px);line-height:1.08}.menu-page[data-mode=refined] .menu-section-preview h2{font-size:clamp(18px,5.85cqw,28px);line-height:1.12}.menu-page[data-mode=refined][data-density=compact] .menu-section-preview h2{font-size:clamp(16px,4.8cqw,23px);line-height:1.08}.menu-page[data-mode=refined][data-density=packed] .menu-section-preview h2{font-size:clamp(14px,4.12cqw,20px);line-height:1.06}.menu-page[data-mode=refined][data-fit=spacious] .menu-section-preview h2{font-size:clamp(18px,5.7cqw,27px);line-height:1.12}.menu-page[data-mode=refined][data-density=compact] .section-pairing{font-size:clamp(8px,2.32cqw,11px);line-height:1.12}.menu-page[data-mode=refined][data-density=packed] .section-pairing{font-size:clamp(8px,2.08cqw,10.2px);line-height:1.06}.menu-page[data-mode=refined][data-fit=spacious] .section-pairing{font-size:clamp(8px,2.22cqw,10.8px);line-height:1.08}.section-pairing{margin:calc(var(--dish-gap) * -.25) 0 0;color:#687a5ae0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(9px,2.55cqw,12px);line-height:1.2}.menu-page[data-density=packed] .section-pairing{font-size:clamp(8px,2.18cqw,10.5px);line-height:1.08}.preview-dish{justify-items:center;gap:var(--dish-gap);max-width:100%;display:grid}.preview-dish h3{color:var(--brown);word-break:keep-all;overflow-wrap:normal;text-wrap:balance;text-shadow:0 1px 3px #fffcf5bd;width:100%;max-width:100%;margin:0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(17px,5cqw,24px);font-weight:700;line-height:1.14}.preview-dish h3 span{font-size:calc(1em * var(--dish-name-scale,1) * var(--menu-element-scale,1));white-space:nowrap;display:block}.menu-page[data-density=compact] .preview-dish h3{font-size:clamp(15px,4.45cqw,21px)}.menu-page[data-density=packed] .preview-dish h3{font-size:clamp(13px,3.85cqw,18px);line-height:1.12}.menu-page[data-mode=concise] .preview-dish h3{font-size:clamp(15px,4.6cqw,22px);line-height:1.16}.menu-page[data-mode=refined] .preview-dish h3{font-size:clamp(15px,4.55cqw,21px);line-height:1.15}.menu-page[data-mode=refined][data-density=compact] .preview-dish h3{font-size:clamp(14px,4.18cqw,19.5px);line-height:1.12}.menu-page[data-mode=refined][data-density=packed] .preview-dish h3{font-size:clamp(12px,3.42cqw,16.5px);line-height:1.08}.menu-page[data-mode=refined][data-fit=spacious] .preview-dish h3{font-size:clamp(16px,4.85cqw,22px);line-height:1.14}.menu-page[data-mode=concise][data-density=packed] .preview-dish h3{font-size:clamp(12px,3.6cqw,17px);line-height:1.12}.preview-dish p{color:#7b4a34;line-break:strict;text-shadow:0 1px 3px #fffcf5b3;text-wrap:pretty;word-break:normal;overflow-wrap:normal;gap:1px;margin:0;font-family:Songti SC,STSong,Kaiti SC,STKaiti,serif;font-size:clamp(9px,2.62cqw,12.5px);line-height:1.34;display:grid}.menu-page[data-density=compact] .preview-dish p{font-size:clamp(9px,2.5cqw,12px);line-height:1.28}.menu-page[data-density=packed] .preview-dish p{font-size:clamp(8px,2.16cqw,10px);line-height:1.18}.menu-page[data-mode=concise] .preview-dish p{font-size:clamp(9px,2.56cqw,12px);line-height:1.24}.menu-page[data-mode=refined] .preview-dish p{max-width:94%;font-size:clamp(9px,2.44cqw,11.5px);line-height:1.32;display:block}.menu-page[data-mode=refined][data-density=compact] .preview-dish p{max-width:98%;font-size:clamp(8.6px,2.34cqw,11px);line-height:1.24}.menu-page[data-mode=refined][data-density=packed] .preview-dish p{max-width:100%;font-size:clamp(7.8px,2.08cqw,10.2px);line-height:1.16}.menu-page[data-mode=refined][data-fit=spacious] .preview-dish p{max-width:98%;font-size:clamp(9.2px,2.58cqw,12.2px);line-height:1.28}.menu-page[data-mode=refined][data-fit=balanced] .preview-dish p{max-width:100%;font-size:clamp(8.4px,2.24cqw,10.8px);line-height:1.2}.menu-page[data-mode=refined][data-fit=dense] .preview-dish p{max-width:100%;font-size:clamp(7.6px,1.98cqw,9.8px);line-height:1.14}.menu-page[data-mode=concise][data-density=packed] .preview-dish p{font-size:clamp(8px,2.18cqw,10.4px);line-height:1.18}.preview-dish p span{font-size:calc(1em * var(--menu-element-scale,1));white-space:nowrap;display:block}.menu-spread[data-edit-mode=true] [data-preview-target]{cursor:text;outline-offset:4px;border-radius:2px;outline:1px solid #0000;transition:outline-color .12s,background-color .12s}.menu-spread[data-edit-mode=true] [data-preview-target]:hover{background:#ffffff47;outline-color:#238a796b}.menu-spread[data-edit-mode=true] [data-preview-selected=true]{background:#ffffff73;outline:2px solid #238a79e0}.menu-spread[data-edit-mode=true] [data-preview-target]:focus-visible{outline:2px solid #238a79eb}.menu-spread[data-capture=true] [data-preview-target]{cursor:default;background:0 0;outline:0}.buffet-layout-note{color:var(--muted);margin:8px 0 0;font-size:12px;font-weight:780;line-height:1.4}.buffet-source-list{gap:6px;max-height:420px;padding-right:2px;display:grid;overflow:auto}.buffet-source-row{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;display:grid}.buffet-source-row[data-kind=section]{background:#f4fbf7;border-color:#1f766f3d}.buffet-source-row span,.buffet-source-row small{color:var(--muted);font-size:11px;font-weight:850}.buffet-source-row strong{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:13px;line-height:1.35}.buffet-title-editor{grid-template-columns:minmax(180px,.55fr) minmax(0,1fr);gap:12px;margin-bottom:12px;display:grid}.buffet-title-editor>div{background:#fffaf4;border:1px solid #eadfd2;border-radius:8px;align-content:center;gap:4px;padding:10px 12px;display:grid}.buffet-title-editor span{color:var(--muted);font-size:12px;font-weight:850}.buffet-title-editor strong{color:var(--brown);font-size:15px;line-height:1.35}.buffet-bilingual-grid{gap:10px;display:grid}.buffet-grid-head,.buffet-grid-row{grid-template-columns:minmax(180px,.42fr) minmax(260px,1fr);align-items:stretch;gap:10px;display:grid}.buffet-grid-head{z-index:2;background:#f6efe5;border:1px solid #e2d7ca;border-radius:8px;padding:8px 10px;position:sticky;top:0}.buffet-grid-head span{color:#6d5c4d;font-size:12px;font-weight:900}.buffet-editor-section{gap:6px;display:grid}.buffet-grid-row{background:#fffdf9;border:1px solid #eadfd2;border-radius:8px;padding:8px}.buffet-grid-row.section{background:#f5fbf8;border-color:#1f766f42}.buffet-grid-row[data-kind=note]{background:#fff8ea}.buffet-grid-row>div{align-content:center;gap:3px;min-width:0;display:grid}.buffet-grid-row small{color:var(--muted);font-size:11px;font-weight:850}.buffet-grid-row strong{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:13px;line-height:1.42}.buffet-grid-row .field{margin-top:0}.buffet-grid-row .field span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.buffet-grid-row input{min-height:38px}.buffet-spread{--menu-page-preview-width:620px;--menu-page-preview-height:calc(var(--menu-page-preview-width) * 297 / 210);--menu-background-layer:url(/menu-assets/jiangnan-print-page.webp) center / 100% 100% no-repeat;grid-template-columns:var(--menu-page-preview-width);width:var(--menu-page-preview-width);min-width:var(--menu-page-preview-width);justify-content:center;max-width:none;margin:0 auto;padding:4px 0;display:grid;overflow:visible;container-type:inline-size}.buffet-spread[data-page-count="2"]{grid-template-columns:repeat(2, var(--menu-page-preview-width));width:calc(var(--menu-page-preview-width) * 2);min-width:calc(var(--menu-page-preview-width) * 2);background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-spread.webp) center / 100% 100% no-repeat), #fbf7ef;border-radius:10px;justify-content:stretch;padding:0;box-shadow:0 18px 48px #3d2c1d21}.preview-scroll-area:has(.buffet-spread[data-page-count="2"]) .buffet-spread{margin-left:0;margin-right:auto}.buffet-page{width:var(--menu-page-preview-width);height:var(--menu-page-preview-height);--buffet-frame-pad-start:clamp(48px, 10.6cqw, 76px);--buffet-frame-pad-inline:clamp(48px, 11.8cqw, 88px);--buffet-frame-pad-end:clamp(42px, 9.8cqw, 72px);--buffet-section-gap:clamp(9px, 2cqw, 14px);--buffet-line-gap:clamp(4px, .9cqw, 7px);background:var(--menu-background-layer,url(/menu-assets/jiangnan-print-page.webp) center / 100% 100% no-repeat), #fbf7ef;-moz-text-size-adjust:100%;text-size-adjust:100%;border:0;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 16px 44px #3d2c1d1a;container-type:inline-size}.buffet-spread[data-page-count="2"] .buffet-page{box-shadow:none;background:0 0;border-radius:0}.buffet-spread[data-page-count="2"] .buffet-page[data-side=left]{border-radius:10px 0 0 10px}.buffet-spread[data-page-count="2"] .buffet-page[data-side=right]{border-radius:0 10px 10px 0}.buffet-page[data-density=compact]{--buffet-frame-pad-start:clamp(42px, 9.3cqw, 68px);--buffet-frame-pad-inline:clamp(44px, 10.6cqw, 78px);--buffet-frame-pad-end:clamp(38px, 8.6cqw, 64px);--buffet-section-gap:clamp(7px, 1.55cqw, 11px);--buffet-line-gap:clamp(3px, .72cqw, 5px)}.buffet-page[data-density=packed]{--buffet-frame-pad-start:clamp(36px, 8.2cqw, 60px);--buffet-frame-pad-inline:clamp(38px, 9.2cqw, 70px);--buffet-frame-pad-end:clamp(34px, 7.8cqw, 58px);--buffet-section-gap:clamp(4px, 1cqw, 7px);--buffet-line-gap:clamp(2px, .48cqw, 4px)}.buffet-page-frame{height:100%;padding:var(--buffet-frame-pad-start) var(--buffet-frame-pad-inline) var(--buffet-frame-pad-end);text-align:center;flex-direction:column;display:flex}.buffet-page-header{justify-items:center;gap:3px;margin-bottom:clamp(12px,2.8cqw,20px);display:grid}.buffet-spread[data-page-count="2"] .buffet-page-header.continuation{opacity:0}.buffet-page-header h1{color:var(--brown);text-shadow:0 1px 4px #fff9efcc;word-break:keep-all;max-width:min(100%,13em);margin:0;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(23px,5.5cqw,34px);font-weight:760;line-height:1.08}.buffet-page-header p{color:#82624f;letter-spacing:0;text-shadow:0 1px 3px #fffcf5b3;margin:0;font-family:Times New Roman,Georgia,serif;font-size:clamp(11px,2.6cqw,15px);font-style:italic;font-weight:650;line-height:1.16}.buffet-page[data-density=packed] .buffet-page-header{margin-bottom:clamp(6px,1.4cqw,10px)}.buffet-page[data-density=packed] .buffet-page-header h1{font-size:clamp(18px,4.2cqw,26px)}.buffet-page[data-density=packed] .buffet-page-header p{font-size:clamp(9px,2cqw,12px)}.buffet-page-body{align-content:center;gap:var(--buffet-section-gap);flex:1;display:grid;overflow:hidden}.buffet-page[data-density=compact] .buffet-page-body,.buffet-page[data-density=packed] .buffet-page-body{align-content:start}.buffet-section-preview{justify-items:center;gap:clamp(4px,1cqw,7px);display:grid}.buffet-section-preview h2{color:var(--teal);justify-items:center;gap:1px;margin:0;line-height:1.12;display:grid}.buffet-section-preview h2 span{white-space:nowrap;text-shadow:0 1px 4px #fffcf5c2;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(16px,4.2cqw,23px);font-weight:760}.buffet-section-preview h2 small{color:#607f73;letter-spacing:0;white-space:nowrap;font-family:Times New Roman,Georgia,serif;font-size:clamp(8.5px,2.1cqw,12px);font-style:italic;font-weight:650}.buffet-page[data-density=packed] .buffet-section-preview h2 span{font-size:clamp(12px,3.2cqw,17px)}.buffet-page[data-density=packed] .buffet-section-preview h2 small{font-size:clamp(7px,1.62cqw,9.6px)}.buffet-section-lines{justify-items:center;gap:var(--buffet-line-gap);width:100%;display:grid}.buffet-line-preview{justify-items:center;gap:1px;width:100%;display:grid}.buffet-line-preview[data-kind=note]{opacity:.86}.buffet-line-cn,.buffet-line-en{justify-items:center;gap:1px;max-width:100%;margin:0;display:grid}.buffet-line-cn{color:var(--brown);text-shadow:0 1px 3px #fffcf5bd;font-family:Kaiti SC,STKaiti,Songti SC,STSong,serif;font-size:clamp(13px,3.55cqw,19px);font-weight:720;line-height:1.15}.buffet-line-en{color:#6f5647;letter-spacing:0;text-shadow:0 1px 3px #fffcf5ad;font-family:Times New Roman,Georgia,serif;font-size:clamp(8.6px,2.18cqw,11.8px);font-style:italic;font-weight:610;line-height:1.15}.buffet-line-cn span,.buffet-line-en span{white-space:nowrap;max-width:100%;display:block}.buffet-page[data-density=compact] .buffet-line-cn{font-size:clamp(11px,3.05cqw,16px);line-height:1.1}.buffet-page[data-density=compact] .buffet-line-en{font-size:clamp(7.8px,1.92cqw,10.4px);line-height:1.08}.buffet-page[data-density=packed] .buffet-line-cn{font-size:clamp(9px,2.5cqw,13px);line-height:1.06}.buffet-page[data-density=packed] .buffet-line-en{font-size:clamp(6.8px,1.56cqw,8.8px);line-height:1.02}.buffet-background-preview-menu .buffet-spread{--menu-page-preview-width:min(360px, 44vw)}@media (max-width:1220px){.menu-spread,.menu-spread[data-page-count="2"],.buffet-spread,.buffet-spread[data-page-count="2"]{justify-content:start}}@container (max-width:650px){.menu-spread,.menu-spread[data-page-count="2"],.buffet-spread,.buffet-spread[data-page-count="2"]{justify-content:start}}@media print{@page{margin:0}body{background:#fff}.studio-shell-sider,.studio-top-bar,.workflow-strip,.input-panel,.preview-toolbar,.version-strip,.tuning-panel,.export-list,.warning,.success,.notice,.empty-state,.busy-overlay,.error-bar{display:none!important}.studio-app-shell,.studio-shell-main,.studio-shell-content{padding:0;display:block}.workspace-grid{max-width:none;display:block}.preview-panel{box-shadow:none;border:0;padding:0}.menu-spread{width:210mm;min-width:0;max-width:none;height:297mm;box-shadow:none;border:0;grid-template-columns:minmax(0,1fr);gap:0;overflow:visible}.menu-spread[data-page-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));width:297mm;height:210mm}.menu-page{break-inside:avoid;page-break-inside:avoid;width:100%;height:100%;box-shadow:none}.buffet-spread{width:210mm;min-width:0;max-width:none;height:297mm;box-shadow:none;border:0;grid-template-columns:minmax(0,1fr);gap:0;overflow:visible}.buffet-spread[data-page-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));width:297mm;height:210mm}.buffet-page{break-inside:avoid;page-break-inside:avoid;width:100%;height:100%;box-shadow:none}}.empty-state{color:#6f675f;text-align:center;background:#fffdf96b;border:1px dashed #ddd5cc;border-radius:8px;place-items:center;min-height:260px;padding:18px;display:grid}.warning,.success,.notice,.error-bar{border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.warning,.success,.notice{animation:status-enter var(--motion-medium) var(--ease-emphasized) both}.warning,.error-bar{color:var(--danger);background:#fff1ed}.generation-notice{justify-content:space-between;align-items:center;gap:10px;display:flex}.generation-notice span{overflow-wrap:anywhere;min-width:0}.generation-regenerate-action{color:#8e3025;border-color:#a63a2b3d;flex:none;width:auto;min-height:34px;margin-top:0}.generation-regenerate-action:not(:disabled):hover{background:#fff9f7;border-color:#a63a2b66}.success{color:var(--success);background:#ecf8f2}.notice{color:#6e5526;background:#fffaf0b8;border:1px solid #d479341f}.preview-panel>.notice{animation:preview-notice-enter .28s var(--ease-emphasized) both;will-change:transform, opacity}.tuning-panel{border:1px solid var(--line);background:#fffaf4;border-radius:8px;margin-top:14px;padding:12px}.tuning-panel-summary{cursor:pointer;color:var(--brown);justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}.tuning-panel-summary::-webkit-details-marker{display:none}.tuning-panel-summary span{font-size:13px;font-weight:900}.tuning-panel-summary small{color:var(--muted);font-size:11px;font-weight:780}.tuning-panel-summary:after{content:"+";color:var(--teal);flex:none;font-size:18px;line-height:1}.tuning-panel[open] .tuning-panel-summary:after{content:"−"}.tuning-panel-body{border-top:1px solid #eadfd2;margin-top:10px;padding-top:12px}.tuning-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.tuning-header h3{color:var(--brown);margin:0;font-size:15px;line-height:1.25}.tuning-header span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.tuning-header .primary-button{width:auto;margin-top:0}.tuning-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 10px;margin-top:4px;display:grid}.tuning-grid .full{grid-column:1/-1}.tuning-grid textarea,.dish-editor textarea{min-height:auto}.tuning-sections{gap:12px;max-height:560px;margin-top:14px;padding-right:2px;display:grid;overflow:auto}.tuning-section{border-top:1px solid #eadfd2;padding-top:10px}.tuning-section-heading{color:var(--brown);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.tuning-section-heading span{overflow-wrap:anywhere;min-width:0;font-size:13px;font-weight:900}.tuning-section-heading small{color:var(--muted);flex:none;font-size:11px;font-weight:800}.tuning-section-actions,.dish-editor-heading{align-items:center;gap:8px;display:flex}.dish-add-button{appearance:none;min-height:28px;color:var(--teal);background:#fffdf9;border:1px dashed #2d8b7c57;border-radius:7px;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:850;display:inline-flex}.dish-add-button:hover:not(:disabled),.dish-add-button:focus-visible{background:#f4fbf7;border-color:#2d8b7c94;outline:none}.dish-editor-stack{gap:8px;margin-top:10px;display:grid}.dish-insert-editor{background:#f5fbf7;border:1px solid #2d8b7c2e;border-radius:8px;padding:9px;box-shadow:inset 3px 0 #2d8b7c29}.dish-insert-editor-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.dish-insert-editor-header span{color:var(--teal);font-size:12px;font-weight:900}.dish-insert-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.dish-insert-add{appearance:none;min-height:28px;color:var(--teal);background:#fffdf9;border:1px dashed #2d8b7c52;border-radius:7px;justify-content:center;justify-self:start;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.dish-insert-add:hover:not(:disabled),.dish-insert-add:focus-visible{background:#f4fbf7;border-color:#2d8b7c85;outline:none}.icon-button.quiet{appearance:none;color:#8a6d52;background:#fff;border:1px solid #d9cfc2e6;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.icon-button.quiet:hover:not(:disabled),.icon-button.quiet:focus-visible{color:var(--danger);border-color:#a63a2b47;outline:none}.dish-editor{background:#fff;border:1px solid #eadfd2;border-radius:8px;padding:10px}.dish-editor-heading{align-items:flex-end;margin-bottom:8px}.dish-original-name-field{flex:auto;min-width:0}.dish-delete-button{flex:none;margin-bottom:1px}.dish-editor p{color:var(--teal);overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:850}.field-label-with-action{justify-content:space-between;align-items:center;gap:8px;min-height:28px;display:flex}.field-label-with-action label{color:#4e463e;font-size:12px;font-weight:800}.ai-optimize-button{appearance:none;min-height:28px;color:var(--teal);cursor:pointer;background:#f5fbf7;border:1px solid #2d8b7c47;border-radius:7px;flex:none;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.ai-optimize-button:hover:not(:disabled),.ai-optimize-button:focus-visible{background:#eaf7f0;border-color:#2d8b7c8c;outline:none}.ai-optimize-button:disabled{cursor:not-allowed;opacity:.55}.error-bar{z-index:10;align-items:center;gap:10px;max-width:min(720px,100vw - 36px);animation:.2s ease-out both toast-enter;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 30px #2b1f142e}.error-bar span{overflow-wrap:anywhere;min-width:0}.error-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:6px;display:flex}.error-actions button{min-height:30px;color:var(--danger);cursor:pointer;background:#ffffffc2;border:1px solid #ab3c223d;border-radius:6px;padding:0 9px;font-size:12px;font-weight:850;transition:background .14s cubic-bezier(.2,0,.15,1),border-color .14s cubic-bezier(.2,0,.15,1),box-shadow .14s cubic-bezier(.2,0,.15,1),transform .14s cubic-bezier(.2,0,.15,1)}.error-actions button:not(:disabled):hover,.error-actions button:not(:disabled):focus-visible{background:#fff3ec;border-color:#ab3c2261;outline:none;transform:translateY(-1px);box-shadow:0 8px 18px #a63a2b1a}.error-actions button:not(:disabled):active{box-shadow:none;transform:translateY(0)}.error-actions button:disabled{cursor:not-allowed;opacity:.56}.busy-overlay{z-index:120;overscroll-behavior:contain;touch-action:none;animation:busy-overlay-enter var(--motion-medium) var(--ease-standard) both;background:linear-gradient(#2523212e,#25232157),#25232138;place-items:center;padding:clamp(16px,5vw,44px);display:grid;position:fixed;inset:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.busy-overlay{-webkit-backdrop-filter:blur(4px)saturate(.92);backdrop-filter:blur(4px)saturate(.92)}}.busy-dialog{background:linear-gradient(180deg, #fffefafa, #fffaf3fa), var(--surface);width:min(560px,100%);color:var(--ink);animation:busy-dialog-enter .28s var(--ease-emphasized) both;will-change:transform, opacity;border:1px solid #e5d9ccdb;border-radius:8px;align-items:start;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 54px #221c1633,inset 0 2px #ffffffb8}.busy-dialog:before{content:"";background:linear-gradient(90deg,#2d8b7c,#d47934b8);height:3px;position:absolute;top:0;left:0;right:0}.busy-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:20px 22px 12px;display:grid}.busy-icon-shell{background:linear-gradient(#f0faf6f2,#e7f6f0f2),#f0faf6;border:1px solid #2d8b7c2e;border-radius:999px;place-items:center;width:42px;height:42px;display:inline-grid;box-shadow:0 8px 18px #2d8b7c1a}.busy-copy{min-width:0}.busy-content{gap:12px;min-width:0;padding:0 22px 20px;display:grid}.busy-dialog strong{color:#573527;font-size:18px;line-height:1.25;display:block}.busy-dialog p{color:#4b443c;margin:5px 0 0;font-size:14px;font-weight:700;line-height:1.45;transition:opacity .16s}.busy-dialog small{color:var(--muted);align-items:center;margin-top:0;font-size:12px;font-weight:740;line-height:1.4;display:inline-flex}.busy-pill{color:#17635c;text-overflow:ellipsis;white-space:nowrap;background:#f0faf6;border:1px solid #2d8b7c29;border-radius:999px;align-items:center;max-width:190px;min-height:26px;padding:0 9px;font-size:12px;font-weight:780;display:inline-flex;overflow:hidden}.busy-progress-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 22px 14px;display:grid}.busy-progress-count{color:#5f554b;text-align:right;min-width:36px;font-size:12px;font-weight:780}.busy-progress-track{background:#2d8b7c1c;border-radius:999px;min-width:0;height:6px;display:block;overflow:hidden}.busy-progress-track span{border-radius:inherit;width:0;height:6px;transition:width .24s var(--ease-standard);background:linear-gradient(90deg,#1f766f,#d39a55);display:block}.busy-steps{background:0 0;border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.busy-step{max-width:100%;min-height:30px;color:var(--muted);background:#fffdf9a3;border:1px solid #d9cfc2ad;border-radius:999px;grid-template-columns:10px minmax(0,auto) auto;align-items:center;gap:6px;padding:0 10px 0 9px;transition:background .18s,border-color .18s,box-shadow .18s,color .18s,transform .18s;display:inline-grid}.busy-step span{box-sizing:border-box;background:#cfc4b8;border-radius:999px;width:8px;height:8px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.busy-step b{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:790;line-height:1.2;overflow:hidden}.busy-step em{color:#a09487;text-overflow:ellipsis;white-space:nowrap;grid-column:3;min-width:0;font-size:11px;font-style:normal;font-weight:720;line-height:1.15;overflow:hidden}.busy-step.done{color:#17635c;background:#f0faf6ad;border-color:#1f766f2e}.busy-step.done span{background:#1f766f}.busy-step.active{color:#124c47;background:#f0faf6;border-color:#2d8b7c52;transform:translateY(-1px);box-shadow:0 8px 16px #1f766f1a,inset 0 0 0 1px #1f766f14}.busy-step.active span{background:#1f766f;animation:1.4s ease-in-out infinite busy-step-pulse;box-shadow:0 0 0 4px #1f766f24,0 0 0 7px #d4793414}.busy-step.skipped{color:#9b8d7d;background:#fffdf980;border-style:dashed}.busy-step.skipped span{background:0 0;border:1px solid #cfc3b7}.busy-meta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.busy-meta small{background:#fffaf4ad;border:1px solid #d9cfc29e;border-radius:999px;min-height:24px;padding:0 9px}.busy-steps-compact{flex-wrap:nowrap;gap:8px}.busy-steps-compact .busy-step{background:#fffdf9b8;border:1px solid #d9cfc2ad;border-radius:999px;flex:1 1 0;grid-template-columns:10px minmax(0,1fr);min-width:0;min-height:34px;padding:0 10px;display:grid}.busy-steps-compact .busy-step.active{color:#80531b;background:#fff8e8;border-color:#d4793442;transform:none;box-shadow:0 8px 16px #d4793414,inset 0 0 0 1px #d4793414}.busy-steps-compact .busy-step.active span{background:var(--gold);box-shadow:0 0 0 4px #d4793421}.busy-steps-compact .busy-step em{display:none}.busy-spinner,.button-spinner{flex:none;animation:.85s linear infinite busy-spin}.busy-spinner{color:var(--teal)}@keyframes busy-spin{to{transform:rotate(360deg)}}@keyframes busy-overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes busy-dialog-enter{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes route-skeleton-shimmer{0%{background-position:-180px 0,0 0}to{background-position:calc(100% + 180px) 0,0 0}}@keyframes route-loading-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes mobile-nav-enter{0%{opacity:.82;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes studio-shell-main-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes studio-top-item-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes studio-rail-item-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes studio-rail-active-bar{0%{opacity:0;transform:scaleY(.35)}to{opacity:.78;transform:scaleY(1)}}@keyframes studio-rail-active-scan{0%{opacity:0;transform:translate(0)skew(-13deg)}32%{opacity:.72}to{opacity:0;transform:translate(360%)skew(-13deg)}}@keyframes studio-account-panel-enter{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes studio-surface-sheen{0%{opacity:0;transform:translate(0)skew(-13deg)}30%{opacity:.68}to{opacity:0;transform:translate(360%)skew(-13deg)}}@keyframes history-table-ready{0%{opacity:0}to{opacity:1}}@keyframes history-row-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes status-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes version-select-confirm{0%{opacity:.86;transform:translateY(3px)scale(.996)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes busy-step-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 4px #d4793429}50%{transform:scale(1.08);box-shadow:0 0 0 7px #d4793414}}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes preview-notice-enter{0%{opacity:0;transform:translateY(-4px)}58%{opacity:1;transform:translateY(1px)}to{opacity:1;transform:translateY(0)}}@keyframes preview-update-pulse{0%{box-shadow:0 0 #2d8b7c38}45%{box-shadow:0 0 0 10px #2d8b7c1a,0 12px 28px #2d8b7c14}to{box-shadow:0 0 0 8px #2d8b7c00}}@keyframes preview-paper-settle{0%{opacity:.92;transform:translateY(4px)scale(.998)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes repair-target-flash{0%{border-color:#d47934ad;box-shadow:0 0 #d479342e,0 0 0 999px #fff8e800}42%{border-color:#d47934c2;box-shadow:0 0 0 4px #d4793429,0 10px 24px #4b372314}to{box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.primary-button:not(:disabled):hover,.secondary-button:not(:disabled):hover,.ghost-button:not(:disabled):hover,.upload-dropzone:hover,.upload-dropzone.dragging,.segmented-option:not(:disabled):hover,.menu-item:not(:disabled):hover,.input-panel,.preview-panel,.input-note,.quality-panel,.version-strip,.warning,.success,.notice,.preview-panel>.notice,.history-table-client.ready .ant-table-tbody>tr:not(.ant-table-measure-row),.history-table .ant-btn:not(:disabled):not(.ant-btn-disabled):hover,.history-rendered-thumbnail:hover,.history-rendered-thumbnail:focus-visible,.version-picker .ui-select-trigger,.version-picker .ui-select-trigger:hover,.preview-stage.just-updated .menu-spread,.repair-target-flash,button.quality-check:hover,button.quality-check:focus-visible,.error-actions button:not(:disabled):hover,.error-actions button:not(:disabled):focus-visible,.route-loading-shell,.studio-shell-main,.studio-top-bar-heading,.studio-account,.studio-side-link,.studio-side-link:hover,.studio-side-link:focus-visible,.studio-side-link.collapsed:hover,.studio-side-link.collapsed:focus-visible,.studio-side-link.active:before,.studio-side-link.active:after,.studio-side-link-icon,.studio-side-link.loading .studio-side-link-icon:after,.studio-account-trigger,.studio-account-trigger:hover,.studio-account-trigger:focus-visible,.studio-account[data-open=true] .studio-account-trigger,.studio-account-caret,.studio-account-panel,.studio-tour-trigger,.studio-tour-trigger:hover,.studio-tour-trigger:focus-visible,.studio-side-toggle:after,.studio-mobile-menu-button:after,.studio-mobile-close-button:after,.studio-mobile-nav-sheet,.busy-step.active{transform:none}}.export-list{gap:8px;margin-top:12px;display:grid}.export-link{border:1px solid var(--line);color:var(--brown);overflow-wrap:anywhere;background:#fff;border-radius:8px;padding:9px 10px;font-size:13px;font-weight:800;text-decoration:none;display:block}.export-link.failed{color:var(--danger)}.export-link.compact{max-width:100%;display:inline-block}.auth-shell{isolation:isolate;background:radial-gradient(at 18% 24%,#2d8b7c1a,#0000 35%),radial-gradient(at 78% 70%,#d479340f,#0000 31%),linear-gradient(135deg,#e8eee7 0%,#fbf8f2 48%,#edf3ef 100%);place-items:center;min-height:100dvh;padding:clamp(20px,5vw,56px);display:grid;position:relative;overflow:hidden}.auth-scene{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.auth-scene-paper{opacity:.2;background:radial-gradient(at 22% 28%,#2d8b7c1a,#0000 34%),radial-gradient(at 80% 72%,#d4793414,#0000 32%),linear-gradient(90deg,#fffdf97a,#fffdf9b3 48%,#fffbf680);position:absolute;inset:-6%;transform:translate(0,0)}.auth-scene-paper:after{content:"";background:linear-gradient(90deg,#f3eee670,#fffdf900 24% 76%,#f3eee670),radial-gradient(#fffdf900,#f3eee66b 78%);position:absolute;inset:0}.auth-pond-art{filter:saturate(1.3)contrast(1.18)brightness(.97);opacity:.98;transform-origin:50% 58%;will-change:transform;background:url(/menu-assets/jiangnan-login-spread.webp) bottom/cover no-repeat;position:absolute;inset:-8% -7%;transform:translate(0,0)scale(1.015)}.auth-pond-art:before{background:inherit;content:"";filter:contrast(1.38)saturate(1.24);mix-blend-mode:multiply;opacity:.3;position:absolute;inset:0}.auth-pond-art:after{content:"";background:radial-gradient(at 50% 48%,#fffdf92e,#fffdf90f 32%,#fffdf900 58%),linear-gradient(90deg,#f5efe51f,#fffdf900 26% 73%,#f5efe51f);position:absolute;inset:0}.auth-water-surface{opacity:.5;transform-origin:50% 85%;will-change:transform;background:linear-gradient(#fffdf900 0%,#e2f0ea38 28%,#87beaf21 64%,#faeccc1a 100%),radial-gradient(at 20% 78%,#2d8b7c1f,#2d8b7c00 56%),radial-gradient(at 82% 78%,#d4793417,#d4793400 60%);height:clamp(176px,31vh,286px);position:absolute;bottom:-4%;left:-16%;right:-16%;transform:translate(0,0);-webkit-mask-image:linear-gradient(#0000 0%,#00000052 16%,#000 42% 86%,#0000 100%);mask-image:linear-gradient(#0000 0%,#00000052 16%,#000 42% 86%,#0000 100%)}.auth-water-surface:before,.auth-water-surface:after{content:"";pointer-events:none;position:absolute;inset:0}.auth-water-surface:before{filter:blur(16px);opacity:.64;background:radial-gradient(at 16% 44%,#fffdf957,#0000 44%),radial-gradient(at 46% 62%,#67b7a81f,#0000 48%),radial-gradient(at 78% 48%,#fffdf947,#0000 42%)}.auth-water-surface:after{filter:blur(24px);opacity:.52;background:linear-gradient(90deg,#fffdf900,#fffdf933 36%,#fffdf914 50%,#fffdf900 72%),radial-gradient(at 50% 78%,#2d8b7c14,#0000 62%)}.auth-wash{filter:blur(18px);opacity:.74;will-change:transform;background:radial-gradient(#2d8b7c29,#2d8b7c00);border-radius:999px;position:absolute;transform:translate(0,0)}.auth-wash-left{width:310px;height:180px;top:20%;left:8%}.auth-wash-right{background:radial-gradient(#d479341f,#d4793400);width:280px;height:170px;bottom:16%;right:8%}.auth-layout{z-index:1;background:linear-gradient(#fffefae6,#fffbf6d6),#fffdf9e0;border:1px solid #d9cfc2ad;border-radius:8px;grid-template-columns:minmax(240px,.78fr) minmax(380px,1fr);align-items:stretch;width:min(100%,880px);min-height:404px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 68px #4b37231a,inset 0 1px #ffffffbd}.auth-layout:before{z-index:2;content:"";pointer-events:none;background:linear-gradient(90deg,#2d8b7c00,#2d8b7c80,#d479345c,#2d8b7c00);height:2px;position:absolute;top:0;left:0;right:0}.auth-brand{min-width:0;color:var(--brown);text-shadow:0 1px #fffdf9b8;background:linear-gradient(135deg,#fffdf95c,#f0faf670),linear-gradient(#fffdf929,#fffaf447);border-right:1px solid #d9cfc294;align-content:center;gap:20px;padding:38px 36px;display:grid;position:relative;overflow:hidden}.auth-brand-copy{z-index:1;gap:8px;display:grid;position:relative}.auth-brand-copy:after{content:"";background:linear-gradient(90deg,#2d8b7c57,#d479342e,#2d8b7c00);width:132px;height:1px;margin-top:8px;display:block}.auth-brand-kicker{color:#6f746f;border-bottom:1px solid #d479343d;width:fit-content;margin-bottom:8px;padding-bottom:6px;font-size:12px;font-weight:820;display:inline-flex}.auth-brand-copy strong{font-size:34px;line-height:1.08}.auth-brand-copy>span:not(.auth-brand-kicker){color:#5f554b;font-size:15px;font-weight:800}.auth-brand-art{opacity:.2;pointer-events:none;transform-origin:50% 70%;will-change:transform;width:108px;height:144px;position:absolute;bottom:28px;right:38px;transform:rotate(-2deg)translate(0,0)}.auth-menu-sheet{background:linear-gradient(#fffdf9b8,#f6efe580),linear-gradient(90deg,#2d8b7c14,#0000 28%);border:1px solid #d4793457;border-radius:3px;display:block;position:absolute;inset:0;box-shadow:inset 0 0 0 7px #fffdf95c,0 18px 28px #4b372314}.auth-menu-sheet:before{content:"";border:1px solid #d4793433;position:absolute;inset:12px}.auth-menu-sheet:after{content:"";background:linear-gradient(#2d8b7c00,#2d8b7c38,#2d8b7c00);width:1px;position:absolute;top:18px;bottom:18px;left:27px}.auth-menu-seal{background:radial-gradient(circle,#2d8b7c1a,#0000 62%);border:1px solid #2d8b7c61;border-radius:50%;width:18px;height:18px;position:absolute;top:26px;right:24px}.auth-menu-line{background:linear-gradient(90deg,#7b452d6b,#7b452d0d);height:1px;display:block;position:absolute;left:42px}.auth-menu-title-line{background:linear-gradient(90deg,#7b452d80,#d479341a);width:46px;top:54px}.auth-menu-line-one{width:58px;top:78px}.auth-menu-line-two{width:42px;top:98px}.auth-menu-line-three{width:54px;top:118px}.auth-menu-line-four{width:34px;top:138px}.auth-panel{background:#fffdf9b8;align-content:center;min-width:0;padding:40px 48px;display:grid;position:relative}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.auth-panel{-webkit-backdrop-filter:blur(12px)saturate(1.02);backdrop-filter:blur(12px)saturate(1.02)}}.auth-head h1{color:var(--brown);margin:0;font-size:24px;line-height:1.2}.auth-head p{color:#6f665d;margin:6px 0 20px;font-size:13px;font-weight:760}.auth-form{gap:13px;display:grid}.auth-field{gap:7px;display:grid}.auth-field label{color:#4e463e;font-size:12px;font-weight:800}.auth-field input{border:1px solid var(--line);width:100%;color:var(--ink);min-height:50px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);background:#ffffffd1;border-radius:8px;outline:none;padding:11px 13px;box-shadow:inset 0 1px #ffffffb8}.auth-field input::placeholder{color:#9b9288}.auth-field input:focus{outline-offset:2px;background:#fff;border-color:#2d8b7c80;outline:2px solid #1f766fa8;box-shadow:0 0 0 3px #2d8b7c1a,inset 0 1px #ffffffb8}.auth-password-control{position:relative}.auth-password-control input{padding-right:50px}.auth-password-toggle{color:#7a7167;cursor:pointer;width:34px;height:34px;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.auth-password-toggle:hover{color:var(--teal);background:#2d8b7c14}.auth-password-toggle:focus-visible{outline-offset:2px;outline:2px solid #1f766fa8}.auth-password-toggle svg{stroke-width:2px;width:18px;height:18px}.auth-submit{min-height:50px;margin-top:8px;box-shadow:0 9px 18px #1f766f1f,inset 0 1px #ffffff2e}.auth-error{color:var(--danger);margin:0;font-size:13px;font-weight:800}@media screen and (max-width:760px){.studio-app-shell{display:block}.studio-shell-sider{display:none}.studio-shell-main{display:block}.studio-top-bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;padding:10px 12px}.studio-mobile-menu-button{display:inline-flex}.studio-top-bar-heading h1{font-size:19px}.studio-top-bar-heading p{font-size:12px}.studio-top-actions{gap:6px}.studio-tour-trigger{width:42px;height:42px;min-height:42px;padding:5px}.studio-tour-trigger span{display:none}.studio-account-trigger{width:42px;max-width:46px;height:42px;padding:5px}.studio-account-copy,.studio-account-caret{display:none}.studio-shell-content,.studio-mobile-nav-sheet .studio-side-nav{padding:12px}.studio-mobile-nav-sheet .studio-side-link{min-height:48px}.route-loading-page{padding:12px}.route-loading-target-workbench,.route-loading-target-buffet{padding:0}.route-loading-page .route-loading-shell{min-height:calc(100vh - 24px)}.route-loading-shell{padding:12px}.route-loading-topbar{grid-template-columns:1fr}.route-loading-section{overflow-x:auto}.route-loading-workbench{grid-template-columns:1fr;overflow:visible}.busy-overlay{align-items:end;padding:10px}.busy-dialog{width:100%;max-height:calc(100dvh - 20px);overflow:auto}.busy-header{grid-template-columns:auto minmax(0,1fr);padding:20px 16px 12px}.busy-pill{grid-column:1/-1;justify-self:start}.busy-progress-row,.busy-content{padding-left:16px;padding-right:16px}.busy-steps{flex-direction:column;gap:7px}.busy-step{width:100%;min-height:38px}.busy-steps-compact{flex-wrap:wrap}.route-loading-table,.history-table-skeleton{min-width:680px}.preview-toolbar{align-items:stretch}.preview-format-toolbar{grid-template-columns:1fr;align-items:stretch}.preview-format-primary{grid-template-columns:1fr}.preview-format-heading strong{max-width:none}.preview-format-controls{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;display:grid}.preview-format-select,.preview-chapter-spacing{width:auto}.preview-format-stepper{justify-content:start}.preview-chapter-spacing,.preview-history-actions{grid-column:1/-1}.preview-history-actions{justify-content:flex-end}.preview-action-stack{align-items:stretch;width:100%}.export-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;width:100%;display:grid}.export-actions .primary-button,.export-actions .secondary-button{width:100%}.export-save-action,.sample-preview-action{grid-column:1/-1}.export-hint{max-width:none}.workspace-grid,.auth-layout,.two-fields,.editable-title-row,.dish-insert-grid,.generate-actions{grid-template-columns:1fr}.workflow-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{place-items:start center;padding:clamp(24px,6vh,44px) 12px 12px}.auth-scene-paper{opacity:.06;inset:-10%}.auth-pond-art{filter:saturate(1.3)contrast(1.18)brightness(.9);opacity:1;background-image:url(/menu-assets/jiangnan-login-page.webp);background-position:bottom;background-size:118%;inset:-6% -7%}.auth-pond-art:before{opacity:.5}.auth-pond-art:after{background:linear-gradient(#dee8e10a,#fffdf900 42%,#dee8e10a),linear-gradient(90deg,#dbe5de0d,#fffdf900 20% 80%,#dbe5de0d)}.auth-water-surface{opacity:.3;height:clamp(190px,32vh,280px);bottom:-2%;left:-42%;right:-42%}.auth-wash-left{width:240px;height:160px;top:12%;left:-24%}.auth-wash-right{width:230px;height:150px;bottom:8%;right:-22%}.auth-layout{align-content:center;width:100%;min-height:0;overflow:hidden}.auth-brand{border-bottom:1px solid #d9cfc294;border-right:0;gap:7px;padding:20px 20px 14px}.auth-brand-copy strong{font-size:26px}.auth-brand-kicker{margin-bottom:5px;padding-bottom:5px;font-size:11px}.auth-brand-copy>span:not(.auth-brand-kicker){font-size:14px}.auth-brand-copy:after{width:104px;margin-top:8px}.auth-brand-art{opacity:.16;width:86px;height:114px;bottom:-18px;right:14px}.auth-panel{padding:20px 20px 24px}.auth-head p{margin-bottom:16px}.auth-field input{min-height:44px}.auth-submit{min-height:46px;margin-top:5px}.tuning-grid,.quality-panel{grid-template-columns:1fr}.version-strip{grid-template-columns:1fr;align-items:stretch}.version-actions{justify-content:stretch;display:grid}.version-actions .secondary-button{width:100%}.generation-notice{flex-direction:column;align-items:stretch}.generation-regenerate-action{justify-content:center;width:100%}.workspace-grid{display:grid}.templates-layout{grid-template-columns:1fr}.background-asset-grid{min-height:0;max-height:none}.templates-preview-header{display:grid}.templates-preview-header .ant-btn{justify-content:center;width:100%}.templates-preview-grid{grid-template-columns:1fr}.templates-menu-effect .menu-spread{--menu-page-preview-width:min(330px, 86vw)}.template-series-control,.template-source-control,.template-status-control,.background-group-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.background-primary-filters,.background-advanced-filters,.background-detail-meta,.route-loading-templates-library .route-loading-sidebar-list{grid-template-columns:1fr}.template-color-filter{grid-template-columns:repeat(4,minmax(0,1fr))}.tuning-header{display:grid}.tuning-header .primary-button{width:100%}.dish-table{max-height:none}.editable-dish-row{padding:9px}.section-order-editor{grid-template-columns:1fr}.dish-row-main{grid-template-columns:40px minmax(0,1fr) 30px;align-items:end}.dish-category-field{grid-column:2/4}.dish-fact-remove-button{grid-area:1/3}.dish-row-details{grid-template-columns:1fr;padding-left:48px}.dish-row-details small{padding-bottom:0}.error-bar{display:grid;bottom:12px;left:12px;right:12px}.error-actions{justify-content:stretch}.error-actions button{flex:86px}.background-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.background-generate-actions{grid-template-columns:72px minmax(0,1fr)}.background-generate-actions .ghost-button{grid-column:1/-1}.background-preview-modal{max-width:calc(100vw - 20px);margin:10px auto}.background-preview-modal .ant-modal-content{max-height:calc(100dvh - 20px);overflow:auto}.background-preview-overlay{align-items:start;padding:10px;overflow:auto}.background-preview-dialog{width:100%;max-height:none;padding:14px}.background-preview-content{grid-template-columns:1fr;max-height:none}.background-preview-menu .menu-spread{--menu-page-preview-width:min(330px, 86vw)}.preview-panel{padding:10px;overflow:hidden}.preview-toolbar{margin:-10px -10px 12px;padding:10px}.preview-scroll-area{scroll-snap-type:x proximity;scroll-padding:10px}.menu-spread[data-page-count="2"]{justify-content:start}.menu-spread[data-page-count="2"] .menu-page{scroll-snap-align:start}}
