/* Bildungscampus 食堂 —— 暖纸色底 + 衬线标题 + 细线列表。颜色全部走变量，暗色是单独挑过的一套。
   餐盘三色（蔬菜 / 蛋白 / 碳水）用 dataviz 验证过的色阶：明暗两套都过色盲区分检查。 */
:root {
  color-scheme: light;
  --bg: #f5f2ea; --surface: #fffdf8; --sunk: #efebe1;
  --ink: #1b1a17; --ink-2: #55524a; --ink-3: #85817a;
  --line: #e7e2d6; --line-2: #d8d2c3;
  --brand: #1e5b45; --brand-soft: #e3ece5;
  --truck: #c45200; --truck-ink: #ffffff; --truck-soft: #fcefe2; --truck-line: #efc9a6;
  --c-veg: #1baf7a; --c-pro: #6250d6; --c-carb: #eda100; --c-fat: #9a958a; --c-empty: #e2ddd1;
  --d-vegan: #1a8f5e; --d-veg: #7a9a1e; --d-fish: #2a78d6; --d-meat: #c0503a; --d-mixed: #8a5cc2; --d-unknown: #a7a294;
  --warn-bg: #fff4dc; --warn-ink: #7a5300;
  --serif: "Songti SC", "STSong", "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  --r: 16px; --bar-h: 112px;
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --bg: #121210; --surface: #1c1c1a; --sunk: #171715;
    --ink: #f0eee8; --ink-2: #bdb9ae; --ink-3: #8c887e;
    --line: #2b2a26; --line-2: #3a3833;
    --brand: #6cc39b; --brand-soft: #1b2a23;
    --truck: #ff9a3d; --truck-ink: #1a1006; --truck-soft: #261b11; --truck-line: #5a3a1c;
    --c-veg: #199e70; --c-pro: #9085e9; --c-carb: #c98500; --c-fat: #77736a; --c-empty: #33312c;
    --d-vegan: #4cc28a; --d-veg: #a9c75a; --d-fish: #5c9ee6; --d-meat: #e5826b; --d-mixed: #b292e6; --d-unknown: #8c887e;
    --warn-bg: #3a2f14; --warn-ink: #f2cf7e;
  }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--bar-h) + 12px); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, select { font: inherit; color: inherit; }
.num { font-variant-numeric: tabular-nums; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wrap { max-width: 720px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
[hidden] { display: none !important; }

/* ---------- 顶栏：品牌 + 日期条（吸顶） ---------- */
.bar {
  position: sticky; top: 0; z-index: 10; padding-top: env(safe-area-inset-top);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 8px; padding: 10px 0 6px; }
.logo svg { display: block; width: 22px; height: 22px; }
.b-name { font-family: var(--serif); font-weight: 700; font-size: 1.02rem; letter-spacing: .02em; }
.b-sub { color: var(--ink-3); font-size: .78rem; margin-left: auto; }
.days { display: flex; gap: 6px; overflow-x: auto; padding: 4px 0 10px; scrollbar-width: none; scroll-snap-type: x proximity; }
.days::-webkit-scrollbar { display: none; }
.dchip {
  flex: none; scroll-snap-align: center; min-width: 58px; padding: 6px 10px 5px; border-radius: 12px;
  display: flex; flex-direction: column; align-items: center; text-decoration: none;
  background: var(--surface); border: 1px solid var(--line); transition: background .15s, color .15s, border-color .15s;
}
.dchip .wd { font-size: .82rem; font-weight: 600; line-height: 1.2; }
.dchip .md { font-size: .72rem; color: var(--ink-3); line-height: 1.3; }
.dchip.on { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.dchip.on .md { color: color-mix(in srgb, var(--bg) 70%, transparent); }
.dchip.shut { opacity: .45; }

/* ---------- 工具条 ---------- */
.tools { display: flex; gap: 8px; align-items: center; margin: 14px 0 4px; }
.seg { display: flex; flex: 1; min-width: 0; background: var(--sunk); border: 1px solid var(--line); border-radius: 11px; padding: 3px; }
.seg button {
  flex: 1; border: 0; background: transparent; padding: 6px 4px; border-radius: 8px; font-size: .84rem;
  color: var(--ink-2); cursor: pointer; white-space: nowrap; transition: background .15s, color .15s;
}
.seg button.on { background: var(--surface); color: var(--ink); font-weight: 600; box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 0 0 1px var(--line); }
.sort select {
  appearance: none; -webkit-appearance: none; border: 1px solid var(--line); background: var(--surface);
  border-radius: 11px; padding: 8px 28px 8px 11px; font-size: .84rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);
  background-position: right 13px top 52%, right 8px top 52%; background-size: 5px 5px; background-repeat: no-repeat;
}

/* ---------- 当天头部 ---------- */
.hero { padding: 16px 2px 6px; }
.hero h1 { margin: 0; font-family: var(--serif); font-size: 1.85rem; line-height: 1.15; font-weight: 700; letter-spacing: .01em; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.h-md { font-family: var(--sans); font-size: 1rem; font-weight: 500; color: var(--ink-3); }
.hero em { font-style: normal; font-family: var(--sans); font-size: .75rem; font-weight: 700; color: var(--brand); background: var(--brand-soft); padding: 2px 8px; border-radius: 999px; align-self: center; }
.h-meta { margin: 4px 0 0; color: var(--ink-2); font-size: .9rem; }
.h-ft { color: var(--truck); font-weight: 600; }
.h-jump { margin: 6px 0 0; font-size: .82rem; color: var(--ink-3); }
.note.warn { background: var(--warn-bg); color: var(--warn-ink); padding: 8px 12px; border-radius: 10px; font-size: .88rem; margin: 12px 0 0; }

/* ---------- 今日三选 ---------- */
.picks { display: flex; gap: 8px; margin: 12px 0 10px; }
.pick {
  flex: 1 1 0; display: flex; flex-direction: column; gap: 6px; padding: 10px 10px 9px; text-decoration: none; min-width: 0;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
  transition: transform .12s ease, border-color .15s;
}
.pick:active { transform: scale(.98); }
.pick:hover { border-color: var(--line-2); }
.p-label { font-size: .7rem; font-weight: 700; letter-spacing: .06em; color: var(--brand); }
.p-body { display: flex; flex-direction: column; gap: 6px; }
.p-body .plate { width: 40px; height: 40px; }
.p-name { font-weight: 600; font-size: .86rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.p-meta { font-size: .78rem; color: var(--ink-2); margin-top: auto; }

/* ---------- 今日提示 ---------- */
.advice { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; margin: 0 0 6px; font-size: .86rem; }
.advice summary { list-style: none; display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; cursor: pointer; }
.advice summary::-webkit-details-marker { display: none; }
.a-ico { flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--c-carb); color: #1b1a17; font-weight: 800; font-size: .72rem; display: grid; place-items: center; margin-top: 1px; }
.a-first { flex: 1; color: var(--ink-2); }
.advice:not([open]) .a-first { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.a-more { flex: none; font-size: .75rem; color: var(--ink-3); border: 1px solid var(--line); border-radius: 999px; padding: 0 7px; }
.advice[open] .a-more { display: none; }
.advice ul { margin: 0; padding: 0 14px 10px 40px; color: var(--ink-2); }
.advice li { margin: 4px 0; }

/* ---------- 分组与行 ---------- */
.group { margin: 18px 0 0; }
.g-head { margin: 0 4px 6px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; color: var(--ink-3); display: flex; align-items: center; gap: 6px; }
.list { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.g-empty { margin: 0; padding: 14px; text-align: center; color: var(--ink-3); font-size: .85rem; background: var(--surface); border: 1px dashed var(--line-2); border-radius: var(--r); }
.row { border-top: 1px solid var(--line); scroll-margin-top: calc(var(--bar-h) + 16px); }
.row:first-child { border-top: 0; }
.row-btn {
  width: 100%; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 11px 14px; border: 0; background: transparent; text-align: left; cursor: pointer;
  -webkit-tap-highlight-color: transparent; transition: background .15s;
}
.row-btn:hover { background: color-mix(in srgb, var(--sunk) 60%, transparent); }
.row-btn:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; border-radius: var(--r); }
.r-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.r-name { font-weight: 600; font-size: .98rem; line-height: 1.35; }
.r-sub { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: .78rem; color: var(--ink-3); }
.diet { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-2); }
.diet i { width: 8px; height: 8px; border-radius: 50%; background: var(--d-unknown); }
.d-vegan .diet i { background: var(--d-vegan); } .d-veg .diet i { background: var(--d-veg); }
.d-fish .diet i { background: var(--d-fish); } .d-meat .diet i { background: var(--d-meat); }
.d-mixed .diet i { background: conic-gradient(var(--d-meat) 0 50%, var(--d-vegan) 0); }
.r-price { text-align: right; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.r-price > .num { font-weight: 700; font-size: 1.02rem; }
.r-price small { font-size: .7rem; color: var(--ink-3); }
.r-price .approx { margin-top: 2px; color: var(--ink-2); font-size: .72rem; }
.pick-flag { display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .04em; color: var(--brand); background: var(--brand-soft); padding: 1px 6px; border-radius: 5px; }
.row.flash { animation: flash 1.2s ease-out; }
@keyframes flash { from { background: var(--brand-soft); } to { background: transparent; } }

/* 详情 */
.r-detail { padding: 2px 14px 14px 70px; animation: drop .18s ease-out; }
@keyframes drop { from { opacity: 0; transform: translateY(-4px); } }
.meters { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; margin: 2px 0 10px; }
.meter { display: grid; grid-template-columns: 3.2em 1fr auto; gap: 8px; align-items: center; font-size: .78rem; }
.m-label { color: var(--ink-2); }
.m-val { color: var(--ink); font-weight: 600; }
.m-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.m-track i { height: 6px; border-radius: 3px; background: var(--c-empty); }
.m-veg .m-track i.f { background: var(--c-veg); } .m-pro .m-track i.f { background: var(--c-pro); }
.m-carb .m-track i.f { background: var(--c-carb); } .m-fat .m-track i.f { background: var(--c-fat); }
.tip { margin: 0 0 8px; font-size: .9rem; line-height: 1.6; }
.tip.muted { color: var(--ink-3); }
.tags { margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 4px; }
.tags span { font-size: .7rem; color: var(--ink-2); background: var(--sunk); padding: 1px 7px; border-radius: 5px; }
.orig { margin: 0; color: var(--ink-3); font-size: .76rem; line-height: 1.45; overflow-wrap: anywhere; }
.prices { margin: 4px 0 0; color: var(--ink-3); font-size: .74rem; }

/* 餐盘环 */
.plate { display: block; width: 44px; height: 44px; overflow: visible; }
.plate circle { stroke-linecap: butt; }
.pl-veg { stroke: var(--c-veg); } .pl-pro { stroke: var(--c-pro); } .pl-carb { stroke: var(--c-carb); }
.pl-empty { stroke: var(--c-empty); }
.pl-num { font: 700 15px/1 var(--sans); fill: var(--ink); text-anchor: middle; dominant-baseline: central; font-variant-numeric: tabular-nums; }
.pl-q { fill: var(--ink-3); }

/* 汤 / 甜点：更紧凑 */
.sides .row-btn { grid-template-columns: 32px minmax(0, 1fr) auto; padding-top: 8px; padding-bottom: 8px; }
.sides .plate { width: 32px; height: 32px; }
.sides .pl-num { font-size: 14px; }
.sides .r-name { font-size: .92rem; font-weight: 500; }
.sides .r-detail { padding-left: 58px; }

/* ---------- 餐车：橙色分区 ---------- */
.truck { background: var(--truck-soft); border: 1.5px solid var(--truck-line); border-radius: calc(var(--r) + 6px); padding: 10px 8px 8px; margin-left: -8px; margin-right: -8px; }
.truck .g-head { color: var(--truck); font-size: .95rem; letter-spacing: .04em; margin: 2px 8px 8px; }
.g-ico { font-size: 1.15rem; }
.g-de { font-weight: 500; font-size: .75rem; letter-spacing: .02em; opacity: .8; }
.truck .list { border-color: var(--truck-line); }
.ft-badge { background: var(--truck); color: var(--truck-ink); font-weight: 700; border-radius: 5px; white-space: nowrap; }
.ft-badge.sm { font-size: .68rem; padding: 1px 6px; }
.truck .r-sub .ft-badge { display: none; } /* 分区标题已经说明是餐车 */
.pick .ft-badge { font-size: .62rem; padding: 0 5px; margin-left: 4px; letter-spacing: 0; vertical-align: 1px; }
.row.open > .row-btn { background: color-mix(in srgb, var(--sunk) 60%, transparent); }

/* ---------- 不开门 ---------- */
.closed { text-align: center; padding: 34px 16px 40px; color: var(--ink-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); margin-top: 12px; }
.closed svg { display: block; margin: 0 auto 10px; }
.cl-plate { fill: none; stroke: var(--line-2); stroke-width: 2.5; }
.cl-rim { fill: none; stroke: var(--line); stroke-width: 2; }
.cl-cut { fill: none; stroke: var(--line-2); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.closed p { margin: 0; }

/* ---------- 图例与页脚 ---------- */
.legend { margin: 28px 0 0; padding: 16px 4px; border-top: 1px solid var(--line); font-size: .84rem; color: var(--ink-2); }
.lg-fig { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: .72rem; color: var(--ink-3); }
.lg-fig .plate { width: 56px; height: 56px; }
.lg-text p { margin: 0 0 8px; line-height: 1.65; }
.key { display: inline-flex; align-items: center; gap: 4px; margin: 0 3px; color: var(--ink); white-space: nowrap; }
.key i { width: 10px; height: 10px; border-radius: 3px; }
.key.k-veg i { background: var(--c-veg); } .key.k-pro i { background: var(--c-pro); } .key.k-carb i { background: var(--c-carb); }
.key.k-main i { background: var(--ink); } .key.k-sauce i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--ink-3); }
.foot { color: var(--ink-3); font-size: .74rem; padding-top: 4px; padding-bottom: max(28px, env(safe-area-inset-bottom)); }
.foot p { margin: 6px 0; line-height: 1.6; }
.foot a { color: var(--ink-2); }
@media (hover: hover) { .swipe-hint { display: none; } }

/* 切日期的过场 */
.day.in-r { animation: in-r .22s ease-out; } .day.in-l { animation: in-l .22s ease-out; }
@keyframes in-r { from { opacity: 0; transform: translateX(18px); } }
@keyframes in-l { from { opacity: 0; transform: translateX(-18px); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

@media (min-width: 640px) {
  .hero h1 { font-size: 2.2rem; }
  .picks { gap: 12px; }
  .pick { padding: 12px 14px; }
  .p-body { flex-direction: row; align-items: center; gap: 10px; }
  .p-name { min-height: 0; }
}

/* ---------- 分开盛的「每一样」 ---------- */
.pn + .pn::before { content: " + "; color: var(--ink-3); font-weight: 400; }
.r-parts { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 1px; }
.pc { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--ink-2); background: var(--sunk); border-radius: 6px; padding: 1px 7px 1px 6px; line-height: 1.5; }
.pc i, .p-item i { width: 7px; height: 7px; border-radius: 2px; flex: none; background: var(--ink-3); }
.k-carb > i { background: var(--c-carb); }
.k-veg > i, .k-soup > i { background: var(--c-veg); }
.k-sauce > i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--ink-3); }
.k-main > i { background: var(--ink); }
.out { text-decoration: line-through; text-decoration-color: var(--ink-3); opacity: .45; }
.split-note { margin: 0 0 6px; font-size: .74rem; color: var(--ink-3); letter-spacing: .04em; }
.parts { list-style: none; margin: 0 0 10px; padding: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.part { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 7px 10px; border-top: 1px solid var(--line); }
.part:first-child { border-top: 0; }
.part .plate { width: 20px; height: 20px; }
.part .plate circle { stroke-width: 9; }
.pt-main { display: flex; flex-direction: column; min-width: 0; }
.pt-name { font-size: .88rem; font-weight: 600; }
.pt-sub { font-size: .72rem; color: var(--ink-3); }
.pt-kind { color: var(--ink-2); }
.pt-kcal { font-size: .82rem; font-weight: 600; white-space: nowrap; }
.pt-kcal small { font-weight: 400; color: var(--ink-3); }
.part.out { text-decoration: none; }
.part.out .pt-name { text-decoration: line-through; }

/* ---------- 今天这样搭一盘 ---------- */
.combos { margin: 14px 0 10px; }
.combos .g-head { margin-bottom: 8px; }
.combos .picks { margin: 0; }
.p-label { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.p-top { display: flex; align-items: center; gap: 8px; }
.p-top .plate { width: 40px; height: 40px; flex: none; }
.p-kcal { font-size: .95rem; font-weight: 700; line-height: 1.1; white-space: nowrap; }
.p-kcal small { display: block; font-size: .66rem; font-weight: 400; color: var(--ink-3); }
.p-items { display: flex; flex-direction: column; gap: 2px; }
.p-item { display: flex; align-items: baseline; gap: 5px; font-size: .78rem; line-height: 1.35; color: var(--ink-2); }
.p-item i { transform: translateY(-1px); }
.p-item.p-main { font-weight: 700; font-size: .84rem; color: var(--ink); }
.pick .ft-badge { margin-left: 0; }

/* 顶部的圆环说明：小字一行 */
.ringkey { display: flex; gap: 8px; align-items: flex-start; margin: 10px 2px 0; font-size: .72rem; line-height: 1.55; color: var(--ink-3); }
.ringkey .plate { width: 22px; height: 22px; flex: none; margin-top: 1px; }
.ringkey b { color: var(--ink-2); font-weight: 600; }
.ringkey .key { margin: 0 2px; color: var(--ink-2); }
.ringkey .key i { width: 8px; height: 8px; }
.tools { margin-top: 10px; }

/* 沙拉台 */
.r-price .na { font-size: .8rem; font-weight: 600; color: var(--ink-2); }
.salad .row-btn { grid-template-columns: 32px minmax(0, 1fr) auto; padding-top: 9px; padding-bottom: 9px; }
.salad .plate { width: 32px; height: 32px; }
.salad .r-detail { padding-left: 58px; }

/* 分开盛的每一样：主菜下面并排的子卡片，顶边颜色表示种类 */
.subs { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 6px; padding: 0 14px 12px 70px; }
.sub {
  display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 6px 8px 7px;
  background: var(--sunk); border-radius: 10px; border-top: 3px solid var(--ink-3);
}
.sub.k-main { border-top-color: var(--ink); }
.sub.k-carb { border-top-color: var(--c-carb); }
.sub.k-veg { border-top-color: var(--c-veg); }
.sub.k-sauce { border-top: 3px dashed var(--ink-3); }
.sub-k { display: flex; align-items: center; justify-content: space-between; gap: 4px; font-size: .66rem; font-weight: 700; letter-spacing: .08em; color: var(--ink-3); }
.sub-k .plate { width: 16px; height: 16px; }
.sub-k .plate circle { stroke-width: 9; }
.sub-n { font-size: .86rem; font-weight: 600; line-height: 1.3; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sub-c { font-size: .72rem; color: var(--ink-2); }
.sub-f { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 2px; }
.sub-f b { font-size: .62rem; font-weight: 600; color: var(--ink-2); background: var(--surface); border-radius: 4px; padding: 0 4px; }
.sub.out { opacity: .4; }
.sub.out .sub-n { text-decoration: line-through; }
.sides .subs, .salad .subs { padding-left: 58px; }
@media (max-width: 400px) { .subs { padding-left: 14px; } }

/* Powermeal 套餐：€2.90 整份 */
.pm-badge { font-size: .68rem; font-weight: 800; letter-spacing: .06em; color: var(--surface); background: var(--brand); border-radius: 5px; padding: 1px 7px; text-transform: uppercase; }
.pm .g-head { color: var(--brand); }
.pm .list { border-color: color-mix(in srgb, var(--brand) 35%, var(--line)); box-shadow: inset 3px 0 0 var(--brand); }
.subs-cap { margin: -4px 14px 4px 70px; font-size: .66rem; letter-spacing: .08em; color: var(--ink-3); }
.subs.in-set { gap: 0; }
.subs.in-set .sub { border-radius: 0; border-left: 1px solid var(--line); }
.subs.in-set .sub:first-child { border-radius: 10px 0 0 10px; border-left: 0; }
.subs.in-set .sub:last-child { border-radius: 0 10px 10px 0; }
@media (max-width: 400px) { .subs-cap { margin-left: 14px; } }
.pick .pm-badge { font-size: .58rem; padding: 0 5px; letter-spacing: .04em; }

/* ================= 简约层（2026-11-02）：未展开时只有圆环带颜色 =================
   其余一律中性：靠字号、字重、留白和细线分层次；营养条等彩色信息只在点开后出现。 */
.diet i, .p-item i, .pick-flag { display: none !important; }
.diet { color: var(--ink-3); }
.hero em { background: none; color: var(--ink-3); border: 1px solid var(--line-2); font-weight: 600; }
.h-ft { color: inherit; font-weight: inherit; }
.a-ico { background: none; color: var(--ink-3); box-shadow: inset 0 0 0 1.5px var(--line-2); }
.p-label { color: var(--ink-3); font-weight: 600; letter-spacing: .04em; }
.p-item { color: var(--ink-3); }
.p-item.p-main { color: var(--ink); }
.ft-badge, .ft-badge.sm, .pick .ft-badge { background: none; color: var(--ink-2); box-shadow: inset 0 0 0 1px var(--line-2); font-weight: 600; }
.pm-badge, .pick .pm-badge { background: none; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink-3); }
.pm .g-head, .truck .g-head { color: var(--ink-3); font-size: .78rem; letter-spacing: .12em; margin: 0 4px 6px; }
.pm .list { box-shadow: none; border-color: var(--line); }
.truck { background: none; border: 0; padding: 0; margin-left: 0; margin-right: 0; border-radius: 0; }
.truck .list { border-color: var(--line); }
.g-ico { font-size: .95rem; filter: grayscale(1); opacity: .75; }

/* 分组之间多一点呼吸，组标题更安静 */
.group { margin-top: 26px; }
.g-head { font-weight: 600; }
.g-de { color: var(--ink-3); font-weight: 400; letter-spacing: .02em; margin-left: 6px; }

/* 子卡片：白底细边，种类用灰色小字区分，不再用彩色顶边 */
.sub, .sub.k-main, .sub.k-carb, .sub.k-veg, .sub.k-sauce { background: var(--surface); border: 1px solid var(--line); border-top: 1px solid var(--line); }
.subs.in-set .sub { border-left: 1px solid var(--line); }
.subs.in-set .sub:first-child { border-left: 1px solid var(--line); }
.sub-k { font-weight: 600; letter-spacing: .1em; }
.sub-f { display: block; font-size: .66rem; color: var(--ink-3); margin-top: 1px; }
.sub-more { display: none; flex-direction: column; gap: 3px; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); }
.sub-more .meter { grid-template-columns: 2.4em 1fr; gap: 6px; font-size: .66rem; }
.sub-more .m-track i { height: 5px; }
.row.open .sub-more { display: flex; animation: drop .18s ease-out; }

/* 行：标题更突出，次要信息更淡 */
.r-name { font-size: 1rem; }
.r-sub { color: var(--ink-3); }
.r-price small { color: var(--ink-3); }
.r-price .approx { color: var(--ink-3); font-weight: 500; }
