:root{
  --bg:#f0f2f5;--bg2:#fff;--bg3:#f8f9fa;
  --fg:#1a1a2e;--fg2:#666;--fg3:#777;--fg4:#888;--fg5:#aaa;--fg6:#999;
  --border:#e0e0e0;--border2:#eee;--border3:#ddd;--border4:#dde;
  --accent:#005a9c;--accent2:#003560;--accent-bg:#e8f0fe;
  --header1:#003560;--header2:#005a9c;
  --card-shadow:0 1px 4px rgba(0,0,0,.05);
  --cat-line:#d0d8e0;--sep-line:#ccc;
  --alert-bg:#fff3cd;--alert-border:#ffc107;--alert-fg:#856404;--alert-fg2:#664d03;
  --closed-bg:#f8d7da;--closed-border:#f5c2c7;--closed-fg:#842029;
  --mod-bg:#cfe2ff;--mod-border:#b6d4fe;--mod-fg:#084298;
  --filter-hover-bg:#fff5f5;--filter-hover-fg:#c00;--filter-hover-border:#c00;
  --filter-on-bg:#dc3545;
  --tag-a-bg:#fff3cd;--tag-a-fg:#856404;--tag-a-border:#ffeeba;
  --tag-w-bg:#f0f0f0;--tag-w-fg:#666;--tag-w-border:#ddd;
  --vegan-bg:#d4edda;--vegan-fg:#155724;
  --veggie-bg:#c3e6cb;--veggie-fg:#1b5e20;
  --poultry-bg:#fff3cd;--poultry-fg:#856404;
  --halal-bg:#d1ecf1;--halal-fg:#0c5460;
  --pork-bg:#f8d7da;--pork-fg:#721c24;
  --fish-bg:#cce5ff;--fish-fg:#004085;
  --beef-bg:#f5c6cb;--beef-fg:#721c24;
  --other-bg:#e9ecef;--other-fg:#495057;
  --detail-bg:#f8f8f8;
  --msg-bg:#fff;--msg-border:#e0e0e0;
}

@media(prefers-color-scheme:dark){
:root{
  --bg:#121218;--bg2:#1e1e28;--bg3:#28283a;
  --fg:#e0e0e8;--fg2:#a0a0b0;--fg3:#909098;--fg4:#808088;--fg5:#686870;--fg6:#787880;
  --border:#2a2a3a;--border2:#252535;--border3:#353548;--border4:#303040;
  --accent:#4da6e8;--accent2:#7fc4f8;--accent-bg:#1a2a40;
  --header1:#0d1b2e;--header2:#142840;
  --card-shadow:0 1px 4px rgba(0,0,0,.3);
  --cat-line:#353548;--sep-line:#404050;
  --alert-bg:#3a3000;--alert-border:#665800;--alert-fg:#e8c840;--alert-fg2:#d0b030;
  --closed-bg:#3a1520;--closed-border:#602030;--closed-fg:#f08090;
  --mod-bg:#102040;--mod-border:#203860;--mod-fg:#70b0f0;
  --filter-hover-bg:#301018;--filter-hover-fg:#f06070;--filter-hover-border:#c04050;
  --filter-on-bg:#c03040;
  --tag-a-bg:#3a3000;--tag-a-fg:#e8c840;--tag-a-border:#665800;
  --tag-w-bg:#282838;--tag-w-fg:#a0a0b0;--tag-w-border:#383848;
  --vegan-bg:#0c2818;--vegan-fg:#60d090;
  --veggie-bg:#102820;--veggie-fg:#50c880;
  --poultry-bg:#3a3000;--poultry-fg:#e8c840;
  --halal-bg:#0c2030;--halal-fg:#60b8d8;
  --pork-bg:#3a1520;--pork-fg:#f08090;
  --fish-bg:#0c1830;--fish-fg:#60a0e0;
  --beef-bg:#381820;--beef-fg:#f08090;
  --other-bg:#282838;--other-fg:#a0a0b0;
  --detail-bg:#1a1a28;
  --msg-bg:#1e1e28;--msg-border:#2a2a3a;
}
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--fg);min-height:100vh}

header{background:linear-gradient(135deg,var(--header1),var(--header2));color:#fff;
  padding:1.4rem 1rem;text-align:center}
header h1{font-size:1.5rem;margin-bottom:.15rem}
.hd{font-size:.98rem;opacity:.88}
.hwi{font-size:.78rem;opacity:.5;margin-top:.15rem}

.wrap{max-width:920px;margin:0 auto}

.cn{display:flex;background:var(--bg2);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:10}
.ct{flex:1;text-align:center;padding:.65rem .3rem;font-size:.88rem;
  font-weight:600;color:var(--fg3);border-bottom:3px solid transparent;
  cursor:pointer;transition:.12s;-webkit-tap-highlight-color:transparent;
  background:none;border-top:0;border-left:0;border-right:0;font-family:inherit}
.ct:hover{color:var(--accent);background:var(--bg3)}
.ct.on{color:var(--accent);border-bottom-color:var(--accent)}

.wn{display:flex;justify-content:center;gap:.5rem;padding:.5rem 1rem;
  background:var(--bg2);border-bottom:1px solid var(--border2)}
.wt{padding:.28rem .75rem;border-radius:6px;font-size:.82rem;font-weight:600;
  color:var(--fg3);border:1px solid var(--border3);cursor:pointer;transition:.12s;
  -webkit-tap-highlight-color:transparent;background:var(--bg2);font-family:inherit}
.wt:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}
.wt.on{background:var(--accent);color:#fff;border-color:var(--accent)}

.fl{background:var(--bg2);border-bottom:1px solid var(--border2);padding:.4rem 1rem;
  display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.fl-toggle{font-size:.72rem;font-weight:600;color:var(--fg4);cursor:pointer;
  background:none;border:1px solid var(--border3);border-radius:4px;padding:.15rem .45rem;
  font-family:inherit;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.fl-toggle:hover{color:var(--filter-hover-fg);border-color:var(--filter-hover-border)}
.fl-all{display:none;flex-wrap:wrap;gap:.35rem;align-items:center}
.fl.expanded .fl-all{display:flex}
.fl-active{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.fl.expanded .fl-active{display:none}

.fb{font-size:.65rem;padding:.18rem .45rem;border-radius:4px;border:1px solid var(--border3);
  background:var(--bg2);color:var(--fg2);cursor:pointer;font-family:inherit;transition:.12s;
  white-space:nowrap;-webkit-tap-highlight-color:transparent}
.fb:hover{border-color:var(--filter-hover-border);background:var(--filter-hover-bg);color:var(--filter-hover-fg)}
.fb.on{background:var(--filter-on-bg);color:#fff;border-color:var(--filter-on-bg)}

.ib{padding:.45rem 1rem;font-size:.78rem;color:var(--fg2);line-height:1.5}

.al{background:var(--alert-bg);border:1px solid var(--alert-border);border-radius:8px;
  padding:.5rem .8rem;margin:.3rem 1rem;font-size:.8rem;line-height:1.4}
.al b{color:var(--alert-fg)}
.al p{color:var(--alert-fg2);margin-top:.1rem}

.sp{border-radius:8px;padding:.45rem .8rem;margin:0 0 .65rem;
  font-size:.8rem;font-weight:600}
.sp.closed{background:var(--closed-bg);border:1px solid var(--closed-border);color:var(--closed-fg)}
.sp.mod{background:var(--mod-bg);border:1px solid var(--mod-border);color:var(--mod-fg)}

.dn{display:flex;gap:.35rem;padding:.6rem 1rem;overflow-x:auto;
  -webkit-overflow-scrolling:touch}
.db{flex:1;min-width:0;padding:.4rem .25rem;border:2px solid var(--border4);
  background:var(--bg2);border-radius:10px;text-align:center;cursor:pointer;
  transition:.12s;-webkit-tap-highlight-color:transparent;font-family:inherit;
  font-size:inherit;color:inherit}
.db:hover{border-color:var(--accent);background:var(--accent-bg)}
.db.on{border-color:var(--accent);background:var(--accent);color:#fff}
.db .dw{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.db .dd{font-size:.8rem;margin-top:.06rem}

.db.td{position:relative}
.db.td::after{content:'●';position:absolute;top:.18rem;right:.18rem;
  font-size:.55rem;color:var(--fg5);line-height:1;pointer-events:none}
.db.td.open::after{color:#28a745}
.db.td.open.on::after{color:#80f0a0}
.db.td.soon::after{color:#e8a000}
.db.td.soon.on::after{color:#ffd060}
.db.td.closed::after{color:#dc3545}
.db.td.closed.on::after{color:#ff8a8a}

.panel{padding:.2rem 1rem 2rem}

.sdiv{display:flex;align-items:center;gap:.6rem;margin:1.2rem 0 .8rem;padding:0 .1rem}
.sdiv span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--fg4);font-weight:600;white-space:nowrap}
.sdiv .sl{flex:1;height:1px;background:var(--sep-line)}

.msg{border-radius:12px;padding:2rem 1.5rem;text-align:center;margin-top:1rem}
.msg.emp{background:var(--msg-bg);border:1px solid var(--msg-border)}
.msg .ic{font-size:2.2rem;margin-bottom:.35rem}
.msg h2{font-size:1.05rem;margin-bottom:.25rem}
.msg p{color:var(--fg2);font-size:.85rem}

.cat{margin-bottom:1.1rem}
.ch{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem}
.cn2{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;
  color:var(--accent);font-weight:700;white-space:nowrap}
.cl{flex:1;height:1px;background:var(--cat-line)}

.ml{background:var(--bg2);border-radius:10px;padding:.95rem 1.1rem;margin-bottom:.45rem;
  box-shadow:var(--card-shadow);border-left:4px solid var(--accent)}
.ml.ft{border-left-color:#f0a500}
.ml.filtered{opacity:.15;pointer-events:none;max-height:2.5rem;overflow:hidden;
  transition:opacity .2s,max-height .2s}
.mt{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem}
.mi{flex:1;min-width:0}
.mn{font-size:.98rem;font-weight:600;line-height:1.35}
.mb{display:flex;flex-wrap:wrap;gap:.22rem;margin-top:.3rem}
.bg{display:inline-block;font-size:.68rem;font-weight:700;
  padding:.12rem .4rem;border-radius:4px}
.bi{display:inline-block;width:.85rem;text-align:center;
  vertical-align:middle;overflow:hidden;font-size:.7rem;line-height:.68rem}
.bg.vegan{background:var(--vegan-bg);color:var(--vegan-fg)}
.bg.veggie{background:var(--veggie-bg);color:var(--veggie-fg)}
.bg.poultry{background:var(--poultry-bg);color:var(--poultry-fg)}
.bg.halal{background:var(--halal-bg);color:var(--halal-fg)}
.bg.pork{background:var(--pork-bg);color:var(--pork-fg)}
.bg.fish{background:var(--fish-bg);color:var(--fish-fg)}
.bg.beef{background:var(--beef-bg);color:var(--beef-fg)}
.bg.other{background:var(--other-bg);color:var(--other-fg)}
.mp{text-align:right;flex-shrink:0}
.pp{background:var(--accent-bg);color:var(--accent2);padding:.2rem .55rem;border-radius:6px;
  font-weight:700;font-size:.93rem;white-space:nowrap;display:inline-block}
.po{font-size:.66rem;color:var(--fg6);margin-top:.15rem;white-space:nowrap}

.ml details{margin-top:.35rem}
.ml summary{font-size:.72rem;color:var(--fg5);cursor:pointer;user-select:none;
  list-style:none}
.ml summary::-webkit-details-marker{display:none}
.ml summary::before{content:'▸ '}
.ml details[open] summary::before{content:'▾ '}
.ml summary:hover{color:var(--fg2)}
.tgs{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.25rem}
.tg{font-size:.62rem;padding:.1rem .35rem;border-radius:3px;font-weight:500}
.tg.ta{background:var(--tag-a-bg);color:var(--tag-a-fg);border:1px solid var(--tag-a-border)}
.tg.tw{background:var(--tag-w-bg);color:var(--tag-w-fg);border:1px solid var(--tag-w-border)}

footer{text-align:center;padding:1.2rem;color:var(--fg5);font-size:.72rem}
footer a{color:var(--fg4);text-decoration:underline}

@media(max-width:600px){
  header h1{font-size:1.2rem}
  .ct{padding:.5rem .2rem;font-size:.78rem}
  .db{min-width:52px;padding:.35rem .15rem}
  .db .dw{font-size:.6rem}.db .dd{font-size:.72rem}
  .mt{flex-direction:column;gap:.25rem}
  .mp{text-align:left}
  .ml{padding:.8rem .85rem}
}