/* ── Reset & Base ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: 'Open Sans', sans-serif; background: #f5f5f5; color: #2d2d2d; line-height: 1.6; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1,h2,h3 { font-family: 'Montserrat', sans-serif; }

/* ── Variables ───────────────────────────────────────────────────────── */
:root {
  --dark:    #000119;
  --dark2:   #161922;
  --gold:    #e4a162;
  --gold-dk: #c4803a;
  --white:   #ffffff;
  --offwhite:#fcfcfc;
  --text:    #2d2d2d;
  --muted:   #a8a8a8;
  --muted2:  #626262;
  --radius:  10px;
  --shadow:  0 2px 18px rgba(0,0,0,0.12);
}

/* ── Header / Nav ────────────────────────────────────────────────────── */
.site-header { background: #000000; position: sticky; top: 0; z-index: 200; box-shadow: 0 2px 10px rgba(0,0,0,.6); }
.header-inner { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; height: 62px; }

.logo { display: flex; align-items: center; }
.logo-img {
  height: 38px;
  width: auto;
  display: block;
  filter: invert(1) brightness(1);
  opacity: .92;
  transition: opacity .2s;
}
.logo:hover .logo-img { opacity: 1; }
.footer-logo { font-family: 'Montserrat', sans-serif; font-size: 1.6rem; font-weight: 800; margin-bottom: .4rem; color: #bababa; }

.main-nav { display: flex; gap: .15rem; align-items: center; }
.main-nav a { color: #bababa; font-size: .92rem; font-weight: 500; padding: .45rem .75rem; border-radius: 6px; transition: color .2s, background .2s; }
.main-nav a:hover { color: var(--white); background: rgba(255,255,255,.08); }

.nav-toggle { display: none; background: none; border: none; color: var(--white); font-size: 1.5rem; cursor: pointer; padding: .25rem; }

@media (max-width: 780px) {
  .nav-toggle { display: block; }
  .main-nav   { display: none; position: absolute; top: 62px; left: 0; right: 0; background: #000; flex-direction: column; padding: 1rem 1.5rem; gap: .2rem; border-top: 1px solid #222; }
  .main-nav.open { display: flex; }
  .main-nav a { padding: .8rem 1rem; font-size: 1rem; }
}

/* ── HERO ────────────────────────────────────────────────────────────── */
.hero {
  display: -ms-grid;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  height: clamp(320px, 55vw, 460px);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
}

.cam-hero { background: #000; display: none; }
.cam-hero-wrap { position: relative; width: 100%; }
.cam-hero-ratio { position: relative; width: 100%; padding-top: 56.25%; overflow: hidden; background: #000; }
.cam-hero-ratio iframe { position: absolute; top: 0; left: 50%; width: 100%; height: 100%; border: 0; display: block; transform: translateX(-50%); }
.cam-hero-live { position: absolute; top: .5rem; left: .5rem; z-index: 2; background: rgba(200,0,0,.85); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .05em; padding: .15rem .5rem; border-radius: 3px; pointer-events: none; }
.cam-hero-brand { background: rgba(0,8,20,.95); padding: .6rem 1rem; text-align: center; font-family: 'Montserrat', sans-serif; }
.cam-hero-brand .hl-create, .cam-hero-brand .hl-dot, .cam-hero-brand .hl-buzz { font-size: clamp(1.6rem, 5vw, 2.4rem); font-weight: 800; letter-spacing: -.02em; color: #fff; }
.cam-hero-brand p { margin: .1rem 0 0; font-size: clamp(.7rem, 2vw, .85rem); color: rgba(255,255,255,.75); font-family: 'Montserrat', sans-serif; }
@media (max-width: 700px) {
  .cam-hero-ratio iframe { width: 133%; }
}

.hero-caption {
  background: #000810;
  text-align: center;
  padding: .9rem 1rem .8rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.hero-caption-logo {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.6rem, 5vw, 2.8rem);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1;
}
.hero-caption-logo .hl-create { color: #ffffff; text-shadow: none; }
.hero-caption-logo .hl-dot    { color: #ffffff; text-shadow: none; }
.hero-caption-logo .hl-buzz   { color: var(--gold); text-shadow: none; }
.hero-caption-tagline {
  margin: .35rem 0 0;
  color: rgba(255,255,255,.72);
  font-family: "Montserrat", sans-serif;
  font-size: clamp(.72rem, 2vw, .92rem);
  font-weight: 400;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.hero-cell {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  -webkit-filter: brightness(.75);
  filter: brightness(.75);
}

.hero-bg {
  position: absolute; inset: 0;
  background: url('/static/hero.jpg') center center / cover no-repeat;
  z-index: 0;
}
.hero-bg::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,10,.25) 0%, rgba(0,0,10,.10) 50%, rgba(0,0,10,.35) 100%);
}
/* Wavy lake effect */
.hero-bg::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 200'%3E%3Cpath fill='rgba(0,0,25,0.35)' d='M0,100 C240,160 480,40 720,100 C960,160 1200,40 1440,100 L1440,200 L0,200 Z'/%3E%3C/svg%3E") center bottom/cover no-repeat;
}
.hero-overlay {
  position: relative; z-index: 1;
  width: 100%;
  text-align: center; padding: 0 1rem;
  display: flex; flex-direction: column; align-items: center; gap: .85rem;
}
.hero-logo {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(3rem, 10vw, 6.5rem);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1;
  filter: drop-shadow(0 4px 20px rgba(0,0,0,.5));
}
.hl-create { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.hl-dot    { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.hl-buzz   { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.hero-tagline {
  margin-top: -.5rem;
  color: #ffffff;
  font-size: clamp(.85rem, 2.5vw, 1.1rem);
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ── Weather Badge (bottom of hero) ─────────────────────────────────── */
.weather-badge {
  margin-top: 1.25rem;
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 50px;
  padding: .6rem 1.5rem;
  display: inline-flex; align-items: center; gap: 1rem;
  color: #111111;
  font-size: .88rem;
  flex-wrap: wrap; justify-content: center;
}
.wb-wind { display: flex; align-items: center; gap: .4rem; }
.wb-wind .wb-val { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1.05rem; color: #111111; }
.wb-item { display: flex; flex-direction: column; align-items: center; gap: .05rem; }
.wb-item span:first-child { font-weight: 600; }
.wb-lbl  { font-size: .72rem; opacity: .65; text-transform: uppercase; letter-spacing: .06em; }
.wb-icon { font-size: 1.2rem; }
.wb-divider { width: 1px; height: 28px; background: rgba(0,0,0,.15); }

/* ── Photo Strip ─────────────────────────────────────────────────────── */
.strip-section { background: var(--dark2); padding: 1.5rem 0; }
.strip-header  { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem .75rem; display: flex; align-items: center; justify-content: space-between; }
.strip-header h2 { color: var(--white); font-size: 1.1rem; }
.strip-more    { color: var(--gold); font-size: .88rem; font-weight: 600; }
.strip-more:hover { color: var(--gold-dk); }

.photo-strip {
  display: flex; gap: 8px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 0 1.5rem 1rem;
  scrollbar-width: thin; scrollbar-color: var(--gold) var(--dark2);
  -webkit-overflow-scrolling: touch;
}
.photo-strip::-webkit-scrollbar { height: 5px; }
.photo-strip::-webkit-scrollbar-track { background: var(--dark2); }
.photo-strip::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 10px; }

.strip-thumb {
  flex: 0 0 auto;
  width: 180px; height: 180px;
  border-radius: 8px;
  overflow: hidden;
  scroll-snap-align: start;
  cursor: pointer;
  transition: transform .2s, opacity .2s;
  background: #111;
}
.strip-thumb:hover { transform: scale(1.04); opacity: .9; }
.strip-thumb img   { width: 100%; height: 100%; object-fit: contain; background: #111; }
.strip-more-tile   {
  display: flex; align-items: center; justify-content: center;
  background: rgba(228,161,98,.15);
  border: 2px solid var(--gold);
  color: var(--gold);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: .9rem; text-align: center;
  cursor: pointer;
}
.strip-more-tile:hover { background: rgba(228,161,98,.28); }

@media (max-width: 600px) {
  .strip-thumb { width: 140px; height: 140px; }
}

/* ── Home Sections ───────────────────────────────────────────────────── */
.home-section { padding: 3rem 0; }
.dark-section  { background: var(--dark); }
.dark-section h2, .dark-section h3 { color: var(--white); }
.dark-section p { color: rgba(255,255,255,.75); }
.section-inner { max-width: 680px; margin: 0 auto; padding: 0 1.5rem; }
.section-inner > h2 { font-size: clamp(1.3rem, 3vw, 1.8rem); margin-bottom: 1.75rem; padding-bottom: .75rem; border-bottom: 2px solid var(--gold); display: inline-block; }

/* ── Event Tiles ─────────────────────────────────────────────────────── */
.event-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; margin-bottom: 1.75rem; }
.event-tile {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(228,161,98,.25);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color .2s, transform .2s;
}
.event-tile:hover { border-color: var(--gold); transform: translateY(-2px); }
.et-date {
  background: var(--gold); color: var(--dark);
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: .82rem; padding: .4rem .9rem;
  text-transform: uppercase; letter-spacing: .06em;
}
.et-body  { padding: .9rem 1rem; }
.et-body h3 { font-size: 1rem; margin-bottom: .3rem; color: var(--white); }
.et-venue, .et-time { font-size: .83rem; color: var(--muted); margin-bottom: .15rem; }
.et-desc  { font-size: .85rem; color: rgba(255,255,255,.6); margin-top: .4rem; }
.muted-light { color: rgba(255,255,255,.45); font-style: italic; }

/* ── Adventure Strip ─────────────────────────────────────────────────── */
.adv-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; margin-bottom: 1.75rem; }
.adv-tile  { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; transition: transform .2s; }
.adv-tile:hover { transform: translateY(-3px); }
.adv-img   { height: 180px; overflow: hidden; }
.adv-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.adv-tile:hover .adv-img img { transform: scale(1.05); }
.adv-img-placeholder { height: 180px; background: #e8f0f5; display: flex; align-items: center; justify-content: center; font-size: 3rem; }
.adv-body  { padding: 1rem 1.1rem; }
.adv-body h3 { font-size: 1rem; margin-bottom: .25rem; color: var(--dark); }
.adv-body p  { font-size: .87rem; color: var(--muted2); }
.adv-empty { text-align: center; padding: 2.5rem; color: var(--muted2); }

/* ── Visitor CTA ─────────────────────────────────────────────────────── */
.visitor-cta { background: var(--gold); color: var(--dark); text-align: center; padding: 2.5rem 1rem; }
.visitor-cta h2 { font-size: 1.5rem; margin-bottom: .5rem; }
.visitor-cta p  { margin-bottom: 1.25rem; opacity: .85; }

/* ── Buttons ─────────────────────────────────────────────────────────── */
.btn { display: inline-block; padding: .65rem 1.4rem; background: #1a6fa0; color: var(--white); border-radius: 8px; font-weight: 600; font-size: .9rem; border: none; cursor: pointer; transition: background .2s, transform .1s; font-family: 'Montserrat', sans-serif; }
.btn:hover { background: #0d4d73; transform: translateY(-1px); }
.btn-gold  { background: var(--gold); color: var(--dark); }
.btn-gold:hover { background: var(--gold-dk); color: var(--white); }
.btn-sm    { padding: .4rem .9rem; font-size: .8rem; }
.btn-full  { width: 100%; text-align: center; }
.btn-green  { background: #27ae60; color: var(--white); }
.btn-red    { background: #c0392b; color: var(--white); }
.btn-accent { background: var(--gold); color: var(--dark); }
.btn-accent:hover { background: var(--gold-dk); color: var(--white); }
.center-btn { text-align: center; }

/* ── Flash Messages ──────────────────────────────────────────────────── */
.flash-container { max-width: 680px; margin: .75rem auto 0; padding: 0 1.5rem; }
.flash { padding: .75rem 1rem; border-radius: 8px; margin-bottom: .5rem; font-weight: 600; }
.flash-success { background: #d5f5e3; color: #1e8449; }
.flash-error   { background: #fde8e8; color: #a93226; }

/* ── Page Header ─────────────────────────────────────────────────────── */
.page-header { background: var(--dark); border-bottom: 3px solid var(--gold); color: var(--white); padding: 1.75rem 1.5rem; display: flex; flex-direction: column; align-items: center; gap: .5rem; text-align: center; }
.page-header h1 { font-size: clamp(1.4rem, 4vw, 2.2rem); }
.page-header p  { color: rgba(255,255,255,.7); font-size: .95rem; }
.page-header .btn { margin-top: .5rem; }
.page-header-note { font-size: .82rem !important; color: rgba(255,255,255,.5) !important; font-style: italic; margin-top: .15rem; }

/* ── Container ───────────────────────────────────────────────────────── */
.container { max-width: 680px; margin: 0 auto; padding: 2rem 1.5rem; }
.container.narrow { max-width: 620px; }

/* ── Photo Grid (Instagram style) ───────────────────────────────────── */
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px; }
@media (min-width: 600px) { .photo-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } }
.photo-thumb { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 6px; cursor: pointer; background: #dde8f0; transition: transform .2s, opacity .2s; }
.photo-thumb:hover { transform: scale(1.03); opacity: .9; }
.photo-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* ── Lightbox ────────────────────────────────────────────────────────── */
.lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.lightbox.hidden { display: none; }
.lb-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.92); }
.lb-content  { position: relative; z-index: 1; max-width: 92vw; max-height: 92vh; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.lb-content img { max-width: 90vw; max-height: 75vh; border-radius: 8px; object-fit: contain; }
#lb-caption  { color: rgba(255,255,255,.8); font-size: .9rem; text-align: center; }
.lb-close    { position: absolute; top: -2.5rem; right: 0; background: none; border: none; color: white; font-size: 2rem; cursor: pointer; line-height: 1; }

/* ── Event Cards (music page) ───────────────────────────────────────── */
.event-cards { display: flex; flex-direction: column; gap: 1rem; }
.event-card  { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); display: flex; overflow: hidden; }
.event-card-date { background: var(--dark); color: var(--gold); padding: 1rem; min-width: 90px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: .9rem; }
.event-card-body { padding: 1rem 1.25rem; }
.event-card-body h3 { margin-bottom: .25rem; color: var(--dark); }
.event-venue { color: var(--muted2); font-size: .85rem; }

/* ── Fish Report Bar ─────────────────────────────────────────────────── */
.fish-report-bar { background: #fff8ee; border-left: 4px solid var(--gold); padding: .75rem 1rem; border-radius: 0 8px 8px 0; margin-bottom: 1.25rem; font-size: .9rem; }

/* ── Forms ───────────────────────────────────────────────────────────── */
.upload-form { display: flex; flex-direction: column; gap: 1.25rem; background: var(--white); padding: 1.75rem; border-radius: var(--radius); box-shadow: var(--shadow); }
.form-group  { display: flex; flex-direction: column; gap: .4rem; }
.form-row    { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 500px) { .form-row { grid-template-columns: 1fr; } }
label { font-weight: 600; font-size: .88rem; color: var(--dark); }
input[type=text], input[type=date], input[type=password], select, textarea {
  padding: .65rem .9rem; border: 1.5px solid #ddd; border-radius: 8px;
  font-size: .95rem; font-family: inherit; background: #fafafa; transition: border .2s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); background: var(--white); }

/* ── Drop Zone ───────────────────────────────────────────────────────── */
.drop-zone { border: 2px dashed #ccc; border-radius: var(--radius); padding: 2rem 1rem; text-align: center; cursor: pointer; position: relative; transition: border .2s, background .2s; background: #fafafa; }
.drop-zone:hover, .drop-zone.drag-over { border-color: var(--gold); background: #fff8ee; }
.file-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.drop-label span { font-size: 2.5rem; }
.drop-label p { margin-top: .5rem; font-weight: 600; }
#previewWrap img { max-width: 100%; border-radius: 8px; margin-top: 1rem; }
.preview-multi { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 1rem; }
.preview-multi img { width: 80px; height: 80px; object-fit: cover; border-radius: 6px; }

/* ── Admin Grid ──────────────────────────────────────────────────────── */
.admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.25rem; }
.admin-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.75rem 1.25rem; text-align: center; cursor: pointer; transition: transform .2s, box-shadow .2s; border: 2px solid transparent; display: block; }
.admin-card:hover { transform: translateY(-3px); box-shadow: 0 6px 24px rgba(0,0,0,.13); border-color: var(--gold); }
.admin-card-alert { border-color: #e05c2a; }
.admin-icon { font-size: 2.5rem; display: block; margin-bottom: .5rem; }
.admin-card h3 { color: var(--dark); margin-bottom: .25rem; }

/* ── Moderate Grid ───────────────────────────────────────────────────── */
.moderate-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.moderate-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.moderate-card img { width: 100%; height: 200px; object-fit: cover; }
.moderate-info { padding: 1rem; }
.moderate-actions { display: flex; gap: .5rem; margin-top: .75rem; }

/* ── Admin Table ─────────────────────────────────────────────────────── */
.admin-table { width: 100%; border-collapse: collapse; font-size: .9rem; margin-top: 1rem; }
.admin-table th { background: var(--dark); color: var(--gold); padding: .65rem .85rem; text-align: left; }
.admin-table td { padding: .65rem .85rem; border-bottom: 1px solid #e8e8e8; }
.admin-table tr:hover td { background: #fff8ee; }

/* ── Misc ────────────────────────────────────────────────────────────── */
.muted { color: var(--muted2); font-size: .88rem; }
.empty-state { text-align: center; padding: 3.5rem 1rem; color: var(--muted); font-size: 1.05rem; }
.visitor-info { background: #fff8ee; border-radius: var(--radius); padding: 1rem; margin-bottom: 1rem; font-size: .95rem; }
.center-page  { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; }
.center-page h2 { margin-bottom: 1.5rem; }
.report-date { font-size: .8rem; color: var(--muted); margin-bottom: .5rem; }
.adventure-list { display: flex; flex-direction: column; gap: 1.5rem; }
.adventure-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; display: grid; grid-template-columns: 200px 1fr; }
.adventure-img img { width: 100%; height: 100%; object-fit: cover; }
.adventure-body { padding: 1.25rem; }
@media (max-width: 600px) { .adventure-card { grid-template-columns: 1fr; } }


/* ── Weather Bar Strip (below hero) ─────────────────────────────────── */
.weather-bar-strip {
  background: var(--dark);
  border-bottom: 2px solid var(--gold);
  padding: .4rem 1rem;
  display: flex; align-items: center; justify-content: center;
  gap: .6rem; flex-wrap: wrap;
  color: rgba(255,255,255,.88);
  font-size: .82rem;
  line-height: 1.4;
}
.weather-bar-strip .wi { white-space: nowrap; }
.weather-bar-strip .wi strong { color: var(--gold); }
.weather-bar-strip .wi em { opacity: .7; font-style: normal; }
.weather-bar-strip .wd { color: rgba(255,255,255,.25); font-size: .7rem; }

@media (max-width: 768px) {
  .hero-tagline { margin-top: -.3rem; }
}


/* ── Live Radar Section ──────────────────────────────────────────────── */
.radar-link { color: var(--gold); font-size: .82rem; font-weight: 600; white-space: nowrap; }
.radar-link:hover { color: var(--gold-dk); }
@keyframes radar-pulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .35; }
}
.radar-flash {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-decoration: none;
  padding: 4px 14px;
  border: 2px solid;
  border-radius: 20px;
  animation: radar-pulse 1.6s ease-in-out infinite;
  transition: opacity .2s;
}
.radar-flash:hover { opacity: 1; animation: none; text-decoration: underline; }

/* ── Radar page — mobile-first full-screen ───────────────────────────── */
.radar-page {
  /* height removed — page now has full forecast content, not just iframe */
}
.radar-strip {
  background: var(--dark);
  border-bottom: 2px solid var(--gold);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .45rem 1rem;
  font-size: .8rem;
  color: rgba(255,255,255,.75);
  flex-shrink: 0;
}
.radar-frame {
  flex: 1;
  overflow: hidden;
}
.radar-frame iframe { width: 100%; height: 100%; border: none; display: block; }

/* ── Crew CTA Bar ────────────────────────────────────────────────────── */
.crew-cta-bar {
  background: var(--dark2);
  border-top: 2px solid var(--gold);
  border-bottom: 2px solid var(--gold);
  padding: .55rem 1.25rem;
}
.crew-cta-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center;
  justify-content: space-between; gap: 1rem;
}
.crew-cta-text {
  display: flex; flex-direction: column; gap: .1rem;
  flex: 1;
}
.crew-cta-top {
  display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
}
.crew-cta-headline {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800; font-size: .95rem;
  color: var(--white); letter-spacing: -.01em;
}
.crew-cta-sub {
  font-size: .78rem; color: rgba(255,255,255,.55);
}
.crew-cta-logo {
  height: 32px; width: auto;
  filter: invert(1);
  mix-blend-mode: screen;
  opacity: .85;
  flex-shrink: 0;
}
@keyframes arrow-bounce {
  0%, 100% { transform: translateY(0);   opacity: 1; }
  50%       { transform: translateY(-7px); opacity: .5; }
}
.crew-arrow {
  font-size: 1.8rem; line-height: 1;
  color: var(--gold);
  animation: arrow-bounce .8s ease-in-out infinite;
  display: inline-block;
}
@keyframes crew-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(228,161,98,.6); }
  50%       { box-shadow: 0 0 0 10px rgba(228,161,98,0); }
}
.crew-cta-btn {
  display: inline-block;
  background: var(--gold); color: var(--dark);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: .8rem;
  padding: .35rem 1rem; border-radius: 20px;
  white-space: nowrap; transition: background .2s;
  flex-shrink: 0;
  animation: crew-pulse 2s ease-in-out infinite;
}
.crew-cta-btn:hover {
  background: var(--gold-dk); color: var(--white);
  animation: none;
}
@media(max-width: 640px) {
  .crew-cta-bar { padding: .5rem .75rem; }
  .crew-cta-logo { display: none; }
  .crew-cta-headline { font-size: .88rem; }
}

/* ── Photo Album Section ─────────────────────────────────────────────── */
.album-section { background: #f5f5f5; padding-bottom: 1.5rem; }

.album-header {
  max-width: 1200px; margin: 0 auto;
  padding: 1.25rem 1rem .75rem;
  display: flex; align-items: center; justify-content: space-between;
}
.album-header h2 { font-size: 1.1rem; color: var(--dark); }

.upload-btn {
  background: var(--gold); color: var(--dark);
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: .82rem; padding: .4rem .9rem;
  border-radius: 20px; white-space: nowrap;
  transition: background .2s;
}
.upload-btn:hover { background: var(--gold-dk); color: var(--white); }

.insta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}
@media (min-width: 600px) {
  .insta-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }
}
@media (min-width: 900px) {
  .insta-grid { grid-template-columns: repeat(5, 1fr); gap: 4px; }
}

.insta-thumb {
  display: block; aspect-ratio: 1;
  overflow: hidden; position: relative;
  background: #111; cursor: pointer;
}
.insta-thumb img {
  width: 100%; height: 100%; object-fit: contain;
  transition: transform .3s;
}
.insta-thumb:hover img { transform: scale(1.04); }

.insta-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,.65));
  color: #fff; font-size: .7rem; padding: .5rem .4rem .3rem;
  opacity: 0; transition: opacity .2s;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.insta-thumb:hover .insta-caption { opacity: 1; }

.album-empty {
  text-align: center; padding: 3rem 1rem;
  color: var(--muted2);
}


.ticket-btn {
  display: inline-block; margin-top: .5rem;
  background: var(--gold); color: var(--dark);
  font-size: .75rem; font-weight: 700;
  padding: .25rem .7rem; border-radius: 20px;
  transition: background .2s;
}
.ticket-btn:hover { background: var(--gold-dk); color: var(--white); }

/* ── Events Page ─────────────────────────────────────────────────────── */
.ev-filters {
  max-width: 1200px; margin: 1.25rem auto .5rem;
  padding: 0 1rem;
  display: flex; gap: .75rem; flex-wrap: wrap; align-items: center;
}
.ev-search {
  flex: 1; min-width: 180px; max-width: 320px;
  padding: .5rem .9rem; border: 1.5px solid #ddd;
  border-radius: 20px; font-size: .9rem; font-family: inherit;
}
.ev-search:focus { outline: none; border-color: var(--gold); }
.ev-filter-btns { display: flex; gap: .4rem; flex-wrap: wrap; }
.ev-filter {
  padding: .35rem .85rem; border-radius: 20px;
  border: 1.5px solid #ddd; background: #fff;
  font-size: .82rem; font-weight: 600; cursor: pointer;
  transition: all .2s;
}
.ev-filter.active, .ev-filter:hover {
  background: var(--dark); color: var(--gold); border-color: var(--dark);
}

/* ── Event list (single row per show) ───────────────────────────────── */
.ev-list {
  max-width: 900px; margin: 0 auto 2rem; padding: 0 1rem;
}
.ev-line {
  display: grid;
  grid-template-columns: 90px 1fr auto auto;
  align-items: center;
  gap: .35rem .75rem;
  padding: .4rem .5rem;
  border-bottom: 1px solid #eee;
  font-size: .86rem;
  transition: background .15s;
}
.ev-line:first-child { border-top: 1px solid #eee; }
.ev-line:hover { background: #fff8ee; }
.evl-date  { color: var(--muted2); font-size: .78rem; white-space: nowrap; }
.evl-title { font-weight: 700; color: var(--dark); }
.evl-venue { color: var(--muted2); font-size: .8rem; white-space: nowrap; }
.state-badge {
  display: inline-block; background: var(--dark); color: var(--gold);
  font-size: .68rem; font-weight: 700; padding: .1rem .4rem;
  border-radius: 4px; letter-spacing: .04em; vertical-align: middle;
}
.evl-buy {
  display: inline-block; background: var(--gold); color: var(--dark);
  font-weight: 700; font-size: .75rem; padding: .25rem .7rem;
  border-radius: 20px; white-space: nowrap; transition: background .2s;
}
.evl-buy:hover { background: var(--gold-dk); color: var(--white); }
.evl-buy-empty { display: inline-block; width: 58px; }
@media (max-width: 600px) {
  .ev-line {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
  }
  .evl-date  { grid-column: 1; grid-row: 2; font-size: .75rem; }
  .evl-title { grid-column: 1; grid-row: 1; }
  .evl-venue { display: none; }
  .evl-buy   { grid-column: 2; grid-row: 1 / span 2; }
  .evl-buy-empty { display: none; }
}


/* ── Venue Management ────────────────────────────────────────────────── */
.venue-list { display: flex; flex-direction: column; gap: .6rem; margin-top: .75rem; }
.venue-row {
  background: #fff; border-radius: 8px; box-shadow: 0 1px 6px rgba(0,0,0,.07);
  padding: .85rem 1rem; display: flex; align-items: center;
  justify-content: space-between; gap: 1rem;
}
.venue-info { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.venue-url  { font-size: .75rem; color: var(--muted2); word-break: break-all; }
.venue-url:hover { color: var(--gold-dk); }
.ev-cat-tag {
  display: inline-block; background: #e8f0f5; color: var(--muted2);
  font-size: .72rem; font-weight: 600; padding: .1rem .45rem;
  border-radius: 4px; letter-spacing: .03em;
}


/* ── Instagram bar above radar ───────────────────────────────────────── */
.radar-ig-bar {
  background: var(--dark2);
  border-top: 1px solid rgba(255,255,255,.07);
  padding: .6rem 1.5rem;
}
.radar-ig-bar-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; gap: 1rem;
}
.radar-ig-logo {
  height: 28px; width: auto;
  filter: invert(1) brightness(1);
  opacity: .85; flex-shrink: 0;
}
.radar-ig-link {
  font-size: .85rem; color: rgba(255,255,255,.65);
  transition: color .2s;
}
.radar-ig-link strong { color: var(--gold); }
.radar-ig-link:hover  { color: var(--white); }
@media(max-width:480px) {
  .radar-ig-logo { height: 22px; }
  .radar-ig-link { font-size: .78rem; }
}

/* ── IG Preview Photo Strip ──────────────────────────────────────────── */
.ig-preview-strip {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 3px;
  background: #000;
  max-width: 1200px;
  margin: 0 auto;
}
.ig-preview-thumb {
  aspect-ratio: 1;
  overflow: hidden;
  background: #111;
}
.ig-preview-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s, opacity .3s;
}
.ig-preview-thumb:hover img {
  transform: scale(1.06);
  opacity: .85;
}
@media(max-width: 480px) {
  .ig-preview-strip { grid-template-columns: repeat(3, 1fr); }
}

/* ── Homepage Radar Embed ────────────────────────────────────────────── */
.home-radar-wrap {
  background: var(--dark);
  border-top: 2px solid var(--gold);
  border-bottom: 2px solid var(--gold);
  padding: 1.5rem;
}
.home-radar-inner {
  max-width: 1200px; margin: 0 auto;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.4);
}
.home-radar-strip {
  display: flex; align-items: center; justify-content: space-between;
  padding: .45rem 1rem;
  font-size: .8rem; color: rgba(255,255,255,.75);
  background: var(--dark2);
}
.home-radar-frame {
  height: clamp(280px, 45vw, 500px);
  position: relative;
}
.home-radar-frame iframe { width: 100%; height: 100%; border: none; display: block; }
.radar-overlay {
  position: absolute; inset: 0; z-index: 10;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.35);
  cursor: pointer;
  transition: opacity .3s;
}
.radar-overlay span {
  background: rgba(0,0,0,.65);
  color: var(--white);
  font-family: 'Montserrat', sans-serif;
  font-weight: 600; font-size: .9rem;
  padding: .6rem 1.4rem; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.25);
  pointer-events: none;
}
.radar-overlay.hidden { display: none; }

/* ── Fishing Reports ─────────────────────────────────────────────────── */
.fish-reports-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}
.fish-report-card {
  background: var(--white); border-radius: var(--radius);
  box-shadow: var(--shadow); overflow: hidden;
  display: flex; flex-direction: column;
}
.frc-header {
  background: var(--dark); color: var(--white);
  padding: 1rem 1.25rem;
  border-bottom: 3px solid var(--gold);
}
.frc-header h2 { font-size: 1.1rem; margin-bottom: .4rem; }
.frc-meta { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.frc-date { font-size: .75rem; opacity: .65; }
.frc-badge {
  background: rgba(228,161,98,.2); color: var(--gold);
  font-size: .75rem; font-weight: 600;
  padding: .15rem .55rem; border-radius: 10px;
}
.frc-body { padding: 1rem 1.25rem; flex: 1; font-size: .88rem; line-height: 1.65; color: var(--muted2); }
.frc-footer {
  padding: .75rem 1.25rem;
  border-top: 1px solid #eee;
  display: flex; justify-content: space-between; align-items: center;
  font-size: .78rem;
}
.frc-source { color: var(--muted); }
.frc-link   { color: var(--gold); font-weight: 600; }
.frc-link:hover { color: var(--gold-dk); }

/* ── Footer ──────────────────────────────────────────────────────────── */
.site-footer { background: var(--dark); color: rgba(255,255,255,.6); text-align: center; padding: 2.5rem 1rem; margin-top: 0; }
.site-footer p { margin-bottom: .3rem; font-size: .88rem; }
.footer-about { font-size: .82rem; color: rgba(255,255,255,.5); max-width: 540px; margin: .75rem auto 0; line-height: 1.65; }
.footer-small { font-size: .78rem; opacity: .55; margin-top: .75rem; }
.site-footer a { color: var(--gold); }

/* ── Moon Phases Bar ─────────────────────────────────────────────────── */
.moon-phases-bar {
  background: var(--dark);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--shadow);
}
.moon-title {
  color: var(--gold);
  font-size: .95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 1rem;
}
.moon-phases-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.moon-phase-card {
  text-align: center;
  background: rgba(255,255,255,.05);
  border-radius: 8px;
  padding: .85rem .5rem;
}
.moon-icon  { font-size: 2rem; line-height: 1; margin-bottom: .4rem; }
.moon-name  { color: var(--white); font-size: .8rem; font-weight: 700; margin-bottom: .2rem; }
.moon-date  { color: var(--gold); font-size: .85rem; font-weight: 600; margin-bottom: .15rem; }
.moon-range { color: rgba(255,255,255,.5); font-size: .72rem; }
@media(max-width:600px){
  .moon-phases-grid { grid-template-columns: repeat(2,1fr); }
  .moon-icon { font-size: 1.6rem; }
}

/* ── AI Fishing Summary ───────────────────────────────────────────────── */
.ai-fish-summary {
  background: linear-gradient(135deg, #0a1628 0%, #001830 100%);
  border-radius: var(--radius);
  border-left: 4px solid var(--gold);
  padding: 1.5rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--shadow);
}
.ai-summary-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  gap: .5rem;
}
.ai-badge {
  background: var(--gold);
  color: var(--dark);
  font-size: .8rem;
  font-weight: 700;
  padding: .3rem .75rem;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.ai-updated {
  color: rgba(255,255,255,.4);
  font-size: .75rem;
}
.ai-summary-body p {
  color: rgba(255,255,255,.85);
  font-size: .92rem;
  line-height: 1.75;
  margin: 0;
}
.ai-top3 { margin-top: 1.25rem; border-top: 1px solid rgba(228,161,98,.25); padding-top: 1rem; }
.ai-top3 h4 { color: var(--gold); font-size: .9rem; margin-bottom: .65rem; }
.top3-list {
  color: rgba(255,255,255,.8);
  font-family: inherit;
  font-size: .88rem;
  line-height: 1.9;
  white-space: pre-wrap;
  margin: 0;
  background: transparent;
}

/* ── Fishing Teaser (homepage) ───────────────────────────────────────── */
.fish-teaser-section { background: #f0f4f8; }
.fish-teaser-card {
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border-left: 4px solid var(--gold);
  padding: 1.5rem;
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.fish-teaser-body { flex: 1; min-width: 220px; }
.fish-teaser-body p { font-size: .92rem; line-height: 1.75; color: var(--muted2); margin: 0 0 .5rem; }
.fish-teaser-date   { font-size: .75rem !important; }
.fish-teaser-cta    { display: flex; align-items: center; }
@media(max-width:600px){ .fish-teaser-card { flex-direction: column; } }

/* ── Manage Photos ───────────────────────────────────────────────────── */
.pm-tabs { display: flex; gap: .6rem; margin-bottom: .25rem; }
.pm-tab {
  padding: .45rem 1.1rem; border-radius: 20px; font-size: .85rem; font-weight: 600;
  border: 2px solid #ddd; color: var(--muted2); transition: all .2s;
}
.pm-tab.active, .pm-tab:hover {
  background: var(--dark); color: var(--gold); border-color: var(--dark);
}
.pm-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: .6rem;
}
.pm-item {
  position: relative; cursor: grab; border-radius: 8px; overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.12);
  aspect-ratio: 1;
}
.pm-item:active { cursor: grabbing; }
.pm-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pm-cap {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,.55); color: #fff;
  font-size: .65rem; padding: .2rem .35rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pm-del-form { position: absolute; top: 4px; right: 4px; margin: 0; }
.pm-hero-btn { position:absolute; top:4px; left:4px; background:rgba(0,0,0,.55); border:none; border-radius:50%; width:28px; height:28px; color:rgba(255,255,255,.55); font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; text-shadow:0 0 2px rgba(0,0,0,.9); transition:color .2s,box-shadow .2s; }
.pm-hero--on { color:#f5c518 !important; background:rgba(0,0,0,.75) !important; text-shadow:0 0 8px rgba(245,197,24,.9) !important; box-shadow:0 0 0 2px #f5c51888 !important; }
.pm-pos-form { position:absolute; bottom:4px; left:4px; margin:0; }
.pm-pos-select { font-size:.62rem; background:rgba(0,0,0,.7); color:#ddd; border:1px solid rgba(255,255,255,.25); border-radius:3px; padding:.1rem .2rem; cursor:pointer; max-width:80px; }
.pm-del {
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(200,0,0,.82); color: #fff; border: none;
  font-size: 1rem; line-height: 1; cursor: pointer; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.pm-del:hover { background: #c00; }
.pm-ghost { opacity: .4; }
@media(max-width:480px) {
  .pm-grid { grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); }
}

/* ── Instagram CTA ───────────────────────────────────────────────────── */
.ig-cta-section {
  background: var(--dark2);
  border-top: 2px solid rgba(255,255,255,.07);
  padding: 1.75rem 1.5rem;
}
.ig-cta-inner {
  max-width: 860px; margin: 0 auto;
  display: flex; align-items: center;
  gap: 1.5rem; flex-wrap: wrap;
}
.ig-logo {
  width: 110px; height: auto;
  filter: invert(1) brightness(1);
  flex-shrink: 0;
}
.ig-cta-body {
  flex: 1; min-width: 180px;
  display: flex; flex-direction: column; gap: .35rem;
}
.ig-handle {
  display: flex; align-items: center; gap: .5rem;
  color: var(--white);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: 1.1rem;
}
.ig-icon {
  width: 22px; height: 22px; color: var(--white); flex-shrink: 0;
}
.ig-cta-text {
  color: rgba(255,255,255,.55); font-size: .85rem; margin: 0;
}
.ig-follow-btn {
  display: inline-block; flex-shrink: 0;
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: .88rem;
  padding: .6rem 1.4rem; border-radius: 8px;
  white-space: nowrap;
  transition: opacity .2s, transform .1s;
  box-shadow: 0 2px 12px rgba(220,39,67,.35);
}
.ig-follow-btn:hover { opacity: .88; transform: translateY(-1px); }
@media(max-width: 560px) {
  .ig-cta-inner { gap: 1rem; }
  .ig-logo { width: 80px; }
  .ig-handle { font-size: .95rem; }
  .ig-follow-btn { width: 100%; text-align: center; }
}

/* ── Small-phone tweaks (≤ 400px) ───────────────────────────────────── */
@media(max-width:400px) {
  /* Hide pipe dividers in weather bar when items wrap */
  .weather-bar-strip .wd { display: none; }
  /* Fishing report cards: ensure they don't overflow */
  .fish-reports-grid { grid-template-columns: 1fr; }
  /* Events filters: make search full-width */
  .ev-search { max-width: 100%; width: 100%; }
  /* Page header font */
  .page-header h1 { font-size: 1.3rem; }
}

/* ── Solunar Feeding Table ───────────────────────────────────────────── */
.solunar-card {
  background: linear-gradient(135deg, #0d1f0a 0%, #0a1a08 100%);
  border-radius: var(--radius);
  border-left: 4px solid #4caf50;
  padding: 1.5rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--shadow);
}
.solunar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1rem;
}
.solunar-header-left {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.solunar-label {
  color: #4caf50;
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.solunar-date {
  color: rgba(255,255,255,.5);
  font-size: .78rem;
}
.solunar-phase-block {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: rgba(255,255,255,.07);
  border-radius: 8px;
  padding: .4rem .9rem;
}
.solunar-phase-icon { font-size: 1.5rem; line-height: 1; }
.solunar-phase-name { color: var(--white); font-size: .88rem; font-weight: 600; }

.solunar-rating-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: 1.1rem;
}
.solunar-rating-label {
  color: rgba(255,255,255,.65);
  font-size: .82rem;
}
.solunar-rating-badge {
  font-size: .78rem;
  font-weight: 700;
  padding: .25rem .7rem;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.solunar-rating-excellent { background: #4caf50; color: #fff; }
.solunar-rating-good      { background: #8bc34a; color: #111; }
.solunar-rating-average   { background: #ffa726; color: #111; }
.solunar-rating-slow      { background: #607d8b; color: #fff; }
.solunar-stars {
  color: var(--gold);
  font-size: 1rem;
  letter-spacing: .05em;
}

.solunar-table-wrap {
  overflow-x: auto;
  margin-bottom: 1rem;
  border-radius: 8px;
}
.solunar-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .88rem;
}
.solunar-table thead tr {
  background: rgba(255,255,255,.08);
}
.solunar-table th {
  text-align: left;
  padding: .6rem .9rem;
  color: rgba(255,255,255,.5);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}
.solunar-table tbody tr {
  border-top: 1px solid rgba(255,255,255,.06);
  transition: background .15s;
}
.solunar-table tbody tr:hover { background: rgba(255,255,255,.04); }
.sol-now { background: rgba(76,175,80,.12) !important; }
.sol-past { opacity: .5; }
.solunar-table td {
  padding: .65rem .9rem;
  color: rgba(255,255,255,.85);
  vertical-align: middle;
  white-space: nowrap;
}
.sol-type-badge {
  font-size: .7rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.sol-major { background: #4caf50; color: #fff; }
.sol-minor { background: rgba(76,175,80,.25); color: #4caf50; }
.sol-period-name { font-weight: 600; }
.sol-time { color: var(--gold); font-weight: 700; }
.sol-dur  { color: rgba(255,255,255,.45); font-size: .8rem; }
.sol-status { font-size: .78rem; font-weight: 700; }
.sol-status-now  { color: #4caf50; }
.sol-status-past { color: rgba(255,255,255,.35); font-weight: 400; }
.sol-status-up   { color: rgba(255,255,255,.65); }


/* ── River Math Panel ─────────────────────────────────────────────────── */
.river-math-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  overflow: hidden;
}
.rm-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto;
  align-items: center;
  gap: .5rem 1rem;
  padding: .65rem 1rem;
  font-size: .85rem;
}
.rm-source  { background: rgba(255,255,255,.03); border-bottom: 1px solid rgba(255,255,255,.06); }
.rm-gauge   { background: rgba(255,255,255,.02); border-bottom: 1px solid rgba(255,255,255,.06); }
.rm-computed {
  background: rgba(80,180,120,.07);
  border-bottom: 1px solid rgba(80,180,120,.2);
  border-top: 1px solid rgba(80,180,120,.2);
}
.rm-gauge--truth { background: rgba(52,152,219,.06); }
.rm-divider { height: 2px; background: rgba(255,255,255,.08); }
.rm-label { color: rgba(255,255,255,.8); font-weight: 600; font-size: .82rem; }
.rm-cfs { font-size: 1.1rem; font-weight: 700; color: #c0d8ec; text-align: right; white-space: nowrap; }
.rm-cfs--big { font-size: 1.25rem; color: #50b478; }
.rm-unit { font-size: .7rem; font-weight: 400; color: rgba(255,255,255,.45); }
.rm-note { font-size: .75rem; color: rgba(255,255,255,.4); }
.rm-status { font-size: .78rem; font-weight: 600; text-align: right; white-space: nowrap; }
.rm-status--running { color: #50b478; }
.rm-status--low     { color: rgba(255,255,255,.35); }
.rm-status--pulse   { color: #3fb950; }
.rm-status--wait    { color: rgba(255,255,255,.35); }
.rm-status--trib    { color: #e8a020; }
.rm-tributary-note  {
  grid-column: 1 / -1;
  background: rgba(232,160,32,.10);
  border-left: 3px solid #e8a020;
  border-radius: 4px;
  padding: .55rem .75rem;
  font-size: .78rem;
  color: rgba(255,255,255,.80);
  line-height: 1.5;
  margin-top: .35rem;
}
.rm-tributary-note strong { color: #e8a020; }
.rm-badge {
  display: inline-block;
  font-size: .65rem;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: .3rem;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.rm-badge--above { background: rgba(200,140,40,.25); color: #e8a020; }
.rm-badge--est   { background: rgba(80,180,120,.2);  color: #50b478; }
.rm-badge--live  { background: rgba(52,152,219,.2);  color: #5dade2; }
@media(max-width:600px) {
  .rm-row { grid-template-columns: 1fr auto; }
  .rm-note { display: none; }
}

.moon-tips {
  margin-top: 1.2rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(76,175,80,.25);
  border-radius: 10px;
  padding: 1rem 1.2rem;
}
.moon-tips-header {
  font-size: .9rem;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  margin-bottom: .65rem;
}
.moon-tips-phase {
  font-weight: 400;
  color: rgba(255,255,255,.5);
  font-size: .82rem;
}
.moon-tips-list {
  margin: 0;
  padding-left: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.moon-tips-list li {
  font-size: .8rem;
  color: rgba(255,255,255,.65);
  line-height: 1.5;
}
.moon-tips-list li strong {
  color: rgba(255,255,255,.85);
}
.moon-tips-link {
  margin-top: .75rem;
  font-size: .78rem;
}
.moon-tips-link a {
  color: #4caf50;
  text-decoration: none;
}
.moon-tips-link a:hover {
  text-decoration: underline;
}
.solunar-legend {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  color: rgba(255,255,255,.4);
  font-size: .75rem;
  line-height: 1.5;
  border-top: 1px solid rgba(76,175,80,.2);
  padding-top: .85rem;
  margin-top: .25rem;
}
@media(max-width:600px) {
  .solunar-header { flex-direction: column; align-items: flex-start; }
  .solunar-table th:nth-child(4),
  .solunar-table td:nth-child(4) { display: none; }
}

/* ── Trails & Hiking Page ────────────────────────────────────────────── */
.trail-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  background: var(--dark);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  box-shadow: var(--shadow);
}
.trail-filter-group {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.trail-filter-label {
  color: rgba(255,255,255,.5);
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-right: .15rem;
}
.trail-filter-btn {
  color: rgba(255,255,255,.65);
  font-size: .8rem;
  font-weight: 600;
  padding: .3rem .75rem;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  text-decoration: none;
  transition: all .15s;
}
.trail-filter-btn:hover { background: rgba(255,255,255,.08); color: var(--white); }
.trail-filter-btn.active { background: var(--gold); color: var(--dark); border-color: var(--gold); font-weight: 700; }

.trail-count {
  color: rgba(255,255,255,.5);
  font-size: .82rem;
  margin-bottom: 1.25rem;
}
.trail-clear { color: var(--gold); text-decoration: none; }
.trail-clear:hover { text-decoration: underline; }

.trail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.25rem;
  margin-bottom: 2rem;
}
.trail-card {
  background: var(--dark);
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  gap: .85rem;
  border-top: 3px solid transparent;
  transition: border-color .2s, transform .15s;
}
.trail-card:hover { border-top-color: var(--gold); transform: translateY(-2px); }

.trail-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
}
.trail-card-title-wrap { flex: 1; }
.trail-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 .2rem;
  line-height: 1.3;
}
.trail-area {
  color: rgba(255,255,255,.45);
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.trail-state-flag {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.6);
  font-size: .7rem;
  font-weight: 700;
  padding: .2rem .5rem;
  border-radius: 4px;
  letter-spacing: .05em;
  flex-shrink: 0;
}

.trail-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}
.trail-diff {
  font-size: .72rem;
  font-weight: 700;
  padding: .22rem .6rem;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.trail-diff-easy     { background: #4caf50; color: #fff; }
.trail-diff-moderate { background: #ffa726; color: #111; }
.trail-diff-hard     { background: #ef5350; color: #fff; }
.trail-stat {
  color: rgba(255,255,255,.6);
  font-size: .78rem;
  font-weight: 600;
}

.trail-desc {
  color: rgba(255,255,255,.75);
  font-size: .86rem;
  line-height: 1.65;
  margin: 0;
  flex: 1;
}

.trail-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.trail-tag {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.5);
  font-size: .7rem;
  padding: .18rem .55rem;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.08);
}

.trail-actions {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: .25rem;
}
.btn-trail-at {
  background: #2d6a2d;
  color: #fff;
  font-size: .78rem;
  padding: .4rem .85rem;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  transition: background .15s;
}
.btn-trail-at:hover { background: #3a8a3a; }
.btn-trail-park {
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.7);
  font-size: .78rem;
  padding: .4rem .85rem;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,.12);
  transition: background .15s;
}
.btn-trail-park:hover { background: rgba(255,255,255,.12); color: var(--white); }

.trail-footer-note {
  text-align: center;
  padding: 1.5rem;
  color: rgba(255,255,255,.3);
  font-size: .78rem;
  border-top: 1px solid rgba(255,255,255,.06);
  margin-top: 1rem;
}

/* Admin trails table tweaks */
.row-inactive { opacity: .45; }
.btn-active   { background: rgba(76,175,80,.2); color: #4caf50; border: 1px solid #4caf50; }
.btn-inactive { background: rgba(255,255,255,.06); color: rgba(255,255,255,.4); border: 1px solid rgba(255,255,255,.15); }

@media(max-width:600px) {
  .trail-grid { grid-template-columns: 1fr; }
  .trail-filter-bar { gap: .75rem; }
}

/* ── Articles ────────────────────────────────────────────────────────── */
.articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.25rem;
  margin-bottom: 2rem;
}
.article-card {
  display: flex;
  flex-direction: column;
  background: var(--dark);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  text-decoration: none;
  border-top: 3px solid transparent;
  transition: border-color .2s, transform .15s;
}
.article-card:hover { border-top-color: var(--gold); transform: translateY(-2px); }
.article-card-photo {
  width: 100%;
  height: 200px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}
.article-card-body {
  display: flex;
  flex-direction: column;
  gap: .7rem;
  padding: 1.25rem 1.5rem 1.5rem;
  flex: 1;
}
.article-card-cat {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--gold);
}
.article-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--white);
  line-height: 1.35;
  margin: 0;
}
.article-card-excerpt {
  color: rgba(255,255,255,.65);
  font-size: .86rem;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.article-card-meta {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: center;
  font-size: .75rem;
  color: rgba(255,255,255,.35);
  margin-top: auto;
  padding-top: .5rem;
  border-top: 1px solid rgba(255,255,255,.06);
}
.article-read-more { color: var(--gold); font-weight: 600; margin-left: auto; }

/* Single article */
.article-hero {
  background: linear-gradient(135deg, #0a1628 0%, #001020 100%);
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: 3rem 1.5rem 2.5rem;
}
.article-hero-inner { max-width: 780px; margin: 0 auto; }
.article-cat-badge {
  display: inline-block;
  background: var(--gold);
  color: var(--dark);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: .25rem .7rem;
  border-radius: 20px;
  margin-bottom: 1rem;
}
.article-hero-title {
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  font-weight: 800;
  color: var(--white);
  line-height: 1.2;
  margin: 0 0 1rem;
}
.article-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  color: rgba(255,255,255,.4);
  font-size: .8rem;
}
.article-hero-meta a { color: var(--gold); }

.article-body-wrap { max-width: 780px; margin: 0 auto; padding: 2.5rem 0 3rem; }
.article-body { color: rgba(255,255,255,.85); font-size: .96rem; line-height: 1.8; }
.article-body h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--white);
  margin: 2rem 0 .75rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid rgba(228,161,98,.2);
}
.article-body p  { margin: 0 0 1.1rem; }
.article-body ul, .article-body ol { margin: 0 0 1.1rem 1.5rem; }
.article-body li { margin-bottom: .4rem; }
.article-body strong { color: var(--white); }
.article-body em { color: rgba(255,255,255,.7); }
.article-body a  { color: var(--gold); }
.article-body a:hover { text-decoration: underline; }

/* ── Fishing report elements ────────────────────────────────────────────── */
.report-lede { font-size:1.05rem; font-weight:600; color:var(--white); }
.report-photo { margin:1.4rem 0; }
.report-photo figcaption { font-size:.8rem; color:rgba(255,255,255,.55); font-style:italic; margin-top:.4rem; }
.report-sig { color:rgba(255,255,255,.55); font-size:.85rem; margin-top:1.8rem !important; border-top:1px solid rgba(255,255,255,.08); padding-top:.9rem; }
.report-conditions {
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-left:3px solid var(--gold);
  border-radius:0 8px 8px 0;
  padding:1rem 1.25rem;
  margin:1.4rem 0;
}
.report-conditions-hdr {
  font-weight:700; font-size:.9rem; color:var(--gold);
  margin-bottom:.7rem; letter-spacing:.02em;
}
.report-conditions ul { margin:0 0 0 1.2rem; }
.report-conditions li { font-size:.84rem; color:rgba(255,255,255,.8); margin-bottom:.45rem; line-height:1.55; }
.report-conditions strong { color:var(--white); }

.article-tip-box {
  background: rgba(228,161,98,.07);
  border-left: 3px solid var(--gold);
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
}
.article-tip-box strong { color: var(--gold); display: block; margin-bottom: .5rem; }
.article-tip-box ul { margin: 0 0 0 1.25rem; }

.article-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .86rem;
  margin: 1.25rem 0;
}
.article-table th {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.6);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: .55rem .9rem;
  text-align: left;
}
.article-table td {
  padding: .6rem .9rem;
  border-top: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.8);
  vertical-align: top;
}
.article-table tr:hover td { background: rgba(255,255,255,.03); }

.article-footer {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.article-source-note { color: rgba(255,255,255,.35); font-size: .8rem; margin: 0; }
.article-source-note a { color: var(--gold); }

@media(max-width:600px) {
  .articles-grid { grid-template-columns: 1fr; }
  .article-hero  { padding: 2rem 1rem 1.5rem; }
  .article-body-wrap { padding: 1.5rem 0 2rem; }
  .article-footer { flex-direction: column; align-items: flex-start; }
}

/* ── Ticker Bar ──────────────────────────────────────────────────────── */
.ticker-bar {
  background: #0d1a0d;
  border-bottom: 1px solid rgba(228,161,98,.25);
  overflow: hidden;
  white-space: nowrap;
  height: 36px;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 90;
}
.ticker-bar::before,
.ticker-bar::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 60px;
  z-index: 2;
  pointer-events: none;
}
.ticker-bar::before {
  left: 0;
  background: linear-gradient(to right, #0d1a0d, transparent);
}
.ticker-bar::after {
  right: 0;
  background: linear-gradient(to left, #0d1a0d, transparent);
}
.ticker-track {
  display: inline-flex;
  align-items: center;
  animation: ticker-scroll 60s linear infinite;
  will-change: transform;
}
.ticker-bar:hover .ticker-track {
  animation-play-state: paused;
}
@keyframes ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: 0 .6rem;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .02em;
  white-space: nowrap;
  transition: color .15s;
}
.ticker-item:hover { color: var(--gold); }
.ticker-icon { font-size: .88rem; line-height: 1; flex-shrink: 0; }
.ticker-sep {
  color: var(--gold);
  font-size: .45rem;
  padding: 0 .35rem;
  opacity: .6;
  flex-shrink: 0;
}

/* ── River Flow ─────────────────────────────────────────────────────────────── */
.river-flow-page { padding-bottom: 3rem; }
.river-hero { text-align:center; padding:2.5rem 1rem 1.5rem; }
.river-title { font-family:var(--font-head); font-size:2rem; color:var(--gold); margin:0 0 .4rem; }
.river-subtitle { color:rgba(255,255,255,.55); font-size:.95rem; margin:0; }
.river-container { max-width:860px; margin:0 auto; padding:0 1rem; }

/* Status card */
.river-status-card { background:#1a2233; border-radius:12px; padding:1.5rem; margin-bottom:1.5rem; }
.river-status-card--off { text-align:center; }
.river-status-card--off h2 { color:#e8dfc8; font-family:var(--font-head); margin:.5rem 0; }
.river-status-icon { font-size:3rem; line-height:1; }
.river-status-grid { display:grid; grid-template-columns:auto 1fr; gap:1.5rem; align-items:center; }
@media(max-width:600px){ .river-status-grid { grid-template-columns:1fr; text-align:center; } }
.river-cfs-num { font-family:var(--font-head); font-size:3.5rem; font-weight:800; color:#fff; line-height:1; }
.river-cfs-label { font-size:.85rem; color:rgba(255,255,255,.5); margin-top:.25rem; display:flex; align-items:center; gap:.5rem; }
@media(max-width:600px){ .river-cfs-label { justify-content:center; } }
.river-cfs-sub { color:rgba(255,255,255,.6); margin:.4rem 0; }
.river-as-of { color:rgba(255,255,255,.35); font-size:.8rem; margin-top:1rem; }
.river-trend { display:inline-block; padding:.15rem .55rem; border-radius:20px; font-size:.78rem; font-weight:600; }
.river-trend--up     { background:rgba(72,199,104,.15); color:#48c768; }
.river-trend--down   { background:rgba(220,80,60,.15);  color:#dc503c; }
.river-trend--stable { background:rgba(255,255,255,.08); color:rgba(255,255,255,.55); }
.river-stat-pills { display:flex; flex-wrap:wrap; gap:.75rem; }
.river-pill { background:rgba(255,255,255,.05); border-radius:8px; padding:.6rem 1rem; min-width:120px; flex:1; }
.river-pill-label { display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:rgba(255,255,255,.4); margin-bottom:.2rem; }
.river-pill-val { display:block; font-size:1rem; font-weight:600; color:#e8dfc8; }

/* Location cards */
.river-table-card { background:#1a2233; border-radius:12px; padding:1.5rem; margin-bottom:1.5rem; }
.river-table-title { font-family:var(--font-head); font-size:1.1rem; color:var(--gold); margin:0 0 1.25rem; }
.river-loc-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:.75rem; }
.river-loc-grid--compact { grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:.5rem; }
.river-loc-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:9px; padding:.85rem 1rem; }
.river-loc-card--arrived  { border-color:rgba(72,199,104,.35); background:rgba(72,199,104,.05); }
.river-loc-card--imminent { border-color:rgba(229,161,55,.45); background:rgba(229,161,55,.07); }
.river-loc-card--upcoming { border-color:rgba(255,255,255,.08); }
.river-loc-card--no_release { opacity:.5; }
.river-loc-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.5rem; }
.river-loc-name { font-weight:700; color:#fff; font-size:.95rem; }
.river-loc-miles { font-size:.75rem; color:rgba(255,255,255,.4); }
.river-loc-times { margin-bottom:.6rem; }
.river-loc-time-row { display:flex; justify-content:space-between; font-size:.82rem; padding:.1rem 0; }
.river-loc-time-label { color:rgba(255,255,255,.45); }
.river-loc-time-val { color:#e8dfc8; font-weight:600; }
.river-loc-fall-note { color:rgba(255,255,255,.5); font-weight:400; font-size:.78rem; }
.river-loc-badge-row { margin-top:.4rem; }
.river-badge { display:inline-block; padding:.2rem .6rem; border-radius:20px; font-size:.72rem; font-weight:700; }
.river-badge--arrived  { background:rgba(72,199,104,.15); color:#48c768; border:1px solid rgba(72,199,104,.3); }
.river-badge--imminent { background:rgba(229,161,55,.15); color:#e5a137; border:1px solid rgba(229,161,55,.3); }
.river-badge--upcoming { background:rgba(88,130,210,.15); color:#7ba4e8; border:1px solid rgba(88,130,210,.3); }
.river-badge--none     { background:rgba(255,255,255,.06); color:rgba(255,255,255,.4); border:1px solid rgba(255,255,255,.1); }

/* SWPA schedule section */
.river-schedule-section { margin-top:2rem; }
.river-schedule-section h2 { font-family:var(--font-head); font-size:1.3rem; color:var(--gold); margin:0 0 .3rem; }
.river-schedule-subtitle { color:#8a9ab5; font-size:.82rem; margin:0 0 1.25rem; }
.river-window-card { background:#1a2233; border:1px solid rgba(201,168,76,.35); border-radius:10px; padding:1.25rem 1.5rem; margin-bottom:1.25rem; }
.river-window-header { margin-bottom:1rem; }
.river-window-title { font-family:var(--font-head); font-size:1.05rem; color:#e8dfc8; }
.river-window-peak { font-size:.85rem; color:var(--gold); margin-top:.2rem; }

/* Hourly breakdown table */
.river-hours-details { margin-top:1.25rem; }
.river-hours-summary { cursor:pointer; color:var(--gold); font-size:.85rem; padding:.3rem 0; user-select:none; }
.river-hours-summary:hover { text-decoration:underline; }
.river-hour-table-wrap { overflow-x:auto; margin-top:.75rem; }
.river-hour-table { width:100%; border-collapse:collapse; font-size:.82rem; }
.river-hour-table th { color:#8a9ab5; padding:.3rem .6rem; text-align:left; border-bottom:1px solid #2a3550; white-space:nowrap; }
.river-hour-table td { padding:.3rem .6rem; border-bottom:1px solid #1e2a40; }
.river-hr-active td { color:#e8dfc8; }
.river-hr-active .river-hr-mw { color:var(--gold); font-weight:700; }
.river-hr-idle td { color:#4a5568; }
.river-hr-bar { display:inline-block; height:8px; background:var(--gold); border-radius:2px; vertical-align:middle; }

/* Disclaimer */
/* ── Generation Pattern card ─────────────────────────────────────────────── */
.gen-pattern-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-left: 3px solid #c9a84c;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
}
.gen-pattern-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
}
.gen-pattern-icon { font-size: 1rem; }
.gen-pattern-title {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #c9a84c;
}
.gen-pattern-rows {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.gen-pattern-row {
  font-size: .88rem;
  color: rgba(255,255,255,.75);
  line-height: 1.45;
  padding: .3rem .5rem;
  background: rgba(255,255,255,.03);
  border-radius: 5px;
}
.gen-pattern-insight {
  margin-top: .75rem;
  font-size: .88rem;
  font-weight: 600;
  color: #28b450;
  border-top: 1px solid rgba(255,255,255,.07);
  padding-top: .65rem;
}

.river-disclaimer { border-top:1px solid rgba(255,255,255,.08); margin-top:2rem; padding-top:1rem; font-size:.8rem; color:rgba(255,255,255,.35); }
.river-disclaimer p { margin:0 0 .3rem; }
.river-source a { color:var(--gold); text-decoration:none; }
.river-source a:hover { text-decoration:underline; }
.river-error-card { background:#1a2233; border:1px solid rgba(220,80,60,.4); border-radius:10px; padding:2rem; text-align:center; color:rgba(255,255,255,.6); }
.river-error-icon { font-size:2rem; display:block; margin-bottom:.5rem; }
.river-hotlines { display:flex; flex-direction:column; gap:.3rem; margin:.6rem 0 .8rem; padding:.75rem 1rem; background:rgba(255,255,255,.04); border-left:3px solid rgba(201,168,76,.4); border-radius:0 6px 6px 0; }
.river-hotline-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; color:rgba(255,255,255,.35); margin-bottom:.1rem; }
.river-hotline-item { font-size:.82rem; color:rgba(255,255,255,.6); }
.river-hotline-item strong { color:#e8dfc8; }
.river-hotline-note { font-size:.75rem; color:rgba(255,255,255,.3); font-style:italic; margin-top:.15rem; }

/* River flow — section headers */
.river-section-header { margin-bottom:1.25rem; }
.river-section-header h2 { font-family:var(--font-head); font-size:1.3rem; color:var(--gold); margin:0 0 .2rem; }
.river-section-note { font-size:.78rem; color:#8a9ab5; }

/* River flow — passage timeline rows inside location cards */
.river-loc-timeline { display:flex; flex-direction:column; gap:.25rem; margin:.5rem 0 .4rem; }
.river-tl-row { display:grid; grid-template-columns:1.2rem 5.5rem 1fr; align-items:center; gap:.3rem; font-size:.8rem; }
.river-tl-icon { text-align:center; font-size:.9rem; opacity:.7; }
.river-tl-label { color:#8a9ab5; }
.river-tl-val { color:#e8dfc8; font-weight:600; }
.river-tl-rise .river-tl-icon  { color:#5bc87a; }
.river-tl-high .river-tl-icon  { color:var(--gold); }
.river-tl-high .river-tl-val   { color:#c8b870; font-weight:400; font-size:.78rem; }
.river-tl-fall .river-tl-icon  { color:#7ba4e8; }
.river-tl-low  .river-tl-icon  { color:#a78bba; }
.river-tl-low  .river-tl-val   { color:#c4a8d8; font-size:.78rem; }

/* Hourly table day column */
.river-hr-day { color:#8a9ab5; font-size:.75rem; }

/* Quiet (no-generation) window card */
.river-window-card--quiet { color:rgba(255,255,255,.55); font-size:.9rem; padding:1.25rem 1.5rem; font-style:italic; }

/* Inline status icon (motorboat) inside the generating conditions card */
.river-status-icon--inline { font-size:2.8rem; display:block; margin-bottom:.4rem; line-height:1; }

/* ══════════════════════════════════════════════════════════════════
   6-DAY TRIP PLANNER STRIP
   ══════════════════════════════════════════════════════════════════ */
.planner-section { margin-bottom: 2rem; }

.planner-strip {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .75rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,168,76,.3) transparent;
}
.planner-strip::-webkit-scrollbar { height: 4px; }
.planner-strip::-webkit-scrollbar-thumb { background: rgba(201,168,76,.3); border-radius: 2px; }

/* Base card */
.planner-card {
  flex: 0 0 200px;
  background: #151e2e;
  border-radius: 12px;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.08);
  border-top: 4px solid rgba(255,255,255,.1);
  display: flex;
  flex-direction: column;
  gap: .5rem;
  transition: transform .15s;
}
.planner-card:hover { transform: translateY(-2px); }

/* Colour-coded tops */
.planner-card--wading  { border-top-color: #4caf7d; background: linear-gradient(160deg,rgba(76,175,125,.08) 0%,#151e2e 60%); }
.planner-card--float   { border-top-color: #5b9bd5; background: linear-gradient(160deg,rgba(91,155,213,.08) 0%,#151e2e 60%); }
.planner-card--caution { border-top-color: #e0a030; background: linear-gradient(160deg,rgba(224,160,48,.08) 0%,#151e2e 60%); }
.planner-card--today   { border: 2px solid rgba(201,168,76,.6); border-top-width: 4px; }

/* Date block */
.planner-date { text-align: center; position: relative; }
.planner-today-tag {
  display: inline-block;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  background: var(--gold);
  color: #0d1624;
  padding: .1rem .4rem;
  border-radius: 3px;
  margin-bottom: .2rem;
}
.planner-tmr-tag { background: rgba(201,168,76,.3); color: var(--gold); }
.planner-day-name { font-family: var(--font-head); font-size: 1rem; color: #e8dfc8; font-weight: 700; }
.planner-day-date { font-size: .78rem; color: #8a9ab5; }

/* Big icon */
.planner-icon { font-size: 2.4rem; text-align: center; line-height: 1; margin: .2rem 0; }

/* Generation window block */
.planner-window { text-align: center; }
.planner-window-time { font-size: .88rem; font-weight: 700; color: var(--gold); font-family: var(--font-head); }
.planner-window-cfs  { font-size: .78rem; color: #e8dfc8; margin-top: .1rem; }
.planner-window-dur  { font-size: .72rem; color: #8a9ab5; }

/* No-gen state */
.planner-no-gen { text-align: center; font-size: .85rem; color: #4caf7d; font-weight: 600; }

/* Landmark timing rows */
.planner-locs { display: flex; flex-direction: column; gap: .3rem; margin-top: .25rem; }
.planner-loc-row {
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,.04);
  border-radius: 6px;
  padding: .3rem .5rem;
}
.planner-loc-name { font-size: .72rem; font-weight: 700; color: #c8b870; margin-bottom: .15rem; }
.planner-loc-detail { display: flex; gap: .4rem; align-items: center; font-size: .7rem; flex-wrap: wrap; }
.planner-loc-rise { color: #5bc87a; }
.planner-loc-fall { color: #7ba4e8; }
.planner-loc-high { color: #8a9ab5; font-size: .65rem; }

/* Wading notes */
.planner-locs--wading { gap: .2rem; }
.planner-wading-note { font-size: .75rem; color: rgba(255,255,255,.5); padding: .15rem 0; }

/* Recommendation badge at bottom */
.planner-rec {
  margin-top: auto;
  text-align: center;
  font-size: .72rem;
  font-weight: 700;
  padding: .35rem .5rem;
  border-radius: 6px;
  letter-spacing: .02em;
}
.planner-rec--float   { background: rgba(91,155,213,.15); color: #7bb8e8; border: 1px solid rgba(91,155,213,.3); }
.planner-rec--wading  { background: rgba(76,175,125,.15); color: #6dd4a0; border: 1px solid rgba(76,175,125,.3); }
.planner-rec--caution { background: rgba(224,160,48,.15); color: #e0b060; border: 1px solid rgba(224,160,48,.3); }

.planner-footnote { font-size: .72rem; color: rgba(255,255,255,.3); margin-top: .5rem; font-style: italic; }

/* ══════════════════════════════════════════════════════════════════
   SMART HEADLINE CARD
   ══════════════════════════════════════════════════════════════════ */
.rh-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border-radius: 12px;
  margin-bottom: 1.5rem;
  border-left: 5px solid;
}
.rh-card--running { background: rgba(91,155,213,.12); border-color: #5b9bd5; }
.rh-card--low     { background: rgba(76,175,125,.12); border-color: #4caf7d; }
.rh-icon  { font-size: 2.2rem; line-height: 1; flex-shrink: 0; padding-top: .1rem; }
.rh-text  { flex: 1; }
.rh-status { font-size: 1rem; font-weight: 700; color: #e8dfc8; line-height: 1.3; margin-bottom: .3rem; }
.rh-tip    { font-size: .88rem; color: #a8b8cc; line-height: 1.4; }

/* ══════════════════════════════════════════════════════════════════
   PLANNER TAB STRIP
   ══════════════════════════════════════════════════════════════════ */
.planner-tabs {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  margin-bottom: 1rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.planner-tabs::-webkit-scrollbar { display: none; }

.planner-tab {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
  padding: .55rem .75rem;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.1);
  background: #151e2e;
  cursor: pointer;
  transition: all .15s;
  min-width: 58px;
}
.planner-tab:active { transform: scale(.96); }

.planner-tab--wading  { border-top: 3px solid #4caf7d; }
.planner-tab--float   { border-top: 3px solid #5b9bd5; }
.planner-tab--caution { border-top: 3px solid #e0a030; }

.planner-tab--active.planner-tab--wading  { background: rgba(76,175,125,.18); border-color: #4caf7d; }
.planner-tab--active.planner-tab--float   { background: rgba(91,155,213,.18); border-color: #5b9bd5; }
.planner-tab--active.planner-tab--caution { background: rgba(224,160,48,.18); border-color: #e0a030; }

.pt-weekday { font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; color: #8a9ab5; }
.pt-date    { font-size: .78rem; font-weight: 700; color: #e8dfc8; }
.pt-icon    { font-size: 1.1rem; line-height: 1; }

/* ══════════════════════════════════════════════════════════════════
   PLANNER DETAIL PANEL
   ══════════════════════════════════════════════════════════════════ */
.planner-panel { display: none; }
.planner-panel--active { display: block; }

.planner-panel-header {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  padding: 1rem 1.1rem;
  border-radius: 10px 10px 0 0;
  margin-bottom: 0;
}
.planner-panel-header--wading  { background: rgba(76,175,125,.14); border-left: 4px solid #4caf7d; border-radius: 10px; margin-bottom: .75rem; }
.planner-panel-header--float   { background: rgba(91,155,213,.14); border-left: 4px solid #5b9bd5; border-radius: 10px; margin-bottom: .75rem; }
.planner-panel-header--caution { background: rgba(224,160,48,.14);  border-left: 4px solid #e0a030; border-radius: 10px; margin-bottom: .75rem; }

.pph-left   { display: flex; align-items: flex-start; gap: .75rem; }
.pph-icon   { font-size: 2rem; line-height: 1; flex-shrink: 0; }
.pph-date   { font-family: var(--font-head); font-size: 1.05rem; color: #e8dfc8; font-weight: 700; }
.pph-window { font-size: .82rem; color: var(--gold); margin-top: .15rem; }
.pph-rec    { font-size: .78rem; font-weight: 700; color: rgba(255,255,255,.5); margin-top: .2rem; }

/* Location timing table — mobile-first */
.planner-loc-table {
  background: #151e2e;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: .75rem;
}
.plt-win-label {
  padding: .4rem .8rem;
  font-size: .72rem;
  font-weight: 700;
  color: var(--gold);
  background: rgba(201,168,76,.08);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.plt-header {
  display: grid;
  grid-template-columns: 1fr .4fr .9fr .5fr .9fr;
  padding: .4rem .75rem;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.06);
  font-size: .67rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #8a9ab5;
  gap: .25rem;
}
.plt-row {
  display: grid;
  grid-template-columns: 1fr .4fr .9fr .5fr .9fr;
  padding: .5rem .75rem;
  border-bottom: 1px solid rgba(255,255,255,.04);
  gap: .25rem;
  align-items: center;
  font-size: .82rem;
}
.plt-row:last-child { border-bottom: none; }
.plt-name  { color: #e8dfc8; font-weight: 600; font-size: .8rem; }
.plt-miles { color: #8a9ab5; font-size: .75rem; }
.plt-rise  { color: #5bc87a; font-size: .78rem; }
.plt-high  { color: #8a9ab5; font-size: .72rem; }
.plt-fall  { color: #7ba4e8; font-size: .78rem; }

/* Wading day panel */
.planner-wading-panel {
  background: rgba(76,175,125,.08);
  border: 1px solid rgba(76,175,125,.2);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  margin-bottom: .75rem;
}
.pwp-row  { font-size: .88rem; color: rgba(255,255,255,.7); padding: .2rem 0; }
.pwp-note { font-size: .75rem; color: rgba(255,255,255,.35); margin-top: .6rem; font-style: italic; }

/* ── Tab text contrast fixes ── */
.planner-tab--active .pt-weekday { color: rgba(255,255,255,.85); }
.planner-tab--active .pt-date    { color: #ffffff; font-size: .85rem; }
.planner-tab--active .pt-icon    { font-size: 1.25rem; }

.planner-tab--active.planner-tab--float   { background: rgba(91,155,213,.32); }
.planner-tab--active.planner-tab--wading  { background: rgba(76,175,125,.32); }
.planner-tab--active.planner-tab--caution { background: rgba(224,160,48,.32); }

/* Inactive tabs — make them more readable too */
.pt-weekday { color: #a0aec0; }
.pt-date    { color: #e2dac8; }

/* Panel header rec badge — more visible */
.pph-rec { color: rgba(255,255,255,.8); font-size: .82rem; }

/* Panel header date — bigger and bolder on mobile */
.pph-date { font-size: 1.15rem; }

/* ── Contrast overrides — boost background opacity so white text reads ── */
.planner-tab--active.planner-tab--float   { background: rgba(59,130,200,.55); border-color: #5b9bd5; }
.planner-tab--active.planner-tab--wading  { background: rgba(56,155,100,.55); border-color: #4caf7d; }
.planner-tab--active.planner-tab--caution { background: rgba(200,140,30,.55); border-color: #e0a030; }
.planner-tab--active .pt-weekday,
.planner-tab--active .pt-date { color: #ffffff; }

.planner-panel-header--float   { background: rgba(59,130,200,.45); border-left: 4px solid #7bb8e8; }
.planner-panel-header--wading  { background: rgba(56,155,100,.45); border-left: 4px solid #6dd4a0; }
.planner-panel-header--caution { background: rgba(200,140,30,.45); border-left: 4px solid #e0b060; }
.pph-date, .pph-window, .pph-rec { color: #ffffff; }

.rh-card--running { background: rgba(59,130,200,.45); border-color: #7bb8e8; }
.rh-card--low     { background: rgba(56,155,100,.45); border-color: #6dd4a0; }
.rh-status, .rh-tip { color: #ffffff; }

/* ── Strip all colored backgrounds — dark base everywhere, color as accent only ── */
.rh-card--running,
.rh-card--low { background: #0d1624; border-left-width: 4px; }
.rh-tip { color: rgba(255,255,255,.75); }

.planner-tab { background: #0d1624; border: 1px solid rgba(255,255,255,.12); }
.planner-tab--active.planner-tab--float,
.planner-tab--active.planner-tab--wading,
.planner-tab--active.planner-tab--caution { background: #0d1624; }

.planner-panel-header--float,
.planner-panel-header--wading,
.planner-panel-header--caution { background: #0d1624; border-radius: 10px; margin-bottom: .75rem; }

.planner-loc-table { background: #0d1624; }
.planner-wading-panel { background: #0d1624; border: 1px solid rgba(255,255,255,.1); }
.pwp-row { color: rgba(255,255,255,.8); }

.planner-card { background: #0d1624; }
.planner-card--wading,
.planner-card--float,
.planner-card--caution { background: #0d1624; }

/* ══════════════════════════════════════════════════════════════════
   DOWNSTREAM WAVE TRACKER — 5-state list
   ══════════════════════════════════════════════════════════════════ */
.river-loc-list { display: flex; flex-direction: column; }

.rloc-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: .5rem;
  padding: .6rem .85rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.rloc-row:last-child { border-bottom: none; }

/* State-based left accent stripe */
.rloc-row--passed    { border-left: 3px solid #4a5568; opacity: .6; }
.rloc-row--falling   { border-left: 3px solid #e0a030; }
.rloc-row--high_water{ border-left: 3px solid #5bc87a; }
.rloc-row--imminent  { border-left: 3px solid var(--gold); }
.rloc-row--upcoming  { border-left: 3px solid #3a4a60; }
.rloc-row--no_release{ border-left: 3px solid #2a3550; opacity: .5; }

.rloc-left  { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.rloc-name  { font-size: .88rem; font-weight: 700; color: #e8dfc8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rloc-miles { font-size: .7rem; color: #8a9ab5; }

.rloc-times { display: flex; flex-direction: column; gap: .15rem; }
.rloc-time-item { display: flex; gap: .3rem; align-items: baseline; }
.rloc-t-label { font-size: .65rem; color: #8a9ab5; width: 2.6rem; text-align: right; flex-shrink: 0; }
.rloc-t-val   { font-size: .75rem; white-space: nowrap; }
.rloc-rise { color: #5bc87a; }
.rloc-fall { color: #7ba4e8; }
.rloc-low  { color: #a78bba; }

/* Badges */
.rloc-badge {
  font-size: .68rem;
  font-weight: 700;
  padding: .2rem .45rem;
  border-radius: 4px;
  white-space: nowrap;
  letter-spacing: .02em;
}
.rloc-badge--passed    { background: rgba(74,85,104,.3);   color: #718096; border: 1px solid rgba(74,85,104,.4); }
.rloc-badge--falling   { background: rgba(224,160,48,.2);  color: #e0b060; border: 1px solid rgba(224,160,48,.4); }
.rloc-badge--high      { background: rgba(91,200,122,.2);  color: #5bc87a; border: 1px solid rgba(91,200,122,.4); }
.rloc-badge--imminent  { background: rgba(201,168,76,.25); color: var(--gold); border: 1px solid rgba(201,168,76,.5); }
.rloc-badge--upcoming  { background: rgba(58,74,96,.3);    color: #8a9ab5; border: 1px solid rgba(58,74,96,.5); }
.rloc-badge--none      { color: #4a5568; background: none; border: none; }

/* ── Headline card — live CFS strip ── */
.rh-flow-strip  { margin: .5rem 0 .4rem; }
.rh-cfs-big     { font-family: var(--font-head); font-size: 2rem; font-weight: 800; color: #ffffff; line-height: 1; display: flex; align-items: baseline; gap: .35rem; }
.rh-cfs-unit    { font-size: .95rem; font-weight: 400; color: rgba(255,255,255,.7); }
.rh-trend       { font-size: 1.1rem; }
.rh-trend--up   { color: #5bc87a; }
.rh-trend--down { color: #7ba4e8; }
.rh-trend--stable { color: rgba(255,255,255,.4); }
.rh-flow-meta   { display: flex; flex-wrap: wrap; gap: .2rem .5rem; font-size: .72rem; color: rgba(255,255,255,.6); margin-top: .25rem; }
.rh-dot         { color: rgba(255,255,255,.3); }

/* ══════════════════════════════════════════════════════════════════
   ABOUT + SAFETY NOTICE BLOCK
   ══════════════════════════════════════════════════════════════════ */
.river-about-block {
  margin-top: 2.5rem;
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 1.75rem;
}

.river-about-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .9rem;
}
.river-about-icon { font-size: 1.4rem; }
.river-about-header h3 {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--gold);
  margin: 0;
}

.river-about-desc {
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

/* Data sources */
.river-about-sources {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
}
.river-about-source-label {
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #8a9ab5;
  margin-bottom: .75rem;
}
.river-about-source-row {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: .6rem 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.river-about-source-row:last-child { border-bottom: none; padding-bottom: 0; }
.river-about-source-name   { font-size: .82rem; font-weight: 700; color: #e8dfc8; }
.river-about-source-detail { font-size: .76rem; color: rgba(255,255,255,.5); line-height: 1.5; }
.river-about-source-detail a { color: var(--gold); text-decoration: none; }
.river-about-source-detail a:hover { text-decoration: underline; }

/* Safety notice */
.river-safety-notice {
  background: rgba(220,80,60,.07);
  border: 1px solid rgba(220,80,60,.25);
  border-left: 4px solid rgba(220,80,60,.6);
  border-radius: 0 10px 10px 0;
  padding: 1rem 1.1rem;
}
.river-safety-header {
  font-family: var(--font-head);
  font-size: .85rem;
  font-weight: 700;
  color: #e08070;
  margin-bottom: .6rem;
  letter-spacing: .03em;
}
.river-safety-notice p {
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  line-height: 1.6;
  margin: 0 0 .6rem;
}
.river-safety-notice p:last-child { margin-bottom: 0; }
.river-safety-notice strong { color: rgba(255,255,255,.85); }
.river-safety-sub { font-size: .75rem !important; color: rgba(255,255,255,.45) !important; }

/* ── rh-currently: low-state CFS label ── */
.rh-currently {
  font-size: 1.05rem;
  font-weight: 600;
  color: #a8c4e0;
  margin-top: 0.35rem;
  letter-spacing: 0.01em;
}

/* ── About + Safety: black bg, full-contrast text ── */
.river-about-block {
  background: #0d1624;
  border-radius: 12px;
  padding: 1.5rem;
  border-top: none;
}
.river-about-desc { color: #c8d8e8; }
.river-about-sources {
  background: #111d2e;
  border-color: rgba(255,255,255,.12);
}
.river-about-source-detail { color: #a8bdd0; }
.river-safety-notice {
  background: #1a0e0e;
  border-color: rgba(220,80,60,.5);
  border-left-color: #dc503c;
}
.river-safety-notice p { color: #c8d0d8; }
.river-safety-notice strong { color: #ffffff; }
.river-safety-sub { color: #a8b8c8 !important; }

/* ── River flow page: full dark background override ── */
.river-flow-page {
  background: #0d1624;
  color: #d8e8f4;
  min-height: 80vh;
  padding-bottom: 3rem;
}
.river-flow-page h1,
.river-flow-page h2,
.river-flow-page h3 { color: #e8f0f8; }
.river-flow-page p,
.river-flow-page span,
.river-flow-page div { color: inherit; }
.river-flow-page a { color: var(--gold); }

/* Hero text on dark */
.river-hero { background: #0d1624; }
.river-title { color: #ffffff !important; }
.river-subtitle { color: #8aaac8 !important; }

/* Container padding for mobile */
.river-container { padding: 0 .85rem; }

@media(max-width: 600px) {
  .river-container { padding: 0 .6rem; }
  .rh-card { padding: .85rem .9rem; }
  .planner-tabs { gap: .3rem; padding: .3rem .1rem; }
  .planner-tab { padding: .5rem .4rem; min-width: 52px; }
  .pt-weekday { font-size: .6rem; }
  .pt-date    { font-size: .65rem; }
  .planner-panel-header { padding: .75rem .85rem; }
  .pph-date { font-size: .95rem; }
  .pph-window { font-size: .78rem; }
}

/* ── FORCE dark background on river page — cache bust v20260502 ── */
body.river-page,
.river-flow-page,
main .river-flow-page {
  background: #0d1624 !important;
  color: #d8e8f4 !important;
}

/* ══ Planner tabs — definitive black bg, readable text, all breakpoints ══ */
.planner-tab,
.planner-tab--wading,
.planner-tab--float,
.planner-tab--caution,
.planner-tab--active,
.planner-tab--active.planner-tab--wading,
.planner-tab--active.planner-tab--float,
.planner-tab--active.planner-tab--caution {
  background: #0d1624 !important;
}
.planner-tab { border: 1px solid rgba(255,255,255,.15) !important; }
.planner-tab--active { border-color: rgba(255,255,255,.35) !important; }
.planner-tab--active.planner-tab--float   { border-top: 3px solid #5b9bd5 !important; }
.planner-tab--active.planner-tab--wading  { border-top: 3px solid #4caf7d !important; }
.planner-tab--active.planner-tab--caution { border-top: 3px solid #e0a030 !important; }

.pt-weekday { color: #8aaac8 !important; }
.pt-date    { color: #dde8f4 !important; }
.pt-icon    { font-size: 1.1rem; }
.planner-tab--active .pt-weekday { color: #b8d4ee !important; }
.planner-tab--active .pt-date    { color: #ffffff !important; font-weight: 700; }

/* ── Data lag note inline ── */
.river-as-of-note { color: #6a8aaa; font-size: .8em; font-style: italic; }


/* ══ Water level classification — 5 states ══ */
/* Headline card variants */
.rh-card--level-none     { background: rgba(76,175,125,.12);  border-color: #4caf7d; }
.rh-card--level-light    { background: rgba(100,180,220,.12); border-color: #64b4dc; }
.rh-card--level-moderate { background: rgba(91,155,213,.15);  border-color: #5b9bd5; }
.rh-card--level-heavy    { background: rgba(224,160,48,.15);  border-color: #e0a030; }
.rh-card--level-hazard   { background: rgba(220,60,50,.15);   border-color: #dc3c32; }

/* Level label under status */
.rh-level {
  font-size: .82rem;
  font-weight: 700;
  margin-top: .3rem;
  padding: .15rem .55rem;
  border-radius: 12px;
  display: inline-block;
}
.rh-level--level-light    { color: #90d0f0; background: rgba(100,180,220,.15); }
.rh-level--level-moderate { color: #90bce8; background: rgba(91,155,213,.18); }
.rh-level--level-heavy    { color: #e8b850; background: rgba(224,160,48,.18); }
.rh-level--level-hazard   { color: #f08070; background: rgba(220,60,50,.2); }

/* Hazard warning banner */
.rw-hazard-banner {
  background: rgba(220,60,50,.18);
  border: 1px solid rgba(220,60,50,.5);
  border-left: 4px solid #dc3c32;
  border-radius: 0 8px 8px 0;
  color: #f0a090;
  font-size: .85rem;
  padding: .65rem 1rem;
  margin-bottom: .75rem;
}
.rw-hazard-banner strong { color: #ffffff; }

/* Planner tab — 5 level states */
.planner-tab--light    { border-top: 3px solid #64b4dc; }
.planner-tab--moderate { border-top: 3px solid #5b9bd5; }
.planner-tab--heavy    { border-top: 3px solid #e0a030; }
.planner-tab--hazard   { border-top: 3px solid #dc3c32; }
.planner-tab--active.planner-tab--light    { border-top-color: #64b4dc !important; }
.planner-tab--active.planner-tab--moderate { border-top-color: #5b9bd5 !important; }
.planner-tab--active.planner-tab--heavy    { border-top-color: #e0a030 !important; }
.planner-tab--active.planner-tab--hazard   { border-top-color: #dc3c32 !important; }

/* Planner panel headers — 5 levels */
.planner-panel-header--light    { background: rgba(100,180,220,.3); border-left: 4px solid #64b4dc; border-radius: 10px; margin-bottom: .75rem; }
.planner-panel-header--moderate { background: rgba(91,155,213,.35); border-left: 4px solid #5b9bd5; border-radius: 10px; margin-bottom: .75rem; }
.planner-panel-header--heavy    { background: rgba(224,160,48,.3);  border-left: 4px solid #e0a030; border-radius: 10px; margin-bottom: .75rem; }
.planner-panel-header--hazard   { background: rgba(220,60,50,.25);  border-left: 4px solid #dc3c32; border-radius: 10px; margin-bottom: .75rem; }

/* Home widget badge — level variants */
.rw-badge.rw-badge--level-light    { background: rgba(100,180,220,.2); color: #90d0f0; border-color: rgba(100,180,220,.4); }
.rw-badge.rw-badge--level-moderate { background: rgba(91,155,213,.2);  color: #90bce8; border-color: rgba(91,155,213,.4); }
.rw-badge.rw-badge--level-heavy    { background: rgba(224,160,48,.2);  color: #e8c060; border-color: rgba(224,160,48,.4); }
.rw-badge.rw-badge--level-hazard   { background: rgba(220,60,50,.2);   color: #f09080; border-color: rgba(220,60,50,.5); }

/* ── Public photo page inline admin delete ── */
.photo-thumb-wrap {
  position: relative;
  display: inline-block;
  line-height: 0;
}
.photo-del-form {
  position: absolute;
  top: 4px;
  right: 4px;
  margin: 0;
}
.photo-del-btn {
  background: rgba(200,40,30,.85);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(0,0,0,.4);
}
.photo-del-btn:hover { background: rgba(220,20,10,1); }
.admin-hint {
  font-size: .78rem;
  color: #c08060;
  margin-bottom: .5rem;
  padding: .3rem .6rem;
  background: rgba(200,100,40,.1);
  border-radius: 6px;
  display: inline-block;
}

/* ══ Home page river conditions widget ══ */
section.rw-widget,
div.rw-widget,
.rw-widget {
  background: #0d1624 !important;
  color: #d0e4f4 !important;
  padding: 1.1rem 1rem 1rem !important;
  border-top: 1px solid rgba(255,255,255,.07) !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  width: 100%;
  box-sizing: border-box;
}
.rw-inner {
  max-width: 860px;
  margin: 0 auto;
}
.rw-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .65rem;
}
.rw-title {
  font-family: var(--font-head);
  font-size: .9rem;
  font-weight: 700;
  color: var(--gold) !important;
}
.rw-link {
  font-size: .78rem;
  color: var(--gold) !important;
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid rgba(200,160,60,.3);
  padding: .15rem .5rem;
  border-radius: 12px;
}
.rw-link:hover { text-decoration: underline; }

.rw-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  margin-bottom: .7rem;
}
.rw-badge {
  font-size: .82rem;
  font-weight: 600;
  padding: .3rem .8rem;
  border-radius: 20px;
  white-space: nowrap;
  border: 1px solid rgba(255,255,255,.15);
  color: #c0d8f0 !important;
  background: rgba(255,255,255,.08) !important;
}
.rw-badge--off { color: #8aaac0 !important; }
.rw-badge--level-light    { background: rgba(100,180,220,.25) !important; color: #90d8f8 !important; border-color: rgba(100,180,220,.4) !important; }
.rw-badge--level-moderate { background: rgba(91,155,213,.25)  !important; color: #90c4f0 !important; border-color: rgba(91,155,213,.4)  !important; }
.rw-badge--level-heavy    { background: rgba(224,160,48,.25)  !important; color: #f0c860 !important; border-color: rgba(224,160,48,.45) !important; }
.rw-badge--level-hazard   { background: rgba(220,60,50,.25)   !important; color: #f09080 !important; border-color: rgba(220,60,50,.5)  !important; }
.rw-next { font-size: .78rem; color: #90b0cc !important; }

.rw-grid { margin-bottom: .65rem; }
.rw-grid-label {
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #4a6a88 !important;
  margin-bottom: .4rem;
}
.rw-pills { display: flex; flex-wrap: wrap; gap: .3rem; }
.rw-pill {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,.06) !important;
  border-radius: 7px;
  padding: .25rem .5rem;
  border-top: 2px solid #2a3a4a;
  min-width: 68px;
  box-sizing: border-box;
}
.rw-pill--high_water { border-top-color: #5b9bd5 !important; }
.rw-pill--falling    { border-top-color: #e0a030 !important; }
.rw-pill--passed     { border-top-color: #4caf7d !important; }
.rw-pill--imminent   { border-top-color: #e05050 !important; }
.rw-pill--upcoming   { border-top-color: #3a4a5a !important; }
.rw-pill-name  { font-size: .62rem; color: #6a8aaa !important; line-height: 1.3; text-align: center; }
.rw-pill-state { font-size: .72rem; font-weight: 700; color: #d0e8ff !important; }
.rw-pill--passed  .rw-pill-state { color: #6dd4a0 !important; }
.rw-pill--falling .rw-pill-state { color: #e0b060 !important; }
.rw-pill--high_water .rw-pill-state { color: #7bb8e8 !important; }

.rw-quiet  { font-size: .82rem; color: #7a9ab8 !important; margin-bottom: .5rem; }
.rw-footer { font-size: .68rem; color: #3a5a78 !important; margin-top: .5rem; }

@media(max-width: 600px) {
  .rw-widget { padding: .85rem .75rem .9rem !important; }
  .rw-pill   { min-width: 54px; padding: .2rem .28rem; }
  .rw-pill-name  { font-size: .56rem; }
  .rw-pill-state { font-size: .64rem; }
  .rw-badge { font-size: .76rem; padding: .25rem .6rem; }
  .rw-title { font-size: .82rem; }
}


/* Planner day-count badge */
.planner-day-count {
  font-size: .7em;
  font-weight: 400;
  color: #6a8aaa;
  white-space: nowrap;
}

/* ══════════════════════════════════════════════════════════════
   OTHERS / REGIONAL DAM STATUS PAGE
   ══════════════════════════════════════════════════════════════ */
.others-page { background: #0d1624 !important; color: #d0e4f4 !important; }

.others-dam-block {
  background: #111e30;
  border: 1px solid #1e3050;
  border-radius: 10px;
  padding: 1.4rem 1.4rem 1rem;
  margin-bottom: 2rem;
}

/* Header row */
.others-dam-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1rem;
}
.others-dam-title-row { display: flex; flex-direction: column; gap: .15rem; }
.others-dam-name { margin: 0; font-size: 1.35rem; color: #e8f4ff; }
.others-dam-body { font-size: .85rem; color: #6a8aaa; }

/* Status badge */
.others-status-badge {
  display: inline-block;
  padding: .3rem .8rem;
  border-radius: 20px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .03em;
  white-space: nowrap;
  margin-top: .2rem;
}
.others-badge--on  { background: rgba(40,180,100,.18); border: 1px solid #28b464; color: #4de896; }
.others-badge--off { background: rgba(80,100,130,.18); border: 1px solid #3a5070; color: #8aadcc; }
.others-badge--err { background: rgba(200,60,50,.15);  border: 1px solid #c83c32; color: #f07070; }

/* Stat strip */
.others-stat-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.2rem;
  background: rgba(255,255,255,.03);
  border-radius: 8px;
  padding: .8rem 1rem;
  margin-bottom: .8rem;
}
.others-stat { display: flex; flex-direction: column; min-width: 70px; }
.others-stat-val { font-size: 1.1rem; font-weight: 700; color: #e0f0ff; }
.others-stat-lbl { font-size: .72rem; color: #6a8aaa; margin-top: .1rem; }

/* Release note line */
.others-release-note {
  font-size: .82rem;
  color: #6a8aaa;
  margin: 0 0 .8rem;
  font-style: italic;
}

/* Body context note */
.others-body-note {
  font-size: .82rem;
  color: #6a8aaa;
  margin: .2rem 0 .8rem;
  line-height: 1.5;
}

/* Roll tracker */
.others-tracker { margin-top: 1rem; }
.others-tracker-title {
  font-size: 1rem;
  color: #b0cce8;
  margin: 0 0 .4rem;
}
.others-tracker-note {
  font-size: .78rem;
  color: #506880;
  margin: 0 0 .8rem;
  font-style: italic;
}

/* SWPA schedule */
.others-schedule { margin-top: 1.1rem; }
.others-schedule-title {
  font-size: .95rem;
  color: #b0cce8;
  margin: 0 0 .6rem;
}
.others-win-card {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem 1.2rem;
  padding: .55rem .9rem;
  border-radius: 7px;
  margin-bottom: .45rem;
  font-size: .85rem;
}
.others-win--today    { background: rgba(30,160,100,.12); border-left: 3px solid #28b464; }
.others-win--tomorrow { background: rgba(40,100,200,.12); border-left: 3px solid #4488dd; }
.others-win-day  { font-weight: 700; color: #d0e8ff; min-width: 70px; }
.others-win-time { color: #e0f0ff; }
.others-win-detail { color: #6a8aaa; font-size: .78rem; }
.others-no-schedule { font-size: .85rem; color: #506880; font-style: italic; margin: .2rem 0; }

/* river-badge additions for falling / passed states */
.river-badge--falling { background: rgba(200,140,30,.2); border: 1px solid #c88c1e; color: #e8b840; }
.river-badge--passed  { background: rgba(60,160,100,.15); border: 1px solid #3ca064; color: #60d090; }

/* Mobile */
@media (max-width: 600px) {
  .others-dam-block { padding: 1rem .9rem .8rem; }
  .others-dam-header { flex-direction: column; }
  .others-stat-strip { gap: .5rem .8rem; }
  .others-win-card { flex-direction: column; align-items: flex-start; gap: .2rem; }
}

/* Norfork water level row */
.others-water-level {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .5rem .8rem;
  border-radius: 7px;
  margin-bottom: .6rem;
  font-size: .88rem;
}
.others-wl--level-none    { background: rgba(80,120,160,.12); border-left: 3px solid #3a6080; }
.others-wl--level-light   { background: rgba(40,160,100,.12); border-left: 3px solid #28a064; }
.others-wl--level-heavy   { background: rgba(220,140,20,.12); border-left: 3px solid #dc8c14; }
.others-wl--level-hazard  { background: rgba(220,60,50,.15);  border-left: 3px solid #dc3c32; }
.others-wl-emoji  { font-size: 1.1rem; }
.others-wl-label  { font-weight: 700; color: #d0e4f4; }
.others-wl-wade   { color: #8aadcc; font-size: .82rem; }

/* ── Create.Buzz Fishing Summary ──────────────────────────────────────────── */
.cbz-summary {
  background: linear-gradient(135deg, #0d1e30 0%, #0a1520 100%);
  border: 1px solid #1e3a52;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 2rem;
}

/* Header */
.cbz-summary-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.4rem 1.6rem 1rem;
  background: rgba(20,50,80,.35);
  border-bottom: 1px solid #1e3a52;
  flex-wrap: wrap;
}
.cbz-wordmark {
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: lowercase;
  color: #8aadcc;
  margin-bottom: .25rem;
}
.cbz-dot  { color: #4a90d9; }
.cbz-buzz { color: #28b4e0; }
.cbz-summary-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #e8f4ff;
  margin: 0 0 .3rem;
}
.cbz-summary-subtitle {
  font-size: .78rem;
  color: #6a9ab8;
  margin: 0;
  line-height: 1.4;
}
.cbz-summary-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .3rem;
  text-align: right;
}
.cbz-updated {
  font-size: .78rem;
  color: #8aadcc;
}
.cbz-source-note {
  font-size: .72rem;
  color: #4a6a80;
  font-style: italic;
}

/* Overview paragraphs */
.cbz-overview {
  padding: 1.2rem 1.6rem;
  border-bottom: 1px solid #162a3e;
}
.cbz-overview p {
  color: #c0d8ec;
  line-height: 1.72;
  margin: 0 0 .85rem;
  font-size: .94rem;
}
.cbz-overview p:last-child { margin-bottom: 0; }

/* Glance pills row */
.cbz-glance-row {
  display: flex;
  gap: .75rem;
  padding: 1rem 1.6rem;
  flex-wrap: wrap;
  border-bottom: 1px solid #162a3e;
}
.cbz-glance-pill {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  flex: 1;
  min-width: 240px;
  background: rgba(255,255,255,.04);
  border-radius: 9px;
  padding: .75rem 1rem;
  border: 1px solid #1e3a52;
}
.cbz-glance--trending  { border-left: 3px solid #28b4e0; }
.cbz-glance--conditions { border-left: 3px solid #4a90d9; }
.cbz-glance-icon { font-size: 1.2rem; flex-shrink: 0; }
.cbz-glance-pill > div { display: flex; flex-direction: column; gap: .2rem; }
.cbz-glance-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #6a9ab8;
}
.cbz-glance-val {
  font-size: .88rem;
  color: #c0d8ec;
  line-height: 1.4;
}

/* Intel grid (baits / techniques / tip) */
.cbz-intel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: .75rem;
  padding: 1rem 1.6rem;
  border-bottom: 1px solid #162a3e;
}
.cbz-intel-card {
  background: rgba(255,255,255,.03);
  border: 1px solid #1e3a52;
  border-radius: 9px;
  padding: .9rem 1rem;
}
.cbz-intel-card--tip { border-left: 3px solid #f5a623; }
.cbz-intel-title {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #8aadcc;
  margin: 0 0 .65rem;
}
.cbz-intel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.cbz-intel-list li {
  font-size: .86rem;
  color: #b8d4ea;
  padding-left: .9rem;
  position: relative;
  line-height: 1.35;
}
.cbz-intel-list li::before {
  content: "›";
  position: absolute;
  left: 0;
  color: #28b4e0;
  font-weight: 700;
}
.cbz-tip-quote {
  margin: 0;
  font-size: .88rem;
  color: #d4b88a;
  font-style: italic;
  line-height: 1.55;
  border-left: none;
  padding: 0;
}

/* Top picks grid */
.cbz-picks {
  padding: 1rem 1.6rem 1.4rem;
}
.cbz-picks-title {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #8aadcc;
  margin: 0 0 .75rem;
}
.cbz-picks-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}
.cbz-pick-card {
  display: flex;
  gap: .8rem;
  background: rgba(255,255,255,.04);
  border: 1px solid #1e3a52;
  border-radius: 9px;
  padding: .85rem 1rem;
  align-items: flex-start;
}
.cbz-pick-num {
  font-size: 1.6rem;
  font-weight: 900;
  color: #1e3a52;
  line-height: 1;
  flex-shrink: 0;
  min-width: 1.6rem;
  text-align: center;
}
.cbz-pick-card:nth-child(1) .cbz-pick-num { color: #c9a227; }
.cbz-pick-card:nth-child(2) .cbz-pick-num { color: #8a9daa; }
.cbz-pick-card:nth-child(3) .cbz-pick-num { color: #8a6040; }
.cbz-pick-body { display: flex; flex-direction: column; gap: .25rem; }
.cbz-pick-water  { font-size: .92rem; font-weight: 700; color: #d0e8ff; }
.cbz-pick-target { font-size: .8rem; color: #28b4e0; }
.cbz-pick-reason { font-size: .82rem; color: #8aadcc; line-height: 1.4; }

/* ── Local Knowledge box ──────────────────────────────────────────────────── */
.cbz-local-intel {
  margin: .9rem 1.6rem 1.2rem;
  background: rgba(40, 180, 80, .06);
  border: 1px solid rgba(40, 180, 80, .25);
  border-left: 3px solid #28b450;
  border-radius: 9px;
  padding: .9rem 1.2rem;
}
.cbz-local-intel-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .5rem;
}
.cbz-local-intel-icon { font-size: 1rem; }
.cbz-local-intel-label {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #28b450;
}
.cbz-local-intel-sub {
  font-size: .75rem;
  color: #5a8060;
  margin-left: .25rem;
}
.cbz-local-intel-text {
  font-size: .88rem;
  color: #a8c8a8;
  line-height: 1.55;
  margin: 0;
  font-style: italic;
}

/* Responsive */
@media (max-width: 900px) {
  .cbz-intel-grid { grid-template-columns: 1fr 1fr; }
  .cbz-picks-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .cbz-summary-header { flex-direction: column; }
  .cbz-summary-meta { align-items: flex-start; text-align: left; }
  .cbz-intel-grid { grid-template-columns: 1fr; }
  .cbz-picks-grid { grid-template-columns: 1fr; }
  .cbz-glance-pill { min-width: 100%; }
}

/* ── Right Now on Bull Shoals — homepage conditions card ──────────────────── */
.rnow-card {
  background: linear-gradient(135deg, #071420 0%, #0a1c2e 60%, #071420 100%);
  border-bottom: 1px solid #1a3550;
  padding: .75rem 0 1.1rem;
}
.rnow-inner {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 1rem;
}
.rnow-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid #1a3550;
}
.rnow-label {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #28b4e0;
}
.rnow-ts {
  font-size: .72rem;
  color: #4a6a80;
}

/* Grid: 4 columns on desktop */
.rnow-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: #1a3550;
  border: 1px solid #1a3550;
  border-radius: 10px;
  overflow: hidden;
}
.rnow-block {
  background: #071e30;
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.rnow-block:hover { background: #0a2540; }
.rnow-block-icon  { font-size: 1.3rem; line-height: 1; }
.rnow-block-title {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #4a7a9a;
}

/* Dam block */
.rnow-cfs {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  color: #e8f4ff;
  margin: .15rem 0;
}
.rnow-cfs--off { color: #6a9ab8; }
.rnow-cfs--on  { color: #e8f4ff; }
.rnow-unit  { font-size: .85rem; font-weight: 400; color: #6a9ab8; }
.rnow-trend { font-size: 1.2rem; color: #28b4e0; }
.rnow-badge {
  display: inline-block;
  font-size: .76rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 20px;
  width: fit-content;
}
.rnow-badge--level-none    { background: rgba(80,120,160,.18);  color: #8aadcc; }
.rnow-badge--level-light   { background: rgba(40,180,110,.15);  color: #40d080; }
.rnow-badge--level-moderate{ background: rgba(220,160,20,.15);  color: #e0a820; }
.rnow-badge--level-heavy   { background: rgba(220,80,50,.15);   color: #e05040; }
.rnow-badge--level-hazard  { background: rgba(220,40,40,.2);    color: #ff4444; }
.rnow-sub {
  font-size: .75rem;
  color: #6a9ab8;
  line-height: 1.4;
}

/* Fishing block */
.rnow-fish-trend {
  font-size: .88rem;
  color: #c0d8ec;
  line-height: 1.5;
  flex: 1;
}
.rnow-fish-baits {
  font-size: .76rem;
  color: #6a9ab8;
  line-height: 1.4;
  margin-top: .1rem;
}
.rnow-baits-label { font-weight: 700; color: #4a90d9; }

/* Weather block */
.rnow-temp {
  font-size: 2rem;
  font-weight: 900;
  color: #e8f4ff;
  line-height: 1;
  margin: .15rem 0;
}
.rnow-wx-row {
  font-size: .8rem;
  color: #8aadcc;
  line-height: 1.4;
}

/* Tonight block */
.rnow-event-name {
  font-size: .95rem;
  font-weight: 700;
  color: #e8d080;
  line-height: 1.35;
}
.rnow-event-time {
  font-size: .78rem;
  color: #b0c8e0;
}
.rnow-event-desc {
  font-size: .78rem;
  color: #7a9ab8;
  line-height: 1.4;
}
.rnow-no-event {
  font-size: .85rem;
  color: #4a6a80;
  font-style: italic;
}
.rnow-next-event {
  font-size: .78rem;
  color: #8aadcc;
  line-height: 1.4;
}
.rnow-next-label { font-weight: 700; color: #4a90d9; }

/* Link at bottom of each block */
.rnow-link {
  display: block;
  font-size: .73rem;
  color: #28b4e0;
  text-decoration: none;
  margin-top: auto;
  padding-top: .5rem;
  border-top: 1px solid #1a3550;
}
.rnow-link:hover { color: #60d4f8; text-decoration: underline; }

/* Responsive */
@media (max-width: 860px) {
  .rnow-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 500px) {
  .rnow-grid { grid-template-columns: 1fr; }
  .rnow-cfs, .rnow-temp { font-size: 1.6rem; }
}

/* ── Solunar block inside rnow-card ──────────────────────────────────────── */
.rnow-sol-phase {
  font-size: .88rem;
  font-weight: 700;
  color: #c0d8ec;
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin: .1rem 0 .4rem;
}
.rnow-sol-rating {
  font-size: .7rem;
  font-weight: 700;
  padding: .15rem .45rem;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.rnow-sol-rating--5 { background: rgba(40,200,100,.2);  color: #40d880; }
.rnow-sol-rating--3 { background: rgba(80,160,240,.2);  color: #60b0f0; }
.rnow-sol-rating--2 { background: rgba(160,140,60,.2);  color: #c0a840; }
.rnow-sol-rating--1 { background: rgba(120,120,120,.15); color: #888; }

.rnow-sol-periods {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  flex: 1;
}
.rnow-sol-row {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .3rem .5rem;
  border-radius: 6px;
  background: rgba(255,255,255,.03);
  font-size: .8rem;
}
.rnow-sol-row--now     { background: rgba(40,180,100,.12); border-left: 2px solid #28b464; }
.rnow-sol-row--past    { opacity: .45; }
.rnow-sol-row--upcoming { border-left: 2px solid #1a3550; }

.rnow-sol-type {
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .1rem .3rem;
  border-radius: 4px;
  flex-shrink: 0;
}
.rnow-sol-type--major { background: rgba(40,180,224,.18); color: #28b4e0; }
.rnow-sol-type--minor { background: rgba(100,130,160,.15); color: #7a9ab8; }

.rnow-sol-time {
  font-weight: 700;
  color: #d0e8ff;
  flex: 1;
}
.rnow-sol-dur  { color: #4a7a9a; font-size: .74rem; }
.rnow-sol-now  {
  font-size: .7rem;
  font-weight: 700;
  color: #28d464;
  animation: pulse 1.8s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}

/* ── cbz-summary on homepage ─────────────────────────────────────────────── */
.home-cbz-summary {
  margin: 0 auto 2rem;
  max-width: 1100px;
  border-radius: 14px;
}
.cbz-summary-footer {
  padding: .85rem 1.6rem;
  border-top: 1px solid #162a3e;
  text-align: center;
}
.cbz-full-link {
  font-size: .8rem;
  color: #28b4e0;
  text-decoration: none;
}
.cbz-full-link:hover { color: #60d4f8; text-decoration: underline; }

/* ── Bull Shoals water temp badge in rnow block ── */
.rnow-water-temp {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  color: #28b4e0;
  background: rgba(40,180,224,.12);
  border-radius: 10px;
  padding: .1rem .4rem;
  margin-left: .4rem;
  vertical-align: middle;
}

/* ── Ticker NEW badge ─────────────────────────────────────────────────────── */
.ticker-new {
  display: inline-block;
  font-size: .65rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #fff;
  background: #e03030;
  border-radius: 4px;
  padding: .1rem .35rem;
  margin-right: .35rem;
  vertical-align: middle;
  animation: ticker-flash 1.2s ease-in-out infinite;
}
@keyframes ticker-flash {
  0%, 100% { opacity: 1; }
  50%       { opacity: .25; }
}

/* ── Submission consent block ─────────────────────────────────────────────── */
.consent-block {
  background: rgba(255,255,255,.04);
  border: 1px solid #1e3a52;
  border-radius: 8px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.consent-label {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  cursor: pointer;
}
.consent-label input[type='checkbox'] {
  flex-shrink: 0;
  margin-top: .2rem;
  width: 1.1rem;
  height: 1.1rem;
  accent-color: #28b4e0;
  cursor: pointer;
}
.consent-text {
  font-size: .78rem;
  color: #8aadcc;
  line-height: 1.6;
}
.btn:disabled {
  opacity: .4;
  cursor: not-allowed;
}

/* ══════════════════════════════════════════════════════════════════════════════
   Entertainer of the Year page
   ══════════════════════════════════════════════════════════════════════════════ */
.eoty-page { min-height: 100vh; }

/* Hero */
.eoty-hero {
  background: linear-gradient(160deg, #07101a 0%, #0d1e30 50%, #1a0d00 100%);
  border-bottom: 1px solid #2a1800;
  padding: 3rem 1rem 2.5rem;
  text-align: center;
}
.eoty-hero-inner { max-width: 700px; margin: 0 auto; }
.eoty-trophy { font-size: 3.5rem; line-height: 1; margin-bottom: .5rem; }
.eoty-wordmark {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: lowercase;
  color: #8aadcc;
  margin-bottom: .5rem;
}
.eoty-dot  { color: #4a90d9; }
.eoty-buzz { color: #28b4e0; }
.eoty-title {
  font-size: clamp(1.8rem, 5vw, 3rem);
  font-weight: 900;
  color: #f0d080;
  letter-spacing: .02em;
  margin: 0 0 .4rem;
  text-shadow: 0 0 40px rgba(240,200,80,.3);
}
.eoty-subtitle {
  font-size: .82rem;
  color: #6a9ab8;
  margin: 0 0 .75rem;
}
.eoty-tagline {
  font-size: 1rem;
  color: #a0c0d8;
  font-style: italic;
  margin: 0;
}

/* Container */
.eoty-container {
  max-width: 860px;
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

/* About */
.eoty-about {
  background: rgba(255,255,255,.03);
  border: 1px solid #1e3a52;
  border-radius: 10px;
  padding: 1.4rem 1.6rem;
}
.eoty-about p {
  color: #a0bcd4;
  line-height: 1.75;
  margin: 0 0 .8rem;
  font-size: .94rem;
}
.eoty-about p:last-child { margin: 0; }

/* Section headers */
.eoty-section-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.eoty-section-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: #d0e8ff;
  margin: 0;
}
.eoty-year-badge {
  font-size: .75rem;
  font-weight: 900;
  padding: .2rem .6rem;
  border-radius: 6px;
  letter-spacing: .06em;
}
.eoty-year-badge--active {
  background: rgba(240,200,80,.15);
  color: #f0c840;
  border: 1px solid rgba(240,200,80,.3);
}
.eoty-status-pill {
  font-size: .72rem;
  color: #28b4e0;
  background: rgba(40,180,224,.1);
  border-radius: 20px;
  padding: .2rem .6rem;
  margin-left: auto;
}

/* Nominee cards */
.eoty-nominees-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.eoty-nominee-card {
  background: linear-gradient(135deg, #0d1e30 0%, #0a1520 100%);
  border: 1px solid #1e3a52;
  border-top: 3px solid #f0c840;
  border-radius: 10px;
  padding: 1.2rem 1.3rem;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.eoty-nominee-num {
  font-size: 2rem;
  font-weight: 900;
  color: rgba(240,200,80,.2);
  line-height: 1;
  flex-shrink: 0;
}
.eoty-nominee-name {
  font-size: 1.15rem;
  font-weight: 800;
  color: #e8f4ff;
  margin-bottom: .2rem;
}
.eoty-nominee-genre {
  font-size: .75rem;
  color: #6a9ab8;
  margin-bottom: .5rem;
}
.eoty-nominee-note {
  font-size: .78rem;
  color: #8aadcc;
  line-height: 1.55;
  margin-bottom: .6rem;
  border-left: 2px solid rgba(240,200,80,.3);
  padding-left: .6rem;
}
.eoty-listen-link {
  display: inline-block;
  font-size: .76rem;
  color: #f0a020;
  text-decoration: none;
  font-style: normal;
}
.eoty-listen-link:hover { color: #f0c840; text-decoration: underline; }

/* Winners list */
.eoty-winners-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid #1e3a52;
  border-radius: 10px;
  overflow: hidden;
}
.eoty-winner-row {
  display: grid;
  grid-template-columns: 3.5rem 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1.2rem;
  background: #071e30;
  font-size: .9rem;
}
.eoty-winner-row:nth-child(even) { background: #0a2030; }
.eoty-winner-row--featured {
  background: linear-gradient(90deg, rgba(240,200,80,.08) 0%, transparent 100%) !important;
  border-left: 3px solid #f0c840;
  grid-template-columns: 3.5rem 1fr auto;
  flex-wrap: wrap;
}
.eoty-winner-year {
  font-weight: 900;
  color: #f0c840;
  font-size: .88rem;
}
.eoty-winner-name {
  font-weight: 700;
  color: #d0e8ff;
}
.eoty-winner-genre {
  font-size: .75rem;
  color: #4a7a9a;
  text-align: right;
}
.eoty-winner-note {
  grid-column: 2 / -1;
  font-size: .74rem;
  color: #8aadcc;
  font-style: italic;
  border-left: 2px solid rgba(240,200,80,.25);
  padding-left: .6rem;
  margin-top: .15rem;
}

/* How it works */
.eoty-how {
  background: rgba(255,255,255,.02);
  border: 1px solid #1e3a52;
  border-radius: 10px;
  padding: 1.4rem 1.6rem;
}
.eoty-how-title {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #4a7a9a;
  margin: 0 0 1rem;
}
.eoty-how-steps {
  display: flex;
  gap: 1.5rem;
}
.eoty-step {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  flex: 1;
}
.eoty-step-icon { font-size: 1.4rem; flex-shrink: 0; }
.eoty-step strong { display: block; color: #c0d8ec; font-size: .88rem; margin-bottom: .2rem; }
.eoty-step p { color: #6a9ab8; font-size: .78rem; line-height: 1.5; margin: 0; }

/* Responsive */
@media (max-width: 640px) {
  .eoty-nominees-grid { grid-template-columns: 1fr; }
  .eoty-how-steps { flex-direction: column; gap: 1rem; }
  .eoty-winner-row { grid-template-columns: 3rem 1fr; }
  .eoty-winner-genre { display: none; }
  .eoty-winner-note { grid-column: 1 / -1; }
}


/* ══════════════════════════════════════════════════════════════════
   FLOAT GUIDE PAGE  (/floating)
   ══════════════════════════════════════════════════════════════════ */

.float-page { padding-bottom: 3rem; }

/* ── River block container ── */
.float-river-block {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.6rem;
}
.float-river--featured {
  border-color: rgba(80,180,120,.35);
  background: linear-gradient(160deg, #0c2218 0%, #0b1e2e 60%);
}
.float-river--dam {
  border-color: rgba(240,180,60,.3);
  background: linear-gradient(160deg, #1c1800 0%, #0b1e2e 60%);
}

/* ── River header ── */
.float-river-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
  flex-wrap: wrap;
}
.float-river-name {
  font-size: 1.25rem;
  font-weight: 700;
  color: #d0e8ff;
  margin: 0 0 .2rem;
}
.float-river-sub {
  font-size: .75rem;
  color: #4a7a9a;
  margin: 0;
}
.float-nps-badge {
  background: rgba(80,180,80,.12);
  border: 1px solid rgba(80,180,80,.3);
  color: #5adc8a;
  font-size: .7rem;
  font-weight: 700;
  border-radius: 5px;
  padding: .25rem .6rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Section cards grid (Buffalo River) ── */
.float-sections-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  margin-bottom: 1.2rem;
}
.float-section-card {
  background: rgba(255,255,255,.03);
  border: 1px solid #1e3a52;
  border-radius: 9px;
  padding: 1rem 1.1rem;
}
.float-section-card.float-section--float-good   { border-color: rgba(60,200,100,.35); }
.float-section-card.float-section--float-marginal { border-color: rgba(240,200,60,.35); }
.float-section-card.float-section--float-too-low { border-color: rgba(100,140,200,.25); }
.float-section-card.float-section--float-sporty  { border-color: rgba(240,140,40,.4); }
.float-section-card.float-section--float-danger  { border-color: rgba(220,60,60,.5); }
.float-section-card.float-section--err           { border-color: #1e3a52; opacity: .65; }

.float-section-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .7rem;
}
.float-section-name {
  font-size: .85rem;
  font-weight: 700;
  color: #c0d8ec;
  line-height: 1.3;
}

/* ── Condition badge ── */
.float-condition-badge {
  font-size: .68rem;
  font-weight: 700;
  border-radius: 5px;
  padding: .2rem .5rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.float-badge--float-too-low  { background: rgba(80,120,220,.15); border: 1px solid rgba(80,120,220,.4); color: #90b0f0; }
.float-badge--float-marginal { background: rgba(220,190,50,.1);  border: 1px solid rgba(220,190,50,.4);  color: #e8c840; }
.float-badge--float-good     { background: rgba(50,200,100,.12); border: 1px solid rgba(50,200,100,.4);  color: #50dc7a; }
.float-badge--float-sporty   { background: rgba(240,130,30,.12); border: 1px solid rgba(240,130,30,.4);  color: #f0a040; }
.float-badge--float-danger   { background: rgba(220,50,50,.14);  border: 1px solid rgba(220,50,50,.5);   color: #f06060; }

/* ── Stats row ── */
.float-stats-row {
  display: flex;
  gap: .8rem;
  margin-bottom: .75rem;
  flex-wrap: wrap;
}
.float-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,.04);
  border-radius: 7px;
  padding: .35rem .65rem;
  min-width: 60px;
}
.float-stat-val {
  font-size: .95rem;
  font-weight: 700;
  color: #d0e8ff;
  line-height: 1.2;
}
.float-stat-lbl {
  font-size: .62rem;
  color: #4a7a9a;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* ── Advice line ── */
.float-advice {
  font-size: .78rem;
  color: #8aadcc;
  background: rgba(255,255,255,.03);
  border-left: 3px solid rgba(80,180,120,.4);
  padding: .35rem .65rem;
  border-radius: 0 5px 5px 0;
  margin-bottom: .75rem;
}
.float-advice-sm {
  font-size: .74rem;
  color: #8aadcc;
  border-left: 2px solid rgba(80,180,120,.3);
  padding-left: .55rem;
  margin-bottom: .6rem;
}

/* ── Put-in / Take-out ── */
.float-putins {
  font-size: .72rem;
  color: #6a9ab8;
  margin-bottom: .4rem;
}
.float-putin-label { font-weight: 700; color: #8aadcc; }
.float-sep { margin: 0 .3rem; opacity: .4; }

/* ── Gauge reference ── */
.float-gauge-ref {
  margin-top: .5rem;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.float-gauge-ref--stacked { gap: .25rem; }
.float-gauge-num {
  font-size: .7rem;
  font-weight: 600;
  color: #28b4e0;
  letter-spacing: .02em;
}
.float-gauge-loc {
  font-size: .7rem;
  color: #5a8aaa;
  display: block;
  padding-left: 1.1rem;
  line-height: 1.35;
}

/* ── Error state ── */
.float-error {
  font-size: .78rem;
  color: #5a7a92;
  font-style: italic;
}

/* ── Legend ── */
.float-legend {
  display: flex;
  gap: .5rem;
  align-items: center;
  flex-wrap: wrap;
  padding-top: 1rem;
  border-top: 1px solid #1e3a52;
}
.float-legend-title {
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #3a5a72;
  margin-right: .3rem;
}
.float-leg {
  font-size: .68rem;
  font-weight: 600;
  border-radius: 4px;
  padding: .18rem .45rem;
}

/* ── Dam-controlled note ── */
.float-dam-note {
  font-size: .75rem;
  color: #8aadcc;
  background: rgba(240,180,60,.06);
  border: 1px solid rgba(240,180,60,.18);
  border-radius: 7px;
  padding: .8rem 1rem;
  margin: .8rem 0;
  line-height: 1.6;
}

/* ── Detail link ── */
.float-detail-link {
  display: inline-block;
  margin-top: .5rem;
  font-size: .78rem;
  color: #4a9adc;
  text-decoration: none;
}
.float-detail-link:hover { color: #6abcf8; text-decoration: underline; }

/* ── Other rivers grid ── */
.float-others-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.1rem;
  margin-bottom: 1.6rem;
}
.float-other-card {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 10px;
  padding: 1.1rem 1.2rem;
}
.float-other-card.float-other--float-good     { border-color: rgba(60,200,100,.35); }
.float-other-card.float-other--float-marginal { border-color: rgba(240,200,60,.35); }
.float-other-card.float-other--float-too-low  { border-color: rgba(100,140,200,.25); }
.float-other-card.float-other--float-sporty   { border-color: rgba(240,140,40,.4); }
.float-other-card.float-other--float-danger   { border-color: rgba(220,60,60,.5); }

.float-other-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  margin-bottom: .4rem;
}
.float-other-name {
  font-size: 1rem;
  font-weight: 700;
  color: #c0d8ec;
  margin: 0;
}
.float-other-sub {
  font-size: .7rem;
  color: #4a7a9a;
  margin-bottom: .7rem;
}
.float-other-stats {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  margin-bottom: .6rem;
}
.float-other-cfs {
  font-size: 1.1rem;
  font-weight: 700;
  color: #d0e8ff;
}
.float-other-cfs em { font-size: .65rem; color: #4a7a9a; font-style: normal; margin-left: .15rem; }
.float-other-ght {
  font-size: .85rem;
  color: #8aadcc;
}
.float-other-ght em { font-size: .62rem; color: #4a7a9a; font-style: normal; margin-left: .1rem; }
.float-other-note {
  font-size: .72rem;
  color: #6a9ab8;
  line-height: 1.5;
  margin-bottom: .5rem;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .float-sections-grid { grid-template-columns: 1fr; }
  .float-others-grid   { grid-template-columns: 1fr; }
  .float-river-header  { flex-direction: column; }
  .float-stats-row     { gap: .5rem; }
  .float-legend        { gap: .35rem; }
  .float-nps-badge     { align-self: flex-start; }
}


/* ══════════════════════════════════════════════════════════════════
   WEATHER / RADAR PAGE  (/radar)
   ══════════════════════════════════════════════════════════════════ */

.wx-page { padding-bottom: 3rem; }

.wx-section-title {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #4a7a9a;
  margin: 0 0 1rem;
}

/* ── 10-Day forecast block ── */
.wx-forecast-block {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.6rem;
}

.wx-day-strip {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: .5rem;
  overflow-x: auto;
  padding-bottom: .25rem;
}

.wx-day-card {
  background: rgba(255,255,255,.03);
  border: 1px solid #1e3a52;
  border-radius: 9px;
  padding: .75rem .5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
  min-width: 72px;
  transition: border-color .2s;
}
.wx-day-card:hover { border-color: #2e5a7a; }

/* Today highlight */
.wx-day--today {
  border-color: rgba(80,180,220,.5);
  background: rgba(80,180,220,.06);
}

/* Condition tints */
.wx-day--clear   { border-color: rgba(240,200,60,.3); }
.wx-day--rain    { border-color: rgba(80,140,240,.3); }
.wx-day--storm   { border-color: rgba(200,80,80,.4); }
.wx-day--snow    { border-color: rgba(180,220,255,.3); }

.wx-day-name {
  font-size: .8rem;
  font-weight: 700;
  color: #c0d8ec;
  line-height: 1;
}
.wx-day-date {
  font-size: .62rem;
  color: #4a7a9a;
}
.wx-day-emoji {
  font-size: 1.5rem;
  line-height: 1.2;
  margin: .15rem 0;
}
.wx-day-label {
  font-size: .62rem;
  color: #6a9ab8;
  line-height: 1.2;
  min-height: 1.8em;
}
.wx-day-temps {
  display: flex;
  align-items: center;
  gap: .2rem;
  margin-top: .1rem;
}
.wx-high {
  font-size: .95rem;
  font-weight: 700;
  color: #f0c840;
}
.wx-temp-sep { font-size: .7rem; color: #3a5a72; }
.wx-low {
  font-size: .82rem;
  color: #6a9ab8;
}
.wx-day-precip {
  display: flex;
  align-items: center;
  gap: .15rem;
  font-size: .65rem;
  color: #5a9adc;
  margin-top: .1rem;
}
.wx-precip-icon { font-size: .7rem; }
.wx-day-wind {
  font-size: .6rem;
  color: #4a7a9a;
  margin-top: .05rem;
}
.wx-gust-note { color: #c07030; }

/* ── NWS Narrative block ── */
.wx-narrative-block {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.6rem;
}
.wx-nws-credit {
  font-size: .7rem;
  color: #3a5a72;
  margin: -.5rem 0 1rem;
}
.wx-narrative-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: .85rem;
}
.wx-narrative-card {
  border-radius: 8px;
  padding: .9rem 1rem;
  border: 1px solid #1e3a52;
}
.wx-narrative--day {
  background: rgba(255,220,80,.04);
  border-color: rgba(240,200,60,.2);
}
.wx-narrative--night {
  background: rgba(60,80,160,.05);
  border-color: rgba(80,100,200,.2);
}
.wx-narrative-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .4rem;
}
.wx-narrative-name {
  font-size: .82rem;
  font-weight: 700;
  color: #c0d8ec;
}
.wx-narrative-temp {
  font-size: .95rem;
  font-weight: 700;
  color: #f0c840;
}
.wx-narrative--night .wx-narrative-temp { color: #90b0dc; }
.wx-narrative-short {
  font-size: .75rem;
  font-weight: 600;
  color: #8aadcc;
  margin-bottom: .4rem;
}
.wx-narrative-detail {
  font-size: .74rem;
  color: #5a8ab0;
  line-height: 1.55;
  margin: 0;
}

/* ── Radar block ── */
.wx-radar-block {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.6rem;
}
.wx-radar-ext {
  display: inline-block;
  font-size: .72rem;
  color: #4a9adc;
  text-decoration: none;
  margin: -.6rem 0 .8rem;
}
.wx-radar-ext:hover { color: #6abcf8; text-decoration: underline; }

.wx-radar-wrap {
  position: relative;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}
.wx-radar-wrap iframe {
  width: 100%;
  height: 500px;
  display: block;
  border: none;
}
.radar-overlay {
  position: absolute;
  inset: 0;
  background: rgba(5,15,25,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #c0d8ec;
  cursor: pointer;
  z-index: 10;
  border-radius: 8px;
  transition: opacity .25s;
}
.radar-overlay.hidden { display: none; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .wx-day-strip { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 560px) {
  .wx-day-strip { grid-template-columns: repeat(4, 1fr); }
  .wx-narrative-grid { grid-template-columns: 1fr; }
  .wx-radar-wrap iframe { height: 340px; }
}

/* ── Live Cam block ── */
.wx-cam-block {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.6rem;
}
.wx-cam-credit {
  font-size: .7rem;
  color: #3a5a72;
  margin: -.5rem 0 .9rem;
}
.wx-cam-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  border-radius: 8px;
  overflow: hidden;
  background: #040e18;
}
.wx-cam-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
.wx-cam-note {
  font-size: .7rem;
  color: #3a5a72;
  margin: .7rem 0 0;
}

/* ── Homepage Live Cam section ── */
.home-cam-section {
  padding: 0 1rem 2rem;
  max-width: 900px;
  margin: 0 auto;
}
.home-cam-inner {
  background: #0b1e2e;
  border: 1px solid #1e3a52;
  border-radius: 12px;
  overflow: hidden;
}
.home-cam-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .8rem 1.2rem;
  border-bottom: 1px solid #1e3a52;
  flex-wrap: wrap;
  gap: .4rem;
}
.home-cam-title {
  font-size: .85rem;
  font-weight: 700;
  color: #c0d8ec;
}
.home-cam-credit {
  font-size: .68rem;
  color: #3a5a72;
}
.home-cam-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: #040e18;
}
.home-cam-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* ── Homepage rnow fishing picks list ── */
.rnow-fish-picks {
  list-style: none;
  margin: .4rem 0 .6rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.rnow-fish-pick {
  display: flex;
  flex-direction: column;
  gap: .05rem;
  padding: .3rem .5rem;
  background: rgba(255,255,255,.04);
  border-left: 2px solid rgba(80,200,120,.35);
  border-radius: 0 5px 5px 0;
}
.rnow-pick-water {
  font-size: .74rem;
  font-weight: 700;
  color: #c0d8ec;
}
.rnow-pick-target {
  font-size: .68rem;
  color: #6aaa88;
}

.rnow-pick-bait {
  font-size: .65rem;
  color: #a08850;
  font-style: italic;
}

.rnow-fish-conditions {
  font-size: .68rem;
  color: #5a8ab0;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: .5rem;
  margin-top: .5rem;
  line-height: 1.5;
  font-style: italic;
}

/* ── Homepage dam schedule blip ── */
.rnow-dam-schedule {
  font-size: .7rem;
  color: #e8a830;
  background: rgba(240,180,40,.08);
  border: 1px solid rgba(240,180,40,.2);
  border-radius: 5px;
  padding: .3rem .6rem;
  margin: .4rem 0 .2rem;
  line-height: 1.4;
}
.rnow-dam-schedule--quiet {
  color: #5a8ab0;
  background: rgba(80,140,200,.06);
  border-color: rgba(80,140,200,.15);
}

.rm-norfork-block {
  margin-top: 1rem;
  border: 1px solid rgba(232,160,32,.25);
  border-radius: 8px;
  padding: .75rem 1rem;
  background: rgba(232,160,32,.04);
}
.rm-nfk-header {
  font-size: .78rem;
  font-weight: 700;
  color: #e8a020;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .4rem;
}

/* ── Featured Blog Post ── */
.feat-post { padding: 0 1rem 1.5rem; max-width: 900px; margin: 0 auto; }
.feat-post-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #5a8fa8; margin-bottom: .6rem; }
.feat-post-card { display: flex; gap: 0; border-radius: 12px; overflow: hidden; background: #0b1e2e; border: 1px solid #1e3a52; text-decoration: none; color: inherit; transition: border-color .2s; }
.feat-post-card:hover { border-color: #3a7a9c; }
.feat-post-img { flex: 0 0 42%; background-size: cover; background-position: center 35%; min-height: 200px; }
.feat-post-body { flex: 1; padding: 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .5rem; }
.feat-post-cat { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #4a9fc8; }
.feat-post-title { font-size: 1.15rem; font-weight: 700; color: #e0eaf2; line-height: 1.3; margin: 0; }
.feat-post-excerpt { font-size: .85rem; color: #7a9db5; line-height: 1.6; margin: 0; flex: 1; }
.feat-post-read { font-size: .8rem; font-weight: 600; color: #4a9fc8; margin-top: .3rem; }
@media (max-width: 600px) {
  .feat-post-card { flex-direction: column; }
  .feat-post-img { flex: 0 0 auto; min-height: 180px; width: 100%; }
}

/* ── Unified Photos Section ── */
.photos-section { padding: 0 1rem 1rem; max-width: 900px; margin: 0 auto; }
.photos-section-hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.photos-section-title { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #5a8fa8; }
.photos-ig-link { font-size: .72rem; color: #4a9fc8; text-decoration: none; }
.photos-ig-link:hover { text-decoration: underline; }
.photos-section-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; padding: .75rem 1rem; background: #0b1e2e; border-radius: 8px; border: 1px solid #1e3a52; }
.photos-cta-text { font-size: .85rem; color: #7a9db5; }
.photos-cta-btn { font-size: .8rem; font-weight: 700; background: #1e5f8c; color: #fff; padding: .45rem .9rem; border-radius: 6px; text-decoration: none; white-space: nowrap; }
.photos-cta-btn:hover { background: #2a7ab5; }
@media (max-width: 500px) {
  .photos-section-cta { flex-direction: column; gap: .6rem; text-align: center; }
}

/* ── Photo CTA animations ── */
@keyframes cam-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.2; }
}
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(74,159,200,.7); }
  70%  { box-shadow: 0 0 0 10px rgba(74,159,200,0); }
  100% { box-shadow: 0 0 0 0 rgba(74,159,200,0); }
}
.cta-cam {
  display: inline-block;
  animation: cam-blink 1.4s ease-in-out infinite;
}
.photos-cta-btn--pulse {
  animation: pulse-ring 1.8s ease-out infinite;
}

/* ── CTA Pic Banner ─────────────────────────────────────────────── */
.cta-pic-banner {
  background: linear-gradient(135deg, #0a1e3a 0%, #0d2a1a 100%);
  border-top: 3px solid var(--gold);
  border-bottom: 3px solid var(--gold);
  padding: 2.5rem 1rem;
}
.cta-pic-inner {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.cta-pic-headline {
  font-size: 2rem;
  font-weight: 900;
  color: var(--gold);
  margin: 0 0 .35rem;
  line-height: 1.1;
  letter-spacing: .04em;
}
.cta-pic-subhead {
  font-size: 1.2rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 .5rem;
}
.cta-pic-sub {
  color: rgba(255,255,255,.7);
  font-size: .95rem;
  line-height: 1.55;
  margin: 0;
  max-width: 480px;
}
.cta-pic-btn {
  display: inline-block;
  background: var(--gold);
  color: #000;
  font-weight: 800;
  font-size: 1rem;
  text-decoration: none;
  padding: .85rem 2rem;
  border-radius: 3px;
  white-space: nowrap;
  letter-spacing: .03em;
  transition: background .15s, transform .1s;
  flex-shrink: 0;
}
.cta-pic-btn:hover { background: #e8c84a; transform: translateY(-1px); }
@media (max-width: 600px) {
  .cta-pic-inner { flex-direction: column; text-align: center; }
  .cta-pic-headline { font-size: 1.4rem; }
  .cta-pic-sub { max-width: 100%; }
  .cta-pic-btn { width: 100%; text-align: center; padding: 1rem; }
}
