:root {
  color-scheme: light dark;
  --bg: #edf2f5;
  --panel: #ffffff;
  --panel-soft: #f6f8fa;
  --text: #16232d;
  --muted: #5c6d78;
  --border: #cfdae1;
  --accent: #0d6278;
  --accent-soft: #dceff4;
  --alert: #8a5a00;
  --alert-soft: #fff0cc;
  --sun: #d28a00;
  --night: #8b9daa;
  --precip: #287a9d;
  --lightning: #b87900;
  --shadow: 0 5px 16px rgb(19 40 54 / 7%);
}

:root[data-theme='dark'] {
  --bg: #11181d;
  --panel: #19242b;
  --panel-soft: #202d35;
  --text: #edf5f7;
  --muted: #a8bac3;
  --border: #344852;
  --accent: #67c3d9;
  --accent-soft: #173945;
  --alert: #ffd071;
  --alert-soft: #443510;
  --sun: #ffd166;
  --night: #c0d0d8;
  --precip: #70b9d5;
  --lightning: #ffd166;
  --shadow: none;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --bg: #11181d;
    --panel: #19242b;
    --panel-soft: #202d35;
    --text: #edf5f7;
    --muted: #a8bac3;
    --border: #344852;
    --accent: #67c3d9;
    --accent-soft: #173945;
    --alert: #ffd071;
    --alert-soft: #443510;
    --sun: #ffd166;
    --night: #c0d0d8;
    --precip: #70b9d5;
    --lightning: #ffd166;
    --shadow: none;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.42;
}
a { color: inherit; }
button, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .45; }

.app-shell {
  width: min(1800px, calc(100% - clamp(12px, 2vw, 28px)));
  margin: 0 auto;
  padding: 12px 0 24px;
}
.topbar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-bottom: 10px;
}
.brand-block { min-width: 0; }
.brand { font-weight: 800; font-size: 1.35rem; letter-spacing: .01em; }
.tagline, .data-age, .section-note, .source-line, footer { color: var(--muted); }
.tagline { font-size: .82rem; }
.top-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.data-age { font-size: .78rem; white-space: nowrap; }

select, button {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px 8px;
  background: var(--panel);
  color: var(--text);
}
.menu-button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .8rem;
  font-weight: 700;
}
.menu-ellipsis { letter-spacing: .08em; color: var(--muted); }
.utility-menu { position: relative; }
.utility-menu-panel {
  position: absolute;
  z-index: 1100;
  top: calc(100% + 6px);
  right: 0;
  width: 190px;
  padding: 5px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--panel);
  box-shadow: 0 12px 30px rgb(0 0 0 / 18%);
}
.utility-menu-panel button,
.utility-menu-panel a {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 6px;
  padding: 8px 9px;
  text-align: left;
  background: transparent;
  color: var(--text);
  font-size: .82rem;
  text-decoration: none;
  box-sizing: border-box;
}
.utility-menu-panel button:hover,
.utility-menu-panel button:focus-visible,
.utility-menu-panel a:hover,
.utility-menu-panel a:focus-visible { background: var(--accent-soft); color: var(--accent); }

.card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 11px;
  box-shadow: var(--shadow);
  padding: clamp(10px, 1vw, 15px);
}
.site-context-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(230px, .65fr);
  gap: 10px;
  margin-bottom: 10px;
}
.location-card { min-width: 0; }
.location-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.briefing-print-button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 3px 7px;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 720;
}
.briefing-print-button:hover,
.briefing-print-button:focus-visible {
  color: var(--accent);
  border-color: var(--border);
  background: var(--panel);
}
.briefing-print-button svg { flex: 0 0 auto; }
.overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: 10px;
  margin-bottom: 10px;
}
.forecast-card, .extended-card, .profile-card { margin-bottom: 10px; }
.discussion-card { margin-bottom: 0; }
.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; font-weight: 800; }
h1 { margin: 3px 0 2px; font-size: clamp(1.55rem, 2.6vw, 2.55rem); line-height: 1.08; }
h2 { margin: 0; font-size: 1rem; }
h3 { margin: 0; font-size: .8rem; }
p { margin: 6px 0 0; }
.pill-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
.pill { background: var(--panel-soft); border: 1px solid var(--border); border-radius: 999px; padding: 5px 8px; font-size: .76rem; color: var(--muted); }
.location-alerts-row { display: flex; margin-top: 9px; }
.location-alerts-row.hidden { display: none; }
.location-alerts-button {
  min-height: 28px;
  padding: 4px 8px;
  color: var(--alert);
  background: var(--alert-soft);
  border: 1px solid var(--alert);
  font-size: .76rem;
  font-weight: 800;
}
.location-alerts-button.unavailable { color: var(--muted); background: var(--panel-soft); border-color: var(--border); font-weight: 700; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.profile-heading, .forecast-heading { align-items: flex-start; }
.tag { border-radius: 999px; padding: 3px 7px; background: var(--accent-soft); color: var(--accent); font-size: .68rem; font-weight: 700; }
.primary-value { font-size: clamp(1.25rem, 2.2vw, 1.9rem); font-weight: 800; margin: 5px 0 8px; }
.metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.metric { padding: 7px 8px; background: var(--panel-soft); border-radius: 7px; min-width: 0; }
.metric-label { color: var(--muted); font-size: .68rem; }
.metric-value { min-height: 1.18em; font-size: .91rem; font-weight: 720; margin-top: 2px; overflow-wrap: anywhere; }
.summary-range-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 8px;
}
.summary-column-heading {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding-bottom: 1px;
}
.summary-category {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  padding: 4px 2px 0;
}
.summary-value {
  min-width: 0;
  padding: 7px 8px;
  background: var(--panel-soft);
  border-radius: 7px;
  text-align: center;
  font-size: .92rem;
  font-weight: 720;
  min-height: 1.18em;
  overflow-wrap: anywhere;
}
.summary-observed {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  margin-top: 8px;
  padding: 8px;
  background: var(--panel-soft);
  border-radius: 7px;
}
.summary-observed-label { color: var(--muted); font-size: .72rem; font-weight: 700; }
.summary-observed-value { text-align: right; font-size: .92rem; font-weight: 720; }
.source-line { margin-top: 8px; font-size: .73rem; }
.day-times { display: grid; gap: 6px; }
.day-time-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 7px 8px; background: var(--panel-soft); border-radius: 7px; }
.day-time-row span { color: var(--muted); font-size: .74rem; }
.day-time-row strong { font-size: .94rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.raw-report {
  margin: 8px 0 0;
  padding: 8px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--panel-soft);
  border: 1px solid var(--border);
  border-radius: 7px;
  color: var(--text);
  font: 0.73rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.observation-taf-row { display: flex; justify-content: flex-end; margin-top: 7px; }
.observation-taf-row.hidden { display: none; }
.observation-taf-button {
  min-height: 28px;
  padding: 3px 7px;
  border-color: transparent;
  background: transparent;
  color: var(--accent);
  font-size: .74rem;
  font-weight: 720;
}
.observation-taf-button:hover,
.observation-taf-button:focus-visible { border-color: var(--border); background: var(--accent-soft); }
.section-note { margin: 3px 0 8px; font-size: .74rem; }
.radar-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: var(--accent-soft);
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 8px;
  padding: 6px 9px;
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap;
}
.radar-link:hover, .radar-link:focus-visible { background: var(--accent); color: var(--panel); }

.outlook-heading { justify-content: flex-start; }
.outlook-tabs { display: inline-flex; gap: 5px; }
.outlook-tab {
  min-height: 34px;
  padding: 6px 10px;
  font-size: .78rem;
  font-weight: 760;
  background: var(--panel);
}
.outlook-tab.active {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--panel);
}
.outlook-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.weather-strip {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--panel-soft);
  scrollbar-width: thin;
}
.weather-tile {
  position: relative;
  flex: 1 0 118px;
  min-height: 126px;
  padding: 8px 7px;
  border-right: 1px solid var(--border);
  scroll-snap-align: start;
  background: var(--panel-soft);
  text-align: center;
  outline: none;
  cursor: pointer;
}
.weather-tile:last-child { border-right: 0; }
.weather-tile:hover, .weather-tile:focus-visible { background: var(--accent-soft); box-shadow: inset 0 0 0 2px var(--accent); }
.weather-time { font-size: .72rem; color: var(--muted); font-weight: 750; white-space: nowrap; }
.weather-icon { height: 43px; margin: 7px auto 4px; display: grid; place-items: center; }
.weather-symbol { width: 54px; height: 42px; overflow: visible; }
.weather-symbol .sun-mark { color: var(--sun); }
.weather-symbol .night-mark { color: var(--night); }
.weather-symbol .cloud-mark { color: var(--muted); }
.weather-symbol .precip-mark { color: var(--precip); }
.weather-symbol .lightning-mark { color: var(--lightning); }
.weather-temperature { font-size: 1.05rem; font-weight: 800; }
.weather-wind { color: var(--muted); font-size: .69rem; margin-top: 3px; white-space: nowrap; }
.extended-strip .weather-tile { flex-basis: 142px; min-height: 138px; }
.day-high-low { font-size: .78rem; font-weight: 760; line-height: 1.3; }
.weather-popover,
.utility-popover {
  position: fixed;
  z-index: 1200;
  width: min(390px, calc(100vw - 16px));
  max-height: min(520px, calc(100vh - 16px));
  overflow: auto;
  background: var(--panel);
  color: var(--text);
  border: 1px solid var(--accent);
  border-radius: 10px;
  box-shadow: 0 16px 42px rgb(0 0 0 / 24%);
  padding: 11px 12px;
  font-size: .8rem;
}
.weather-popover strong { display: block; margin-bottom: 6px; }
.weather-popover p { margin: 4px 0 0; color: var(--muted); }
.weather-popover.alerts-popover { width: min(560px, calc(100vw - 16px)); }
.alerts-popover .active-alert-item { padding: 9px 0; border-top: 1px solid var(--border); }
.alerts-popover .active-alert-item:first-of-type { border-top: 0; padding-top: 2px; }
.alerts-popover .active-alert-event { color: var(--alert); font-weight: 850; font-size: .86rem; }
.alerts-popover .active-alert-meta { margin-top: 2px; color: var(--muted); font-size: .72rem; }
.alerts-popover .active-alert-headline { margin-top: 6px; color: var(--text); font-weight: 760; }
.alerts-popover .active-alert-description,
.alerts-popover .active-alert-instruction { margin-top: 7px; color: var(--text); white-space: pre-wrap; line-height: 1.42; }
.alerts-popover .active-alert-instruction { padding-top: 7px; border-top: 1px solid var(--border); }
.alerts-popover .active-alert-source { margin-top: 7px; color: var(--muted); font-size: .7rem; }
.weather-popover.taf-popover { width: min(470px, calc(100vw - 16px)); }
.taf-popover .taf-meta { margin: 2px 0 8px; color: var(--muted); font-size: .73rem; }
.taf-popover .taf-period { padding: 7px 0; border-top: 1px solid var(--border); }
.taf-popover .taf-period:first-of-type { border-top: 0; }
.taf-popover .taf-period-heading { color: var(--text); font-weight: 800; }
.taf-popover .taf-period-line { margin-top: 2px; color: var(--text); }
.taf-popover .taf-raw-label { margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--border); color: var(--text); font-weight: 800; }
.taf-popover .taf-raw {
  margin: 4px 0 0;
  color: var(--text);
  font: 0.73rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.utility-popover { width: min(520px, calc(100vw - 16px)); }
.utility-popover-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.utility-popover-heading h2 { color: var(--accent); }
.icon-button { width: 34px; height: 34px; padding: 0; font-size: 1.25rem; line-height: 1; }
.utility-panel { min-width: 0; }
.utility-note { margin-top: 9px; margin-bottom: 0; }

.profile-navigation { display: grid; grid-template-columns: auto minmax(130px, auto) auto; align-items: center; gap: 6px; }
.profile-navigation button { width: 32px; height: 32px; padding: 0; font-size: 1.25rem; line-height: 1; }
.profile-navigation span { color: var(--muted); font-size: .72rem; text-align: center; white-space: nowrap; }
.profile-pages {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  padding-bottom: 3px;
}
.profile-page {
  flex: 0 0 min(100%, 520px);
  min-width: 0;
  scroll-snap-align: start;
}
.profile-page-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  background: var(--accent-soft);
  border: 1px solid var(--border);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  padding: 6px 8px;
}
.profile-page-heading h3 { font-size: .88rem; color: var(--accent); }
.profile-page-heading span { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; }
.profile-table-wrap { border-radius: 0 0 8px 8px; }
.profile-table { width: 100%; min-width: 455px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.profile-table th, .profile-table td { padding: 4px 5px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; font-size: .7rem; }
.profile-table th:first-child, .profile-table td:first-child { text-align: left; }
.profile-table th { position: sticky; top: 0; background: var(--panel-soft); color: var(--muted); font-size: .64rem; letter-spacing: .005em; }
.profile-table tbody tr:last-child td { border-bottom: 0; }
.profile-table tbody tr:nth-child(even) { background: var(--panel-soft); }
.profile-method { margin-top: 7px; line-height: 1.45; }
.cloud-definition { margin-top: 7px; }

.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.settings-grid label { display: grid; gap: 4px; color: var(--muted); font-size: .74rem; }
.settings-grid select, .settings-grid input { width: 100%; min-height: 36px; box-sizing: border-box; }
.settings-grid input { border: 1px solid var(--border); border-radius: 7px; background: var(--panel); color: var(--text); padding: 7px 8px; font: inherit; }
.settings-span { grid-column: 1 / -1; }
.site-settings { margin: 0 0 12px; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--border); }
.site-settings legend { padding: 0; margin: 0 0 8px; color: var(--text); font-size: .8rem; font-weight: 750; }
.settings-actions { display: flex; align-items: center; gap: 9px; margin-top: 9px; }
.settings-actions button { min-height: 34px; }
.settings-status { color: var(--muted); font-size: .72rem; }
.settings-status.error { color: var(--alert); font-weight: 700; }
.settings-reset-actions { justify-content: flex-end; padding-top: 2px; }
.data-age.refreshing::before, .data-age.loading::before {
  content: '';
  display: inline-block;
  width: .75em;
  height: .75em;
  margin-right: .45em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -.08em;
  animation: memorialwx-spin .8s linear infinite;
}
@keyframes memorialwx-spin { to { transform: rotate(360deg); } }
.definition-list { display: grid; grid-template-columns: minmax(105px, .42fr) minmax(0, 1fr); gap: 6px 10px; margin: 0; }
.definition-list dt { color: var(--muted); font-size: .74rem; font-weight: 700; }
.definition-list dd { margin: 0; font-size: .8rem; overflow-wrap: anywhere; }
.source-links { display: grid; gap: 7px; }
.source-links a { display: block; width: fit-content; max-width: 100%; color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.source-links a:hover, .source-links a:focus-visible { text-decoration-thickness: 2px; }
.source-links strong, .source-links span { display: block; }
.source-links strong { font-size: .8rem; }
.source-links span { color: var(--muted); font-size: .72rem; margin-top: 1px; text-decoration: none; }

.discussion-text {
  margin: 0;
  padding: 8px 9px;
  background: var(--panel-soft);
  border: 1px solid var(--border);
  border-radius: 7px;
  color: var(--text);
  font-size: .82rem;
  line-height: 1.48;
  overflow-wrap: anywhere;
}
.discussion-text p { margin: 0 0 .72em; }
.discussion-text p:last-child { margin-bottom: 0; }

.alert { padding: 9px 11px; border: 1px solid var(--alert); background: var(--alert-soft); border-radius: 8px; margin-bottom: 10px; color: var(--text); }
.empty-state { color: var(--muted); font-size: .82rem; text-align: left !important; padding: 9px; }
.hidden { display: none !important; }
footer { text-align: center; font-size: .72rem; padding: 16px 6px 0; }
.copyright { margin-top: 4px; color: var(--text); font-weight: 650; }

@media (max-width: 1050px) {
  .site-context-grid { grid-template-columns: minmax(0, 1.6fr) minmax(220px, .7fr); }
  .overview-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
}

@media (max-width: 720px) {
  .app-shell { width: calc(100% - 10px); padding-top: 7px; }
  .topbar { align-items: flex-start; }
  .top-actions { flex-wrap: wrap; gap: 7px; }
  .data-age { white-space: normal; text-align: right; }
  .site-context-grid, .overview-grid { grid-template-columns: 1fr; gap: 7px; margin-bottom: 7px; }
  .forecast-card, .extended-card, .profile-card { margin-bottom: 7px; }
  .card { padding: 9px; border-radius: 9px; }
  .section-heading.profile-heading, .forecast-heading { flex-direction: column; }
  .profile-navigation { width: 100%; grid-template-columns: auto 1fr auto; }
  .weather-tile { flex-basis: 112px; min-height: 123px; }
  .extended-strip .weather-tile { flex-basis: 136px; }
  .profile-page { flex-basis: min(100%, 500px); }
  .profile-table th, .profile-table td { padding: 4px; font-size: .68rem; }
  .profile-page-heading { align-items: flex-start; flex-direction: column; gap: 1px; }
  .utility-popover, .weather-popover { max-height: calc(100vh - 12px); }
}

@media (max-width: 440px) {
  .tagline { font-size: .74rem; }
  .topbar { gap: 8px; }
  .top-actions { flex-direction: column-reverse; align-items: flex-end; }
  .menu-button span:first-child { display: none; }
  .menu-button { min-width: 40px; justify-content: center; }
  .metric-grid { grid-template-columns: 1fr; }
  .settings-grid, .definition-list { grid-template-columns: 1fr; }
  .settings-span { grid-column: auto; }
  .definition-list dd { margin-bottom: 3px; }
  .weather-popover, .utility-popover { width: calc(100vw - 10px); }
}

/* Profile controls and print output */
.menu-ellipsis { letter-spacing: normal; font-size: 1.05em; line-height: 1; }
.profile-page-heading { align-items: center; }
.profile-page-heading h3 { min-width: 0; }
.profile-print-button {
  flex: 0 0 auto;
  width: 30px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
}
.profile-print-button:hover,
.profile-print-button:focus-visible {
  color: var(--accent);
  border-color: var(--border);
  background: var(--panel);
}
.print-profile, .print-briefing { display: none; }

@media (max-width: 720px) {
  .profile-page-heading { align-items: center; flex-direction: row; gap: 6px; }
  .profile-page-heading h3 { white-space: normal; }
}

@page {
  size: Letter portrait;
  margin: 0.42in;
}

@media print {
  html, body {
    background: transparent !important;
    color: #000 !important;
  }
  #print-profile,
  #print-profile *,
  #print-briefing,
  #print-briefing * {
    color: #000 !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    -webkit-print-color-adjust: economy;
    print-color-adjust: economy;
  }
  body > :not(#print-profile):not(#print-briefing) { display: none !important; }
  #print-profile {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
    color: #000;
    background: transparent;
    font-family: Arial, Helvetica, sans-serif;
  }
  .print-profile-masthead {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding-bottom: 4pt;
    border-bottom: 1pt solid #000;
    font-size: 10pt;
  }
  .print-profile-masthead strong { font-size: 12pt; }
  .print-profile-metadata {
    margin: 5pt 0 8pt;
    font-size: 7.5pt;
    line-height: 1.3;
  }
  .print-profile .profile-page {
    display: block;
    width: 100%;
    max-width: none;
    break-inside: auto;
  }
  .print-profile .profile-page-heading {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 5pt 6pt;
    background: transparent;
    color: #000;
    border: 1pt solid #000;
    border-bottom: 0;
    border-radius: 0;
  }
  .print-profile .profile-page-heading h3 {
    margin: 0;
    color: #000;
    font-size: 10pt;
    font-weight: 700;
  }
  .print-profile .profile-print-button { display: none !important; }
  .print-profile .table-wrap {
    overflow: visible;
    border: 1pt solid #000;
    border-radius: 0;
  }
  .print-profile .profile-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    color: #000;
  }
  .print-profile .profile-table th,
  .print-profile .profile-table td {
    padding: 2.2pt 3pt;
    border-bottom: .5pt solid #000;
    color: #000;
    background: transparent;
    font-size: 7.5pt;
  }
  .print-profile .profile-table th {
    position: static;
    font-size: 7pt;
    font-weight: 700;
    border-bottom: .8pt solid #000;
  }
  .print-profile .profile-table tr { break-inside: avoid; }

  #print-briefing {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
    color: #000;
    background: transparent;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8.5pt;
    line-height: 1.3;
  }
  .print-briefing-masthead {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12pt;
    margin-bottom: 8pt;
    padding-bottom: 4pt;
    border-bottom: .8pt solid #000;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-briefing-identity { display: flex; align-items: baseline; gap: 4pt; }
  .print-briefing-identity strong { font-size: 13pt; }
  .print-briefing-identity span { font-size: 9pt; font-weight: 700; }
  .print-briefing-updated { font-size: 8pt; white-space: nowrap; }

  .print-briefing .site-context-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(0, .65fr);
    gap: 12pt;
    margin-bottom: 10pt;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-briefing .overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    gap: 14pt;
    margin-bottom: 10pt;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-briefing .card {
    margin: 0 0 10pt;
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .print-briefing .site-context-grid .card,
  .print-briefing .overview-grid .card { margin-bottom: 0; }
  .print-briefing .location-card,
  .print-briefing .day-card,
  .print-briefing #observation-card,
  .print-briefing .summary-card {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-briefing .location-heading { display: block; }
  .print-briefing .briefing-print-button { display: none !important; }
  .print-briefing .location-alerts-row { display: none !important; }
  .print-briefing .print-active-alerts-card { margin-bottom: 10pt; }
  .print-briefing .print-active-alert-item { padding: 5pt 0; border-top: .6pt solid #888; break-inside: avoid; page-break-inside: avoid; }
  .print-briefing .print-active-alert-item:first-of-type { border-top: 0; }
  .print-briefing .print-active-alert-event { font-size: 9pt; font-weight: 800; }
  .print-briefing .print-active-alert-meta { margin-top: 1pt; font-size: 7.5pt; }
  .print-briefing .print-active-alert-headline { margin-top: 3pt; font-size: 8pt; font-weight: 700; }
  .print-briefing .print-active-alert-description,
  .print-briefing .print-active-alert-instruction { margin-top: 4pt; font-size: 7.5pt; white-space: pre-wrap; line-height: 1.3; }
  .print-briefing .print-active-alert-source { margin-top: 3pt; font-size: 7pt; }
  .print-briefing .eyebrow,
  .print-briefing .metric-label,
  .print-briefing .summary-category,
  .print-briefing .summary-observed-label,
  .print-briefing .day-time-row span,
  .print-briefing .raw-report,
  .print-briefing .source-line,
  .print-briefing .discussion-text p,
  .print-briefing footer { color: #000 !important; }
  .print-briefing h1 { margin: 2pt 0; font-size: 15pt; line-height: 1.08; }
  .print-briefing h2 { margin: 0; font-size: 10pt; }
  .print-briefing .section-heading {
    margin-bottom: 4pt;
    break-after: avoid;
    page-break-after: avoid;
  }

  .print-briefing .pill-row { margin-top: 4pt; gap: 8pt; }
  .print-briefing .pill,
  .print-briefing .tag {
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 8pt;
  }
  .print-briefing .day-times { gap: 2pt; }
  .print-briefing .day-time-row {
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
  }
  .print-briefing .day-time-row span { font-size: 8pt; }
  .print-briefing .day-time-row strong { font-size: 8.5pt; }

  .print-briefing .primary-value { margin: 2pt 0 5pt; font-size: 12pt; }
  .print-briefing .metric-grid {
    gap: 3pt 10pt;
  }
  .print-briefing .metric {
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
  }
  .print-briefing .metric-label { font-size: 7.5pt; }
  .print-briefing .metric-value { font-size: 8.5pt; }

  .print-briefing .summary-range-grid { gap: 2pt 10pt; }
  .print-briefing .summary-column-heading { padding: 0; font-size: 7.5pt; }
  .print-briefing .summary-category { padding: 2pt 0 0; font-size: 7.5pt; }
  .print-briefing .summary-value {
    min-height: 0;
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 8.5pt;
  }
  .print-briefing .summary-observed {
    margin-top: 4pt;
    padding: 3pt 0 0;
    color: #000;
    background: transparent;
    border: 0;
    border-top: .4pt solid #000;
    border-radius: 0;
  }
  .print-briefing .summary-observed-label { font-size: 7.5pt; }
  .print-briefing .summary-observed-value { font-size: 8.5pt; }
  .print-briefing .source-line { margin-top: 4pt; font-size: 8pt; }

  .print-briefing .observation-taf-row { display: none !important; }
  .print-briefing .print-taf-card { break-inside: avoid; page-break-inside: avoid; }
  .print-briefing .print-taf-meta { margin: 2pt 0 5pt; font-size: 8pt; color: #000; }
  .print-briefing .print-taf-period { padding: 3pt 0; border-top: .5pt solid #bbb; }
  .print-briefing .print-taf-period-heading { font-size: 8.5pt; font-weight: 700; }
  .print-briefing .print-taf-period-line { margin-top: 1pt; font-size: 8pt; }
  .print-briefing .print-taf-raw-label { margin-top: 4pt; font-size: 8pt; font-weight: 700; }
  .print-briefing .print-taf-raw { margin: 2pt 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 7.5pt/1.25 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #000; }
  .print-briefing .raw-report {
    margin-top: 5pt;
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-family: Consolas, 'Courier New', monospace;
    font-size: 9pt;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
  }

  .print-briefing .forecast-heading { align-items: baseline; }
  .print-briefing .radar-link {
    padding: 0;
    color: #000;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 8pt;
    text-decoration: none;
  }
  .print-briefing .print-hourly-card {
    padding: 0;
    border: 0;
    break-inside: auto;
    page-break-inside: auto;
  }
  .print-briefing .print-hourly-heading {
    padding: 0 0 3pt;
    margin-bottom: 0;
    border-bottom: .6pt solid #000;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-briefing .print-hourly-heading h2 { font-size: 10pt; }
  .print-hourly-list { display: block; }
  .print-hourly-period {
    display: grid;
    grid-template-columns: 70pt minmax(140pt, 1.55fr) minmax(62pt, .72fr) minmax(82pt, .9fr) minmax(70pt, .78fr);
    grid-template-rows: auto auto;
    column-gap: 10pt;
    row-gap: 2pt;
    align-items: start;
    padding: 5pt 0;
    color: #000;
    background: transparent;
    border: 0;
    border-bottom: .4pt solid #000;
    border-radius: 0;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-hourly-time {
    grid-column: 1;
    grid-row: 1 / span 2;
    font-size: 9pt;
    font-weight: 800;
    white-space: nowrap;
  }
  .print-hourly-statement {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    font-size: 8.5pt;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }
  .print-hourly-probabilities {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    color: #000;
    font-size: 7.5pt;
    line-height: 1.2;
  }
  .print-hourly-detail { min-width: 0; }
  .print-hourly-temp { grid-column: 3; grid-row: 1; }
  .print-hourly-rh { grid-column: 3; grid-row: 2; }
  .print-hourly-wind { grid-column: 4; grid-row: 1; }
  .print-hourly-vis { grid-column: 4; grid-row: 2; }
  .print-hourly-gust { grid-column: 5; grid-row: 1; }
  .print-hourly-sky { grid-column: 5; grid-row: 2; }
  .print-hourly-detail-label {
    display: inline;
    margin-right: 3pt;
    color: #000;
    font-size: 7pt;
    font-weight: 800;
    text-transform: uppercase;
  }
  .print-hourly-detail-value {
    display: inline;
    color: #000;
    font-size: 8pt;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  .print-briefing .discussion-card {
    margin-top: 2pt;
    padding: 0;
    border: 0;
    break-inside: auto;
    page-break-inside: auto;
  }
  .print-briefing .discussion-card .section-heading {
    padding-top: 2pt;
    border: 0;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-briefing .discussion-text {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    line-height: 1.4;
  }
  .print-briefing .discussion-text p {
    margin: 6pt 0 0;
    orphans: 3;
    widows: 3;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-briefing footer {
    padding: 8pt 0 0;
    font-size: 8pt;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-briefing .copyright { margin-top: 2pt; color: #000 !important; }

}



/* Changelog and support pages */
.page-shell { max-width: 980px; }
.page-topbar { margin-bottom: 12px; }
.brand-link { color: var(--text); text-decoration: none; }
.page-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.page-nav a { color: var(--accent); text-decoration: none; font-size: .8rem; font-weight: 700; padding: 6px 8px; border-radius: 7px; }
.page-nav a:hover, .page-nav a:focus-visible { background: var(--accent-soft); }
.page-card h1 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); }
.page-intro { max-width: 760px; color: var(--muted); line-height: 1.5; margin-bottom: 16px; }
.support-form { margin-top: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.form-grid label { display: grid; gap: 5px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.form-grid input, .form-grid textarea, .form-grid select { width: 100%; box-sizing: border-box; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); color: var(--text); padding: 8px 9px; font: inherit; }
.form-grid textarea { resize: vertical; min-height: 180px; line-height: 1.45; }
.form-span { grid-column: 1 / -1; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-actions { display: flex; align-items: center; gap: 10px; margin-top: 12px; min-height: 38px; }
.form-actions button { min-width: 100px; font-weight: 750; }
.form-actions button:disabled { opacity: .6; }
.form-status { color: var(--muted); font-size: .8rem; }
.form-status.success { color: var(--accent); font-weight: 700; }
.form-status.error { color: var(--alert); font-weight: 700; }
.changelog-content { display: grid; gap: 5px; line-height: 1.5; }
.changelog-content h2 { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--border); font-size: 1.1rem; }
.changelog-content h2:first-child { margin-top: 2px; padding-top: 0; border-top: 0; }
.changelog-content h3 { margin-top: 10px; color: var(--accent); font-size: .86rem; }
.changelog-content ul { margin: 2px 0 8px 20px; padding: 0; }
.changelog-content li { margin: 4px 0; }
.changelog-content p { margin: 5px 0; color: var(--muted); }
@media (max-width: 720px) {
  .page-topbar { align-items: flex-start; }
  .page-nav { justify-content: flex-start; }
  .form-grid { grid-template-columns: 1fr; }
  .form-span { grid-column: auto; }
  .form-actions { align-items: flex-start; flex-direction: column; }
}
