/* Shared, proportionate drawing for the guest page and the editor. */
.map-shell { min-width:0; margin:18px; }
.map-viewport { position:relative; width:100%; aspect-ratio:5/3; overflow:hidden; touch-action:none; background:#f6f8fb; border-radius:5px; }
.map-viewport .floor-map { position:absolute; left:0; top:0; width:1000px; height:600px; min-width:0; aspect-ratio:auto; margin:0; transform-origin:0 0; }
.map-viewport .floor-map .table-node { width:61px; height:61px; font-size:24px; }
.map-viewport .floor-map .table-node.long { width:134px; height:42px; }
.map-viewport .floor-map .table-node.long .bride-label { font-size:12px; top:-28px; max-width:none; white-space:nowrap; }
.map-viewport .floor-map .chair { width:11px; height:11px; }
.map-viewport .floor-map .landmark { font-size:14px; letter-spacing:.035em; }
.map-viewport .floor-map .landmark:first-of-type { padding:4px 12px; }
.map-viewport .floor-map .editor-map-marker { min-height:38px; padding:6px 9px; }
.map-viewport .floor-map .landmark.map-sized { min-height:0; max-width:none; padding:4px; }
.map-zoom-controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding-top:12px; }
.map-zoom-controls button { min-width:42px; min-height:42px; border:1px solid #b5c5d3; background:white; color:var(--ink); border-radius:7px; padding:7px 12px; font-size:14px; }
.map-zoom-controls button:disabled { opacity:.4; }
.map-zoom-controls output { min-width:50px; text-align:center; font-size:13px; }
.map-zoom-controls span { margin-left:auto; color:var(--muted); font-size:12px; }
.navigation { position:sticky; top:0; z-index:20; background:#f7f9fcf5; backdrop-filter:blur(12px); box-shadow:0 3px 8px #142d4708; }
.seating-layout { display:flex; flex-direction:column; gap:18px; }
.seating-layout>.finder,.seating-layout>.map-card,.seating-layout>.seat-result { width:100%; min-width:0; }
.seating-layout .finder { min-height:0; padding:20px 24px; }
.finder-empty { padding:0; text-align:left; }
.finder-empty .place-icon,.finder-empty h2,.finder-empty .small-rule,.finder-empty p:not(.quiet) { display:none; }
.finder-empty p.quiet { font-size:13px; }
.seating-layout .seat-result,.map-modal .seat-result { display:block; padding:24px; margin:0; text-align:left; border-radius:12px; background:#142d47; color:white; }
.seat-result[hidden] { display:none!important; }
.seat-result h2 { font-size:25px; margin:5px 0; }
.seat-result .table-number { display:block; font-size:48px; line-height:1.2; }
.seat-result .table-guests { list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px 22px; }
.seat-result .table-guests li { padding:8px 0; border-top:1px solid #ffffff30; font-size:16px; }
.seat-result .table-guests li.is-you { font-weight:700; color:#bedbf3; }
.map-modal { width:min(1120px,96vw); max-width:1120px; max-height:95dvh; overflow:auto; }
.map-modal .modal-heading { position:sticky; top:-26px; z-index:8; background:white; padding:10px 0; }
.map-modal .map-shell { margin:16px 0; }
.map-modal .search-field { margin-top:8px; }
.map-modal .seat-result { margin-top:18px; }
.menu-note[hidden] { display:none; }
.course>p:last-child,.timeline-item p { white-space:pre-line; }
.item-order { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.item-order button { border:1px solid #c6d6e2; border-radius:6px; padding:8px 12px; min-height:40px; background:#f6f9fc; color:var(--ink); }
.item-order button:disabled { opacity:.4; }
.editor-item:focus { outline:2px solid #7299b9; outline-offset:3px; }
@media(max-width:650px) {
  .navigation { gap:0; padding:0 8px; margin:0; width:100%; justify-content:space-between; }
  .navigation a { padding:16px 6px; font-size:14px; flex:1; justify-content:center; white-space:nowrap; }
  .navigation a>span { display:none; }
  .map-shell { margin:12px; }
  .map-zoom-controls { gap:6px; }
  .map-zoom-controls span { flex-basis:100%; margin:0; }
  .map-modal { width:100vw; max-width:100vw; max-height:100dvh; height:100dvh; margin:0; border:0; border-radius:0; padding:18px; }
  .map-modal .modal-heading { top:-18px; }
  .seating-layout .finder { padding:18px; }
  .seat-result .table-guests { grid-template-columns:1fr; }
}

.seat-result-heading { display:flex; gap:22px; align-items:center; }
.seat-result-heading .table-number { min-width:52px; margin:0; text-align:center; }
.seat-result h3 { font-size:15px; font-weight:600; margin:22px 0 6px; color:#c8d8e7; }
.table-guests li { overflow-wrap:anywhere; }
.map-modal .search-field input { border:0; margin:0; padding:10px 0; background:transparent; }
.map-modal .large-map-wrap { overflow:visible; }
.map-viewport .floor-map .table-node.active { box-shadow:0 0 0 7px #a7c6df55; }
.item-order>span { align-self:center; color:var(--muted); font-size:13px; margin-right:auto; }

/* Room dimensions change the drawing, not the outer viewport. */
.room-settings { margin:18px 0; padding:18px; border:1px solid #cbd8e3; border-radius:10px; background:#f6f9fc; }
.room-settings h3 { margin:0 0 14px; font-size:17px; }
.room-settings .admin-help { margin:12px 0 5px; }
.map-viewport { background:#e8eef3; }
.map-viewport .floor-map .landmark.map-area { display:grid; place-items:center; width:180px; height:108px; border:2px solid #6a8296; border-radius:3px; background:#e0eaf2; white-space:normal; overflow-wrap:anywhere; overflow:hidden; padding:8px; font-size:16px; line-height:1.35; z-index:1; }
.map-viewport .floor-map .landmark.map-wall { display:block; width:300px; height:6px; min-height:0; border:1px solid #415c70; border-radius:0; background:#657d90; color:transparent; font-size:0; padding:0; overflow:hidden; z-index:1; }
.map-viewport .floor-map .landmark.map-wall.active { outline:4px solid #7ab3e4; outline-offset:3px; }
.map-viewport .floor-map .landmark.map-area.active { background:#41647f; color:white; }
.map-viewport .floor-map .editor-map-node.active { z-index:4; }

.admin-photo input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;accent-color:var(--ink)}
#album-download-links .button{display:flex;margin:8px 0;overflow-wrap:anywhere;white-space:normal}

/* Rectangular tables also display their configured seats, in straight rows. */
.map-viewport .floor-map .table-node.long .chair { display:block; }
.map-viewport .floor-map .table-node.long .bride-label { top:-42px; }
