/* Farol visual standard. Presentation only: no operational threshold changes.
   Source Sans 3: SIL Open Font License; hosted locally, no third-party requests.
   Brand blue is informational. Signal colors always retain written status labels. */
@font-face{
  font-family:"Source Sans 3";font-style:normal;font-weight:400 700;
  font-display:swap;src:url("/assets/source-sans-3-latin.woff2") format("woff2");
}
:root{
  --font-ui:"Source Sans 3","Segoe UI",Arial,sans-serif;
  --navy-950:#102538;--navy-900:#17324d;--navy-800:#25465f;
  --river-700:#24577c;--river-600:#306b96;--river-100:#eaf1f7;
  --ink:#1d2935;--muted:#536372;--line:#d7dee5;
  --paper:#ffffff;--canvas:#f3f5f7;--cream:#f3f5f7;
  --green:#18734a;--green-soft:#edf6f0;
  --yellow:#745600;--yellow-soft:#fff7da;
  --orange:#a44a0a;--orange-soft:#fff0e5;
  --red:#b52d37;--red-soft:#fceef0;--black:#202831;
  --flag-green:#18734a;--flag-yellow:#edbf32;--flag-orange:#c15d16;
  --flag-red:#b52d37;--flag-black:#202831;--flag-unknown:#637282;
  --gold:#947000;--lime:#d2e3ef;--lime-dark:#24577c;
  --shadow:none;--shadow-soft:none;
}
body,button,input,select,textarea,svg text{font-family:var(--font-ui)}
body{font-variant-numeric:lining-nums;}
button,input,select,textarea{font-size:inherit}
h1,h2,h3,h4{font-family:var(--font-ui);font-weight:600;letter-spacing:-.015em}
strong,b{font-weight:600}
.farol-rebrand h1,.farol-rebrand h2,.farol-rebrand h3,.farol-rebrand h4{letter-spacing:-.015em;font-weight:600}
.farol-rebrand.classic-cover .masthead-copy h1{
  font-family:var(--font-ui);font-weight:600;letter-spacing:-.025em;
  font-size:clamp(3rem,6.2vw,5.5rem);line-height:.98;
}
.classic-cover .masthead-copy>p{font-family:var(--font-ui);font-style:normal;font-weight:400;color:#f5f7fa;line-height:1.4}
.classic-cover .masthead-copy>small{color:#d2e3ef;font-weight:600;letter-spacing:.09em}
.classic-cover .masthead-copy>span{color:#e3eaf0;line-height:1.6}
.classic-cover .identity-copy strong{font-weight:600}
.classic-cover .cover-flag{border-radius:6px;box-shadow:none}
.classic-cover .cover-flag strong{font-size:17px;letter-spacing:.025em;font-weight:600}
.classic-cover .cover-flag small{font-size:13px;font-weight:400}
.classic-cover .quick-nav{border-radius:6px}
.classic-cover .quick-nav a{font-size:15px;font-weight:600;letter-spacing:0;border-radius:4px}
.classic-cover .language-switcher{border-radius:6px}
.classic-cover .language-switcher button{border-radius:4px;font-weight:600}
.farol-rebrand .section-label{font-weight:600;letter-spacing:.07em}
.farol-rebrand .kid-decision h2{letter-spacing:-.015em;font-weight:600}
.farol-rebrand .operational-overview .kid-decision{background:var(--navy-900)}
.farol-rebrand .operational-overview .kid-decision.go{background:var(--green)}
.farol-rebrand .operational-overview:has(.kid-service.attention) .kid-decision.go{background:#695313}
.farol-rebrand .operational-overview:has(.kid-service.no) .kid-decision.go{background:var(--orange)}
.farol-rebrand .operational-overview .kid-decision.flood{background:var(--black)}
.farol-rebrand .operational-overview .kid-decision.checking{background:#695313}
.farol-rebrand .operational-overview .kid-decision.wait{background:var(--navy-900)}
.farol-rebrand .kid-freshness{font-weight:600;letter-spacing:.035em}
.farol-rebrand .kid-now-card strong{font-weight:600;letter-spacing:-.015em;font-variant-numeric:tabular-nums lining-nums}
/* The number, written flag, and animated flag share one snapshot state.
   Yellow uses a darker text tone for contrast, not the flag's light fabric. */
.farol-rebrand{--level-ink:var(--muted);--level-accent:var(--flag-unknown)}
.farol-rebrand[data-flag="VERDE"]{--level-ink:var(--green);--level-accent:var(--flag-green)}
.farol-rebrand[data-flag="AMARELA"]{--level-ink:var(--yellow);--level-accent:var(--flag-yellow)}
.farol-rebrand[data-flag="LARANJA"]{--level-ink:var(--orange);--level-accent:var(--flag-orange)}
.farol-rebrand[data-flag="VERMELHA"]{--level-ink:var(--red);--level-accent:var(--flag-red)}
.farol-rebrand[data-flag="PRETA"]{--level-ink:var(--black);--level-accent:var(--flag-black)}
.farol-rebrand .operational-overview .kid-now-card.level{padding-left:16px;border-left:4px solid var(--level-accent)}
.farol-rebrand .kid-now-card.level strong,.farol-rebrand .public-flag-label{color:var(--level-ink)}
.farol-rebrand .public-flag-label{font-size:12px!important;font-weight:600;text-transform:none;letter-spacing:0}
.farol-rebrand .public-flag-label:before{width:10px;height:10px;border-radius:2px}
.farol-rebrand .kid-now-card.movement strong{color:var(--navy-900)}
.farol-rebrand .operational-overview .kid-service{border-radius:6px;border-left-width:3px;background:#f5f7f9}
.farol-rebrand .operational-overview .kid-service.yes{border-color:#b7d5c3;border-left-color:var(--green);background:var(--green-soft)}
.farol-rebrand .kid-service.yes .kid-service-status{color:var(--green)}
.farol-rebrand .operational-overview .kid-service.attention{border-color:#dcc776;border-left-color:var(--yellow);background:var(--yellow-soft)}
.farol-rebrand .kid-service.attention .kid-service-status{color:var(--yellow)}
.farol-rebrand .operational-overview .kid-service.no{border-color:#dfabb0;border-left-color:var(--red);background:var(--red-soft)}
.farol-rebrand .kid-service.no .kid-service-status{color:var(--red)}
.farol-rebrand .kid-service b{font-weight:600}
.farol-rebrand #freshness.ok{background:var(--green-soft);color:var(--green);border:1px solid #b7d5c3;border-left:4px solid var(--green)}
.farol-rebrand #freshness.warn,.farol-rebrand #freshness.stale{background:var(--yellow-soft);color:var(--yellow);border:1px solid #dcc776;border-left:4px solid var(--yellow)}
.farol-rebrand #freshness.error{background:var(--red-soft);color:var(--red);border:1px solid #dfabb0;border-left:4px solid var(--red)}
.farol-rebrand .planning-day-stage>strong,.farol-rebrand .kid-peak b{font-variant-numeric:tabular-nums lining-nums;font-weight:600;letter-spacing:0}
.farol-rebrand .planning-day[data-evidence="conditional"]{border-left:3px solid var(--yellow)}
.farol-rebrand .planning-day[data-evidence="conditional"] .planning-day-stage>strong{color:var(--navy-900)}
.farol-rebrand .planning-day-status>strong{font-weight:600}
.farol-rebrand .planning-confidence{color:var(--muted);font-size:13px}
.farol-rebrand .planning-day-detail summary{color:var(--river-700);font-weight:600}
.farol-rebrand .technical-portal>summary strong{color:var(--ink);font-weight:600}
.farol-rebrand .technical-portal>summary small{color:var(--muted)}
.farol-rebrand .experimental-force-banner>summary small{color:var(--yellow);font-size:12px}
.farol-rebrand .experimental-force-guard{background:var(--yellow-soft);color:var(--yellow)}
.farol-rebrand .commercial{background:var(--river-100);color:var(--navy-900)}
.farol-rebrand .whatsapp-inline{background:var(--navy-900);font-weight:600}
.farol-rebrand .panel,.farol-rebrand .technical-portal,.farol-rebrand .planning-day{box-shadow:none}
.farol-rebrand .technical-stack :is(.forecast-item,.reopening-card,.forcing-component,.fch-cell,.port-peak,.holiday-calendar-card){background-image:none;box-shadow:none}
.farol-rebrand :is(.level-number,.port-peak-central,.peak-value b,.fch-cell b,.forecast-item>b,.reopening-card b){font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em;font-weight:600}
/* Companion pages use the same type and neutral surfaces. */
body:not(.farol-rebrand){background:var(--canvas);color:var(--ink)}
body:not(.farol-rebrand) .card{background:var(--paper);border-radius:10px;box-shadow:none}
body:not(.farol-rebrand) .hero h1{font-family:var(--font-ui);font-weight:600;line-height:1.05;letter-spacing:-.02em}
body:not(.farol-rebrand) .hero{background-color:var(--navy-900)}
:focus-visible{outline:3px solid var(--river-700)!important;outline-offset:4px}
@media(max-width:700px){
  .classic-cover .quick-nav a{font-size:13px}
  .classic-cover .cover-flag strong{font-size:16px}
  .classic-cover .cover-flag small{font-size:12px}
  .farol-rebrand .planning-confidence{font-size:12px}
  .farol-rebrand .operational-overview .kid-now-card.level{padding-left:10px}
}

.model-issue-stamp{margin:0;padding:9px 16px;background:var(--yellow-soft);color:var(--yellow);font-size:12px;border-bottom:1px solid var(--line)}

/* Paired rain / river chart: one time axis, two explicitly separated units. */
.farol-rebrand .river-chart-shell{border-radius:10px;border-color:var(--line);background:#fff;box-shadow:none;padding:12px 8px 4px}
.farol-rebrand .river-weather-summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px 22px;flex-wrap:wrap;margin:18px 0 8px;border-top:1px solid var(--line);padding-top:14px;color:var(--river-700)}
.river-weather-summary strong{font-size:16px;font-weight:600}.river-weather-summary span{font-size:12px;color:var(--muted)}
.farol-rebrand .chart-axis-note{color:var(--muted);letter-spacing:0;font-size:12px}
.farol-rebrand .chart-foot{display:block}.farol-rebrand .chart-caption{margin-top:10px;max-width:none;text-align:left}
.farol-rebrand .chart-legend b{font-weight:400}.farol-rebrand .chart-legend .rain i{width:11px;height:12px;border-radius:1px;background:#477e9d}
.farol-rebrand .chart-legend .future i{height:0;border-top:2px dashed #947000;background:none;border-radius:0}
.farol-rebrand .chart-legend .tail i{height:0;border-top:2px dotted #667985;background:none;border-radius:0}
.farol-rebrand .chart-legend .current i{background:#17324d;border:2px solid #fff;outline:1px solid #17324d;width:8px;height:8px}
.farol-rebrand .rain-chart-source{font-size:12px;color:var(--muted);line-height:1.5;max-width:100%;margin:8px 0 0}
.farol-rebrand .river-chart-tooltip{border-radius:6px;background:#17324d;box-shadow:0 4px 12px #10253826;width:244px;padding:11px 13px}
.farol-rebrand .river-chart-tooltip small{font-size:10px;letter-spacing:.03em}.farol-rebrand .river-chart-tooltip strong{font-size:17px;white-space:normal}
.farol-rebrand .river-chart-tooltip span{font-size:12px;white-space:normal}.farol-rebrand #chartTooltipDetail{font-size:11px;color:#c7d8e5;margin-top:5px}
@media(max-width:560px){.farol-rebrand .river-chart-shell{padding:8px 0 2px}.river-weather-summary strong{font-size:14px}.farol-rebrand .chart-legend{gap:9px 16px}.farol-rebrand .rain-chart-source{font-size:11px}}
