/* CastSight AI Production Revision 9 — focused title, background, report refresh, and Bite Map layout repair */
:root{
  --r10-logo-blue:#0757b9;
  --r10-logo-blue-deep:#06458f;
  --r10-panel:#061b2f;
  --r10-panel-strong:#041629;
  --r10-border:rgba(78,157,216,.30);
  --r10-muted:#a9bfd2;
}

/* One consistent, visible logo-style transition on the large app banner only. */
html.castsight-r10 .app-header.app-header-centered #pageLabel,
html.castsight-r10 .app-header-centered h1#pageLabel{
  display:inline-block!important;
  width:fit-content!important;
  max-width:min(96vw,1180px)!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  background:linear-gradient(100deg,
    #ffffff 0%,
    #ffffff 48%,
    #e8f1f9 58%,
    #9fc3e2 69%,
    #3e82bd 82%,
    var(--r10-logo-blue) 94%,
    var(--r10-logo-blue-deep) 100%)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  text-shadow:none!important;
}
html.castsight-r10 .page-title h1,
html.castsight-r10 .page-title h2,
html.castsight-r10 .section-head h1,
html.castsight-r10 .section-head h2,
html.castsight-r10 .panel h1,
html.castsight-r10 .panel h2,
html.castsight-r10 .panel h3,
html.castsight-r10 [data-page-title]:not(#pageLabel){
  color:#f7fbff!important;
  -webkit-text-fill-color:#f7fbff!important;
  background:none!important;
  background-image:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
  text-shadow:none!important;
}

/* Let the sunset and water read a little more clearly without weakening card contrast. */
html.castsight-r10 body::before{
  background:
    linear-gradient(180deg,rgba(2,12,24,.43),rgba(2,12,24,.54) 48%,rgba(2,10,20,.64)),
    url("assets/welcome-beach.png") center/cover fixed no-repeat!important;
  filter:brightness(1.07) saturate(1.06) contrast(1.01)!important;
  opacity:1!important;
}
html.castsight-r10 body::after{
  background:
    radial-gradient(circle at 72% 8%,rgba(29,111,190,.10),transparent 32%),
    linear-gradient(90deg,rgba(2,12,24,.12),transparent 48%,rgba(2,12,24,.09))!important;
}

/* Give Bite Map room for controls + actual map + a non-overlapping selected-beach panel. */
@supports selector(main:has(.page.active)){
  html.castsight-r10 .app-shell main:has(.page[data-view="map"].active){
    width:min(1640px,calc(100vw - 310px))!important;
    max-width:none!important;
  }
}
html.castsight-r10 [data-view="map"] .bite-map-panel{
  padding:1rem!important;
  overflow:visible!important;
  max-width:none!important;
}
html.castsight-r10 [data-view="map"] .bite-map-panel > :not(#r10BiteMapRoot){display:none!important}
html.castsight-r10 .r10-bite-map-root{
  display:grid;
  grid-template-columns:292px minmax(500px,1fr) 340px;
  gap:1rem;
  height:min(790px,calc(100vh - 150px));
  min-height:640px;
  width:100%;
}
html.castsight-r10 .r10-map-sidebar,
html.castsight-r10 .r10-map-details{
  min-width:0;
  border:1px solid var(--r10-border);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(7,30,51,.98),rgba(3,18,32,.98));
  overflow:hidden;
}
html.castsight-r10 .r10-map-sidebar{display:flex;flex-direction:column;gap:.7rem;padding:1rem}
html.castsight-r10 .r10-map-details{overflow:auto;padding:1rem}
html.castsight-r10 .r10-map-head h2{margin:.12rem 0;color:#fff!important;font-size:1.2rem!important}
html.castsight-r10 .r10-map-head p{margin:0;color:var(--r10-muted)!important;font-size:.83rem}
html.castsight-r10 .r10-map-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
html.castsight-r10 .r10-map-search input,
html.castsight-r10 .r10-map-filters select{min-width:0;width:100%;min-height:44px;border-radius:11px;background:#061827;color:#fff;border:1px solid rgba(74,153,211,.3);padding:.65rem .75rem}
html.castsight-r10 .r10-map-search button{min-height:44px;padding:.6rem .8rem;border-radius:11px;background:#145f9f;color:#fff;border:1px solid #3e91cf;font-weight:850;cursor:pointer}
html.castsight-r10 .r10-map-filters{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
html.castsight-r10 .r10-layer-button{min-height:54px;border-radius:12px;background:rgba(12,48,78,.92);border:1px solid rgba(77,158,217,.32);color:#fff;text-align:left;padding:.65rem .8rem;cursor:pointer}
html.castsight-r10 .r10-layer-button small{display:block;color:#a9bfd2}
html.castsight-r10 .r10-layer-button.active{background:#145f9f;border-color:#55a9ed}
html.castsight-r10 .r10-beach-list{min-height:0;overflow:auto;display:grid;gap:.45rem;padding-right:.2rem}
html.castsight-r10 .r10-beach-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center;text-align:left;padding:.72rem .78rem;border-radius:11px;background:rgba(11,42,68,.85);border:1px solid rgba(74,151,209,.24);color:#e8f4ff;cursor:pointer}
html.castsight-r10 .r10-beach-item strong{display:block;color:#fff;white-space:normal}
html.castsight-r10 .r10-beach-item small{display:block;color:#9fb8cd;white-space:normal}
html.castsight-r10 .r10-beach-item.selected{background:#135f9f;border-color:#55a9ed}
html.castsight-r10 .r10-map-stage{position:relative;min-width:0;height:100%;border-radius:22px;overflow:hidden;background:#081c2f;border:1px solid var(--r10-border)}
html.castsight-r10 .r10-google-map,
html.castsight-r10 .r10-map-iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
html.castsight-r10 .r10-map-iframe{background:#0a2239}
html.castsight-r10 .r10-map-loading{position:absolute;z-index:6;left:14px;top:14px;max-width:min(440px,calc(100% - 28px));padding:.7rem .85rem;border-radius:12px;background:rgba(3,18,32,.90);border:1px solid rgba(82,164,223,.34);color:#d9ebf8;box-shadow:0 14px 32px rgba(0,0,0,.28)}
html.castsight-r10 .r10-map-loading strong{display:block;color:#fff}
html.castsight-r10 .r10-map-loading small{display:block;color:#abc2d4;margin-top:.15rem}
html.castsight-r10 .r10-details-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--r10-muted);padding:1rem}
html.castsight-r10 .r10-map-score{padding:.9rem;border-radius:14px;background:rgba(16,67,104,.72);display:flex;justify-content:space-between;align-items:center;gap:.75rem}
html.castsight-r10 .r10-map-score strong{font-size:1.45rem;color:#fff}
html.castsight-r10 .r10-map-score span{color:#b7cad9}
html.castsight-r10 .r10-map-fact{padding:.75rem 0;border-bottom:1px solid rgba(126,171,205,.15)}
html.castsight-r10 .r10-map-fact>span{display:block;color:#8faec6;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
html.castsight-r10 .r10-map-fact>strong{display:block;color:#fff;margin-top:.25rem}
html.castsight-r10 .r10-map-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1rem}
html.castsight-r10 .r10-map-actions a,
html.castsight-r10 .r10-map-actions button{min-height:42px;padding:.65rem .85rem;border-radius:999px;background:#1267b5;color:#fff!important;border:1px solid #4a9bd8;text-decoration:none;font-weight:850;cursor:pointer}
html.castsight-r10 .r10-map-parking{display:grid;gap:.45rem;margin-top:.45rem}
html.castsight-r10 .r10-map-parking a{display:grid;padding:.55rem .65rem;border-radius:10px;background:rgba(13,48,76,.82);text-decoration:none}
html.castsight-r10 .r10-map-parking a strong{color:#fff}
html.castsight-r10 .r10-map-parking a small{color:#a9bfd3}
html.castsight-r10 .r10-map-note{padding:.65rem;border-radius:10px;background:rgba(9,42,69,.78);color:#bcd0df;font-size:.8rem;margin-top:.8rem}

@media(max-width:1320px){
  html.castsight-r10 .r10-bite-map-root{grid-template-columns:270px minmax(430px,1fr) 310px}
}
@media(max-width:1080px){
  html.castsight-r10 .r10-bite-map-root{grid-template-columns:280px minmax(0,1fr);height:auto}
  html.castsight-r10 .r10-map-details{grid-column:1/-1;max-height:360px}
  html.castsight-r10 .r10-map-stage{height:66vh;min-height:540px}
}
@media(max-width:760px){
  html.castsight-r10 .r10-bite-map-root{grid-template-columns:1fr}
  html.castsight-r10 .r10-map-stage{height:62vh;min-height:500px}
  html.castsight-r10 .r10-map-filters{grid-template-columns:1fr}
  html.castsight-r10 .r10-map-search{grid-template-columns:1fr}
}

/* Revision 10: Fishing Now highlights without unexpectedly removing beaches. */
html.castsight-r10 .r10-layer-button > span{display:flex;align-items:center;justify-content:space-between;gap:.65rem}
html.castsight-r10 .r10-layer-count{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;padding:0 .4rem;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:.78rem}
html.castsight-r10 .r10-layer-button.active .r10-layer-count{background:#52e3a2;color:#06271d}
html.castsight-r10 .r10-layer-button:disabled{cursor:not-allowed;opacity:.67;filter:saturate(.65)}
html.castsight-r10 .r10-layer-button.unavailable{background:rgba(34,48,62,.82);border-color:rgba(154,178,196,.20)}
html.castsight-r10 .r10-active-only{display:flex;align-items:center;gap:.55rem;margin:-.15rem 0 .1rem;padding:.55rem .7rem;border-radius:10px;background:rgba(6,27,45,.82);border:1px solid rgba(77,158,217,.23);color:#dcebf7;font-size:.82rem;cursor:pointer}
html.castsight-r10 .r10-active-only[hidden]{display:none!important}
html.castsight-r10 .r10-active-only input{width:1rem;height:1rem;accent-color:#1972bd}
html.castsight-r10 .r10-layer-status{min-height:0;color:#a9bfd2;font-size:.77rem;line-height:1.35}
html.castsight-r10 .r10-layer-status:empty{display:none}
html.castsight-r10 .r10-layer-status strong{display:block;color:#eaf6ff}
html.castsight-r10 .r10-layer-status span{display:block;margin-top:.12rem}
html.castsight-r10 .r10-beach-item.recent{border-color:#50dca0;box-shadow:inset 4px 0 0 #2bc584;background:linear-gradient(90deg,rgba(14,91,69,.72),rgba(11,42,68,.88))}
html.castsight-r10 .r10-beach-item.dimmed{opacity:.58;filter:saturate(.72)}
html.castsight-r10 .r10-beach-item.dimmed:hover{opacity:.9}
html.castsight-r10 .r10-empty-state{padding:1rem;border-radius:12px;border:1px dashed rgba(94,166,217,.35);color:#adc4d6;text-align:center}
html.castsight-r10 .r10-empty-state strong{display:block;color:#fff}
html.castsight-r10 .r10-empty-state span{display:block;margin-top:.25rem;font-size:.8rem}

/* A visible legend makes Heat Map purpose obvious. */
html.castsight-r10 .r10-heat-legend{position:absolute;z-index:7;left:16px;bottom:16px;width:min(260px,calc(100% - 32px));padding:.65rem .75rem;border-radius:12px;background:rgba(3,18,32,.9);border:1px solid rgba(82,164,223,.36);box-shadow:0 12px 28px rgba(0,0,0,.25);color:#fff}
html.castsight-r10 .r10-heat-legend[hidden]{display:none!important}
html.castsight-r10 .r10-heat-legend strong{display:block;font-size:.78rem;margin-bottom:.35rem}
html.castsight-r10 .r10-heat-legend i{display:block;height:.65rem;border-radius:999px;background:linear-gradient(90deg,#186fbe,#36c2af,#ffd74a,#eb6530,#c82a2a)}
html.castsight-r10 .r10-heat-legend span{display:flex;justify-content:space-between;margin-top:.2rem;color:#b7cbda;font-size:.68rem}

/* Map failure diagnostic stays readable but does not dominate the map. */
html.castsight-r10 .r10-map-loading{max-width:min(520px,calc(100% - 28px))}
html.castsight-r10 .r10-map-loading strong{line-height:1.35}

@media(max-width:760px){
  html.castsight-r10 .r10-heat-legend{width:min(220px,calc(100% - 24px));left:12px;bottom:12px}
}
