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

/* Shared sheets for #19 closed places (shared/place-status.js) and #17 Pending (shared/pending.js) — one file, one request. */

/* #19 Closed-place tip (shared/place-status.js) — web + app. Above sheets and pickers. */
.lb-closed-tip {
  position: fixed;
  inset: 0;
  z-index: 2147482100;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(26, 20, 16, 0.42);
  -webkit-tap-highlight-color: transparent;
}
.lb-closed-tip-card {
  width: min(420px, 100%);
  padding: 1.25rem 1.25rem 1.1rem;
  border-radius: 18px;
  background: var(--cream, #fffcf7);
  color: var(--ink, #1a1410);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.lb-closed-tip-place {
  margin: 0;
  color: var(--gold, #b0893a);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.lb-closed-tip-card h2 {
  margin: 0.35rem 0 0.35rem;
  font-family: var(--serif, Georgia, serif);
  font-size: 1.2rem;
  line-height: 1.3;
}
.lb-closed-tip-note {
  margin: 0;
  color: var(--ink-soft, #4a3f36);
  font-size: 0.9rem;
  line-height: 1.45;
}
.lb-closed-tip-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin-top: 1rem;
}
.lb-closed-tip-actions button {
  min-height: 44px;
  border-radius: 999px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.lb-closed-tip-other {
  border: 0;
  background: var(--forest, #1e3a2f);
  color: #fff;
}
.lb-closed-tip-add {
  border: 1px solid rgba(30, 58, 47, 0.3);
  background: transparent;
  color: var(--forest, #1e3a2f);
}
@media (max-width: 699px) {
  .lb-closed-tip {
    place-items: end center;
    padding: 0;
  }
  .lb-closed-tip-card {
    width: 100%;
    border-radius: 20px 20px 0 0;
    padding-bottom: max(16px, var(--safe-bot, env(safe-area-inset-bottom, 0px)));
  }
}

/* #19 quiet "Hours & photos on Google Maps ↗" line (GeoAddress.reviewsLinkHtml) — no button, no fuss. */
.g-maps-reviews {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  margin: 0.35rem 0 0;
  color: var(--accent, #c8641e);
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
}
.g-maps-reviews:hover,
.g-maps-reviews:focus-visible {
  text-decoration: underline;
}
.nu-sp-address .g-maps-reviews,
.hotel-card .g-maps-reviews,
.nu-hotel .g-maps-reviews {
  display: flex;
}

/* Stops: a quiet nudge under the link (no hours lookup — owner 2026-10-04). */
.g-maps-hours {
  display: block;
  margin: 0.15rem 0 0;
  color: var(--muted, #6c776f);
  font-size: 0.76rem;
  line-height: 1.35;
}

/* #17 Pending (shared/pending.js) — web + app. */
.pnd { display: grid; gap: 0.8rem; }
.pnd-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; }
.pnd-lede { margin: 0; flex: 1 1 14rem; color: var(--ink-soft, #4a3f36); font-size: 0.88rem; line-height: 1.45; }
.pnd-add {
  min-height: 42px; padding: 0 1rem; border: 0; border-radius: 999px;
  background: var(--forest, #1e3a2f); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.pnd-totals { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.pnd-totals-label { color: #5d6b63; font-size: 0.8rem; font-weight: 600; } /* says what the pills add up (W-35) */
.pnd-total { padding: 0.25rem 0.7rem; border-radius: 999px; background: rgba(30, 58, 47, 0.08); font-weight: 600; font-size: 0.85rem; }
.pnd-empty { margin: 0; padding: 1.2rem; border-radius: 14px; background: rgba(30, 58, 47, 0.05); color: var(--ink-soft, #4a3f36); text-align: center; }
.pnd-day { display: grid; gap: 0.5rem; }
.pnd-day-title { margin: 0.2rem 0 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold, #b0893a); }
.pnd-item {
  display: grid; grid-template-columns: 1fr auto; gap: 0.35rem 0.8rem; padding: 0.8rem 0.9rem;
  border-radius: 14px; background: var(--card, #fff); box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06), 0 2px 10px rgba(0, 0, 0, 0.04);
}
.pnd-what { margin: 0; font-weight: 600; }
.pnd-meta { margin: 0.15rem 0 0; color: var(--ink-soft, #4a3f36); font-size: 0.8rem; }
.pnd-amt { display: grid; justify-items: end; align-content: start; gap: 0.1rem; text-align: right; }
.pnd-amt b { font-variant-numeric: tabular-nums; }
.pnd-approx, .pnd-later { color: var(--ink-soft, #4a3f36); font-size: 0.75rem; }
.pnd-later { color: var(--gold, #b0893a); }
.pnd-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pnd-btn {
  min-height: 36px; padding: 0 0.85rem; border: 1px solid rgba(30, 58, 47, 0.22); border-radius: 999px;
  background: transparent; color: var(--forest, #1e3a2f); font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer;
}
.pnd-btn.is-solid { border-color: transparent; background: var(--forest, #1e3a2f); color: #fff; }
.pnd-btn.is-quiet { border-color: transparent; color: #a33; }
.pnd-btn:disabled { opacity: 0.55; }
.pnd-sheet {
  position: fixed; inset: 0; z-index: 2147481900; display: grid; place-items: center; padding: 16px;
  background: rgba(26, 20, 16, 0.42); -webkit-tap-highlight-color: transparent;
}
.pnd-card {
  width: min(440px, 100%); max-height: calc(100dvh - 32px); overflow: auto; padding: 1.2rem;
  border-radius: 18px; background: var(--cream, #fffcf7); color: var(--ink, #1a1410); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  display: grid; gap: 0.7rem;
}
.pnd-kicker { margin: 0; color: var(--gold, #b0893a); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.pnd-card h2 { margin: 0; font-family: var(--serif, Georgia, serif); font-size: 1.35rem; }
.pnd-field { display: grid; gap: 0.25rem; font-size: 0.8rem; font-weight: 600; color: var(--ink-soft, #4a3f36); }
.pnd-field em { font-style: normal; font-weight: 500; opacity: 0.75; }
.pnd-fx { margin: -0.15rem 0 0; font-size: 0.78rem; color: var(--ink-soft, #4a3f36); line-height: 1.35; }
.pnd-fx b { color: var(--ink, #1e3a2f); }
.pnd-fx small { display: block; margin-top: 0.15rem; font-size: 0.7rem; opacity: 0.8; }
.pnd-field input, .pnd-field select {
  min-height: 46px; padding: 0 0.8rem; border: 1px solid rgba(30, 58, 47, 0.2); border-radius: 12px;
  background: #fff; color: var(--ink, #1a1410); font: inherit; font-size: 1rem;
}
.pnd-field input[name="total"] { font-size: 1.25rem; font-weight: 700; }
.pnd-photo { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; }
.pnd-camera {
  display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; padding: 0 1rem;
  border: 1px dashed rgba(30, 58, 47, 0.4); border-radius: 12px; cursor: pointer; font-weight: 600;
}
.pnd-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; }
.pnd-warn { margin: 0; color: #a33; font-size: 0.85rem; }
.pnd-sheet-actions { display: grid; grid-template-columns: 1fr 1.6fr; gap: 0.5rem; }
.pnd-sheet-actions .pnd-btn { min-height: 46px; font-size: 0.95rem; }
.pnd-receipt-img { width: 100%; max-height: 70dvh; object-fit: contain; border-radius: 12px; background: #000; }
@media (max-width: 699px) {
  .pnd-sheet { place-items: end center; padding: 0; }
  .pnd-card { width: 100%; border-radius: 20px 20px 0 0; padding-bottom: max(16px, var(--safe-bot, env(safe-area-inset-bottom, 0px))); }
}
/* Web Expenses header shortcut + the retired "Compute it later?" box (kept only for rows that use it). */
.exp-quick-receipt {
  min-width: 40px; height: 40px; border: 1px solid rgba(30, 58, 47, 0.22); border-radius: 999px;
  background: var(--card, #fff); font-size: 1.1rem; cursor: pointer;
}
.exp-later-box[hidden], #settle-later-box[hidden] { display: none !important; }
/* One 📷 button → Take photo / Choose from gallery (Pending). */
.pnd-photo-pick { position: relative; }
.pnd-camera { background: transparent; color: inherit; font: inherit; }
.pnd-photo-menu {
  position: absolute; left: 0; bottom: calc(100% + 6px); z-index: 2; display: grid; min-width: 240px; white-space: nowrap;
  padding: 6px; border-radius: 14px; background: var(--cream, #fffcf7); box-shadow: 0 12px 34px rgba(0, 0, 0, 0.22);
}
.pnd-photo-menu[hidden] { display: none; }
.pnd-photo-menu button {
  min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: transparent;
  color: var(--ink, #1a1410); font: inherit; font-weight: 600; text-align: left; cursor: pointer;
}
.pnd-photo-menu button:hover, .pnd-photo-menu button:focus-visible { background: rgba(30, 58, 47, 0.08); }

/* One receipt viewer (shared/receipt-viewer.js): the photo big, Close + Download. Web + app. */
.lb-receipt {
  position: fixed;
  inset: 0;
  z-index: 2147482300;
  display: grid;
  /* minmax(0, 1fr): a big photo must not grow the middle row and push Close / Download off screen. */
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: rgba(12, 10, 8, 0.94);
  color: #fff;
}
html.lb-receipt-open,
html.lb-receipt-open body { overflow: hidden; }
.lb-receipt-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: max(12px, env(safe-area-inset-top, 0px)) 14px 10px 18px;
}
.lb-receipt-name {
  overflow: hidden;
  font-size: 0.9rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: 0.85;
}
.lb-receipt-x {
  flex: none;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.lb-receipt-stage {
  display: grid;
  grid-template-rows: minmax(0, 1fr); /* a definite row, so the photo's max-height: 100% fits the screen */
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  min-height: 0;
  overflow: hidden;
  padding: 0 10px;
}
.lb-receipt-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 8px;
}
.lb-receipt-pdf {
  width: min(900px, 100%);
  height: 100%;
  border: 0;
  border-radius: 8px;
  background: #fff;
}
.lb-receipt-actions {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 0.6rem;
  width: min(520px, 100%);
  margin: 0 auto;
  padding: 12px 16px max(16px, var(--safe-bot, env(safe-area-inset-bottom, 0px)));
}
.lb-receipt-btn {
  min-height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.lb-receipt-btn.is-solid {
  border-color: transparent;
  background: #fff;
  color: #1a1410;
}
.lb-receipt-btn:disabled { opacity: 0.6; }

html.lb-receipt-open .lakbi-chat-launch,
html.lb-receipt-open #itin-fab-wrap,
html.lb-receipt-open .exp-fab-wrap { visibility: hidden; }


/* ☆ Google Maps link on a food place: under "No reviews yet" on the card, under the name in the reviews sheet. */
.nu-food-glink,
.food-review-glink {
  margin: 0.35rem 0 0;
}
.food-review-glink[hidden] {
  display: none;
}

/* "12 / 120" under a capped text box (shared/trip-core.js lenCountHtml) — web + app. */
.lb-len-count {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  text-align: right;
  opacity: 0.7;
}
.lb-len-count.is-full {
  opacity: 1;
  font-weight: 600;
}
/* The quiet one (shared/text-limits.js): shown only from 90% of the cap; red at the cap. */
.lb-len-count[hidden] {
  display: none;
}
.lb-len-count.is-near.is-full {
  color: #a63d2f;
}

/* "Booking read, but not saved" under the hotel card (shared/crew-files.js bookingFileNoticeHtml) — web + app. */
.lb-file-fail {
  margin: 0 0 0.85rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid rgba(166, 61, 47, 0.35);
  border-left: 4px solid #a63d2f;
  border-radius: 12px;
  background: #fbefe9;
  color: var(--ink, #1a1410);
}
.lb-file-fail-text {
  margin: 0 0 0.6rem;
  font-size: 0.9rem;
  line-height: 1.45;
}
.lb-file-fail-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.lb-file-fail-btn {
  min-height: 40px;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  border: 1px solid var(--forest, #1e3a2f);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}
.lb-file-fail-btn.is-solid {
  background: var(--forest, #1e3a2f);
  color: #fff;
}
.lb-file-fail-btn.is-quiet {
  background: transparent;
  color: var(--forest, #1e3a2f);
}
.lb-file-fail-btn[disabled] {
  opacity: 0.6;
  cursor: progress;
}
.lb-file-fail-x {
  margin-left: auto;
  min-width: 40px;
  min-height: 40px;
  border: 0;
  background: transparent;
  color: var(--muted, #6c776f);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

/* A PDF receipt drawn page by page (Android can't show a PDF in an iframe — USA sim 2026-10-17 A-7). */
.lb-receipt-pages {
  display: grid;
  justify-items: center;
  gap: 0.6rem;
  width: 100%;
  max-height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.lb-receipt-page {
  max-width: 100%;
  height: auto;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.lb-receipt-more {
  margin: 0.5rem 0;
  color: #f5efe2;
  font-size: 0.88rem;
  text-align: center;
}

/* Never wider than the screen: a long file name (nowrap) widened the one column to 398 px on a 360 px phone
   (USA sim 2026-10-17 C-5: × half off-screen, Download cut). */
.lb-receipt { grid-template-columns: minmax(0, 1fr); }
.lb-receipt-top > .lb-receipt-name { flex: 1 1 auto; min-width: 0; text-overflow: ellipsis; white-space: nowrap; }
.lb-receipt-x { flex: none; }

/* Zoom (China sim 2026-10-17 C-7): double-tap 2×, two fingers 1–4×; zoomed, the page scrolls both ways from its
   top-left (centred, its left side would be out of reach). The viewer handles the pinch itself. */
.lb-receipt-stage { touch-action: pan-x pan-y; }
.lb-receipt.is-zoomed .lb-receipt-stage { overflow: auto; place-items: start; -webkit-overflow-scrolling: touch; }
.lb-receipt.is-zoomed .lb-receipt-pages { justify-items: start; }
.lb-receipt.is-zoomed .lb-receipt-img { object-fit: initial; }

/* Hotel window: "Add check-in and check-out to the plan" (owner 2026-10-18) — one plain tick, web + app. */
.lb-hotel-plan-tick {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 8px;
  font-size: 14px;
  line-height: 1.3;
  cursor: pointer;
}
.lb-hotel-plan-tick input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: none;
  accent-color: var(--accent, #1f6f5c);
}
.lb-hotel-put-back {
  display: block;
  margin: 0 0 8px 26px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #1f6f5c);
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
  cursor: pointer;
}

/* Run 11 sim B-2: a box in a window never widens the window (a long Country option pushed Quick cost past a 448 px
   phone). Every select / input / textarea in a window or sheet, web + app: shrink to the cell, cut long options. */
.pnd-card { grid-template-columns: minmax(0, 1fr); }
:is([role="dialog"], [aria-modal="true"], .pnd-card, .sheet-modal-panel, .pass-modal, .lb-sheet, .mw-panel)
  :is(label, .mw-field, .wb-field, .settle-field, .pnd-field, .nu-he-row > *) { min-width: 0; }
:is([role="dialog"], [aria-modal="true"], .pnd-card, .sheet-modal-panel, .pass-modal, .lb-sheet, .mw-panel)
  :is(select, textarea, input:not([type="checkbox"]):not([type="radio"])) { min-width: 0; max-width: 100%; box-sizing: border-box; }
/* Full width only for a field's ONE box (its direct child, no second box beside it): side-by-side boxes keep their own
   widths (Run 11 review). */
:is(.pnd-field, .mw-field, .wb-field, .settle-field):not(:has(> :is(select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])) ~ :is(select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]))))
  > :is(select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])) { width: 100%; }
:is([role="dialog"], [aria-modal="true"], .pnd-card, .sheet-modal-panel, .pass-modal, .lb-sheet, .mw-panel) select { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
/* hotel Stay total linked to a cost (2026-10-21, web W-52 words): the total + "· change it in Expenses", no 0.00 box */
.hotel-total-linked-line { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem; min-height: 2.6rem; padding-top: 0.45rem; }
