/* Z-197 /food/: light-страница «как приложение», телефон первым (360–412). Полоса дней — единственный яркий элемент.
   Цвета — tokens.css + свои --card/--panel/--hot в двух темах; текст ≥ 7:1, цифры tabular-nums. */
:root{--card:#ffffff;--panel:#eef6f8;--hot:#005c73;--ok:#155c2b;--hair:#c9cfd0;--warn-bg:#fff1e0;--warn-ink:#6b3a00;--on-hot:#ffffff;--bad:#a3160e;
  --tabs-h:62px;--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);--sa-r:env(safe-area-inset-right,0px);--shadow:0 -10px 40px rgba(10,37,64,.18)}
html[data-theme=dark]{--card:#1d1a17;--panel:#24201c;--hot:#e0ae58;--ok:#8fd49b;--hair:#3d3631;--warn-bg:#3a2410;--warn-ink:#ffd8a8;--on-hot:#131110;--bad:#ff958a;
  --shadow:0 -10px 40px rgba(0,0,0,.55)}
.page-food{font-variant-numeric:lining-nums tabular-nums}
.page-food [hidden]{display:none!important}
.page-food a{color:var(--hot)}
.page-food button,.page-food a{-webkit-tap-highlight-color:transparent}
/* safe-area (viewport-fit=cover): --sa-* = env(); QA подставляет 59/34 px */
.page-food .bar{box-sizing:border-box;height:calc(var(--header-h) + var(--sa-t));padding-top:var(--sa-t);
  padding-left:max(12px,var(--sa-l));padding-right:max(12px,var(--sa-r))}
.page-food .panel,.page-food .fbar,.page-food .food-head{padding-left:max(var(--gutter),var(--sa-l));padding-right:max(var(--gutter),var(--sa-r))}
.tabs{padding-left:var(--sa-l);padding-right:var(--sa-r)}
html.food-app body{padding-bottom:calc(var(--tabs-h) + var(--sa-b))}
html.sheet-open{overflow:hidden}
html.sheet-open body{overflow:hidden;overscroll-behavior:none}

/* кнопка темы, как ops.css */
.theme-btn{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:999px;
  border:1.5px solid var(--ink);background:none;color:var(--ink);cursor:pointer;padding:0}
.theme-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}
[data-theme=light] .theme-btn svg{transform:rotate(180deg)}
@media (max-width:420px){.page-food .bar .ticket--mini{display:none}}

/* короткий верх */
.food-head{padding:18px var(--gutter) 6px;max-width:var(--wrap);margin:0 auto}
.food-head h1{font-size:clamp(1.9rem,4vw,3.2rem);line-height:1}
.food-head .lede{margin:6px 0 0;font:400 .92rem/1.4 var(--font-text);color:var(--muted);max-width:60ch}
html.food-app .food-head,html.food-app .ph{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);padding:0;margin:0}

/* липкая плашка: кто вы + связь */
.fbar{position:sticky;top:calc(var(--header-h) + var(--sa-t));z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px var(--gutter);
  background:var(--paper);border-bottom:1px solid var(--hair);max-width:none}
.fb-t{flex:1 1 auto;margin:0;font:700 1.25rem/1.1 var(--font-display);white-space:nowrap}
.who-chip{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 6px;border-radius:999px;
  border:1.5px solid var(--hot);background:var(--hot);color:var(--on-hot);font:600 .95rem var(--font-text);cursor:pointer}
.who-chip.is-set{background:none;color:var(--ink);border-color:var(--hair)}
.wc-ico{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--on-hot);color:var(--hot);font-weight:700}
.who-chip.is-set .wc-ico{background:var(--hot);color:var(--on-hot)}
.net{flex:1 1 100%;min-width:0;margin:0;min-height:0;display:flex;align-items:center;gap:8px;font-size:.84rem;line-height:1.25}
.net:empty{flex:0 0 0;width:0;padding:0}   /* не display:none — скринридер */
.net span{flex:1 1 auto}
.net span{color:var(--warn-ink);background:var(--warn-bg);padding:4px 8px;border-radius:8px}
.net.is-queue span{background:var(--panel);color:var(--ink)}
.nbtn{flex:none;min-height:44px;padding:0 12px;border-radius:999px;border:1px solid var(--hair);background:var(--card);color:var(--ink);font:600 .85rem var(--font-text);cursor:pointer}

/* разделы */
.panel{padding-top:10px;padding-bottom:28px}
.panel.is-off{display:none}
html.food-app .panel{scroll-margin-top:100vh}         /* WebKit докручивает к якорю при сдвиге вёрстки — цель = верх */
.ph{font-size:clamp(1.5rem,3vw,2.4rem);margin:14px 0 10px}
.sh3{font-size:1.3rem;margin:24px 0 8px}
.nojs,.muted{color:var(--muted)}
.sub,small{font-size:var(--fs-small);color:var(--muted)}
.rule{max-width:72ch;line-height:1.5}

/* полоса дней — главный элемент */
.ribbon{list-style:none;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) 10px;display:flex;gap:6px;overflow-x:auto;
  scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain}
.ribbon::-webkit-scrollbar{display:none}
.ribbon li{flex:none;scroll-snap-align:center}
.ribbon a{display:grid;justify-items:center;align-content:center;gap:1px;width:62px;min-height:80px;padding:6px 2px;border-radius:14px;
  border:1px solid var(--hair);background:var(--card);color:var(--ink);text-decoration:none;line-height:1.1}
.ribbon li.w-sea a{background:var(--panel)}
.ribbon small{font-size:.74rem;color:var(--muted)}
.ribbon .rd{font-size:.82rem;font-weight:600}
.ribbon .rh{display:flex;align-items:baseline;gap:2px}
.ribbon .rh b{font:700 1.55rem/1 var(--font-display)}
.ribbon .rh i{font-style:normal;font-size:.8rem}
.ribbon .r-all .rh{font:700 1.55rem/1 var(--font-display)}
.ribbon li.is-today a{border:2px solid var(--hot)}
.ribbon a[aria-current]{background:var(--hot)!important;border-color:var(--hot);color:var(--on-hot)}
.ribbon a[aria-current] small{color:var(--on-hot)}

/* инструменты: поиск и чипы */
.tools{display:grid;gap:8px;margin-bottom:6px}
.search input,.page-food input[type=search]{width:100%;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--hair);
  background:var(--card);color:var(--ink);font:400 1rem var(--font-text);-webkit-appearance:none;appearance:none}
.chips{display:flex;gap:6px;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--hair);background:var(--card);color:var(--ink);
  font:500 .92rem var(--font-text);cursor:pointer;white-space:nowrap}
.chip[aria-pressed=true]{background:var(--hot);border-color:var(--hot);color:var(--on-hot);font-weight:600}
.fx-btn.on,.fx-btn[aria-expanded=true]{border-color:var(--hot);border-width:2px}
.res{margin:4px 0 8px;font-size:.88rem;color:var(--muted);min-height:0}
.res .lnk{font-size:.95rem}

/* день и приёмы */
.dblk{margin:10px 0 16px;border:1px solid var(--hair);border-radius:16px;background:var(--card);overflow:hidden}
.dblk.w-sea{border-left:4px solid var(--hot)}
.dh{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:center;padding:10px 6px 8px 14px;border-bottom:1px solid var(--hair)}
.dh h3{margin:0;display:flex;align-items:baseline;gap:8px;font:600 1rem var(--font-text)}
.dwd{color:var(--muted);font-weight:500}
.ddm{font:700 1.45rem/1 var(--font-display)}
.now{font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--hot);color:var(--on-hot)}
.dmeta{grid-column:1;margin:2px 0 0;font-size:.86rem;color:var(--muted);line-height:1.3}
.dnote{grid-column:2;grid-row:1/span 2;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:48px;min-height:48px;
  border-radius:12px;border:0;background:none;color:var(--ink);font:600 .9rem var(--font-text);cursor:pointer}
.meals{list-style:none;margin:0;padding:0}
.meal+.meal{border-top:1px solid var(--hair)}
.mbtn{display:grid;gap:2px;width:100%;min-height:64px;padding:10px 14px;border:0;background:none;
  color:var(--ink);text-align:left;font:inherit;cursor:pointer;position:relative}
button.mbtn{padding-right:30px}
button.mbtn:active,.row:active{background:var(--panel)}
.slot{font-size:.8rem;font-weight:600;color:var(--muted)}
.mn{font-weight:600;line-height:1.3}
.mrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.meta{font-size:.86rem;color:var(--muted)}
.is-ashore .mn{font-weight:500;color:var(--muted)}
.flag{font-size:.78rem;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink)}
.flag.soft,.flag.alt{background:var(--panel);color:var(--ink)}
.nbadge{font-size:.8rem;font-weight:600;color:var(--hot)}
.dots::before{color:var(--hot);letter-spacing:-.05em}
.dots.d1::before{content:"●○○"}.dots.d2::before{content:"●●○"}.dots.d3::before{content:"●●●"}
.empty{padding:20px 0;display:grid;gap:10px;justify-items:start}

/* строки-кнопки: блюда, закуп, продукты */
.rows{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:16px;background:var(--card);overflow:hidden}
.rows li+li{border-top:1px solid var(--hair)}
.row{display:grid;gap:3px;width:100%;min-height:56px;padding:10px 34px 10px 14px;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;position:relative}
.row::after,button.mbtn::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border:solid var(--muted);border-width:2px 2px 0 0;transform:translateY(-50%) rotate(45deg)}
.rn{font-weight:600;line-height:1.3}
.row small{line-height:1.35}
.sum{margin-left:auto;font-weight:600}
.shop .mrow{flex-wrap:nowrap}
.shop .mrow small{min-width:0}
.found{margin:6px 0 12px}
.found h3,.rhead h3{font:600 1.05rem var(--font-text);margin:8px 0 6px}
.prods{border-color:var(--hot)}
.rhead p{margin:2px 0}
.tot{font-size:.92rem}
.rounds{margin-bottom:6px}

/* закупы (Z-197 A2): липкие .fbar (--fbar-h) → .sprog (--prog-h) → .dhd; высоты пишет food.js */
.deps{margin:8px calc(-1 * var(--gutter)) 0}
.sprog{position:sticky;top:calc(var(--header-h) + var(--sa-t) + var(--fbar-h,0px));z-index:20;display:flex;align-items:center;gap:8px;
  margin:6px calc(-1 * var(--gutter)) 0;padding:6px var(--gutter);background:var(--paper);border-bottom:1px solid var(--hair)}
.spw{flex:1;min-width:0;display:grid;gap:5px}
.spt{margin:0;font-size:.86rem;line-height:1.25}
.sbar{display:flex;height:6px;border-radius:3px;background:var(--panel);overflow:hidden}
.sbar i{display:block;height:100%}
.sb-b{background:var(--ok)}
.sb-c{background:var(--hot)}
.hide-b{min-height:44px;padding:0 10px;font-size:.8rem;white-space:normal;max-width:9.5em;line-height:1.1;text-align:center}
.dep{margin:0}                                        /* заголовки встык */
.dhd{position:sticky;top:calc(var(--header-h) + var(--sa-t) + var(--fbar-h,0px) + var(--prog-h,0px));z-index:10;display:flex;align-items:baseline;
  justify-content:space-between;gap:8px;margin:0 calc(-1 * var(--gutter));padding:14px var(--gutter) 6px;background:var(--paper);font:700 1rem var(--font-text)}
.dcnt{font-weight:600;white-space:nowrap}
.dep.is-done .dcnt{color:var(--ok)}
.dall{margin:0;padding:4px 0}
.srow{display:grid;grid-template-columns:56px 1fr auto auto;align-items:stretch;
  scroll-margin-top:calc(var(--header-h) + var(--sa-t) + var(--fbar-h,0px) + var(--prog-h,0px) + 48px)}
.srow .row{padding-left:4px}
.ck{display:grid;justify-items:center;align-content:center;gap:2px;min-width:44px;min-height:56px;padding:6px 2px;border:0;background:none;color:var(--ink);cursor:pointer}
.cki{position:relative;width:28px;height:28px;border:2px solid var(--muted);border-radius:8px;box-sizing:border-box}
.cki::after{content:"";position:absolute;inset:3px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ckn{max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.1}
.ckn:empty{display:none}
[data-s=cart] .cki{border-color:var(--hot);color:var(--hot);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4h3l2.4 11h11L21 7H6.2'/%3E%3Ccircle cx='9' cy='20' r='1.6'/%3E%3Ccircle cx='17' cy='20' r='1.6'/%3E%3C/svg%3E")}
[data-s=cart] .ckn{color:var(--hot)}
[data-s=bought] .cki{border-color:var(--ok);background:var(--ok);color:var(--card);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E")}
[data-s=bought] .ckn{color:var(--ok)}
[data-s=none] .cki::after,[data-s=skip] .cki::after,.srow:not([data-s]) .cki::after{display:none}
[data-s=bought] .rn,[data-s=skip] .rn{text-decoration:line-through;text-decoration-thickness:1px;color:var(--muted)}
/* «⋯»: skip — тускло, missing — красным; .stl — статус или подсказка */
[data-s=skip]{opacity:.6}
[data-s=missing] .cki,[data-s=missing] .ckn,[data-s=missing] .stl,.dp-miss{border-color:var(--bad);color:var(--bad)}
[data-s=missing] .cki::after{display:block;content:"!";inset:0;background:none;-webkit-mask:none;mask:none;font:800 1rem/24px var(--font-text);text-align:center}
.stl{font-weight:600;color:var(--hot)}
[data-s=skip] .stl{color:var(--muted)}
.dp-miss{border-width:2px;font-weight:700}
.dp-miss[aria-pressed=true]{background:var(--bad);border-color:var(--bad);color:var(--card)}
.ckm{align-self:center;min-width:44px;min-height:44px;border:0;background:none;color:var(--muted);font:700 1.3rem var(--font-text);cursor:pointer}
.mopt{display:grid;gap:2px;width:100%;min-height:56px;margin-top:8px;padding:8px 14px;text-align:left}
.mopt small{font-weight:400;color:var(--muted)}
.mopt:disabled{cursor:default;opacity:.55}

.ckr{align-self:center;min-height:44px;margin-right:6px;padding:0 10px;border-radius:999px;border:1px solid var(--hair);background:var(--panel);color:var(--ink);
  font:600 .82rem var(--font-text);cursor:pointer}
.es{font-style:italic;line-height:1.25}
.es.rsv{font-style:normal;font-weight:600}
.tag{display:inline-block;padding:0 7px;border-radius:999px;border:1px solid var(--hair);font-size:.76rem;font-weight:500;color:var(--muted);white-space:nowrap}

/* люди и деньги */
.crew-list,.pay-list{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:16px;background:var(--card)}
.crew-list li,.pay-list li{padding:10px 14px}
.crew-list li+li,.pay-list li+li{border-top:1px solid var(--hair)}
.crew-list small{display:block;margin-top:2px;line-height:1.35}
.cw,.pw{color:var(--muted);font-size:.88rem}
.crew-list .opt{opacity:.85}
.pay-list li{display:grid;grid-template-columns:1fr auto;gap:0 12px}
.pay-list .pw{grid-column:1;grid-row:2}
.pay-list .pa,.pay-list .pb{grid-column:2;text-align:right;font-weight:600;white-space:nowrap}
.pay-list .pb{grid-row:2;font-weight:400;color:var(--muted)}
.tiles{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tiles li{padding:10px 12px;border-radius:12px;background:var(--panel);display:grid;gap:2px}
.tiles b{font:700 1.2rem var(--font-text)}

/* кнопки и поля */
.btn{min-height:48px;padding:0 18px;border-radius:999px;border:1.5px solid var(--hot);background:var(--hot);color:var(--on-hot);
  font:600 .98rem var(--font-text);cursor:pointer}
.btn.ghost{background:none;color:var(--ink);border-color:var(--hair)}
.btn.wide{width:100%}
.lnk{background:none;border:0;padding:10px 4px;min-height:44px;color:var(--hot);text-decoration:underline;font:inherit;cursor:pointer;text-align:left}
.page-food select,.page-food input:not([type=radio]):not([type=search]),.page-food textarea{width:100%;min-height:48px;padding:10px 12px;border-radius:12px;
  border:1px solid var(--hair);background:var(--paper);color:var(--ink);font:400 1rem/1.4 var(--font-text)}
.page-food textarea{resize:vertical;min-height:96px}
.fld{display:grid;gap:6px;margin:0 0 12px;font-weight:600}
.cook{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.cook label{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--hair);border-radius:999px;cursor:pointer}
.cook label:has(input:checked){border-color:var(--hot);background:var(--panel)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.nact{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.st{font-size:var(--fs-small);color:var(--muted)}
.warn{margin:8px 0;padding:10px 12px;border-radius:12px;background:var(--warn-bg);color:var(--warn-ink);line-height:1.4}
.warn.soft{background:var(--panel);color:var(--ink)}

/* заметки */
.nlist,.feed{list-style:none;margin:0 0 12px;padding:0}
.note,.ev{padding:10px 0;border-top:1px solid var(--hair)}
.note p,.ev p{margin:0}
.nm{font-size:.86rem;color:var(--muted)}
.nm b{color:var(--ink)}
.ntg{font-size:.86rem;color:var(--hot)}
.nt{margin-top:2px!important;line-height:1.45;overflow-wrap:anywhere}
.note.mine{padding-left:10px;border-left:3px solid var(--hot)}
.note.pending{opacity:.8}
.nform{display:grid;gap:10px;margin-top:6px}
.nfor{margin:0;font-size:.88rem;color:var(--muted)}
.feed del{color:var(--muted)}
.feed ins{text-decoration:none;font-weight:600}
.nhead{margin:4px 0 12px}

/* нижняя панель разделов */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);
  height:calc(var(--tabs-h) + var(--sa-b));padding-bottom:var(--sa-b);
  background:var(--paper);border-top:1px solid var(--hair)}
.tabs a{position:relative;display:grid;justify-items:center;align-content:center;gap:3px;min-height:44px;color:var(--muted);
  text-decoration:none;font:500 .72rem var(--font-text)}
.tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabs a[aria-current]{color:var(--hot);font-weight:700}
.tabs a[aria-current]::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--hot)}
.badge{position:absolute;top:6px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--hot);
  color:var(--on-hot);font:700 .7rem/18px var(--font-text);text-align:center}

/* нижний лист */
.sheet-bg{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);opacity:0;transition:opacity .2s}
.sheet-bg.is-open{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:var(--kb,0px);z-index:61;margin:0 auto;max-width:680px;
  max-height:calc(var(--vvh,100dvh) - 20px - var(--sa-t));display:flex;flex-direction:column;background:var(--card);color:var(--ink);
  border-radius:20px 20px 0 0;box-shadow:var(--shadow);transform:translateY(100%);transition:transform .26s var(--ease)}
.sheet.is-open{transform:translateY(0)}
.sheet.is-drag{transition:none}
.sh-grip{flex:none;width:44px;height:5px;margin:8px auto 0;border-radius:3px;background:var(--hair);touch-action:none}
.sh-head{flex:none;display:flex;align-items:center;gap:4px;padding:4px max(6px,var(--sa-r)) 6px max(14px,var(--sa-l));border-bottom:1px solid var(--hair);touch-action:none}
.sh-head h2{flex:1;min-width:0;margin:0;font:700 1.2rem/1.25 var(--font-text);outline:none}
.sh-back+h2{padding-left:0}
.sh-x,.sh-back{flex:none;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer}
.sh-x svg,.sh-back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sh-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:10px max(16px,var(--sa-r)) calc(24px + var(--sa-b)) max(16px,var(--sa-l));-webkit-overflow-scrolling:touch}
.sh-body p{margin:6px 0;line-height:1.45}
.sblk{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--hair)}
.sblk h3{font:700 1.02rem var(--font-text);margin:0 0 8px}
.sblk summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;font-weight:700;cursor:pointer;list-style:none}
.sblk summary::-webkit-details-marker{display:none}
.sblk summary::after{content:"";width:8px;height:8px;margin-right:6px;border:solid var(--muted);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sblk[open] summary::after{transform:rotate(-135deg)}
.facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.facts li{padding:6px 10px;border-radius:10px;background:var(--panel);font-size:.88rem}
.ctx{font-weight:600}
.take-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.take-h h3{margin:0}
.step{display:flex;align-items:center;gap:4px}
.sbtn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--hair);background:var(--paper);color:var(--ink);font:600 1.4rem/1 var(--font-text);cursor:pointer}
.svw{display:grid;justify-items:center;min-width:46px;line-height:1}
.sv{font:700 1.45rem/1 var(--font-display)}
.svw small{font-size:.72rem}
.ings{list-style:none;margin:0;padding:0}
.ings li+li{border-top:1px solid var(--hair)}
.ing{display:grid;grid-template-columns:1fr auto;gap:0 12px;width:100%;min-height:48px;padding:8px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.in{text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px}
.ia{text-align:right;white-space:nowrap}
.ih{grid-column:1/-1;font-size:.82rem}
.tops,.alt{padding:8px 10px;border-radius:10px;background:var(--panel)}
.steps{margin:0;padding-left:1.4em;display:grid;gap:6px;line-height:1.45}
.dchips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.plain{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.92rem;line-height:1.4}
.plain small{display:block}
.big{font-weight:700;font-size:1.05rem}
.who-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;margin:8px 0 4px}
.who-opt{min-height:52px;border-radius:12px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);font:600 1rem var(--font-text);cursor:pointer}
.who-opt[aria-checked=true]{background:var(--hot);border-color:var(--hot);color:var(--on-hot)}
.prof{margin-top:16px;padding-top:12px;border-top:1px solid var(--hair)}
.prof h3{font:700 1.02rem var(--font-text);margin:0 0 10px}
.fld.lg{margin-bottom:6px}

/* статичное меню (без JS) */
.days-static .sday{padding:12px 0;border-top:1px solid var(--hair)}
.sday h3{font:600 1.1rem var(--font-text);margin:0}
.sday .dd{font-family:var(--font-display);font-weight:700}
.sday .lab{margin:2px 0 6px;color:var(--muted);font-size:.9rem}
.sday ul{margin:0;padding-left:1.1em;display:grid;gap:4px}
.sday .slot{display:inline;font-weight:700;color:var(--ink)}

:focus-visible{outline:3px solid var(--hot);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.sheet,.sheet-bg{transition:none}}
@media (min-width:900px){
  .panel{max-width:860px}
  .food-head{max-width:860px;margin:0 auto;padding-inline:var(--gutter)}
  .page-food .fbar{padding-inline:max(var(--gutter),calc((100% - 860px)/2 + var(--gutter)))}
  .tabs{left:50%;right:auto;width:560px;transform:translateX(-50%);bottom:12px;border:1px solid var(--hair);border-radius:18px;
    box-shadow:var(--shadow);height:var(--tabs-h);padding-bottom:0}
  html.food-app body{padding-bottom:calc(var(--tabs-h) + 24px)}
  .sheet{bottom:calc(var(--kb,0px) + 0px);max-height:min(86vh,900px)}
}
/* фото блюд (Z-197 B2): миниатюра 56 px, кадр 4:3; без картинки — плашка */
.th{grid-row:span 3;align-self:center;width:56px;height:56px;border-radius:10px;background:var(--panel);object-fit:cover}
.row>.th{grid-row:span 2}
.mbtn:has(>.th),.row:has(>.th){grid-template-columns:56px 1fr;column-gap:12px}
.dph{margin:0 0 10px}
.dpi{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--panel)}
.dph figcaption{margin-top:4px;font-size:.76rem;color:var(--muted)}
.dph a{color:inherit}

/* Z-210: «Где купить» в закупе и «Магазины у стоянок»; data-shop-* — свои атрибуты */
.shopcard,.shopstops{margin:8px 0;padding:10px 12px;border:1px solid var(--hair);border-radius:16px;background:var(--card)}
.shopcard h4,.shopstop h4{font:600 .98rem var(--font-text);margin:0 0 4px}
.shopcard p,.shopstops p{margin:2px 0;line-height:1.35}
.shop-n b{font-weight:600;margin-right:6px}
.shop-hr.is-closed b{padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink)}
.shop-maps{display:inline-flex;align-items:center;margin-top:6px;text-decoration:none}
.shopbk{margin-top:8px;border-top:1px solid var(--hair)}
.shopbk summary,.shopstops>summary{min-height:44px;display:flex;align-items:center;font-weight:600;cursor:pointer}
.shopstop{padding:8px 0;border-top:1px solid var(--hair)}
.shopc{padding:6px 0}
/* Z-221: «Уже на борту», мороженое, лапша, без готовки — статикой над закупами */
.xb{margin:8px 0;padding:2px 12px 6px;border:1px solid var(--hair);border-radius:16px;background:var(--card)}
.xb>summary{min-height:44px;display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;font-weight:600;cursor:pointer}
.xb>summary small{font-weight:400;color:var(--muted)}
.xb p{margin:6px 0;line-height:1.4}
.xh{margin:12px 0 4px;font-size:.95rem}
.rv{font-size:.92rem;line-height:1.5}.rv i{font-style:normal;font-size:.85em;color:var(--muted)}
.xl,.xr{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px;font-size:.92rem;line-height:1.35}
.xl small{display:block;color:var(--muted)}
.xi{font:inherit;font-weight:600;color:inherit;background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px}
.xe>summary{min-height:44px;display:flex;align-items:center;color:var(--muted);cursor:pointer}
/* Z-221 C2: закуп 1 по факту — балансы, 👍/👎, пометки «без X» */
.bal-list{list-style:none;margin:10px 0;padding:0;border:1px solid var(--hair);border-radius:16px;background:var(--card)}
.bal-list li{padding:8px 14px;display:grid;grid-template-columns:1fr auto;gap:0 12px}
.bal-list li+li{border-top:1px solid var(--hair)}
.bal-list .pw{grid-column:1;grid-row:2;color:var(--muted);font-size:.85em}
.bal-list .pa{grid-column:2;grid-row:1/3;align-self:center;font-weight:600;white-space:nowrap}
.bal-list .pos{color:var(--ok)}
.fb{display:inline-flex;gap:4px;vertical-align:middle}
.fbb{font:inherit;font-size:.85em;line-height:1;padding:4px 12px;min-height:44px;min-width:44px;border:1px solid var(--hair);border-radius:999px;background:var(--card);color:inherit;cursor:pointer}
.fbb.on{border-color:currentColor;font-weight:600}
.fnote{display:block;color:var(--muted);font-size:.8em}
.fbl{margin:6px 0}
