/* Court photos, amenities, consent rows, match chat and the owner photo manager. */
.venue-cover-link { position:absolute; inset:0; z-index:1; width:100%; height:100%; border:0; background:transparent; cursor:pointer; }
.club-image .favorite { z-index:2; }
.club-image .image-label { pointer-events:none; }
.venue-cover-link:focus-visible { outline:3px solid var(--lime); outline-offset:-5px; }
.venue-title-link { background:none; border:0; padding:0; font:inherit; color:inherit; text-align:start; cursor:pointer; }
.venue-title-link:hover { text-decoration:underline; text-underline-offset:3px; }
.venue-card-details { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; margin-top:14px; padding:13px 0 0; border:0; border-top:1px solid #e5e9df; background:none; color:var(--ink); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.venue-page { max-width:1100px; margin-inline:auto; }
.venue-back { gap:8px; margin-bottom:22px; }
.venue-back svg { transform:rotate(180deg); }
html[dir=rtl] .venue-back svg { transform:none; }
.venue-intro { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:26px; }
.venue-intro h1 { margin-block:10px; overflow-wrap:anywhere; }
.venue-intro .sub { display:flex; align-items:center; gap:6px; }
.venue-type { background:#edf2e9; padding:9px 16px; border-radius:25px; font-size:12px; flex-shrink:0; }
.venue-columns { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr); gap:24px; align-items:start; }
.venue-information { min-width:0; }
.venue-main-photo { display:block; position:relative; width:100%; padding:0; overflow:hidden; border:0; border-radius:18px; background:#eaf0e5; cursor:zoom-in; }
.venue-main-photo>img { display:block; width:100%; height:350px; object-fit:cover; }
.venue-main-photo>span { position:absolute; inset-inline-end:15px; bottom:15px; background:white; color:var(--ink); padding:10px 16px; border-radius:22px; font-size:12px; font-weight:600; box-shadow:0 2px 12px #12382d20; }
.venue-thumbnails { display:flex; gap:10px; padding:12px 0; overflow:auto; }
.venue-thumbnails button { position:relative; flex:0 0 82px; height:62px; border:0; padding:0; border-radius:9px; overflow:hidden; background:#eaf0e5; cursor:zoom-in; }
.venue-thumbnails img { width:100%; height:100%; object-fit:cover; display:block; }
.venue-thumbnails span { position:absolute; bottom:3px; inset-inline-end:4px; padding:1px 5px; background:#12382dbb; color:white; border-radius:5px; font-size:10px; }
.venue-no-photos { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:230px; border-radius:18px; color:#587263; background:linear-gradient(140deg,#eaf0e5,#dfe9df); }
.venue-box { padding:24px; margin-bottom:20px; border:1px solid #e2e8dd; border-radius:18px; background:white; min-width:0; }
.venue-information>.venue-box { margin-top:20px; }
.venue-box h2 { font-size:19px; margin-block:0 14px; }
.venue-box h3 { font-size:14px; margin-block:22px 12px; }
.venue-description { white-space:pre-line; line-height:1.8; font-size:14px; overflow-wrap:anywhere; }
.venue-facts { display:flex; gap:32px; margin-top:20px; }
.venue-facts>div { display:grid; gap:6px; }
.venue-facts b { font-size:20px; }
.venue-facts span { color:#778176; font-size:11px; }
.venue-box .amenity-list span { display:flex; align-items:center; gap:5px; }
.venue-phone { font-size:14px; text-align:start; overflow-wrap:anywhere; }
.venue-availability { position:sticky; top:90px; }
.venue-availability .sub { margin-bottom:20px; font-size:13px; }
.venue-availability form { display:grid; gap:4px; }
.venue-availability form .owner-action { justify-self:start; }
.venue-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; padding:20px 0 10px; }
.venue-price b { font-size:24px; }
.venue-price span { font-size:12px; color:#6b786b; }
.venue-slots { display:flex; flex-wrap:wrap; gap:8px; }
.venue-slots .slot { min-width:75px; }
.venue-empty-slots { font-size:13px; line-height:1.7; color:#6c7566; }
.venue-booking-note { border-top:1px solid #e5e9df; margin-top:22px; padding-top:16px; line-height:1.7; }
.venue-photo-viewer>img { display:block; width:100%; max-height:65vh; object-fit:contain; background:#f4f6f0; border-radius:10px; }
.venue-photo-controls { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:15px; font-size:12px; }
.venue-photo-controls .text-btn { font-size:12px; }
@media(max-width:1000px) { .venue-columns { grid-template-columns:1fr; } .venue-availability { position:static; } }
@media(max-width:600px) { .venue-box { padding:20px; } .venue-intro { margin-bottom:20px; } .venue-intro h1 { font-size:28px; } .venue-main-photo>img { height:245px; } .venue-no-photos { min-height:190px; } .venue-thumbnails { gap:8px; } .venue-thumbnails button { flex-basis:70px; height:55px; } .venue-columns { gap:4px; } }
.court-photo-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.court-gallery {
  display: flex;
  gap: 10px;
  overflow: auto;
  margin: 12px 0;
  scroll-snap-type: x mandatory;
}
.court-gallery img {
  width: min(280px, 85%);
  height: 170px;
  object-fit: cover;
  border-radius: 12px;
  scroll-snap-align: start;
}
.amenity-list {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 14px 0;
}
.amenity-list span {
  background: #edf2e9;
  padding: 7px 10px;
  border-radius: 20px;
  font-size: 12px;
}
.consent-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.6;
  margin: 18px 0;
}
.consent-row input {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}
.payment-warning {
  font-size: 13px;
  background: #fff2dc;
  padding: 12px;
  border-radius: 8px;
  color: #744600;
  margin: 12px 0;
}
.match-chat {
  max-height: 330px;
  overflow: auto;
  background: #f5f6f0;
  border-radius: 12px;
  padding: 14px;
  margin: 15px 0;
}
.match-chat article {
  background: white;
  padding: 12px;
  margin-bottom: 10px;
  border-radius: 10px;
  overflow-wrap: anywhere;
}
.match-chat p {
  white-space: pre-wrap;
  margin-block: 6px;
}
.match-chat small {
  font-size: 10px;
  color: #666;
}
.amenity-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  margin: 12px;
}
.amenity-options label {
  display: flex;
  gap: 9px;
  align-items: center;
}
.amenity-options input {
  width: 18px;
  height: 18px;
}
.owner-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
}
.owner-photo-grid figure {
  margin: 0;
}
.owner-photo-grid img {
  width: 100%;
  height: 130px;
  object-fit: cover;
  border-radius: 12px;
}
.after-game { margin-bottom:30px; }
.after-game h2 { margin-bottom:10px; }
.post-game-context { padding:14px; border-radius:12px; background:#f1f5e9; margin:16px 0 22px; }
.post-game-context p { margin-top:8px; font-size:12px; }
.rating-options { display:flex; gap:8px; border:0; padding:0; margin:20px 0; }
.rating-options legend { font-weight:600; font-size:14px; margin-bottom:14px; }
.rating-options label { position:relative; display:flex; cursor:pointer; }
.rating-options input { position:absolute; opacity:0; width:1px; height:1px; }
.rating-options label span { display:block; font-size:32px; color:#87917d; padding:4px 9px; border:1px solid #dce3d3; border-radius:10px; }
.rating-options input:focus-visible + span { outline:2px solid #194e3c; outline-offset:3px; }
.rating-options:has(input[value="1"]:checked) label:nth-of-type(-n+1) span,
.rating-options:has(input[value="2"]:checked) label:nth-of-type(-n+2) span,
.rating-options:has(input[value="3"]:checked) label:nth-of-type(-n+3) span,
.rating-options:has(input[value="4"]:checked) label:nth-of-type(-n+4) span,
.rating-options:has(input[value="5"]:checked) label:nth-of-type(-n+5) span { color:#6a851f; background:#f0f5df; border-color:#90a94a; }
#post-game-review-form textarea { width:100%; border:1px solid #dce3d3; border-radius:10px; padding:12px; font:inherit; resize:vertical; min-height:90px; }
.post-game-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:20px; }
.post-game-error { color:#9e392b; font-size:13px; line-height:1.6; }
.score-head,.score-row { display:grid; grid-template-columns:35px minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:center; margin:12px 0; }
.score-head { font-size:12px; }
.score-row input { width:100%; min-width:0; padding:12px; border:1px solid #dce3d3; border-radius:10px; font:inherit; text-align:center; }
.score-row label { min-width:0; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.player-review { border-top:1px solid #e0e6d9; padding:18px 0; }
.player-review > div { display:flex; justify-content:space-between; gap:12px; }
.review-comment { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.7; margin-top:8px; }
@media(max-width:420px) { .rating-options { gap:6px; } .rating-options label span { font-size:28px; padding:4px 8px; } }
.result-share-preview { margin:18px auto 12px; max-width:280px; }
#result-share-canvas { display:block; width:100%; height:auto; border-radius:12px; box-shadow:0 8px 25px #183f3220; }
#result-share-canvas[hidden],#result-share-loading[hidden],.result-share-actions [hidden] { display:none; }
#result-share-loading { display:grid; place-items:center; aspect-ratio:4 / 5; background:#f0f4e8; border-radius:12px; color:#5c7058; font-size:13px; }
.result-share-details { display:flex; align-items:center; gap:10px; font-size:13px; line-height:1.5; margin-block:16px 10px; }
.result-share-details input { width:18px; height:18px; margin:0; flex-shrink:0; }
.result-share-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.result-share-caption { border-top:1px solid #e1e7db; margin-top:18px; padding-top:14px; font-size:13px; }
.result-share-caption summary { cursor:pointer; font-weight:600; }
#result-share-caption { width:100%; margin:12px 0; border:1px solid #dce3d3; border-radius:10px; padding:12px; font:inherit; line-height:1.5; resize:vertical; }
