/* GENERATED FILE - DO NOT EDIT.
   Source: shared/public-places.css - run `npm run sync:shared` after editing. */

/* Public Places (shared/public-places.js) — a public visitor's Places tab, web + app. The rows are Places by day's
   compact card (shared/places-days.css .lpd-card); this adds the head, the chips and the two section heads. */
.pubp { display: grid; gap: 0.9rem; min-width: 0; color: #263b32; }
.pubp-head h2 { margin: 0; font: 500 1.7rem/1.15 "Playfair Display", Georgia, serif; color: #1b2a23; }
.pubp-head p { margin: 0.2rem 0 0; color: #66706a; font-size: 0.84rem; }
.pubp-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pubp-chip {
  min-height: 2rem;
  padding: 0 0.8rem;
  border: 1px solid #e2ddd0;
  border-radius: 999px;
  background: #fffdf8;
  color: #263b32;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.pubp-chip[aria-pressed="true"] { border-color: #173a40; background: #173a40; color: #fff; }
.pubp-lists { gap: 1rem; }
.pubp-sec { display: grid; gap: 0.6rem; min-width: 0; }
.pubp-sec[hidden] { display: none; }
.pubp-sec-head { display: flex; align-items: baseline; gap: 0.5rem; margin: 0; font: 400 1.2rem/1.2 "Playfair Display", Georgia, serif; color: #263b32; }
.pubp-sec-head small { font: 700 0.78rem/1 "DM Sans", system-ui, sans-serif; color: #66706a; }
.pubp-sec-head::after { content: ""; flex: 1 1 auto; height: 1px; align-self: center; background: #e2ddd0; }
:is(#panel-places, #panel-food, .lb-food-web, #app) .pubp .lpd .lpd-list > .lpd-card.pubp-row { cursor: default; }
.pubp .lpd-list > .lpd-card[hidden] { display: none; }
.pubp .lpd-chip.pubp-idea { background: #fbefd4; color: #8a5a0c; }
.pubp-empty { margin: 0; color: #66706a; font-size: 0.9rem; }
/* Workbook settings: "Show saved places" under Public */
.wb-ideas-row { margin-top: 0.75rem; }
.wb-ideas-note { margin: 0.25rem 0 0; color: #66706a; font-size: 0.78rem; font-style: italic; }
.wb-ideas-row .wb-switch[disabled] { opacity: 0.6; cursor: default; }
/* Taps (owner 2026-10-21): a card opens its stop / food place / idea; a Day chip goes to the stop on the Itinerary.
   A card with nothing to open stays plain (no pointer, no hover). */
:is(#panel-places, #panel-food, .lb-food-web, #app) .pubp .lpd .lpd-list > .lpd-card.pubp-row.is-tap { cursor: pointer; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
@media (hover: hover) {
  :is(#panel-places, #panel-food, .lb-food-web, #app) .pubp .lpd .lpd-list > .lpd-card.pubp-row.is-tap:hover { border-color: #c9d8cf; box-shadow: 0 4px 14px rgba(23, 58, 64, 0.1); }
}
:is(#panel-places, #panel-food, .lb-food-web, #app) .pubp .lpd .lpd-list > .lpd-card.pubp-row.is-tap:focus-visible { outline: 3px solid #2f7d5b; outline-offset: 2px; }
.pubp .lpd-chip.pubp-go { border: 0; font: inherit; font-size: 0.74rem; font-weight: 700; line-height: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
@media (hover: hover) { .pubp .lpd-chip.pubp-go:hover { background: #c6e6d6; } }
.pubp .lpd-chip.pubp-go:focus-visible { outline: 2px solid #2f7d5b; outline-offset: 2px; }
/* The stop the Day chip went to, on the Itinerary */
.lb-pubp-flash { animation: lb-pubp-flash 1.4s ease-out; }
@keyframes lb-pubp-flash {
  0%, 40% { box-shadow: 0 0 0 3px #e6c98e, 0 6px 18px rgba(122, 90, 20, 0.22); }
  100% { box-shadow: 0 0 0 0 rgba(230, 201, 142, 0); }
}
@media (prefers-reduced-motion: reduce) { .lb-pubp-flash { animation: none; outline: 3px solid #e6c98e; outline-offset: 2px; } }
/* "Also worth a visit": the small read-only card */
.pubp-idea-card { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 16px; }
.pubp-idea-scrim { position: absolute; inset: 0; border: 0; background: rgba(20, 30, 26, 0.45); cursor: pointer; }
.pubp-idea-panel { position: relative; width: min(100%, 22rem); padding: 1.1rem 1.15rem 1rem; border-radius: 18px; background: #fffdf8; color: #263b32; box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22); }
.pubp-idea-kicker { margin: 0; color: #8a5a0c; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.pubp-idea-panel h2 { margin: 0.25rem 0 0; font: 500 1.35rem/1.2 "Playfair Display", Georgia, serif; color: #1b2a23; overflow-wrap: anywhere; }
.pubp-idea-meta { margin: 0.3rem 0 0; color: #4c5a53; font-size: 0.88rem; }
.pubp-idea-note { margin: 0.4rem 0 0; color: #66706a; font-size: 0.8rem; }
.pubp-idea-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.9rem; }
.pubp-idea-map, .pubp-idea-done { display: inline-flex; align-items: center; justify-content: center; min-height: 2.5rem; padding: 0 1rem; border-radius: 999px; font: inherit; font-size: 0.86rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.pubp-idea-map { background: #173a40; color: #fff; border: 1px solid #173a40; }
.pubp-idea-done { background: transparent; color: #263b32; border: 1px solid #e2ddd0; }

/* Visited, by day (owner 2026-10-25): the day is the heading, so no Day chip on the cards */
.pubp-day + .pubp-day { margin-top: 0.6rem; }
.pubp-day-head { margin: 0.4rem 0 0.35rem; font: 600 0.95rem/1.3 "DM Sans", system-ui, sans-serif; color: #263b32; }
.pubp-day-head small { margin-left: 0.35rem; font-weight: 400; color: #66706a; }
.pubp .lpd-chip.pubp-skip { background: #f6e1d9; color: #8a2f13; }

/* The place card: a tap on a place opens it over the page (photo, when, tip, address, memories, reviews) */
.pubp-idea-panel.pubp-pc { width: min(100%, 34rem); max-height: calc(100vh - 32px); overflow: auto; outline: none; }
.pubp-pc-photo { margin: -1.1rem -1.15rem 0.8rem; }
.pubp-pc-photo img { display: block; width: 100%; height: 13rem; object-fit: cover; border-radius: 18px 18px 0 0; }
.pubp-pc-when { margin: 0.35rem 0 0; color: #4c5a53; font-size: 0.88rem; }
.pubp-pc-when.is-skip { color: #8a2f13; }
.pubp-pc-score { margin: 0.35rem 0 0; font-size: 0.88rem; color: #4c5a53; }
.pubp-pc-score b { color: #8a5a0c; }
.pubp-pc-tip { margin: 0.7rem 0 0; padding: 0.55rem 0.7rem; background: #fbe7a6; color: #4d3a06; border-radius: 4px; font-size: 0.88rem; line-height: 1.45; }
.pubp-pc-addr { margin: 0.6rem 0 0; color: #4c5a53; font-size: 0.82rem; line-height: 1.4; }
.pubp-pc-h { margin: 1rem 0 0.4rem; font: 500 1.05rem/1.2 "Playfair Display", Georgia, serif; color: #1b2a23; }
.pubp-pc-mems { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.6rem; }
.pubp-pc-mems li { background: #fff; padding: 0.3rem 0.3rem 0.45rem; border: 1px solid #e6dcc8; box-shadow: 0 2px 6px rgba(60, 45, 20, 0.12); }
.pubp-pc-mems li:nth-child(odd) { transform: rotate(-1.5deg); }
.pubp-pc-mems li:nth-child(even) { transform: rotate(1.2deg); }
.pubp-pc-mems img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.pubp-pc-mems p { margin: 0.3rem 0 0; font-size: 0.78rem; color: #263b32; line-height: 1.3; }
.pubp-pc-mems small { display: block; margin-top: 0.2rem; font-size: 0.7rem; color: #66706a; }
.pubp-pc-revs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.pubp-pc-revs li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 0.6rem; }
.pubp-pc-face { width: 2rem; height: 2rem; border-radius: 50%; object-fit: cover; background: #1f3d30; color: #fff; display: grid; place-items: center; font-size: 0.8rem; font-weight: 700; }
.pubp-pc-who { margin: 0; font-size: 0.86rem; }
.pubp-pc-stars { color: #c28a12; letter-spacing: 0.05em; }
.pubp-pc-note { margin: 0.15rem 0 0; font-size: 0.86rem; color: #263b32; line-height: 1.45; }
.pubp-pc-rphoto { display: block; margin-top: 0.35rem; width: 8rem; height: 6rem; object-fit: cover; border-radius: 8px; }
@media (prefers-reduced-motion: reduce) { .pubp-pc-mems li { transform: none !important; } }
