/* EatPlan PWA Plus 0.1.3 (from 0.1.0) — sheets, tools, cards + site dark mode (html[data-ep-theme=dark]). */
:root { --epp-paper:#f7f3e9; --epp-card:#fffdf7; --epp-ink:#073942; --epp-text:#24322f; --epp-muted:#5b6a64; --epp-line:#d9ddd5; --epp-accent:#17483f; --epp-accent-ink:#fffdf7; --epp-rust:#a92f23; --epp-soft:#eeebdf; --epp-ok:#2f7d5b; --epp-shadow:0 -10px 40px rgb(7 57 66 / 22%); }
html[data-ep-theme=dark] { --epp-paper:#121a18; --epp-card:#1a2422; --epp-ink:#e8efe9; --epp-text:#d9e2dc; --epp-muted:#9aaba3; --epp-line:#2e3c38; --epp-accent:#8fc9b1; --epp-accent-ink:#0d1513; --epp-rust:#f08a7c; --epp-soft:#22302c; --epp-ok:#8fd3b0; --epp-shadow:0 -10px 40px rgb(0 0 0 / 55%); color-scheme:dark; }

/* ---- components ---- */
.ep-plus-locked, .ep-plus-locked body { overflow:hidden; }
.ep-plus-sheet-layer { position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-end; justify-content:center; font-family:var(--ep-sans, system-ui, -apple-system, 'PingFang SC', 'Noto Sans CJK SC', sans-serif); }
.ep-plus-backdrop { position:absolute; inset:0; border:0; padding:0; margin:0; background:rgb(7 25 22 / 48%); opacity:0; transition:opacity .22s ease; cursor:default; }
.ep-plus-sheet { position:relative; display:flex; flex-direction:column; width:100%; max-width:560px; max-height:min(88dvh, 88vh); box-sizing:border-box; padding:0 0 env(safe-area-inset-bottom,0px); border-radius:20px 20px 0 0; background:var(--epp-paper); color:var(--epp-text); box-shadow:var(--epp-shadow); transform:translateY(100%); transition:transform .25s cubic-bezier(.2,.8,.2,1); outline:none; }
.ep-plus-sheet-layer.is-open .ep-plus-backdrop { opacity:1; }
.ep-plus-sheet-layer.is-open .ep-plus-sheet { transform:none; }
@media (min-width:720px) { .ep-plus-sheet-layer { align-items:center; } .ep-plus-sheet { border-radius:18px; max-height:84vh; } }
@media (prefers-reduced-motion:reduce) { .ep-plus-sheet, .ep-plus-backdrop { transition:none; } }
.ep-plus-sheet-grip { width:40px; height:5px; margin:8px auto 0; border-radius:3px; background:var(--epp-line); flex:none; }
.ep-plus-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 12px 6px 20px; flex:none; }
.ep-plus-sheet-head h2 { margin:0; color:var(--epp-ink); font:700 19px/1.3 var(--ep-serif, Georgia, 'Noto Serif CJK SC', 'Songti SC', serif); }
.ep-plus-x { display:grid; place-items:center; width:44px; height:44px; flex:none; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:var(--epp-muted); font-size:28px; line-height:1; cursor:pointer; }
.ep-plus-x:hover { background:var(--epp-soft); }
.ep-plus-sheet-body { overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:4px 20px 24px; font-size:15px; line-height:1.6; }
.ep-plus-sheet-body a { color:var(--epp-accent); }
.ep-plus-lead { margin:0 0 12px; color:var(--epp-text); font-size:15px; }
.ep-plus-muted { color:var(--epp-muted); font-size:13px; }
.ep-plus-note { margin:12px 0 0; padding:10px 12px; border-radius:10px; background:var(--epp-soft); color:var(--epp-muted); font-size:13px; }
.ep-plus-callout { margin:8px 0; padding:14px; border:1px dashed var(--epp-line); border-radius:12px; background:var(--epp-card); }
.ep-plus-callout p { margin:0 0 10px; }
.ep-plus-ok { color:var(--epp-ok); font-weight:700; }
.ep-plus-loading::before { content:""; display:inline-block; width:14px; height:14px; margin-right:8px; border:2px solid var(--epp-line); border-top-color:var(--epp-accent); border-radius:50%; vertical-align:-2px; animation:epp-spin .8s linear infinite; }
@keyframes epp-spin { to { transform:rotate(360deg); } }
.ep-plus-actions { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 4px; }
.ep-plus-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:0 18px; border:1px solid var(--epp-line); border-radius:999px; background:var(--epp-card); color:var(--epp-ink); font:600 15px/1 inherit; font-family:inherit; text-decoration:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.ep-plus-btn:disabled { opacity:.55; cursor:default; }
.ep-plus-btn-primary { border-color:var(--epp-accent); background:var(--epp-accent); color:var(--epp-accent-ink); }
.ep-plus-btn:focus-visible, .ep-plus-chip:focus-visible, .ep-plus-choice:focus-visible, .ep-plus-tool:focus-visible, .ep-plus-feature:focus-visible { outline:3px solid var(--epp-rust); outline-offset:2px; }
.ep-plus-link { padding:8px 0; border:0; background:none; color:var(--epp-accent); font:inherit; text-align:left; cursor:pointer; }
.ep-plus-fold { margin:10px 0; border:1px solid var(--epp-line); border-radius:14px; background:var(--epp-card); }
.ep-plus-fold > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:48px; padding:0 14px; color:var(--epp-ink); font-weight:700; list-style:none; cursor:pointer; }
.ep-plus-fold > summary::-webkit-details-marker { display:none; }
.ep-plus-fold > summary::after { content:"›"; color:var(--epp-muted); font-size:20px; transform:rotate(90deg); transition:transform .2s; }
.ep-plus-fold[open] > summary::after { transform:rotate(-90deg); }
.ep-plus-fold > :not(summary) { padding:0 14px 14px; }
.ep-plus-list { margin:0; padding:0; list-style:none; }
.ep-plus-list li { display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-top:1px solid var(--epp-line); }
.ep-plus-list li:first-child { border-top:0; }
.ep-plus-bullets { margin:0 0 8px; padding-left:20px; }
.ep-plus-bullets li { margin:6px 0; }
.ep-plus-chips { display:flex; flex-wrap:wrap; gap:8px; }
.ep-plus-chip { min-height:40px; padding:0 14px; border:1px solid var(--epp-line); border-radius:999px; background:var(--epp-card); color:var(--epp-text); font:500 14px/1 inherit; font-family:inherit; cursor:pointer; }
.ep-plus-chip[aria-pressed=true] { border-color:var(--epp-accent); background:var(--epp-accent); color:var(--epp-accent-ink); }
.ep-plus-toast { position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom,0px)); z-index:100001; max-width:calc(100vw - 32px); padding:12px 16px; border-radius:12px; background:#0e2a26; color:#fffdf7; font:500 14px/1.45 system-ui, sans-serif; box-shadow:0 8px 24px rgb(0 0 0 / 25%); opacity:0; transform:translate(-50%, 10px); transition:opacity .2s, transform .2s; pointer-events:none; }
.ep-plus-toast.is-on { opacity:1; transform:translate(-50%, 0); }

/* segmented 外观 */
.ep-plus-seg { display:inline-flex; margin-left:auto; padding:3px; border-radius:999px; background:var(--epp-soft); }
.ep-plus-seg button { min-width:46px; min-height:34px; padding:0 10px; border:0; border-radius:999px; background:transparent; color:var(--epp-muted); font:600 13px/1 inherit; font-family:inherit; cursor:pointer; }
.ep-plus-seg button[aria-pressed=true] { background:var(--epp-card); color:var(--epp-ink); box-shadow:0 1px 3px rgb(0 0 0 / 15%); }

/* tools (drawer) */
.ep-plus-tools { margin:16px 0 8px; padding-top:14px; border-top:1px solid var(--epp-line); }
.ep-plus-tools-title { margin:0 0 6px; color:var(--epp-muted); font:700 12px/1.4 var(--ep-sans, system-ui, sans-serif); letter-spacing:.08em; }
.ep-plus-tool { display:flex; align-items:center; gap:12px; width:100%; min-height:48px; padding:0 4px; border:0; border-radius:10px; background:transparent; color:var(--epp-ink); font:500 16px/1.2 var(--ep-sans, system-ui, sans-serif); text-align:left; cursor:pointer; }
.ep-plus-tool[hidden] { display:none; }
.ep-plus-tool svg { flex:none; color:var(--epp-ok); }
.ep-plus-tool:hover { background:var(--epp-soft); }
.ep-plus-tool-theme { cursor:default; }
.ep-plus-tool-theme:hover { background:transparent; }
.ep-plus-tools > small { display:block; padding:0 4px 4px 36px; }

/* feature cards (home quiz / account passport) */
.ep-plus-feature { display:flex; align-items:center; gap:14px; width:100%; box-sizing:border-box; margin:14px 0; padding:14px 16px; border:1px solid var(--epp-line); border-radius:16px; background:var(--epp-card); color:var(--epp-ink); font-family:var(--ep-sans, system-ui, sans-serif); text-align:left; cursor:pointer; }
.ep-plus-feature > span:nth-child(2) { display:flex; flex:1; flex-direction:column; gap:2px; }
.ep-plus-feature strong { font-size:16px; }
.ep-plus-feature small { color:var(--epp-muted); font-size:13px; }
.ep-plus-feature > span:last-child { color:var(--epp-muted); font-size:22px; }
.ep-plus-feature-icon { display:grid; place-items:center; width:46px; height:46px; flex:none; border-radius:14px; background:#e7f1ed; color:#2f7d5b; }
html[data-ep-theme=dark] .ep-plus-feature-icon { background:#1f3a32; color:#8fd3b0; }
.ep-magazine-home > .ep-plus-feature, .ep-magazine-home > .ep-plus-opennow { max-width:calc(100% - 2rem); margin-inline:auto; }

/* 现在营业 row */
.ep-plus-opennow { margin:16px 0; }
.ep-plus-row-head { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }
.ep-plus-row-head h2 { margin:0; color:var(--epp-ink); font:700 18px/1.3 var(--ep-serif, Georgia, serif); }
.ep-plus-hscroll { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px; }
.ep-plus-card { display:flex; flex:0 0 72%; max-width:260px; flex-direction:column; gap:4px; scroll-snap-align:start; padding:10px; border:1px solid var(--epp-line); border-radius:14px; background:var(--epp-card); color:var(--epp-ink); text-decoration:none; }
.ep-plus-card img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; }
.ep-plus-card span { color:var(--epp-muted); font-size:13px; }

/* install banner */
.ep-plus-install-bar { position:fixed; left:12px; right:12px; bottom:calc(74px + env(safe-area-inset-bottom,0px)); z-index:9990; display:flex; align-items:center; gap:10px; max-width:520px; margin:0 auto; padding:10px 6px 10px 12px; border:1px solid var(--epp-line); border-radius:16px; background:var(--epp-card); color:var(--epp-text); box-shadow:0 10px 30px rgb(7 57 66 / 18%); font-family:var(--ep-sans, system-ui, sans-serif); }
.ep-plus-install-bar img { border-radius:10px; flex:none; }
.ep-plus-install-bar > div { display:flex; flex:1; flex-direction:column; min-width:0; font-size:13px; }
.ep-plus-install-bar strong { color:var(--epp-ink); font-size:14px; }
.ep-plus-install-bar .ep-plus-btn { min-height:38px; padding:0 14px; font-size:14px; }
.ep-plus-steps { margin:0; padding:0; list-style:none; counter-reset:s; }
.ep-plus-steps li { position:relative; display:flex; flex-direction:column; padding:10px 0 10px 44px; counter-increment:s; }
.ep-plus-steps li::before { content:counter(s); position:absolute; left:0; top:10px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--epp-accent); color:var(--epp-accent-ink); font-weight:700; }
.ep-plus-steps span { color:var(--epp-muted); font-size:13px; }

/* passport */
.ep-plus-stamps { display:grid; grid-template-columns:repeat(auto-fill, minmax(100px, 1fr)); gap:10px; }
.ep-plus-stamp { display:flex; flex-direction:column; align-items:center; gap:4px; margin:0; text-align:center; color:var(--epp-muted); }
.ep-plus-stamp.is-earned { color:var(--epp-ink); }
.ep-plus-stamp-art svg { display:block; }
.ep-plus-stamp figcaption { display:flex; flex-direction:column; font-size:12px; line-height:1.35; }
.ep-plus-stamp figcaption strong { color:inherit; font-size:13px; }
.ep-plus-poster { display:block; width:100%; height:auto; margin:10px 0; border-radius:12px; box-shadow:0 4px 18px rgb(0 0 0 / 15%); }
.ep-plus-switch { display:flex; align-items:center; gap:10px; min-height:44px; }
.ep-plus-switch input { width:20px; height:20px; accent-color:var(--epp-accent); }

/* check-in */
.ep-plus-checkin { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0; padding:14px 16px; border:1px solid var(--epp-line); border-radius:16px; background:var(--epp-card); color:var(--epp-text); font-family:var(--ep-sans, system-ui, sans-serif); }
.ep-plus-checkin > div { display:flex; flex-direction:column; gap:2px; }
.ep-plus-checkin strong { color:var(--epp-ink); font-size:16px; }
.ep-plus-checkin > div > span { color:var(--epp-muted); font-size:13px; } /* 0.1.3: was `.ep-plus-checkin span`, which also greyed the 「我到了」 button label */
.ep-plus-checkin .ep-plus-btn span { color:inherit; font-size:inherit; }
.ep-plus-checkin .ep-plus-btn { flex:none; }
.ep-plus-result { margin-top:8px; }

/* offline */
.ep-plus-pack summary small { font-weight:400; }
.ep-plus-article { font-size:16px; line-height:1.8; }
.ep-plus-article img { max-width:100%; height:auto; border-radius:8px; }
.ep-plus-article h2, .ep-plus-article h3 { color:var(--epp-ink); }
.ep-plus-sos { display:flex; gap:14px; align-items:flex-start; padding:4px 0 12px; }
.ep-plus-sos > div { display:flex; flex-direction:column; gap:2px; font-size:14px; }
.ep-plus-sos-num { display:grid; place-items:center; flex:none; width:64px; height:64px; border-radius:16px; background:var(--epp-rust); color:#fff !important; font:800 22px/1 system-ui, sans-serif; text-decoration:none; }
html[data-ep-theme=dark] .ep-plus-sos-num { background:#b23a2c; }
.ep-plus-src { display:flex; flex-wrap:wrap; gap:8px; font-size:13px; }
.ep-plus-fx { display:flex; flex-direction:column; gap:8px; padding-top:12px; border-top:1px solid var(--epp-line); }
.ep-plus-fx-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ep-plus-fx input, .ep-plus-fx select, .ep-plus-form select, .ep-plus-form input[type=text], .ep-plus-form input[type=date] { box-sizing:border-box; min-height:44px; padding:0 12px; border:1px solid var(--epp-line); border-radius:10px; background:var(--epp-card); color:var(--epp-text); font:16px/1.2 inherit; font-family:inherit; }
.ep-plus-fx input { width:7.5em; }
.ep-plus-fx output { color:var(--epp-ink); font-weight:700; font-size:17px; }

/* quiz */
.ep-plus-progress { display:flex; gap:6px; margin:4px 0 14px; }
.ep-plus-progress i { flex:1; height:6px; border-radius:3px; background:var(--epp-line); }
.ep-plus-progress i.is-on { background:var(--epp-ok); }
.ep-plus-q { margin:0 0 12px; color:var(--epp-ink); font:700 20px/1.35 var(--ep-serif, Georgia, serif); }
.ep-plus-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ep-plus-choice { min-height:56px; padding:8px 12px; border:2px solid var(--epp-line); border-bottom-width:4px; border-radius:14px; background:var(--epp-card); color:var(--epp-ink); font:600 16px/1.3 inherit; font-family:inherit; cursor:pointer; transition:transform .08s; }
.ep-plus-choice:active { transform:translateY(2px); border-bottom-width:2px; }
.ep-plus-choice.is-hint { border-color:var(--epp-ok); }
.ep-plus-dishes { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.ep-plus-dish { display:flex; flex-direction:column; align-items:center; gap:4px; padding:12px 6px; border:1px solid var(--epp-line); border-radius:14px; background:var(--epp-card); color:var(--epp-ink); text-align:center; text-decoration:none; }
.ep-plus-dish img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; }
.ep-plus-dish-glyph { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--epp-soft); color:var(--epp-rust); font:700 26px/1 var(--ep-serif, Georgia, serif); }
.ep-plus-dish span { color:var(--epp-muted); font-size:12px; }
.ep-plus-place-row { display:flex; justify-content:space-between; gap:10px; padding:12px 0; border-top:1px solid var(--epp-line); color:var(--epp-ink); text-decoration:none; }
.ep-plus-place-row span { color:var(--epp-muted); font-size:13px; }

/* itinerary */
.ep-plus-checklist { margin:0; padding:0; list-style:none; }
.ep-plus-checklist label { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-top:1px solid var(--epp-line); cursor:pointer; }
.ep-plus-checklist li:first-child label { border-top:0; }
.ep-plus-checklist input { width:20px; height:20px; margin-top:2px; accent-color:var(--epp-accent); }
.ep-plus-checklist span { display:flex; flex-direction:column; }
.ep-plus-field { display:flex; flex-direction:column; gap:6px; margin:10px 0; }
.ep-plus-field span { color:var(--epp-muted); font-size:13px; }
.ep-plus-field input[hidden] { display:none; }

/* article bar */
.ep-plus-article-bar { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 8px; font-family:var(--ep-sans, system-ui, sans-serif); }
.ep-plus-article-bar .ep-plus-btn[hidden] { display:none; }

/* offline page */
.ep-plus-offline-page { margin:0; background:var(--epp-paper); color:var(--epp-text); font-family:system-ui, -apple-system, 'PingFang SC', 'Noto Sans CJK SC', sans-serif; }
.ep-plus-page { max-width:560px; margin:0 auto; padding:calc(env(safe-area-inset-top,0px) + 24px) 20px 40px; }
.ep-plus-page h1 { color:var(--epp-ink); font:700 28px/1.2 Georgia, 'Noto Serif CJK SC', serif; }

/* ---- website dark mode (theme + Blocksy) ---- */
html[data-ep-theme=dark] { --ep-paper:#121a18; --ep-ink:#e8efe9; --ep-rust:#f08a7c; --ep-line:#2e3c38; --ep-soft:#22302c;
  --theme-palette-color-1:#8fc9b1; --theme-palette-color-2:#b5dccb; --theme-palette-color-3:#c9d4ce; --theme-palette-color-4:#e8efe9; --theme-palette-color-5:#2e3c38; --theme-palette-color-6:#1a2422; --theme-palette-color-7:#121a18; --theme-palette-color-8:#0f1614;
  --theme-text-color:#d9e2dc; --theme-headings-color:#eef3ef; --theme-link-initial-color:#8fc9b1; --theme-link-hover-color:#b5dccb; --theme-border-color:#2e3c38; --theme-form-field-background-initial-color:#1a2422; --theme-form-field-border-initial-color:#3a4a45; }
html[data-ep-theme=dark] body, html[data-ep-theme=dark] body.home, html[data-ep-theme=dark] #main-container, html[data-ep-theme=dark] .site-main, html[data-ep-theme=dark] .single-post #header, html[data-ep-theme=dark] header#header, html[data-ep-theme=dark] [data-row] { background-color:#121a18 !important; color:#d9e2dc; }
html[data-ep-theme=dark] :is(h1,h2,h3,h4,h5,h6,.entry-title,.ep-flow-title) { color:#eef3ef; }
html[data-ep-theme=dark] :is(.ep-flow-card,.ep-explore-theme-card,.ep-explore-filters,.ep-explore-result-card,.ep-explore-empty,.ep-explore-image-credits details,.ep-explore-search-control,.ep-copyright-card,.ep-encyclopedia-hero,.ep-encyclopedia-card,.ep-explore-region-field select,.ep-explore-filters select,.ep-explore-filters input[type=search]) { border-color:#2e3c38; background:#1a2422; color:#d9e2dc; }
html[data-ep-theme=dark] .ep-flow-page { color:#d9e2dc; }
html[data-ep-theme=dark] .ep-magazine-bottom-nav { border-top-color:#2e3c38; background:rgb(18 26 24 / 96%); box-shadow:0 -3px 16px rgb(0 0 0 / 35%); }
html[data-ep-theme=dark] .ep-magazine-bottom-nav a { color:#c9d4ce; }
html[data-ep-theme=dark] .ep-mobile-menu-panel { background:#121a18; color:#e8efe9; }
html[data-ep-theme=dark] .ep-flat-ico, html[data-ep-theme=dark] .ep-app-tag { background:#1f3a32; color:#8fd3b0; }
html[data-ep-theme=dark] .ep-explore-category-icon, html[data-ep-theme=dark] .ep-explore-category-link .ep-explore-category-icon { border-color:#3a4a45; background:#22302c !important; color:#e8efe9; }
html[data-ep-theme=dark] .single-post .ep-contribute-cta { border-color:#2e3c38; background:#17302a; }
html[data-ep-theme=dark] .ep-explore-filter-actions button, html[data-ep-theme=dark] .ep-flow-page :is(button,input[type=submit],.button), html[data-ep-theme=dark] .ep-explore-search-control button, html[data-ep-theme=dark] .ep-explore-filter-chip[aria-current=page] { border-color:#8fc9b1; background:#8fc9b1; color:#0d1513; }
html[data-ep-theme=dark] .entry-content, html[data-ep-theme=dark] .entry-content p, html[data-ep-theme=dark] .entry-content li { color:#d9e2dc; }
html[data-ep-theme=dark] .entry-content a { color:#8fc9b1; }
html[data-ep-theme=dark] :is(input,select,textarea) { background-color:#1a2422; color:#e8efe9; border-color:#3a4a45; }
html[data-ep-theme=dark] img:not([src$=".svg"]) { filter:brightness(.92); }
html[data-ep-theme=dark] .ep-magazine-brand img, html[data-ep-theme=dark] .site-logo-container img { filter:none; box-sizing:border-box; padding:4px 10px; border-radius:10px; background:#f7f3e9; } /* logo keeps brand colours on a paper chip */
/* links styled as buttons keep button colours inside sheets/pages (theme link colours are more specific) */
.ep-plus-sheet-body a.ep-plus-btn, .ep-plus-page a.ep-plus-btn, a.ep-plus-btn { color:var(--epp-ink); text-decoration:none; }
.ep-plus-sheet-body a.ep-plus-btn-primary, .ep-plus-page a.ep-plus-btn-primary, a.ep-plus-btn-primary { color:var(--epp-accent-ink) !important; }
.ep-plus-seg button { white-space:nowrap; }
.ep-plus-tools.is-app-drawer .ep-plus-tool-theme, .ep-plus-tools.is-drawer .ep-plus-tool-theme { flex-wrap:wrap; row-gap:6px; padding-block:6px; }
.ep-plus-tools.is-app-drawer .ep-plus-seg { flex:1 1 100%; margin-left:32px; }
.ep-plus-tools.is-app-drawer .ep-plus-seg button { flex:1; }
/* install banner sits at the top so it never covers the bottom nav or the points bar */
.ep-plus-install-bar { top:calc(env(safe-area-inset-top,0px) + 10px); bottom:auto; z-index:100; animation:epp-drop .25s ease; }
@keyframes epp-drop { from { transform:translateY(-120%); } to { transform:none; } }
@media (prefers-reduced-motion:reduce) { .ep-plus-install-bar { animation:none; } }

/* ---- 0.1.3 dark-mode contrast fixes (site) ---- */
/* eatplan-places place card (.eatplan-place-detail) kept its white background while the text turned light */
html[data-ep-theme=dark] .eatplan-place-detail { background:#1a2422; border-color:#2e3c38; color:#d9e2dc; }
html[data-ep-theme=dark] .eatplan-place-detail :is(p,dd,li,span,summary) { color:#d9e2dc; }
html[data-ep-theme=dark] .eatplan-place-detail__eyebrow { color:#c9d4ce; }
html[data-ep-theme=dark] :is(.eatplan-place-detail__note,.eatplan-place-detail__attr,.eatplan-place-detail__facts small,.eatplan-place-detail__image figcaption,.eatplan-place-detail__gallery figcaption) { color:#a9b8b1; }
html[data-ep-theme=dark] .eatplan-place-detail__facts dt { color:#eef3ef; }
html[data-ep-theme=dark] .eatplan-place-detail__facts > div { border-top-color:#2e3c38; }
html[data-ep-theme=dark] .eatplan-place-detail a:not([class*=btn]):not([class*=button]) { color:#8fc9b1; }
/* byline (Blocksy entry meta: 吃货主编 / date / category) */
html[data-ep-theme=dark] .entry-meta, html[data-ep-theme=dark] .entry-meta li { color:#c9d4ce; }
html[data-ep-theme=dark] .entry-meta a, html[data-ep-theme=dark] .ct-meta-element-author, html[data-ep-theme=dark] .ct-meta-element-author a { color:#8fc9b1 !important; }
/* magazine place hero without a photo: its background is var(--ep-ink), which turns light in dark mode while the text stays white */
html[data-ep-theme=dark] .ep-mag__hero { background-color:#0c2b30; color:#fff; }
html[data-ep-theme=dark] .ep-mag--food .ep-mag__hero.no-image { background-color:#7a2219; }
