/* PescaRadar — keyboard focus visibility for tide forecast cards.
   The legacy hover/focus rule suppresses outlines. Keep a clear inset ring
   that remains visible when the event card is clipped by mobile layout. */
#tideForecast .tide-event:focus-visible {
  outline: 3px solid var(--accent) !important;
  outline-offset: -4px !important;
  box-shadow: inset 0 0 0 1px rgba(53, 224, 192, .35), 0 8px 22px rgba(0, 0, 0, .18) !important;
  transform: none !important;
}


/* Sonar HUD contrast contract: dark surfaces remain dark in every visual mode. */
:root[data-visual-theme="aqua"],
:root[data-visual-theme="midnight"],
:root[data-visual-theme="high"] {
  color-scheme: dark !important;
  --bg: #050A0F !important;
  --panel: #0C1622 !important;
  --panel2: #0C1622 !important;
  --line: #00F0FF33 !important;
  --cyan: #00F0FF !important;
  --green: #00E676 !important;
  --text: #F0F6FC !important;
  --muted: #D0DCE6 !important;
}
:root[data-visual-theme="high"] body,
:root[data-visual-theme="aqua"] body,
:root[data-visual-theme="midnight"] body {
  background-color: #050A0F !important;
  color: #F0F6FC !important;
}
:root[data-visual-theme="high"] :is(article,section,.card,.panel,.metric-card,.tide-event),
:root[data-visual-theme="aqua"] :is(article,section,.card,.panel,.metric-card,.tide-event),
:root[data-visual-theme="midnight"] :is(article,section,.card,.panel,.metric-card,.tide-event) {
  background-color: #0C1622 !important;
  color: #F0F6FC !important;
  border-color: #00F0FF33 !important;
}
:root[data-visual-theme="high"] :is(p,span,label,small,li,dt,dd,h1,h2,h3,h4),
:root[data-visual-theme="aqua"] :is(p,span,label,small,li,dt,dd,h1,h2,h3,h4),
:root[data-visual-theme="midnight"] :is(p,span,label,small,li,dt,dd,h1,h2,h3,h4) {
  color: #F0F6FC;
}
:root[data-visual-theme="high"] :is(a,button,.accent,.eyebrow),
:root[data-visual-theme="aqua"] :is(a,button,.accent,.eyebrow),
:root[data-visual-theme="midnight"] :is(a,button,.accent,.eyebrow) {
  text-decoration-color: #00F0FF;
}
:root :focus-visible {
  outline: 3px solid #00F0FF !important;
  outline-offset: 3px !important;
}
#tideForecast .tide-event:focus-visible {
  outline: 3px solid #00F0FF !important;
  outline-offset: -4px !important;
  box-shadow: inset 0 0 0 1px rgba(0,240,255,.65), 0 8px 22px rgba(0,0,0,.65) !important;
  transform: none !important;
}


/* Shared compact Sonar HUD header and safe contrast for every secondary page. */
:root {
  color-scheme: dark;
  --sonar-bg: #050A0F;
  --sonar-surface: #0C1622;
  --sonar-border: #00F0FF33;
  --sonar-text: #F0F6FC;
  --sonar-cyan: #00F0FF;
  --sonar-green: #00E676;
}
html, body { background-color: #050A0F; color: #F0F6FC; }
body { min-width: 0; }
.topbar, .site-header {
  box-sizing: border-box;
  min-height: 56px;
  height: auto;
  padding: 8px clamp(12px, 2vw, 28px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: #050A0F !important;
  color: #F0F6FC !important;
  border-bottom: 1px solid #00F0FF33 !important;
  box-shadow: none !important;
}
.topbar .brand, .site-header .brand { flex: 0 0 auto; color: #F0F6FC !important; }
.topbar nav, .site-header nav, .site-header .nav-shell {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.site-header .nav-shell { width: 100%; justify-content: space-between; }
.topbar nav a, .site-header nav a {
  color: #D0DCE6 !important;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 7px 9px;
}
.topbar nav a:hover, .topbar nav a[aria-current="page"],
.site-header nav a:hover, .site-header nav a[aria-current="page"] {
  color: #00F0FF !important;
  background: #0C1622 !important;
  border-color: #00F0FF33 !important;
}
main { color: #F0F6FC; }
main :is(article,.ai-box,.panel,.cards article,.comparison-grid>div,.code-block,.status,.hero) {
  border-color: #00F0FF33;
}
main :is(article,.ai-box,.panel,.cards article,.comparison-grid>div,.code-block) {
  background-color: #0C1622;
  color: #F0F6FC;
}
main :is(h1,h2,h3,h4,p,li,small,label,strong,span,dt,dd) { color: #F0F6FC; }
main :is(.lead,.status,small,.muted,.step-help) { color: #D0DCE6; }
main a { color: #00F0FF; }
main :is(input,select,textarea) {
  background: #050A0F !important;
  color: #F0F6FC !important;
  border-color: #00F0FF55 !important;
}
main :is(button,.primary) { color: #050A0F; }
:root[data-visual-theme="high"] {
  --bg: #050A0F !important;
  --surface: #0C1622 !important;
  --surface-raised: #0C1622 !important;
  --text: #F0F6FC !important;
  --muted: #D0DCE6 !important;
  --accent: #00F0FF !important;
  --accent-strong: #00E676 !important;
  --line: #00F0FF55 !important;
}
:root[data-visual-theme="high"] :is(html,body,main,section,article,.ai-box,.panel) {
  background-color: #050A0F !important;
  color: #F0F6FC !important;
}
:root[data-visual-theme="high"] :is(article,.ai-box,.panel,.cards article) {
  background-color: #0C1622 !important;
}
@media (max-width: 760px) {
  .topbar, .site-header { min-height: 56px; padding: 8px 12px; flex-wrap: wrap; }
  .topbar nav, .site-header nav { flex-wrap: wrap; gap: 4px; }
  .topbar nav a, .site-header nav a { padding: 6px 7px; font-size: .82rem; }
}

/* CONTRASTE ABSOLUTO — carregado por último em todas as páginas */
:root{--text:#f0f6fc!important;--muted:#8b9bb4!important;--line:rgba(0,240,255,.3)!important}
html,body{color:#f0f6fc}
body :is(input,select,textarea){
 color:#f0f6fc!important;background:#0c1622!important;
 border:1px solid rgba(0,240,255,.3)!important;opacity:1!important;
}
body :is(input,textarea)::placeholder{color:#8b9bb4!important;opacity:1!important}
body select option{color:#f0f6fc!important;background:#0c1622!important}
body :is(button,.button,.secondary,.city-result,.city-results button){
 color:#f0f6fc;
}
body :is(button,.button,.secondary):disabled,body [aria-disabled="true"]{
 color:#f0f6fc!important;background:#10202e!important;
 border:1px solid rgba(0,240,255,.3)!important;opacity:1!important;
}
body :is(.muted,.coords-line,.updated-stamp,.admin-muted,.lead,.station-lead,.status,.detail-grid span,.metric-card>span,.metric-card small,.temporal-metrics span){
 color:#8b9bb4!important;
}
body :is(h1,h2,h3,h4,h5,h6,strong,b,legend,output,.feature-value,.metric-card>strong){color:#f0f6fc}
body :is(.city-result,.city-results button,.target-species-control select){
 color:#f0f6fc!important;background:#0c1622!important;border:1px solid rgba(0,240,255,.3)!important;
}
body :is(.modal,.dialog,[role="dialog"],.modal-content){color:#f0f6fc}
body :is(.modal,.dialog,[role="dialog"],.modal-content) :is(p,small,label){color:#8b9bb4!important}
