[hidden] { display: none !important; }
:root {
  --teal: #1c746d;
  --teal-dark: #10544f;
  --teal-deep: #0a3f3b;
  --cream: #f6f3eb;
  --paper: #fbfaf6;
  --ink: #183f39;
  --muted: #6f716e;
  --line: #c7c2b8;
  --red: #a92b2a;
  --red-bright: #c73c38;
  --green: #31b56a;
  --gold: #c39b52;
  --wood: #7c4d2d;
  --wood-dark: #452619;
  --shadow: 0 18px 50px rgba(15, 53, 49, .28);
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--teal); }
body {
  margin: 0;
  min-height: 100%;
  color: #252828;
  font-family: Georgia, "Times New Roman", serif;
  background-color: #6aa896;
  background-image: url("assets/footer-pattern-exact.jpg");
  background-repeat: repeat;
  background-position: left top;
  background-size: 642px 170px;
}
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
.site-shell { width: min(1120px, 100%); margin: 0 auto; padding: 22px 16px 28px; }
.page-top-spacer { height: 28px; }
.location-board {
  position: relative;
  z-index: 2;
  padding: 36px 30px 24px;
  border: 3px solid var(--teal-deep);
  border-radius: 28px;
  background:
    linear-gradient(rgba(255,255,255,.93), rgba(255,255,255,.93)),
    url("assets/watermark-chip.jpg") center 60% / 330px 330px no-repeat,
    var(--paper);
  box-shadow: var(--shadow), inset 0 0 0 1px rgba(255,255,255,.9);
}
.board-bolt { position:absolute; width:18px; height:18px; border-radius:50%; background: radial-gradient(circle at 32% 28%, #fff1cd 0 7%, #a96b37 28%, #5a2f1c 72%, #31170f 100%); box-shadow: 1px 2px 3px rgba(0,0,0,.4); }
.bolt-a{left:18px;top:18px}.bolt-b{right:18px;top:18px}.bolt-c{left:18px;bottom:18px}.bolt-d{right:18px;bottom:18px}
.board-heading { max-width: 850px; margin: 0 auto 24px; text-align:center; }
.board-heading h1 {
  margin: 7px 0 8px;
  color: var(--ink);
  font-family: Copperplate, "Rockwell Extra Bold", Rockwell, Georgia, serif;
  font-size: clamp(2rem, 5.8vw, 4.45rem);
  line-height: .98;
  text-transform: uppercase;
  letter-spacing: .035em;
  text-shadow: 0 1px 0 #fff;
}
.board-heading p { margin: 13px auto 0; max-width: 700px; color:#666762; font-weight:700; font-size:clamp(.88rem, 2vw, 1.15rem); text-transform:uppercase; letter-spacing:.04em; }
.suit-line,.star-line { display:flex; justify-content:center; align-items:center; gap:10px; color:var(--ink); }
.suit-line span,.star-line span { width:min(150px,22vw); height:2px; background:var(--ink); opacity:.8; }
.suit-line b { font-size:1.55rem; }
.suit-line .heart,.suit-line .diamond,.heart,.diamond { color:#b24b4d; }
.star-line b { color:var(--ink); font-size:1.2rem; }
.feed-status-row { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; margin-top:15px; }
.logo-showcase { display:flex; justify-content:center; align-items:center; margin: 6px auto 22px; padding: 8px 10px 2px; }
.logo-showcase img { width:min(100%, 560px); height:auto; display:block; filter: drop-shadow(0 8px 16px rgba(0,0,0,.14)); }
.status-pill,.free-pill { display:inline-flex; align-items:center; min-height:30px; padding:0 12px; border-radius:999px; font-family:Arial,sans-serif; font-size:.72rem; font-weight:800; }
.status-pill { color:#53605d; border:1px solid #c8c2b7; background:#f4f0e7; }
.status-pill.live { color:#176a40; border-color:#99d1af; background:#e9f7ee; }
.status-pill.demo { color:#8a682a; border-color:#ddca98; background:#fff8df; }
.free-pill { color:#fff; background:var(--teal); }
.finder-controls { display:grid; grid-template-columns: minmax(0,1.5fr) .7fr .7fr; gap:12px; margin: 0 auto 12px; padding:18px; border:2px dashed #bbb7ae; border-radius:20px; background:rgba(250,248,243,.83); }
.control-group label { display:block; margin:0 0 6px; color:var(--ink); font-family:Arial,sans-serif; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.input-shell { position:relative; }
.input-icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#737b77; font:900 1.35rem/1 Arial,sans-serif; pointer-events:none; }
input, select { width:100%; min-height:47px; border:1px solid #b8b4aa; border-radius:9px; color:#303332; background:#fffdf8; outline:none; box-shadow: inset 0 1px 2px rgba(0,0,0,.04); }
input { padding:0 14px 0 40px; }
select { padding:0 38px 0 13px; }
input:focus,select:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(28,116,109,.12); }
.control-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.filter-button,.location-button,.clear-button,.map-button,.details-button,.directions-link { font-family:Arial,sans-serif; font-weight:900; }
.filter-button,.location-button { min-height:47px; border:0; border-radius:10px; cursor:pointer; }
.filter-button { color:var(--ink); border:1px solid #b8b4aa; background:#f1eee6; }
.filter-button[aria-pressed="true"] { color:#fff; background:var(--teal); border-color:var(--teal); }
.location-button { color:#fff; background:linear-gradient(#b3443e,#922a27); box-shadow: inset 0 1px 0 rgba(255,255,255,.18); }
.finder-summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; margin-bottom:16px; padding:10px 14px; border:1px solid #c5c0b5; border-radius:12px; background:rgba(255,253,248,.92); }
.summary-label { display:block; color:#7e817d; font:800 .63rem/1.2 Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.summary-item strong { color:#333735; font:800 .85rem/1.4 Arial,sans-serif; }
.closest-summary { min-width:0; }
.clear-button { border:0; color:#8a2a28; background:transparent; cursor:pointer; }
.finder-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:16px; align-items:stretch; }
.map-card,.results-card { overflow:hidden; border:1px solid #9a988f; border-radius:16px; background:#fffdf8; box-shadow:0 8px 20px rgba(38,79,73,.12); }
.map-topbar,.results-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; padding:12px 16px; background:linear-gradient(#f5f0e5,#e9e1d2); border-bottom:1px solid #c9c1b2; }
.map-topbar > div { display:flex; align-items:center; gap:8px; color:var(--ink); font-family:Arial,sans-serif; }
.live-dot { width:10px; height:10px; border-radius:50%; background:#b12a2c; box-shadow:0 0 0 5px rgba(177,42,44,.12); }
.map-button { min-height:34px; padding:0 13px; border:1px solid #a8a399; border-radius:8px; color:#4b4e4a; background:#fffdf8; cursor:pointer; }
#map { width:100%; height:400px; min-height:400px; background:#e8e5dd; }
.map-bottom-bar { display:flex; align-items:center; gap:22px; padding:10px 14px; color:#5d625e; background:#f7f2e8; border-top:1px solid #c9c1b2; font:700 .78rem/1.2 Arial,sans-serif; }
.map-bottom-bar span { display:inline-flex; align-items:center; gap:7px; }
.legend-marker { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#b3252c; border:2px solid #fff; outline:1px solid #b3252c; font-style:normal; font-size:9px; font-weight:900; }
.legend-today { width:12px; height:12px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(49,181,106,.14); }
.results-card { display:flex; flex-direction:column; min-height:0; max-height:514px; }
.results-heading .eyebrow { margin:0 0 3px; color:#7c6b58; font:900 .65rem/1 Arial,sans-serif; letter-spacing:.14em; }
.results-heading h2 { margin:0; color:var(--ink); font-family:Copperplate, Rockwell, Georgia, serif; font-size:1.4rem; text-transform:uppercase; letter-spacing:.03em; }
.result-badge { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#a92b2a; font:900 .9rem/1 Arial,sans-serif; }
.venue-list { flex:1; min-height:0; overflow:auto; padding:10px; scrollbar-color:#8d9d96 transparent; }
.venue-card { margin-bottom:10px; overflow:hidden; border:1px solid #c6c0b5; border-radius:12px; background:rgba(255,255,255,.93); transition:.15s ease; }
.venue-card:hover { transform:translateY(-1px); box-shadow:0 7px 16px rgba(28,82,75,.12); }
.venue-card.is-nearest { border-color:#669d94; box-shadow:inset 0 0 0 1px rgba(28,116,109,.1); }
.venue-card-main { display:block; width:100%; padding:13px 13px 10px; border:0; text-align:left; color:inherit; background:transparent; cursor:pointer; }
.venue-card-topline { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; }
.district-badge,.today-badge,.distance-badge { display:inline-flex; align-items:center; min-height:23px; padding:0 8px; border-radius:999px; font:900 .64rem/1 Arial,sans-serif; letter-spacing:.02em; }
.district-badge { color:#7e2828; border:1px solid #d3a3a1; background:#f8e6e4; }
.today-badge { color:#176a40; border:1px solid #a8d9b9; background:#e8f6ed; }
.distance-badge { margin-left:auto; color:#235e56; border:1px solid #b3cec9; background:#e9f2f0; }
.venue-name { margin:0 0 5px; color:#253b37; font-size:1.08rem; line-height:1.25; }
.venue-address { margin:0; color:#737872; font:400 .82rem/1.45 Arial,sans-serif; }
.schedule-wrap { display:grid; gap:6px; margin-top:10px; }
.schedule-row { display:grid; grid-template-columns:100px 1fr; gap:8px; align-items:baseline; font:400 .76rem/1.45 Arial,sans-serif; }
.schedule-day { color:#294d47; font-weight:900; }
.schedule-time { display:flex; flex-wrap:wrap; gap:3px; color:#6d716d; }
.schedule-time strong { color:#414743; font-weight:800; }
.schedule-row.today-row .schedule-day { color:#187342; }
.schedule-day em { display:inline-flex; margin-left:4px; padding:2px 5px; border-radius:999px; color:#187342; background:#e8f6ed; font-size:.53rem; font-style:normal; font-weight:950; }
.schedule-sep { color:#a9aaa4; }
.data-missing,.schedule-missing .schedule-time { color:#92958f; font-style:italic; }
.venue-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 13px 12px; }
.venue-actions button,.venue-actions a { min-height:37px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; cursor:pointer; text-decoration:none; font-size:.74rem; }
.details-button { color:#315c55; border:1px solid #aebcb7; background:#eff3f1; }
.directions-link { color:#fff; border:1px solid #922a27; background:#a92b2a; }
.empty-state { margin:auto; padding:34px 24px; text-align:center; color:#7a7e79; font-family:Arial,sans-serif; }
.empty-state strong,.empty-state span { display:block; }
.empty-state strong { margin:8px 0 6px; color:#38423f; }
.empty-icon { width:44px; height:44px; display:grid; place-items:center; margin:0 auto; border-radius:50%; color:#fff; background:var(--teal); }
.board-signoff { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; margin:22px 0 3px; color:#73766f; font-family:Copperplate,Rockwell,Georgia,serif; text-transform:uppercase; letter-spacing:.08em; }
.board-signoff strong { margin-left:8px; }
.finder-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 16px;
  margin: 12px 0 0;
  padding: 16px 18px;
  border: 2px solid rgba(11, 84, 79, .35);
  border-radius: 18px;
  background: url("assets/footer-pattern-exact.jpg") center center / cover no-repeat;
  color:#f4fffc;
  text-shadow:0 1px 2px rgba(0,0,0,.30);
  box-shadow: 0 8px 22px rgba(7, 48, 45, .18), inset 0 0 0 1px rgba(255,255,255,.12);
  font:700 .73rem/1.3 Arial,sans-serif;
}
.finder-footer > span:first-child { color:#ffffff; }
.demo-note { color:#fff2a8; }

/* Leaflet */
.leaflet-control-zoom { border:0 !important; border-radius:10px !important; overflow:hidden; box-shadow:0 5px 14px rgba(0,0,0,.18) !important; }
.leaflet-control-zoom a { border:0 !important; border-bottom:1px solid #dedad1 !important; background:#fffdf8 !important; color:#263532 !important; }
.leaflet-control-attribution { font-size:9px !important; }
.leaflet-popup-content-wrapper { border-radius:13px; border:1px solid #cfc8bb; box-shadow:0 12px 32px rgba(0,0,0,.2); background:#fffdf8; }
.leaflet-popup-content { margin:13px; }
.popup-content { min-width:250px; max-width:330px; color:#27312f; font-family:Arial,sans-serif; }
.popup-content h3 { margin:3px 0 7px; color:var(--ink); font-family:Georgia,serif; font-size:1.05rem; }
.popup-content p { margin:5px 0; color:#646a66; line-height:1.4; font-size:.78rem; }
.popup-content .popup-district { color:#932b2a; font-weight:900; font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; }
.popup-content .popup-today { display:inline-flex; align-items:center; gap:5px; margin:6px 0 2px; padding:4px 7px; border-radius:999px; color:#17763a; background:#e8f8ee; font-size:.65rem; font-weight:900; }
.popup-today span { width:7px; height:7px; border-radius:50%; background:#2fc46f; box-shadow:0 0 0 3px rgba(47,196,111,.16); }
.popup-section-title { margin:11px 0 5px; color:#777e79; font-size:.61rem; font-weight:950; letter-spacing:.08em; }
.popup-schedule { display:grid; gap:6px; }
.popup-schedule-row { padding:7px 8px; border:1px solid #ddd7cb; border-radius:8px; background:#f7f3ea; color:#626863; font-size:.71rem; line-height:1.45; }
.popup-schedule-row.is-today { border-color:#b6e6c6; background:#edf9f1; }
.popup-day { display:block; margin-bottom:2px; color:#33413e; font-size:.75rem; }
.popup-schedule-row.is-today .popup-day { color:#17763a; }
.popup-content a { display:inline-flex; margin-top:9px; padding:8px 10px; border-radius:8px; color:#fff; background:#a92b2a; text-decoration:none; font-weight:900; font-size:.75rem; }
.smoken-marker-icon { background:transparent !important; border:0 !important; overflow:visible !important; }
.marker-hitbox { position:relative; width:50px; height:50px; display:grid; place-items:center; overflow:visible; }
.poker-marker { position:relative; width:38px; height:38px; display:grid; place-items:center; overflow:visible; border-radius:50%; color:#fff; background:radial-gradient(circle at 33% 28%, #c9504e, #aa292c 62%, #77201f); border:3px solid #fff; box-shadow:0 6px 14px rgba(0,0,0,.3); font:950 12px/1 Arial,sans-serif; }
.marker-today-dot { position:absolute; display:block; width:15px; height:15px; right:-8px; top:-8px; border-radius:50%; border:3px solid #fff; background:#2fc46f; box-shadow:0 0 0 4px rgba(47,196,111,.25),0 3px 8px rgba(0,0,0,.35); z-index:999; }
.user-marker { width:18px; height:18px; border-radius:50%; background:#337dcb; border:3px solid #fff; box-shadow:0 0 0 6px rgba(51,125,203,.22),0 4px 12px rgba(0,0,0,.25); }

.debug-panel { margin:14px 0 0; padding:14px; max-height:360px; overflow:auto; border:1px solid rgba(255,255,255,.4); border-radius:12px; background:#083b37; color:#c8f6e9; font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word; }
select:disabled,button:disabled { opacity:.48; cursor:not-allowed; }

@media (max-width:900px) {
  .site-shell { padding:18px 10px 24px; }
  .page-top-spacer { height: 24px; }
  .location-board { padding:31px 20px 20px; border-radius:22px; }
  .finder-controls { grid-template-columns:1.35fr .75fr .75fr; }
  .finder-grid { grid-template-columns:1fr; }
  #map { height:350px; min-height:350px; }
  .results-card { max-height:620px; }
}
@media (max-width:680px) {
  .site-shell { padding:12px 6px 18px; }
  .page-top-spacer { height: 16px; }
  .logo-showcase { margin: 2px auto 16px; }
  .location-board { padding:27px 12px 16px; border-width:2px; border-radius:18px; }
  .board-bolt { width:13px; height:13px; }
  .bolt-a{left:9px;top:9px}.bolt-b{right:9px;top:9px}.bolt-c{left:9px;bottom:9px}.bolt-d{right:9px;bottom:9px}
  .board-heading { margin-bottom:17px; }
  .board-heading h1 { font-size:clamp(1.85rem,10vw,3rem); }
  .board-heading p { font-size:.75rem; padding:0 10px; }
  .suit-line b { font-size:1.15rem; }
  .finder-controls { grid-template-columns:1fr 1fr; gap:9px; padding:12px; }
  .control-search { grid-column:1/-1; }
  .control-actions { grid-column:1/-1; }
  .finder-summary { grid-template-columns:1fr auto; }
  .closest-summary { display:none; }
  #map { height:310px; min-height:310px; }
  .map-bottom-bar { flex-wrap:wrap; gap:12px; }
  .finder-footer { flex-direction:column; align-items:flex-start; }
}
@media (max-width:460px) {
  .finder-controls { grid-template-columns:1fr; }
  .control-search,.control-actions { grid-column:auto; }
  .control-actions { grid-template-columns:1fr 1fr; }
  .filter-button,.location-button { padding:0 8px; font-size:.76rem; }
  .schedule-row { grid-template-columns:84px 1fr; }
  .popup-content { min-width:225px; max-width:270px; }
}

/* ===== V6: radius search, smaller header/logo, marker clustering ===== */
.board-heading h1 {
  font-size: clamp(1.8rem, 4.4vw, 3.45rem);
  line-height: 1.02;
}
.logo-showcase {
  width: 100%;
  margin: 0 auto 18px;
  padding: 0;
  text-align: center;
}
.logo-showcase img {
  width: min(72vw, 330px);
  max-height: 190px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 7px 13px rgba(0,0,0,.12));
}
.finder-controls {
  grid-template-columns: minmax(0, 1.45fr) .72fr .68fr .72fr;
}
.search-hint {
  grid-column: 1 / -1;
  min-height: 18px;
  margin: -2px 2px 0;
  color: #5d6965;
  font: 700 .72rem/1.35 Arial, sans-serif;
}
.finder-summary {
  grid-template-columns: 1fr auto;
}
.results-heading {
  justify-content: flex-start;
}
.legend-cluster {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--teal);
  border: 2px solid #fff;
  outline: 1px solid var(--teal);
  font-style: normal;
  font-size: 9px;
  font-weight: 900;
}
.venue-cluster-wrapper {
  background: transparent !important;
  border: 0 !important;
}
.venue-cluster {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  border: 3px solid #fff;
  background: radial-gradient(circle at 35% 30%, #39978d, #176f68 65%, #0b4b46);
  box-shadow: 0 7px 18px rgba(0,0,0,.28), 0 0 0 3px rgba(28,116,109,.18);
  font: 950 13px/1 Arial, sans-serif;
}
.venue-cluster.cluster-medium { width: 49px; height: 49px; font-size: 14px; }
.venue-cluster.cluster-large { width: 52px; height: 52px; font-size: 15px; }
.search-center-marker {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #2e77bd;
  border: 3px solid #fff;
  box-shadow: 0 0 0 6px rgba(46,119,189,.2), 0 3px 9px rgba(0,0,0,.25);
}
.search-radius-circle {
  stroke: #2e77bd;
  fill: #2e77bd;
}
.marker-cluster-spider-leg {
  stroke: #385a55;
  stroke-opacity: .55;
}

@media (max-width: 900px) {
  .finder-controls { grid-template-columns: 1.25fr .75fr .75fr; }
  .control-search { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .board-heading h1 { font-size: clamp(1.55rem, 7.6vw, 2.3rem); }
  .board-heading p { font-size: .7rem; }
  .logo-showcase img { width: min(64vw, 260px); max-height: 150px; }
  .finder-controls { grid-template-columns: 1fr 1fr; }
  .control-search { grid-column: 1 / -1; }
  .finder-summary { grid-template-columns: 1fr auto; }
}
@media (max-width: 460px) {
  .board-heading h1 { font-size: clamp(1.45rem, 7.2vw, 2rem); }
  .logo-showcase img { width: min(62vw, 225px); }
  .finder-controls { grid-template-columns: 1fr 1fr; }
  .control-search { grid-column: 1 / -1; }
  .control-actions { grid-column: 1 / -1; }
  .search-hint { font-size: .68rem; }
}


/* ===== V7.3: stretched blended cards/chips banner logo ===== */
.logo-showcase {
  width: 100%;
  margin: 2px auto 18px;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: transparent;
  overflow: visible;
}
.logo-showcase img {
  width: min(92%, 700px);
  max-width: 700px;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  opacity: .62;
  filter: brightness(1.04) saturate(.82) contrast(.9);
  mix-blend-mode: multiply;
}
@media (max-width: 680px) {
  .logo-showcase { margin-bottom: 14px; }
  .logo-showcase img { width: min(96%, 560px); max-width: 560px; }
}
@media (max-width: 460px) {
  .logo-showcase img { width: min(98%, 420px); max-width: 420px; }
}
