/* ==========================================================================
   家宴菜品用量规划器 · 独立设计「年夜饭菜单笺」
   浅色 = 朱红请柬 + 鎏金 + 宣纸；深色 = 夜宴朱红 + 金箔
   所有样式限定在 .bdp 作用域内；深浅双主题由 html[data-theme] 驱动
   ========================================================================== */
.bdp{
  --bg:#faf5ec; --bg2:#f3ebdc;
  --card:#fffdf9; --card2:#f9f2e6;
  --ink:#241c17; --sub:#6b5a4d; --faint:#9c8878;
  --line:#e7dbc8; --line2:#f0e7d8; --line-strong:#d2c0a6;
  --pri:#a8231d; --pri-2:#c8382f; --pri-soft:#fbe8e5; --pri-ink:#8a1c17;
  --gold:#b8901f; --gold-2:#dcb44b; --gold-soft:#fbf1d6; --gold-line:#ecdcab;
  --green:#3d6b52; --green-soft:#e6efe8;
  --ok:#3d6b52; --ok-soft:#e6efe8;
  --warn:#a86a12; --warn-soft:#fbf1d6;
  --bad:#a8231d; --bad-soft:#fbe8e5;
  --r:14px; --r-sm:9px; --r-lg:22px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --num:"DIN Alternate","Bahnschrift","Segoe UI Variable Text",ui-sans-serif,system-ui,sans-serif;
  --shadow-sm:0 1px 2px rgba(36,28,23,.05),0 6px 18px rgba(36,28,23,.05);
  --shadow:0 2px 6px rgba(36,28,23,.07),0 18px 44px rgba(36,28,23,.10);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.8;
  background:
    radial-gradient(760px 380px at 94% -160px, rgba(168,35,29,.08), transparent 62%),
    radial-gradient(660px 340px at -4% 280px, rgba(184,144,31,.09), transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 36px, rgba(36,28,23,.022) 36px 37px),
    var(--bg);
  padding:0 16px 64px;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
:root[data-theme="dark"] .bdp{
  --bg:#160f0d; --bg2:#1c1411;
  --card:#1e1512; --card2:#251b16;
  --ink:#f5ece1; --sub:#c9b5a3; --faint:#9d8676;
  --line:#3a2b22; --line2:#31241d; --line-strong:#5c4535;
  --pri:#e2695e; --pri-2:#f0877c; --pri-soft:rgba(226,105,94,.13); --pri-ink:#f0877c;
  --gold:#dfb757; --gold-2:#f0d287; --gold-soft:rgba(223,183,87,.13); --gold-line:rgba(223,183,87,.32);
  --green:#7fbd93; --green-soft:rgba(127,189,147,.13);
  --ok:#7fbd93; --ok-soft:rgba(127,189,147,.13);
  --warn:#dfb757; --warn-soft:rgba(223,183,87,.13);
  --bad:#ef8579; --bad-soft:rgba(239,133,121,.13);
  --shadow-sm:0 1px 2px rgba(0,0,0,.34),0 8px 20px rgba(0,0,0,.24);
  --shadow:0 2px 6px rgba(0,0,0,.36),0 20px 48px rgba(0,0,0,.40);
}
.bdp *{box-sizing:border-box;}
.bdp b,.bdp strong{font-weight:700;color:var(--ink);}
.bdp p{margin:0;}
.bdp ul,.bdp ol{margin:0;padding:0;}
.bdp-wrap{max-width:1200px;margin:0 auto;}

/* ---------------- 面包屑 ---------------- */
.bdp-crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px;padding:13px 0 11px;font-size:12.6px;color:var(--faint);border-bottom:1px solid var(--line);}
.bdp-crumb a{color:var(--sub);text-decoration:none;font-weight:600;}
.bdp-crumb a:hover{color:var(--pri);}
.bdp-crumb i{font-style:normal;opacity:.5;}
.bdp-crumb span{color:var(--ink);font-weight:700;}

/* ---------------- 首屏 ---------------- */
.bdp-hero{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:30px;align-items:start;
  padding:32px 34px 30px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:
    radial-gradient(520px 250px at 4% -40%, rgba(168,35,29,.10), transparent 66%),
    radial-gradient(460px 230px at 98% -12%, rgba(184,144,31,.13), transparent 62%),
    linear-gradient(168deg,var(--card) 0%,var(--card2) 100%);
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .bdp-hero{
  background:
    radial-gradient(520px 250px at 4% -40%, rgba(226,105,94,.12), transparent 66%),
    radial-gradient(460px 230px at 98% -12%, rgba(223,183,87,.10), transparent 62%),
    linear-gradient(168deg,#241713 0%,#1a1210 100%);
}
.bdp-hero::after{
  content:"";position:absolute;right:-140px;top:-150px;width:340px;height:340px;border-radius:50%;
  border:1px dashed var(--gold-line);pointer-events:none;
}
.bdp-hero-l{position:relative;z-index:1;align-self:center;}
.bdp-kicker{
  display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;letter-spacing:.05em;
  color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:999px;padding:5px 14px;
}
.bdp-kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold-2);}
.bdp-hero h1{
  margin:14px 0 12px;font-family:var(--serif);font-size:clamp(26px,3.6vw,40px);
  font-weight:800;line-height:1.3;letter-spacing:.02em;
}
.bdp-hero h1 em{
  font-style:normal;color:var(--pri);
  background:linear-gradient(transparent 68%,rgba(168,35,29,.16) 68%,rgba(168,35,29,.16) 93%,transparent 93%);
  padding:0 2px;
}
:root[data-theme="dark"] .bdp-hero h1 em{background:linear-gradient(transparent 68%,rgba(226,105,94,.2) 68%,rgba(226,105,94,.2) 93%,transparent 93%);}
.bdp-sub{margin:0 0 16px;max-width:36em;color:var(--sub);font-size:15.5px;line-height:1.9;}
.bdp-sub b{color:var(--ink);}
.bdp-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;}
.bdp-tags li{font-size:12.6px;font-weight:600;color:var(--sub);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px;}
.bdp-tags li::before{content:"✦";margin-right:6px;color:var(--gold);font-size:10px;vertical-align:1px;}
.bdp-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:0;list-style:none;}
.bdp-steps li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm);}
.bdp-steps b{display:block;font-size:13.2px;font-weight:800;margin-bottom:3px;color:var(--ink);}
.bdp-steps span{display:block;font-size:12.2px;color:var(--faint);line-height:1.6;}
@media (max-width:600px){.bdp-steps{grid-template-columns:1fr;gap:8px;}.bdp-steps li{padding:9px 12px;}}

/* ---------------- 首屏请柬卡 ---------------- */
.bdp-card-inv{
  position:relative;z-index:1;color:#fdf3e3;
  border-radius:18px;padding:20px 22px 18px;
  background:linear-gradient(158deg,#9d211c 0%,#7c1714 58%,#5d100e 100%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 42px rgba(93,16,14,.30);
}
:root[data-theme="dark"] .bdp-card-inv{
  background:linear-gradient(158deg,#7d1d19 0%,#5f1512 60%,#45100e 100%);
  border-color:rgba(223,183,87,.30);
  box-shadow:0 18px 46px rgba(0,0,0,.5);
}
.bdp-card-inv::before{
  content:"";position:absolute;inset:7px;border:1px solid rgba(223,183,87,.42);border-radius:12px;pointer-events:none;
}
.bdp-inv-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(223,183,87,.35);}
.bdp-inv-title{font-family:var(--serif);font-size:16.5px;font-weight:800;color:#f7e6c0;letter-spacing:.06em;}
.bdp-inv-code{font:700 11px/1 var(--num);letter-spacing:.14em;color:rgba(247,230,192,.62);}
.bdp-inv-body{display:grid;gap:12px;padding-top:14px;position:relative;z-index:1;}
.bdp-inv-foot{margin:12px 0 0;padding-top:9px;border-top:1px solid rgba(223,183,87,.35);font-size:11.8px;color:rgba(253,243,227,.62);text-align:center;}

/* 深色底上的表单件 */
.bdp-card-inv .bdp-field>label,.bdp-card-inv .bdp-label{color:#f3ddb2;}
.bdp-card-inv .bdp-field>label small,.bdp-card-inv .bdp-label small{color:rgba(243,221,178,.6);}
.bdp-card-inv .bdp-input,.bdp-card-inv .bdp-select{
  background:rgba(255,255,255,.10);border-color:rgba(247,230,192,.34);color:#fdf3e3;
}
.bdp-card-inv .bdp-input:hover,.bdp-card-inv .bdp-select:hover{border-color:var(--gold-2);}
.bdp-card-inv .bdp-input:focus,.bdp-card-inv .bdp-select:focus{
  background:rgba(255,255,255,.16);border-color:var(--gold-2);box-shadow:0 0 0 3px rgba(223,183,87,.22);
}
.bdp-card-inv select.bdp-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23f3ddb2' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;}
.bdp-card-inv .bdp-err{color:#ffc9c2;}

/* ---------------- 表单件 ---------------- */
.bdp-field{display:grid;gap:6px;min-width:0;}
.bdp-field>label,.bdp-label{font-size:12.8px;font-weight:700;color:var(--sub);display:flex;align-items:baseline;gap:6px;}
.bdp-field>label small,.bdp-label small{font-weight:600;font-size:11.4px;color:var(--faint);}
.bdp-input,.bdp-select{
  width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:10px;
  background:var(--card2);color:var(--ink);padding:8px 11px;font:inherit;font-size:14.4px;font-weight:600;line-height:1.5;
  transition:border-color .18s,box-shadow .18s,background .18s;appearance:none;-webkit-appearance:none;
}
.bdp-input:hover,.bdp-select:hover{border-color:var(--pri-2);}
.bdp-input:focus,.bdp-select:focus{outline:none;border-color:var(--pri);background:var(--card);box-shadow:0 0 0 3px var(--pri-soft);}
.bdp-input::placeholder{color:var(--faint);font-weight:500;}
.bdp-input[type="number"]{font-family:var(--num);font-variant-numeric:tabular-nums;}
select.bdp-select{
  cursor:pointer;padding-right:30px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239c8878' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}
.bdp-field.has-err .bdp-input,.bdp-field.has-err .bdp-select{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft);}
.bdp-err{display:none;font-size:11.8px;font-weight:600;color:var(--bad);line-height:1.5;}
.bdp-field.has-err .bdp-err{display:block;}
.bdp-hint{font-size:12.2px;color:var(--faint);line-height:1.7;}

/* 忌口 chips */
.bdp-chips{display:flex;flex-wrap:wrap;gap:8px;}
.bdp-chip{
  position:relative;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--line-strong);background:rgba(255,255,255,.06);color:#f3ddb2;
  border-radius:999px;padding:6px 13px;font-size:12.8px;font-weight:600;transition:.16s;user-select:none;
}
.bdp-chip input{position:absolute;opacity:0;pointer-events:none;}
.bdp-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:rgba(243,221,178,.45);transition:.16s;}
.bdp-chip:hover{border-color:var(--gold-2);}
.bdp-chip.on{border-color:var(--gold-2);background:rgba(223,183,87,.20);color:#fff6e2;}
.bdp-chip.on::before{background:var(--gold-2);}

/* 分段选择 */
.bdp-seg{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--line-strong);border-radius:10px;background:var(--card2);}
.bdp-seg button{
  appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;
  font-size:12.4px;font-weight:700;line-height:1;color:var(--sub);
  padding:8px 11px;border-radius:8px;transition:.16s;white-space:nowrap;
}
.bdp-seg button:hover{color:var(--pri);}
.bdp-seg button.on{background:linear-gradient(135deg,var(--pri),var(--pri-2));color:#fff;box-shadow:var(--shadow-sm);}
:root[data-theme="dark"] .bdp-seg button.on{color:#2a0f0d;}

/* 按钮 */
.bdp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid transparent;border-radius:11px;padding:10px 16px;
  font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-align:center;line-height:1.4;
  transition:transform .16s,box-shadow .18s,background .18s,border-color .18s,color .18s;
}
.bdp-btn:focus-visible{outline:2px solid var(--pri);outline-offset:2px;}
.bdp-btn--primary{background:linear-gradient(135deg,var(--pri),var(--pri-2));color:#fff;box-shadow:0 8px 20px rgba(168,35,29,.24);}
:root[data-theme="dark"] .bdp-btn--primary{color:#2a0f0d;}
.bdp-btn--primary:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(168,35,29,.3);}
.bdp-btn--gold{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#3a2a06;box-shadow:0 8px 18px rgba(184,144,31,.26);}
.bdp-btn--gold:hover{transform:translateY(-1px);}
.bdp-btn--ghost{background:var(--card);border-color:var(--line-strong);color:var(--ink);}
.bdp-btn--ghost:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);}
.bdp-btn--sm{padding:7px 12px;font-size:12.8px;border-radius:9px;}
.bdp-btn--block{width:100%;}
.bdp-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none;}
.bdp-card-inv .bdp-btn--gold{color:#3a2a06;}
.bdp-card-inv .bdp-btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(247,230,192,.34);color:#fdf3e3;}
.bdp-card-inv .bdp-btn--ghost:hover{background:rgba(255,255,255,.16);border-color:var(--gold-2);color:#fff6e2;}

/* ---------------- KPI 条 ---------------- */
.bdp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;}
.bdp-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px 11px;box-shadow:var(--shadow-sm);}
.bdp-kpi span{display:block;font-size:11.8px;font-weight:700;color:var(--faint);margin-bottom:2px;}
.bdp-kpi b{display:flex;align-items:baseline;gap:5px;font:800 25px/1.15 var(--num);letter-spacing:-.02em;color:var(--ink);}
.bdp-kpi b small{font-size:11.5px;color:var(--faint);font-weight:700;}
.bdp-kpi.is-pri b{color:var(--pri);}
.bdp-kpi.is-gold b{color:var(--gold);}
:root[data-theme="dark"] .bdp-kpi.is-pri b{color:var(--pri-2);}
:root[data-theme="dark"] .bdp-kpi.is-gold b{color:var(--gold-2);}
@media (max-width:880px){.bdp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---------------- 主栅格 ---------------- */
.bdp-grid{display:grid;grid-template-columns:minmax(0,1fr) 384px;gap:22px;align-items:start;margin-top:20px;}
@media (max-width:1040px){.bdp-grid{grid-template-columns:minmax(0,1fr);}}
.bdp-side{position:sticky;top:78px;display:grid;gap:14px;align-content:start;}
@media (max-width:1040px){.bdp-side{position:static;}}

/* ---------------- 卡片 ---------------- */
.bdp-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px 20px;box-shadow:var(--shadow-sm);margin-bottom:16px;}
.bdp-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:5px;}
.bdp-no{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;border:1px dashed var(--line-strong);background:var(--pri-soft);color:var(--pri-ink);font:800 12.5px/1 var(--num);}
:root[data-theme="dark"] .bdp-no{color:var(--pri);}
.bdp-head h2{margin:0;font-family:var(--serif);font-size:18.5px;font-weight:800;line-height:1.5;}
.bdp-head .bdp-tag{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--faint);white-space:nowrap;padding-top:6px;}
.bdp-lead{margin:0 0 16px;color:var(--sub);font-size:13.6px;line-height:1.85;max-width:48em;}
.bdp-lead b{color:var(--ink);}
.bdp-row{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));}
.bdp-row.c3{grid-template-columns:repeat(3,minmax(0,1fr));}
.bdp-row+.bdp-row{margin-top:14px;}
@media (max-width:720px){.bdp-row,.bdp-row.c3{grid-template-columns:1fr;}}

/* ---------------- 菜单结构 ---------------- */
.bdp-menus{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;}
.bdp-menu{
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card2);
  padding:13px 14px 12px;position:relative;overflow:hidden;
}
.bdp-menu::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pri);}
.bdp-menu.t-cold::before{background:#4a7ba8;}
.bdp-menu.t-veg::before{background:var(--green);}
.bdp-menu.t-soup::before{background:var(--gold);}
.bdp-menu.t-staple::before{background:#8a6bb5;}
.bdp-menu.t-sweet::before{background:#d2698f;}
.bdp-menu-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.bdp-menu-top h3{margin:0;font-size:13.8px;font-weight:800;font-family:var(--serif);}
.bdp-menu-top span{font:800 17px/1 var(--num);color:var(--pri);}
.bdp-menu ul{margin:8px 0 0;padding:0;list-style:none;}
.bdp-menu li{position:relative;padding-left:14px;font-size:12.8px;line-height:1.85;color:var(--sub);}
.bdp-menu li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--gold);}
.bdp-menu li b{color:var(--ink);font-weight:600;}
.bdp-menu-empty{font-size:12.4px;color:var(--faint);}

/* ---------------- 表格 ---------------- */
.bdp-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);-webkit-overflow-scrolling:touch;}
.bdp-table{width:100%;border-collapse:collapse;font-size:13.2px;min-width:560px;}
.bdp-table th{background:var(--card2);text-align:left;padding:9px 12px;font-size:11.8px;font-weight:800;color:var(--sub);border-bottom:1px solid var(--line);white-space:nowrap;}
.bdp-table td{padding:9px 12px;border-bottom:1px dashed var(--line);vertical-align:top;line-height:1.7;}
.bdp-table tbody tr:last-child td{border-bottom:0;}
.bdp-table td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.bdp-table td .bdp-note{color:var(--faint);font-size:12.2px;}
.bdp-table tfoot td{background:var(--card2);font-weight:800;border-top:1px solid var(--line);}
.bdp-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap;}
.bdp-badge--ok{color:var(--ok);background:var(--ok-soft);}
.bdp-badge--warn{color:var(--warn);background:var(--warn-soft);}
.bdp-badge--bad{color:var(--bad);background:var(--bad-soft);}
.bdp-badge--pri{color:var(--pri-ink);background:var(--pri-soft);}
:root[data-theme="dark"] .bdp-badge--pri{color:var(--pri);}

/* 预算条 */
.bdp-budget-bar{display:flex;height:16px;border-radius:999px;overflow:hidden;background:var(--card2);border:1px solid var(--line);margin:4px 0 10px;}
.bdp-budget-bar i{display:block;height:100%;transition:width .3s ease;}
.bdp-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.2px;color:var(--sub);}
.bdp-legend span{display:inline-flex;align-items:center;gap:6px;}
.bdp-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;}

/* ---------------- 菜品清单 ---------------- */
.bdp-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;}
.bdp-preset{border:1px solid var(--line-strong);background:var(--card2);color:var(--ink);border-radius:999px;padding:5px 13px;font:inherit;font-size:12.8px;font-weight:600;cursor:pointer;transition:.16s;}
.bdp-preset:hover{border-color:var(--pri);background:var(--pri-soft);color:var(--pri-ink);transform:translateY(-1px);}
.bdp-preset::before{content:"◎";margin-right:5px;color:var(--gold);}
.bdp-dtable{width:100%;border-collapse:collapse;font-size:13px;min-width:720px;}
.bdp-dtable th{background:var(--card2);text-align:left;padding:8px 9px;font-size:11.5px;font-weight:800;color:var(--sub);border-bottom:1px solid var(--line);white-space:nowrap;}
.bdp-dtable td{padding:5px 6px;border-bottom:1px dashed var(--line);}
.bdp-dtable .bdp-input,.bdp-dtable .bdp-select{padding:6px 9px;font-size:13px;border-radius:8px;}
.bdp-dtable .bdp-select{padding-right:26px;background-position:right 8px center;}
.bdp-dtable td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.bdp-dtable tr.has-err td{background:var(--bad-soft);}
.bdp-del{border:1px solid var(--line);background:var(--card);color:var(--faint);width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center;transition:.16s;}
.bdp-del:hover{border-color:var(--bad);color:var(--bad);background:var(--bad-soft);}
.bdp-import{margin-top:14px;border:1px dashed var(--line-strong);border-radius:12px;padding:14px 16px;background:var(--card2);}
.bdp-import[hidden]{display:none;}
.bdp-import textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink);padding:10px 12px;font:13px/1.85 var(--num);tab-size:4;}
.bdp-import textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft);}
.bdp-import-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center;}
.bdp-import-hint{margin-top:8px;font-size:12px;color:var(--faint);line-height:1.75;}
.bdp-import-hint code{font-family:var(--num);font-size:11.5px;padding:1px 5px;border-radius:4px;background:var(--card);border:1px solid var(--line);color:var(--sub);}

/* ---------------- 上菜顺序 ---------------- */
.bdp-flow{list-style:none;display:grid;gap:0;}
.bdp-flow li{position:relative;padding:0 0 16px 30px;border-left:2px solid var(--line);margin-left:7px;}
.bdp-flow li:last-child{border-left-color:transparent;padding-bottom:0;}
.bdp-flow li::before{
  content:"";position:absolute;left:-8px;top:2px;width:14px;height:14px;border-radius:50%;
  background:var(--card);border:3px solid var(--pri);
}
.bdp-flow li.t-veg::before{border-color:var(--green);}
.bdp-flow li.t-soup::before{border-color:var(--gold);}
.bdp-flow li.t-staple::before{border-color:#8a6bb5;}
.bdp-flow li.t-sweet::before{border-color:#d2698f;}
.bdp-flow .bdp-flow-time{font:800 12px/1 var(--num);color:var(--pri);letter-spacing:.04em;}
.bdp-flow .bdp-flow-name{font-size:14.4px;font-weight:700;color:var(--ink);margin-top:2px;}
.bdp-flow .bdp-flow-meta{font-size:12.2px;color:var(--faint);line-height:1.7;}

/* ---------------- 汇总卡（右栏） ---------------- */
.bdp-sum{
  position:relative;overflow:hidden;border-radius:18px;padding:20px 22px 18px;color:#fdf3e3;
  background:linear-gradient(158deg,#9d211c 0%,#7c1714 58%,#5a100e 100%);
  border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 42px rgba(90,16,14,.3);
}
:root[data-theme="dark"] .bdp-sum{background:linear-gradient(158deg,#7d1d19 0%,#5e1512 60%,#44100e 100%);border-color:rgba(223,183,87,.28);box-shadow:0 18px 46px rgba(0,0,0,.5);}
.bdp-sum::after{content:"";position:absolute;right:-70px;bottom:-90px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(223,183,87,.26),transparent 68%);pointer-events:none;}
.bdp-sum-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px dashed rgba(223,183,87,.35);}
.bdp-sum-kicker{font:700 11px/1 var(--num);letter-spacing:.16em;color:rgba(247,230,192,.66);}
.bdp-sum-day{font-size:11.8px;font-weight:700;color:#3a2a06;background:linear-gradient(135deg,#f0d287,#dfb757);border-radius:999px;padding:3px 10px;}
.bdp-sum-main{padding:14px 0 2px;position:relative;z-index:1;}
.bdp-sum-label{margin:0;font-size:12.2px;color:rgba(253,243,227,.66);}
.bdp-sum-value{margin:2px 0;font-family:var(--num);font-weight:800;font-size:40px;line-height:1.1;color:#fff;letter-spacing:-.02em;display:flex;align-items:baseline;gap:7px;}
.bdp-sum-value small{font-size:13.5px;font-weight:700;color:rgba(253,243,227,.72);}
.bdp-sum-sub{margin:0;font-size:12.6px;color:rgba(253,243,227,.74);line-height:1.7;}
.bdp-sum-sub b{color:#f0d287;font-family:var(--num);font-size:14px;}
.bdp-sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 12px;position:relative;z-index:1;}
.bdp-sum-grid>div{border:1px solid rgba(255,255,255,.13);border-radius:11px;padding:9px 12px;background:rgba(255,255,255,.05);}
.bdp-sum-grid span{display:block;font-size:11.4px;color:rgba(253,243,227,.62);}
.bdp-sum-grid b{display:block;font-family:var(--num);font-size:16.5px;color:#fff;margin-top:1px;}
.bdp-sum-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;position:relative;z-index:1;}
.bdp-sum-actions .bdp-btn--ghost{background:rgba(255,255,255,.07);border-color:rgba(247,230,192,.32);color:#fdf3e3;}
.bdp-sum-actions .bdp-btn--ghost:hover{background:rgba(255,255,255,.15);border-color:var(--gold-2);color:#fff;}
@media (max-width:520px){.bdp-sum-actions{grid-template-columns:1fr;}}

/* ---------------- 提醒 ---------------- */
.bdp-alerts{display:grid;gap:8px;}
.bdp-alert{display:flex;gap:9px;align-items:flex-start;padding:10px 13px;border-radius:11px;font-size:12.9px;line-height:1.75;border:1px solid var(--line);background:var(--card2);color:var(--sub);}
.bdp-alert i{font-style:normal;flex:none;font-weight:800;}
.bdp-alert b{color:var(--ink);}
.bdp-alert.is-ok{background:var(--ok-soft);border-color:transparent;}
.bdp-alert.is-ok i{color:var(--ok);}
.bdp-alert.is-warn{background:var(--warn-soft);border-color:transparent;}
.bdp-alert.is-warn i{color:var(--warn);}
.bdp-alert.is-bad{background:var(--bad-soft);border-color:transparent;}
.bdp-alert.is-bad i{color:var(--bad);}

/* ---------------- AI 面板 ---------------- */
.bdp-ai{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 17px;box-shadow:var(--shadow-sm);}
.bdp-ai[hidden]{display:none!important;}
.bdp-ai-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.bdp-ai-title{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--ink);}
.bdp-ai-badge{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:999px;padding:2px 8px;}
.bdp-ai-body{font-size:13.4px;line-height:1.85;color:var(--sub);}
.bdp-ai-body p{margin:0 0 8px;}
.bdp-ai-body p:last-child{margin-bottom:0;}
.bdp-ai-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--faint);}
.bdp-dots{display:inline-flex;gap:4px;}
.bdp-dots i{width:6px;height:6px;border-radius:50%;background:var(--pri);animation:bdpBounce 1.05s infinite ease-in-out;}
.bdp-dots i:nth-child(2){animation-delay:.16s;}
.bdp-dots i:nth-child(3){animation-delay:.32s;}
@keyframes bdpBounce{0%,80%,100%{transform:translateY(0);opacity:.4;}40%{transform:translateY(-4px);opacity:1;}}
.bdp-ai-note{margin-top:9px;font-size:11.5px;color:var(--faint);line-height:1.65;}

/* ---------------- 正文区 ---------------- */
.bdp-sec{padding:34px 0 0;}
.bdp-sec>h2{font-family:var(--serif);font-size:22px;font-weight:800;margin-bottom:6px;}
.bdp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:14px;}
.bdp-mini{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-sm);}
.bdp-mini h3{font-size:15px;font-weight:800;margin-bottom:6px;font-family:var(--serif);}
.bdp-mini p{font-size:13.5px;line-height:1.85;color:var(--sub);}
.bdp-mini ul{margin:8px 0 0;padding-left:18px;font-size:13.4px;line-height:1.9;color:var(--sub);}
.bdp-formula{font-family:var(--num);font-size:12.6px;line-height:2;background:var(--card2);border:1px solid var(--line);border-left:2px solid var(--pri);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 14px;margin-top:12px;overflow-x:auto;color:var(--sub);white-space:pre;}
.bdp-faq{margin-top:14px;border-top:1px solid var(--line);}
.bdp-faq details{border-bottom:1px solid var(--line);}
.bdp-faq summary{cursor:pointer;list-style:none;padding:13px 26px 13px 0;position:relative;font-weight:700;font-size:15px;color:var(--ink);line-height:1.6;}
.bdp-faq summary::-webkit-details-marker{display:none;}
.bdp-faq summary::after{content:"+";position:absolute;right:4px;top:11px;font-family:var(--num);font-size:17px;color:var(--pri);transition:transform .18s;}
.bdp-faq details[open] summary::after{content:"−";}
.bdp-faq .a{padding:0 0 14px;font-size:14px;line-height:1.9;color:var(--sub);max-width:48em;}
.bdp-faq .a b{color:var(--ink);}
.bdp-rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px;}
.bdp-rel a{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,transform .15s;}
.bdp-rel a:hover{border-color:var(--pri);text-decoration:none;transform:translateY(-1px);}
.bdp-rel a span{font-size:11px;color:var(--faint);margin-left:auto;}

/* ---------------- toast ---------------- */
.bdp-toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,14px);
  background:rgba(36,28,23,.95);color:#fff;font-size:13.5px;font-weight:600;
  padding:10px 18px;border-radius:11px;box-shadow:0 12px 30px rgba(0,0,0,.25);
  opacity:0;visibility:hidden;transition:.22s;z-index:9999;max-width:86vw;text-align:center;
}
:root[data-theme="dark"] .bdp-toast{background:rgba(245,236,225,.95);color:#241c17;}
.bdp-toast.on{opacity:1;visibility:visible;transform:translate(-50%,0);}

/* ---------------- 响应式 ---------------- */
@media (max-width:940px){
  .bdp-hero{grid-template-columns:1fr;padding:26px 22px 22px;gap:20px;}
  .bdp-hero::after{display:none;}
}
@media (max-width:600px){
  .bdp{padding:0 12px 48px;font-size:14.5px;}
  .bdp-card{padding:18px 16px 16px;}
  .bdp-hero{padding:20px 17px 18px;}
  .bdp-hero h1{font-size:24px;line-height:1.36;margin:10px 0 8px;}
  .bdp-sub{font-size:14px;line-height:1.8;}
  .bdp-tags li:nth-child(n+4){display:none;}
  .bdp-sec{padding-top:26px;}
}
@media (prefers-reduced-motion:reduce){
  .bdp *,.bdp *::before,.bdp *::after{animation-duration:.001s!important;transition-duration:.001s!important;}
}
