.dish-card[data-v-eb9f341c]{text-align:left;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--panel);width:100%;padding:14px 14px 12px;transition:border-color .15s,box-shadow .15s;display:block}.dish-card[data-v-eb9f341c]:hover{border-color:#cdbfae}.dish-card.selected[data-v-eb9f341c]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.head[data-v-eb9f341c]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cat[data-v-eb9f341c]{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.fresh[data-v-eb9f341c]{color:var(--muted);font-size:12px}.fresh.delicate[data-v-eb9f341c]{color:#1e6fa8;font-weight:600}.name[data-v-eb9f341c]{margin-bottom:4px;font-size:16px;font-weight:700}.chain[data-v-eb9f341c]{color:#b3a99e;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.facts[data-v-eb9f341c]{color:var(--muted);align-items:baseline;gap:10px;font-size:13px;display:flex}.price[data-v-eb9f341c]{color:var(--ink);font-size:16px;font-weight:700}.times[data-v-eb9f341c]{text-align:right;flex:1}.pick[data-v-eb9f341c]{border-top:1px dashed var(--border);color:var(--muted);margin-top:10px;padding-top:8px;font-size:13px;font-weight:600}.selected .pick[data-v-eb9f341c]{color:var(--accent)}.panel[data-v-830adc30]{flex-direction:column;gap:12px;padding:16px;display:flex;position:sticky;top:76px}h2[data-v-830adc30]{color:var(--accent-deep);font-size:15px}.goal-edit[data-v-830adc30]{border:1px solid var(--border);background:#fdfbf7;border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.goal-edit label[data-v-830adc30]{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.goal-edit input[data-v-830adc30]{border:1px solid var(--border);width:90px;height:32px;font:inherit;border-radius:8px;padding:0 8px;font-weight:700}.goal-edit input[data-v-830adc30]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.goal-edit em[data-v-830adc30]{color:var(--muted);font-size:12px;font-style:normal}.row[data-v-830adc30]{justify-content:space-between;align-items:baseline;display:flex}.cost[data-v-830adc30]{font-size:18px;font-weight:700}.cost em[data-v-830adc30]{color:var(--muted);font-size:13px;font-style:normal}.cost.warn[data-v-830adc30]{color:#b45309}.cost.over[data-v-830adc30]{color:var(--warn)}.bar[data-v-830adc30]{background:#efe7dc;border-radius:999px;height:10px;overflow:hidden}.bar i[data-v-830adc30]{background:var(--ok);height:100%;transition:width .2s;display:block}.bar.warn i[data-v-830adc30]{background:#d9822b}.bar.over i[data-v-830adc30]{background:var(--warn)}.bar.slim[data-v-830adc30]{height:6px;position:relative}.bar.slim i[data-v-830adc30]{background:#b8860b}.bar.slim.warn i[data-v-830adc30]:first-child{background:#d9822b}.bar.slim.over i[data-v-830adc30]:first-child{background:var(--warn)}.bar.slim .tick[data-v-830adc30]{background:var(--ink);opacity:.55;width:2px;position:absolute;top:-2px;bottom:-2px}.q[data-v-830adc30]{border:1px solid var(--border);width:14px;height:14px;color:var(--muted);vertical-align:1px;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;font-size:10px;font-style:normal;display:inline-flex}.hint[data-v-830adc30]{color:var(--muted);margin:0;font-size:13px}.hint.danger[data-v-830adc30]{color:var(--warn);font-weight:600}.hint.amber[data-v-830adc30]{color:#b45309;font-weight:600}.hint.dim[data-v-830adc30]{color:#b3a99e}.hint.center[data-v-830adc30]{text-align:center}.hands-on[data-v-830adc30]{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.hands-on.warn[data-v-830adc30]{background:#fdf6ec;border-color:#e8c9a8}.hands-on.danger[data-v-830adc30]{background:#fdf1ec;border-color:#eec3b2}.chosen h3[data-v-830adc30]{font-size:14px}.head-row[data-v-830adc30]{align-items:center}.clear[data-v-830adc30]{border-radius:999px;padding:2px 10px;font-size:12px}.empty[data-v-830adc30]{color:var(--muted);margin:4px 0;font-size:13px}.chosen ul[data-v-830adc30]{max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.chosen li[data-v-830adc30]{border-bottom:1px dashed var(--border);align-items:center;gap:8px;padding:5px 0;font-size:14px;display:flex}.chosen li .n[data-v-830adc30]{flex:1}.chosen li .p[data-v-830adc30]{color:var(--muted)}.rm[data-v-830adc30]{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);border-radius:50%;font-size:15px;line-height:1}.go[data-v-830adc30]{width:100%}.select-layout[data-v-f2240940]{grid-template-columns:1fr 300px;align-items:start;gap:20px;display:grid}.tabs[data-v-f2240940]{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tab[data-v-f2240940]{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:999px;padding:7px 14px;font-weight:600}.tab.active[data-v-f2240940]{background:var(--accent);border-color:var(--accent);color:#fff}.tab em[data-v-f2240940]{opacity:.75;margin-left:2px;font-size:12px;font-style:normal}.cards[data-v-f2240940]{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.side[data-v-f2240940]{min-width:0}@media (width<=900px){.select-layout[data-v-f2240940]{grid-template-columns:1fr}.side[data-v-f2240940]{position:static}}.drawer[data-v-b6c66c21]{flex-direction:column;gap:14px;padding:14px;font-size:14px;display:flex;position:sticky;top:76px}h2[data-v-b6c66c21]{color:var(--accent-deep);font-size:15px}h3[data-v-b6c66c21]{color:var(--muted);margin-bottom:6px;font-size:13px}.empty[data-v-b6c66c21]{color:var(--muted);margin:0;font-size:13px}ul[data-v-b6c66c21]{max-height:300px;margin:0;padding:0;list-style:none;overflow:auto}li[data-v-b6c66c21]{border-bottom:1px dashed var(--border);align-items:center;gap:7px;padding:4px 0;display:flex}.dot[data-v-b6c66c21]{border-radius:3px;flex:none;width:10px;height:10px}li .n[data-v-b6c66c21]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.flake[data-v-b6c66c21]{color:#1e6fa8;font-size:11px;font-style:normal}li .p[data-v-b6c66c21]{color:var(--muted);font-size:13px}.rm[data-v-b6c66c21]{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:6px;font-size:12px;font-weight:700}.more-group[data-v-b6c66c21]{margin-bottom:8px}.cat[data-v-b6c66c21]{color:var(--muted);font-size:12px}.chips[data-v-b6c66c21]{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.chip[data-v-b6c66c21]{border:1px solid var(--border);color:var(--ink);background:#fff;border-radius:999px;padding:3px 9px;font-size:12px}.chip[data-v-b6c66c21]:hover{border-color:var(--accent);color:var(--accent)}.back[data-v-b6c66c21]{width:100%}.gantt-card[data-v-3f6a4592]{-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;padding:12px;display:flex}.ctx-bar[data-v-3f6a4592]{background:var(--accent-soft);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.ctx-bar .range[data-v-3f6a4592]{color:var(--muted);font-variant-numeric:tabular-nums}.ctx-bar .spacer[data-v-3f6a4592]{flex:1}.tb[data-v-3f6a4592]{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:38px;min-height:32px;padding:0 10px;font-size:13px;font-weight:700}.tb[data-v-3f6a4592]:hover{border-color:var(--accent);color:var(--accent)}.tb.danger[data-v-3f6a4592]{color:var(--warn)}.scroll[data-v-3f6a4592]{border:1px solid var(--border);background:#fdfbf7;border-radius:10px;overflow-x:auto}.canvas[data-v-3f6a4592],.axis[data-v-3f6a4592]{position:relative}.tick[data-v-3f6a4592]{pointer-events:none;position:absolute;top:0;bottom:0}.tick i[data-v-3f6a4592]{background:#d8cec2;width:1px;height:6px;position:absolute;bottom:0;left:0}.tick.major i[data-v-3f6a4592]{background:#b8ac9e;height:10px}.tick span[data-v-3f6a4592]{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;top:2px;left:3px}.tick.limit span[data-v-3f6a4592]{color:var(--warn);font-weight:700}.tick.limit i[data-v-3f6a4592]{background:#f0c5b4;width:1.5px;height:100%}.over-zone[data-v-3f6a4592]{background:#d843150f;border-left:1.5px dashed #e8a188;position:absolute;bottom:0}.over-zone span[data-v-3f6a4592]{color:#cf7048;font-size:10px;position:absolute;top:4px;left:6px}.lane[data-v-3f6a4592]{background-image:linear-gradient(#0000000a 1px,#0000 1px);background-size:100% 36px;border-radius:8px;position:absolute}.lane.hands[data-v-3f6a4592]{background-color:#c23b2209}.lane.auto[data-v-3f6a4592]{background-color:#2e7d320e}.lane-tag[data-v-3f6a4592]{border:1px solid var(--border);color:var(--ink);z-index:3;background:#ffffffeb;border-radius:999px;margin-left:6px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block;position:sticky;left:6px}.lane-tag em[data-v-3f6a4592]{color:var(--muted);margin-left:4px;font-size:10px;font-style:normal;font-weight:400}.task-bar[data-v-3f6a4592]{color:#fff;cursor:grab;touch-action:none;z-index:4;border-radius:6px;align-items:center;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #00000026}.task-bar.dragging[data-v-3f6a4592]{cursor:grabbing;opacity:.9;z-index:6}.task-bar.violating[data-v-3f6a4592]{box-shadow:0 0 0 2.5px var(--warn), inset 0 0 0 1px #0003}.task-bar.over[data-v-3f6a4592]{box-shadow:0 0 0 2px #d9822b,inset 0 0 0 1px #0003}.task-bar.cold[data-v-3f6a4592]{box-shadow:0 0 0 2.5px #1e6fa8,inset 0 0 0 1px #0003}.bar-snow[data-v-3f6a4592]{font-size:11px;line-height:1;position:absolute;right:3px}.task-bar.selected[data-v-3f6a4592]{outline-offset:-4px;outline:2px solid #fff}.bar-label[data-v-3f6a4592]{white-space:nowrap;text-shadow:0 1px 1px #00000059;padding:0 5px;font-size:11px;font-weight:600}.task-bar.preview[data-v-3f6a4592]{opacity:.45;pointer-events:none;border:1.5px dashed #fff}.arrows[data-v-3f6a4592]{pointer-events:none;z-index:5;position:absolute;top:0;left:0}.staging[data-v-3f6a4592]{border:1.5px dashed #d8cec2;border-radius:10px;padding:10px 12px}.staging-head[data-v-3f6a4592]{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:700}.staging-head em[data-v-3f6a4592]{margin-left:8px;font-style:normal;font-weight:400}.staging-body[data-v-3f6a4592]{flex-direction:column;gap:6px;display:flex}.staged-dish[data-v-3f6a4592]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot[data-v-3f6a4592]{border-radius:3px;flex:none;width:10px;height:10px}.dish-name[data-v-3f6a4592]{min-width:96px;font-size:13px;font-weight:600}.flake[data-v-3f6a4592]{color:#1e6fa8;margin-left:4px;font-size:11px;font-style:normal}.chips[data-v-3f6a4592]{flex-wrap:wrap;gap:6px;display:flex}.chip[data-v-3f6a4592]{touch-action:none;cursor:grab;background:#fff;border:1.5px solid;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}.chip[data-v-3f6a4592]:active{cursor:grabbing}.all-placed[data-v-3f6a4592]{color:var(--ok);margin:0;font-size:14px;font-weight:600}.empty[data-v-3f6a4592]{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:40px;display:flex}.ghost[data-v-3f6a4592]{z-index:100;pointer-events:none;background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;position:fixed;transform:translate(-50%,-130%)}.panel[data-v-783d13e6]{flex-direction:column;gap:12px;padding:14px;display:flex;position:sticky;top:76px}h2[data-v-783d13e6]{color:var(--accent-deep);font-size:15px}h3[data-v-783d13e6]{color:var(--muted);margin:0 0 6px;font-size:13px}.metrics[data-v-783d13e6]{flex-direction:column;gap:8px;display:flex}.metric[data-v-783d13e6]{border:1px solid var(--border);background:#fdfbf7;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px;padding:8px 10px;display:flex}.metric .k[data-v-783d13e6]{color:var(--muted);font-size:13px}.metric .v[data-v-783d13e6]{font-size:16px;font-weight:700}.metric em[data-v-783d13e6]{color:var(--muted);width:100%;font-size:12px;font-style:normal;font-weight:400}.metric.danger[data-v-783d13e6]{background:#fdf1ec;border-color:#eec3b2}.metric.danger .v[data-v-783d13e6]{color:var(--warn)}.metric.warn[data-v-783d13e6]{background:#fdf6ec;border-color:#e8c9a8}.metric.warn .v[data-v-783d13e6]{color:#b45309}.delicate[data-v-783d13e6]{background:#f2f8fc;border:1px solid #bcd9ea;border-radius:10px;padding:8px 10px}.delicate.alert[data-v-783d13e6]{background:#e8f2fb;border-color:#a8c8e8}.delicate h3[data-v-783d13e6]{color:#1e6fa8}.delicate ul[data-v-783d13e6]{flex-direction:column;gap:5px;max-height:170px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.delicate li[data-v-783d13e6]{gap:8px;font-size:12.5px;line-height:1.45;display:flex}.delicate li .n[data-v-783d13e6]{flex:none;font-weight:700}.delicate li.partial .s[data-v-783d13e6]{color:var(--muted)}.delicate li.cold .s[data-v-783d13e6]{color:#1e6fa8;font-weight:600}.delicate li.ok .s[data-v-783d13e6]{color:var(--ok)}.problems ul[data-v-783d13e6],.warnings ul[data-v-783d13e6]{flex-direction:column;gap:6px;max-height:200px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.problems li[data-v-783d13e6]{border-radius:8px;padding:6px 9px;font-size:13px;line-height:1.45}li.bad[data-v-783d13e6]{color:#a2401f;background:#fdf1ec}.good[data-v-783d13e6]{color:var(--ok);margin:0;font-size:13px;font-weight:600}.warnings[data-v-783d13e6]{background:#fdf6ec;border:1px solid #e8c9a8;border-radius:10px;padding:8px 10px}.warnings h3[data-v-783d13e6]{color:#b45309}.warnings li[data-v-783d13e6]{color:#92400e;font-size:13px;line-height:1.45}.submit[data-v-783d13e6]{width:100%}.tip[data-v-783d13e6]{color:#b3a99e;margin:0;font-size:12px}.plan-layout[data-v-0c6e164d]{grid-template-columns:225px minmax(0,1fr) 275px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.plan-layout[data-v-0c6e164d]{grid-template-columns:200px minmax(0,1fr)}.side[data-v-0c6e164d]{grid-column:1/-1}}@media (width<=800px){.plan-layout[data-v-0c6e164d]{grid-template-columns:1fr}}.review[data-v-b4c04adf]{flex-direction:column;gap:16px;display:flex}.toolbar[data-v-b4c04adf]{flex-wrap:wrap;align-items:center;gap:14px;padding:12px 16px;display:flex}.name[data-v-b4c04adf]{align-items:center;gap:8px;font-weight:600;display:flex}.name input[data-v-b4c04adf]{border:1px solid var(--border);width:180px;height:38px;font:inherit;border-radius:8px;padding:0 12px}.name input[data-v-b4c04adf]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.date[data-v-b4c04adf]{color:var(--muted)}.spacer[data-v-b4c04adf]{flex:1}.sheet-wrap[data-v-b4c04adf]{justify-content:center;padding:16px;display:flex}canvas.sheet[data-v-b4c04adf]{background:#fff;width:min(720px,100%);height:auto;box-shadow:0 2px 14px #2b26221a}.recap[data-v-b4c04adf]{flex-direction:column;gap:14px;display:flex}.metric-grid[data-v-b4c04adf]{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.metric[data-v-b4c04adf]{flex-direction:column;gap:2px;padding:14px 16px;display:flex}.metric span[data-v-b4c04adf]{color:var(--muted);font-size:13px}.metric b[data-v-b4c04adf]{font-size:26px}.metric em[data-v-b4c04adf]{color:var(--muted);font-size:12px;font-style:normal}.metric.danger b[data-v-b4c04adf]{color:var(--warn)}.metric.warn b[data-v-b4c04adf]{color:#b45309}.metric.good b[data-v-b4c04adf]{color:var(--ok)}.box[data-v-b4c04adf]{padding:14px 18px}.box h3[data-v-b4c04adf]{margin-bottom:8px;font-size:15px}.box p[data-v-b4c04adf]{margin:4px 0;font-size:14px}.chain[data-v-b4c04adf]{color:var(--accent-deep);font-weight:600;line-height:1.7}.cold p[data-v-b4c04adf]{color:#a2401f}.beyond[data-v-b4c04adf]{background:#fdf6ec;border-color:#e8c9a8}.beyond h3[data-v-b4c04adf]{color:#b45309}.beyond p[data-v-b4c04adf]{color:#92400e}.tip p[data-v-b4c04adf]{color:var(--ink)}.questions ol[data-v-b4c04adf]{flex-direction:column;gap:6px;margin:0;padding-left:22px;font-size:14px;line-height:1.6;display:flex}@media (width<=800px){.metric-grid[data-v-b4c04adf]{grid-template-columns:repeat(2,1fr)}}.topbar[data-v-c24fbaa8]{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);background:#faf6f0f0;align-items:center;gap:28px;padding:12px 24px;display:flex;position:sticky;top:0}.brand[data-v-c24fbaa8]{color:var(--accent-deep);white-space:nowrap;font-size:17px;font-weight:700}.steps[data-v-c24fbaa8]{gap:8px;margin:0;padding:0;list-style:none;display:flex}.steps li[data-v-c24fbaa8]{color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:600;display:flex}.steps li .num[data-v-c24fbaa8]{background:var(--border);width:22px;height:22px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.steps li.active[data-v-c24fbaa8]{background:var(--accent-soft);color:var(--accent-deep)}.steps li.active .num[data-v-c24fbaa8]{background:var(--accent);color:#fff}.steps li.done[data-v-c24fbaa8]{color:var(--ok)}.steps li.done .num[data-v-c24fbaa8]{background:var(--ok-soft);color:var(--ok)}.main[data-v-c24fbaa8]{max-width:1240px;margin:0 auto;padding:20px 24px 48px}.placeholder[data-v-c24fbaa8]{text-align:center;color:var(--muted);padding:48px}:root{--bg:#faf6f0;--panel:#fff;--ink:#2b2622;--muted:#8a8078;--accent:#c23b22;--accent-deep:#9c2f1b;--accent-soft:#faece8;--ok:#2e7d32;--ok-soft:#e8f2e8;--warn:#d84315;--border:#e8e0d6;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{margin:0}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}.btn{border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 20px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-deep)}.btn-primary:disabled{color:#fff;cursor:not-allowed;background:#d9cfc5}.btn-ghost{border:1px solid var(--border);background:var(--panel);color:var(--muted)}.btn-ghost:hover{color:var(--ink)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}@media print{@page{size:A4 portrait;margin:8mm}body.print-sheet *{visibility:hidden!important}body.print-sheet canvas.sheet{z-index:999;width:194mm;height:auto;position:fixed;top:0;left:0;visibility:visible!important;box-shadow:none!important}}
