:root{--eatplan-mint:#e7f1ed;--eatplan-ink:#254b40;--eatplan-green:#527b6b;--eatplan-line:#dce8e2}body{background:#f5f8f6;color:#3f5149}.header,.footer-bar-5{background:#f7faf8}.header-title{color:var(--eatplan-ink)!important;font-weight:700}.eatplan-dot{position:absolute;width:7px;height:7px;background:#7aa58f;border-radius:50%;top:10px;right:8px}.color-highlight{color:var(--eatplan-green)!important}.bg-highlight{background-color:var(--eatplan-green)!important}.gradient-highlight{background-image:linear-gradient(120deg,#769b89,#426759)!important}.eatplan-content{padding-bottom:105px}.eatplan-demo-note{font-size:11px;color:#627970;background:#eaf2ee;border-radius:10px;padding:10px 12px}.eatplan-card-image{width:100%;height:150px;object-fit:cover;border-radius:14px}.eatplan-option{display:block;width:100%;text-align:left;border:1px solid var(--eatplan-line);background:#fff;border-radius:12px;padding:12px 14px;margin:8px 0;color:#314b40}.eatplan-option[aria-pressed=true]{border-color:#648b78;background:#edf5f0}.eatplan-hidden{display:none!important}.eatplan-content .card-style{box-shadow:0 4px 16px rgba(46,77,62,.08)}.eatplan-content .page-title h1{color:var(--eatplan-ink)}.eatplan-content .list-group .fa{flex:0 0 auto}
@media(min-width:768px){.eatplan-content{max-width:620px;margin:0 auto}.header,.eatplan-bottom-nav{max-width:620px;margin:auto}}
.eatplan-bottom-nav{padding-bottom:env(safe-area-inset-bottom);background:rgba(247,250,248,.94)!important;border-top:1px solid var(--eatplan-line)!important}
.eatplan-bottom-nav a{min-height:64px;padding:8px 4px 4px!important;color:#52675e!important;text-decoration:none}
.eatplan-bottom-nav a i{display:block;font-size:18px!important;padding:0!important;margin:0 auto 3px}
.eatplan-bottom-nav a span{display:block!important;position:static!important;margin:0!important;font-family:inherit!important;font-size:10px!important;line-height:1.2;opacity:.82}
.eatplan-bottom-nav a.active-nav{color:var(--eatplan-ink)!important;font-weight:700}
.eatplan-bottom-nav a.active-nav i{color:var(--eatplan-green)}
.eatplan-bottom-nav a:focus-visible,.eatplan-content a:focus-visible,.eatplan-content button:focus-visible{outline:3px solid #8aa995;outline-offset:2px}
.eatplan-option:disabled{opacity:1;cursor:default}
.eatplan-content .btn-sm{min-height:44px;align-items:center}
.eatplan-demo-note[role=status]{border-left:3px solid #70927f}
@media(prefers-reduced-motion:reduce){.eatplan-bottom-nav{transition:none!important;scroll-behavior:auto!important}}
.eatplan-v2-dialog{width:min(92vw,460px);max-width:460px;padding:0;border:0;border-radius:18px;color:#3f5149;box-shadow:0 18px 60px rgba(20,45,35,.28)}
.eatplan-v2-dialog::backdrop{background:rgba(19,36,30,.55)}
.eatplan-v2-dialog .content{padding:20px;margin:0}
.eatplan-v2-dialog h3{color:var(--eatplan-ink)}
.eatplan-v2-dialog button{min-height:44px}
.eatplan-v2-plan-item{border:1px solid var(--eatplan-line)}
.eatplan-v2-step-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;font-size:11px;color:#52675e}
.eatplan-v2-step-row span{background:#eaf2ee;border-radius:99px;padding:4px 8px}
.eatplan-v2-offers{display:flex;flex-wrap:wrap;gap:4px}
html[data-journey-v2] .eatplan-content{overflow-wrap:anywhere}
html[data-journey-v2] .eatplan-v2-dialog{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){html[data-journey-v2] *,html[data-journey-v2] *::before,html[data-journey-v2] *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.demo-cover-box{display:grid;place-items:center;min-height:190px;border:1px dashed var(--eatplan-line);border-radius:14px;background:#edf4f0;overflow:hidden}.demo-cover-box img{display:block;width:100%;max-height:300px;object-fit:cover}.demo-cover-empty{text-align:center;color:#678075;padding:28px}.demo-empty-state{text-align:center;padding:22px 12px;color:#678075;background:#f4f8f5;border-radius:12px}.demo-preview-dialog{max-height:88vh;overflow:auto}.demo-preview-cover{display:block;width:100%;max-height:280px;object-fit:cover;border-radius:12px;margin:12px 0}.demo-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.demo-preview-dialog [data-preview-title],.demo-preview-dialog [data-preview-category]{overflow-wrap:anywhere}

/* Match AppKit's fixed chrome to the centered 620px content canvas. */
@media(min-width:768px){html[data-journey-v2] .header,html[data-journey-v2] #footer-bar,html[data-journey-v2] .page-title.page-title-fixed{box-sizing:border-box;width:min(100%,620px);max-width:620px;left:50%;right:auto;margin-left:0;margin-right:0;transform:translateX(-50%)}}
@media(max-width:767.98px){html[data-journey-v2] .header,html[data-journey-v2] #footer-bar,html[data-journey-v2] .page-title.page-title-fixed{box-sizing:border-box;width:100%;max-width:none;left:0;right:0;margin-left:0;margin-right:0;transform:none}}
@supports(padding:max(0px)){html[data-journey-v2] .header,html[data-journey-v2] #footer-bar{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}
@supports(padding:max(0px)){html[data-journey-v2] .header{top:env(safe-area-inset-top)}html[data-journey-v2] .page-title.page-title-fixed{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}html[data-journey-v2] .page-content.eatplan-content{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}
.eatplan-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(205px,34vw,270px);overflow:hidden;margin:0 0 22px;border-radius:22px;background:#23473c;box-shadow:0 8px 22px rgba(37,75,64,.16)}
.eatplan-hero img{position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;object-fit:cover}
.eatplan-hero::after{position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(180deg,rgba(17,35,29,.03) 10%,rgba(17,35,29,.76) 100%)}
.eatplan-hero-copy{position:relative;max-width:28em;padding:22px 20px;color:#fff}
.eatplan-hero-copy p{margin:0 0 8px;color:rgba(255,255,255,.88);font-size:13px;font-weight:600;letter-spacing:.04em}
.eatplan-hero-copy h2{margin:0;color:#fff;font-size:clamp(25px,4.5vw,34px);font-weight:750;line-height:1.2;letter-spacing:.01em}
@media(max-width:767.98px){.eatplan-hero{min-height:210px;border-radius:18px}.eatplan-hero-copy{padding:18px}.eatplan-hero-copy h2{max-width:12em;font-size:clamp(24px,7vw,30px)}}
/* Keep the page title below the 50px fixed AppKit brand bar and reserve its space in document flow. */
html[data-journey-v2] .page-title.page-title-fixed{top:calc(50px + env(safe-area-inset-top));margin-top:0;margin-bottom:0}
html[data-journey-v2] .page-title-clear{height:calc(110px + env(safe-area-inset-top))!important}
html[data-journey-v2] .eatplan-content .search-box{position:relative}
html[data-journey-v2] .eatplan-content .search-box input{padding-left:68px!important}
html[data-journey-v2] .page-title.page-title-fixed{z-index:97;background-color:var(--eatplan-mint)}
html[data-journey-v2] .eatplan-home{padding-top:calc(50px + env(safe-area-inset-top))}
.eatplan-menu-hero{background-image:url("../appkit/images/eatplan-hero-breakfast.jpg")!important;background-position:center 54%;background-size:cover}
html[data-journey-v2] #menu-main .bg-6{background-image:url("../appkit/images/eatplan-hero-breakfast.jpg")!important;background-position:center 54%;background-size:cover}

/* Shared compact accordion navigation */
.eatplan-menu .eatplan-menu-head{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;background:#e7f1ed;color:#225447}.eatplan-menu .eatplan-menu-head strong{font-size:19px;font-weight:700}.eatplan-menu .eatplan-menu-close{border:0;background:transparent;color:#225447;font-size:28px;line-height:1;width:40px;height:40px;border-radius:50%}.eatplan-menu-content{padding-top:10px}.eatplan-menu-content>.eatplan-demo-note{font-size:12px;color:#60736d;margin:4px 0 12px}.eatplan-menu-group{border-bottom:1px solid rgba(34,84,71,.12)}.eatplan-menu-group h2{margin:0}.eatplan-menu-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:10px 4px;border:0;background:transparent;color:#263f37;text-align:left;font:inherit;font-size:15px;font-weight:650}.eatplan-menu-toggle i{transition:transform .18s ease}.eatplan-menu-toggle[aria-expanded="true"] i{transform:rotate(180deg)}.eatplan-menu-panel[hidden]{display:none!important}.eatplan-menu-panel .list-menu{padding:0 0 8px 10px}.eatplan-menu-panel .eatplan-menu-link{display:flex;align-items:center;justify-content:space-between;min-height:42px;color:#40564e;text-decoration:none}.eatplan-menu-panel .eatplan-menu-link i{margin-left:auto}.eatplan-menu-later{margin:14px 0 4px;font-size:12px;color:#71817b}.eatplan-menu-later a{color:inherit;text-decoration:none}.eatplan-menu button:focus-visible,.eatplan-menu a:focus-visible{outline:3px solid #2d8067;outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){.eatplan-menu-toggle i{transition:none}}
/* Compact cross-feature profile dashboard */
.eatplan-dashboard-section{margin:22px 0}.eatplan-dashboard-identity{border-radius:16px;overflow:hidden}.eatplan-dashboard-identity .content{padding:16px}.eatplan-dashboard-identity p{font-size:13px;color:#60736d}.eatplan-dashboard-identity p.font-600{font-size:16px}.eatplan-dashboard-section h2{margin:0;font-size:17px;color:var(--eatplan-ink)}.eatplan-dashboard-heading{display:flex;justify-content:space-between;align-items:center;margin:0 4px 10px}.eatplan-dashboard-heading>a{font-size:12px;color:#527b6b}.eatplan-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.eatplan-dashboard-stat,.eatplan-dashboard-summary{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--eatplan-line);border-radius:14px;background:#fff;color:#314b40;text-decoration:none;min-width:0}.eatplan-dashboard-stat>span,.eatplan-dashboard-summary span{font-size:12px;color:#60736d}.eatplan-dashboard-stat>strong,.eatplan-dashboard-summary strong{font-size:21px;line-height:1.2;font-weight:700;color:var(--eatplan-ink);overflow-wrap:anywhere}.eatplan-dashboard-stat small,.eatplan-dashboard-summary small{font-size:11px;color:#6e8078}.eatplan-dashboard-stat small b,.eatplan-dashboard-summary small b{font-weight:600}.eatplan-dashboard-progress{padding:12px 14px;margin-top:9px;border-radius:14px;background:#edf5f0;font-size:12px;color:#48675a}.eatplan-dashboard-progress .progress{height:6px;background:#d5e6dc}.eatplan-dashboard-next{border-radius:16px;background:linear-gradient(135deg,#edf5f0,#fff)}.eatplan-dashboard-next h3{font-size:17px;line-height:1.35;color:var(--eatplan-ink)}.eatplan-dashboard-next p{font-size:12px;color:#60736d}.eatplan-dashboard-summary.card{margin:0}.eatplan-dashboard-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 22px}.eatplan-dashboard-shortcuts>.eatplan-dashboard-summary:last-child{grid-column:1/-1}.eatplan-dashboard-activity{list-style:none;padding:0;margin:0;border-top:1px solid var(--eatplan-line)}.eatplan-dashboard-activity-row,.eatplan-dashboard-empty{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--eatplan-line);font-size:12px;color:#41594e}.eatplan-dashboard-activity-row time{flex:0 0 auto;color:#7a8b84;font-size:11px}.eatplan-dashboard-unconnected,.eatplan-dashboard-settings{margin:16px 0;border-radius:14px}.eatplan-dashboard-unconnected>summary,.eatplan-dashboard-settings>summary{padding:14px 16px;cursor:pointer;font-size:14px;font-weight:600;color:var(--eatplan-ink)}.eatplan-dashboard-unconnected[open]>summary,.eatplan-dashboard-settings[open]>summary{border-bottom:1px solid var(--eatplan-line)}.eatplan-dashboard-unconnected .content,.eatplan-dashboard-settings .content{font-size:12px;color:#60736d}.eatplan-dashboard-settings form{border:0;box-shadow:none;margin:0}.eatplan-dashboard-status{padding:10px 12px;border-radius:10px;background:#fff4df;color:#715822;font-size:12px}.eatplan-dashboard [data-dashboard-status]:not(.eatplan-hidden){display:block}
@media(min-width:500px){.eatplan-dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.eatplan-dashboard-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.eatplan-dashboard-shortcuts>.eatplan-dashboard-summary:last-child{grid-column:auto}}

/* v1.3.0 place-detail information hierarchy */
html[data-journey-v2] .eatplan-place-facts{margin:0}html[data-journey-v2] .eatplan-place-facts>div{display:grid;grid-template-columns:minmax(112px,35%) 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--eatplan-line)}html[data-journey-v2] .eatplan-place-facts dt{font-weight:650}html[data-journey-v2] .eatplan-place-facts dd{margin:0;color:#64736e}html[data-journey-v2] [data-card-height="230"]{height:230px}
.eatplan-live-status{margin:.75rem 0;color:#475569;font-size:.9rem;line-height:1.45}
.eatplan-live-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.eatplan-live-card{min-width:0;overflow:hidden}
.eatplan-live-card h2{font-size:1.15rem;line-height:1.35;overflow-wrap:anywhere}
.eatplan-live-card .content{padding-bottom:1rem}
.eatplan-live-article,.eatplan-live-place-detail{max-width:720px;margin-inline:auto}
.eatplan-wp-content-body{overflow-wrap:anywhere;line-height:1.75}
.eatplan-wp-content-body img,.eatplan-wp-content-image{display:block;max-width:100%;height:auto;border-radius:.75rem;margin:1rem auto}
.eatplan-live-places .eatplan-live-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.eatplan-live-card [data-favorite-status]{flex-basis:100%;color:#475569;font-size:.82rem}

/* [EP2] list-custom-large rows: long titles wrap instead of overlapping the next row
   (AppKit positions span/strong absolutely on a 70px line-height). */
.eatplan-content .list-custom-large a{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;height:auto;min-height:70px;line-height:1.35;padding:12px 28px 12px 0;position:relative}
.eatplan-content .list-custom-large a > i:first-child{grid-column:1;grid-row:1 / span 2;margin:0}
.eatplan-content .list-custom-large a span:not(.badge){position:static;margin:0;grid-column:2;white-space:normal;line-height:1.35}
.eatplan-content .list-custom-large a strong{position:static;margin:0;grid-column:2;line-height:1.3}
.eatplan-content .list-custom-large a > i.fa-angle-right{position:absolute;right:4px;top:50%;transform:translateY(-50%);line-height:1;margin:0}
/* [EP14] Image-first place cards: 查看全部 (explore.html) and 为你精选 (index.html). Own photos only; no-photo cards are text cards. */
.ep14-place-grid{display:grid;grid-template-columns:1fr;gap:16px}
/* columns follow the App column width (it is capped on desktop), not the viewport */
.ep14-places,.ep14-home-wrap{container-type:inline-size}
@container (min-width:440px){.ep14-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:820px){.ep14-place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ep14-place-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border-radius:18px;box-shadow:0 6px 22px rgba(46,77,62,.10)}
.ep14-place-media{position:relative;display:block;aspect-ratio:4/3;background:#e3ece7;overflow:hidden}
.ep14-place-img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.ep14-place-card a:hover .ep14-place-img,.ep14-home-tile:hover .ep14-place-img{transform:scale(1.03)}
.ep14-chip{display:inline-block;max-width:100%;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--eatplan-ink);font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep14-place-media .ep14-chip{position:absolute;left:12px;top:12px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.ep14-chip-soft{background:#e7f1ed;align-self:flex-start;margin-bottom:8px}
.ep14-place-body{display:flex;flex-direction:column;padding:14px 16px 16px}
.ep14-place-title{font-size:1.15rem;line-height:1.35;margin:0 0 4px;overflow-wrap:anywhere}
.ep14-place-title a{color:var(--eatplan-ink)}
.ep14-place-region{margin:0 0 6px;font-size:12px;color:var(--eatplan-green)}
.ep14-place-region .fa{margin-right:2px}
.ep14-place-excerpt{margin:0 0 12px;font-size:13px;line-height:1.6;color:#4d6158;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ep14-place-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto}
.ep14-place-actions .btn{min-height:36px}
.ep14-place-actions [data-favorite-status]{flex-basis:100%;color:#475569;font-size:.82rem}
.ep14-place-card.no-image{background:linear-gradient(160deg,#eef6f2 0%,#fff 70%);border:1px solid var(--eatplan-line)}
.ep14-place-card.no-image .ep14-place-body{padding-top:18px}
.ep14-skeleton .ep14-place-media{background:linear-gradient(90deg,#e6eee9 25%,#f2f6f4 50%,#e6eee9 75%);background-size:200% 100%;animation:ep14-shimmer 1.2s infinite linear}
.ep14-skeleton{min-height:260px}
@keyframes ep14-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.ep14-skeleton .ep14-place-media{animation:none}.ep14-place-img{transition:none}}
.ep14-count{font-size:12px;color:#627970;margin:0 0 10px}
.ep14-more{display:block;width:100%;margin-top:16px;min-height:44px}
.ep14-state{text-align:center;background:#fff;border-radius:18px;padding:28px 20px;box-shadow:0 4px 16px rgba(46,77,62,.08)}
.ep14-state-icon{font-size:28px;color:#7aa58f;margin-bottom:10px}
.ep14-state-title{font-weight:700;color:var(--eatplan-ink);margin:0 0 4px;font-size:15px}
.ep14-state-text{color:#627970;font-size:13px;margin:0 0 14px}
.ep14-state .btn{min-height:40px;padding-left:18px;padding-right:18px}
.ep14-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@container (min-width:720px){.ep14-home-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ep14-home-tile{aspect-ratio:3/4;border-radius:16px;text-decoration:none!important}
.ep14-home-tile .ep14-place-media{position:absolute;inset:0;aspect-ratio:auto}
.ep14-home-copy{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:28px 12px 12px}
.ep14-home-tile.has-image .ep14-home-copy{background:linear-gradient(180deg,rgba(18,32,26,0) 0%,rgba(18,32,26,.78) 70%)}
.ep14-home-title{font-weight:700;font-size:15px;line-height:1.3;color:#fff;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ep14-home-region{font-size:11px;color:rgba(255,255,255,.88)}
.ep14-home-tile.no-image .ep14-home-copy{top:0;justify-content:flex-end}
.ep14-home-tile.no-image .ep14-home-title{color:var(--eatplan-ink)}
.ep14-home-tile.no-image .ep14-home-region{color:var(--eatplan-green)}
.ep14-home-tile.no-image .ep14-chip{background:#e7f1ed}
.ep14-place-actions [data-favorite-status]:empty{display:none}
/* [EP17] 杂志 cards: image first (featured image), no doubled spacing under cards */
.eatplan-live-grid>.card-style{margin-bottom:0!important}
.eatplan-live-card [data-favorite-status]:empty{display:none}
.eatplan-live-card .eatplan-magazine-image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#e7f1ed;margin:0;border-radius:0}
.eatplan-live-card.has-image .content{padding-top:.9rem}
/* [EP18] 商家类型 chip row on explore.html (hidden when the API has no merchant types) */
.ep18-merchant-chips{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 4px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.ep18-merchant-chips::-webkit-scrollbar{display:none}
.ep18-merchant-chips[hidden]{display:none}
.ep18-chip{flex:0 0 auto;scroll-snap-align:start;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--eatplan-line);background:#fff;color:var(--eatplan-ink);font-size:13px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer}
.ep18-chip[aria-pressed="true"]{background:var(--eatplan-ink);border-color:var(--eatplan-ink);color:#fff}
.ep18-chip:focus-visible{outline:2px solid var(--eatplan-green);outline-offset:2px}
.ep18-chip-n{font-size:11px;font-weight:700;opacity:.7}
