/*
 * briefing/app.css — interfaz ROTORCORE del standalone: acceso (C3D) y, tras iniciar sesión, tres vistas sucesivas
 * (C5.5): formulario → preparación → briefing. Usa las variables de tokens.css.
 * Sin @import ni url() externos (CSP style-src 'self'); sin fuentes remotas; sin estilos en línea (el progreso y los
 * niveles se expresan con atributos data-*). El verde sólo marca confirmaciones de la interfaz y «RAIM OK» (petición
 * del titular, H13); los niveles NOAA usan los colores oficiales de SWPC y siempre van con su texto.
 */
:root {
  --rc-field-bg:   #0d1729;
  --rc-focus:      #83b7ff;
  --rc-shadow:     0 12px 32px rgba(0, 0, 0, 0.35);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
/* `hidden` siempre oculta, aunque la clase del elemento fije su display (botones, rejillas, vistas). */
[hidden] { display: none !important; }

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  line-height: 1.5;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  background:
    radial-gradient(1200px 520px at 15% -10%, rgba(131, 183, 255, 0.10), transparent 60%),
    radial-gradient(900px 420px at 95% 0%, rgba(217, 180, 106, 0.08), transparent 60%),
    var(--rc-bg);
}

.skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--rc-panel-solid);
  color: var(--rc-text);
  padding: 8px 12px;
  border-radius: var(--rc-r-sm);
}
.skip:focus { left: 12px; top: 12px; z-index: 1000; }

/* ─── Cabecera de marca ──────────────────────────────────────────────────── */
.topbar {
  border-bottom: 1px solid var(--rc-border);
  background: rgba(7, 13, 26, 0.75);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.topbar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: center;
  justify-content: space-between;
}
.brand {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 36px;
}
.brand-logo { width: 34px; height: 32px; color: var(--rc-gold); flex: none; }
.wordmark {
  font-family: var(--rc-font-display);
  font-size: 1.55rem;
  letter-spacing: 0.22em;
  line-height: 1;
  display: inline-flex;
  gap: 0.1em;
  padding-top: 2px;
}
.wm-r { color: var(--rc-text); }
.wm-c { color: var(--rc-gold); }
.brand-sub {
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rc-text-dim);
  padding-left: 12px;
  border-left: 1px solid var(--rc-border-strong);
}
.topbar-tag { margin: 0; color: var(--rc-text-dim); font-size: 0.78rem; }

.shell {
  flex: 1;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
  padding: 32px 16px 24px;
  outline: none;
}

.card {
  background: var(--rc-panel-solid);
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-lg);
  padding: 24px 20px;
  box-shadow: var(--rc-shadow);
}
.card[hidden] { display: none; }
.card-auth { border-top: 3px solid var(--rc-gold); }
.eyebrow {
  margin: 0 0 6px;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rc-gold);
}

h1 {
  margin: 0 0 14px;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
h1:focus { outline: none; }

.lead { color: var(--rc-text-dim); margin: -4px 0 18px; font-size: 0.95rem; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.field { margin-bottom: 16px; }
.field label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  font-size: 0.9rem;
}
.field input, .field select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  font: inherit;
  color: var(--rc-text);
  background: var(--rc-field-bg);
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-sm);
}
.field input:focus, .field select:focus { outline: 2px solid var(--rc-focus); outline-offset: 1px; border-color: transparent; }
.field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: var(--rc-danger); }
.field input:disabled, .field select:disabled { opacity: 0.6; }
.mono { font-family: var(--rc-font-mono); font-size: 0.9rem; letter-spacing: 0.01em; }

.help { margin: 6px 0 0; color: var(--rc-text-dim); font-size: 0.85rem; }
.help.spam { margin: -4px 0 16px; }
.field-error {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 6px 0 0;
  color: var(--rc-danger);
  font-size: 0.88rem;
  font-weight: 600;
}

/* Contraseña con control «Mostrar / Ocultar contraseña» */
.pw { display: flex; gap: 8px; align-items: stretch; }
.pw input { flex: 1; min-width: 0; }
.reveal {
  flex: none;
  min-height: 44px;
  padding: 0 10px;
  font: inherit;
  font-size: 0.82rem;
  color: var(--rc-accent);
  background: transparent;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-sm);
  cursor: pointer;
  white-space: nowrap;
}
.reveal:hover { border-color: var(--rc-accent); }
.reveal:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.reveal[aria-pressed="true"] { background: rgba(131, 183, 255, 0.12); }
.reveal:disabled { opacity: 0.6; cursor: progress; }

/* Mensajes generales dentro del formulario: icono + texto (no sólo color) */
.msg:empty { display: none; }
.msg { margin: 0 0 16px; }
.msg-box {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  padding: 12px 14px;
  border-radius: var(--rc-r-sm);
  border: 1px solid var(--rc-border);
  font-size: 0.95rem;
}
.msg-ok { border-color: rgba(60, 207, 136, 0.55); background: rgba(60, 207, 136, 0.08); }
.msg-error { border-color: rgba(255, 107, 107, 0.6); background: rgba(255, 107, 107, 0.08); }
.msg-icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.3em;
  height: 1.3em;
  margin-top: 0.1em;
  border-radius: 50%;
  font-size: 0.8em;
  font-weight: 800;
  line-height: 1;
}
.msg-ok .msg-icon { background: var(--rc-ok); color: #0b1324; }
.msg-error .msg-icon, .field-error .msg-icon { background: var(--rc-danger); color: #0b1324; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  padding: 10px 16px;
  font: inherit;
  font-weight: 600;
  color: var(--rc-text);
  background: transparent;
  border: 1px solid var(--rc-border-strong);
  border-radius: var(--rc-r-sm);
  cursor: pointer;
}
.btn:hover { border-color: var(--rc-accent); }
.btn:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.btn:disabled { cursor: progress; opacity: 0.7; }
.btn-primary { background: var(--rc-accent); border-color: var(--rc-accent); color: var(--rc-accent-ink); font-weight: 700; }
.btn-primary:hover { filter: brightness(1.08); }
.btn-ghost { color: var(--rc-text-dim); }

.links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--rc-border);
}
.link {
  padding: 6px 0;
  font: inherit;
  font-size: 0.93rem;
  color: var(--rc-accent);
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
}
.link:hover { text-decoration: underline; }
.link:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; border-radius: 2px; }

.notice {
  margin: 0 0 18px;
  padding: 10px 12px;
  border: 1px solid var(--rc-border);
  border-left: 3px solid var(--rc-gold);
  border-radius: var(--rc-r-sm);
  color: var(--rc-text-dim);
  font-size: 0.9rem;
}

.foot {
  padding: 16px;
  text-align: center;
  color: var(--rc-text-dim);
  font-size: 0.78rem;
}
.foot p { margin: 0; max-width: 1280px; margin-inline: auto; }

@media (max-width: 479px) {
  /* En pantallas estrechas el control va bajo el campo, alineado a la derecha. */
  .pw { flex-wrap: wrap; }
  .pw input { flex-basis: 100%; }
  .reveal { margin-left: auto; }
  .brand-sub { padding-left: 0; border-left: 0; flex-basis: 100%; }
}

@media (min-width: 640px) {
  .shell { padding-top: 48px; }
  .card { padding: 32px 28px; }
}

@media (prefers-reduced-motion: no-preference) {
  .btn, .reveal { transition: border-color 120ms ease, filter 120ms ease; }
}

[data-slot="expires"] { margin: -8px 0 16px; }
[data-slot="expires"][hidden] { display: none; }

/* Logotipo oficial definido una vez (sprite SVG): nunca ocupa sitio. */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ─── Sesión: una sola vista a la vez (C5.5, H16) ─────────────────────────────────────────────── */
/* La vista de sesión ocupa el ancho de trabajo; la cabecera se alinea con ella. */
.shell:has(.card-wide:not([hidden])) { max-width: 1280px; padding-top: 20px; }
.card-wide { padding: 20px 18px; }

/* Control de cuenta compacto (C5.6): «Account» abre los detalles de sesión y «Sign out»; el aviso de caducidad sólo
   aparece cuando la sesión está a punto de caducar. */
.account-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; margin: 0 0 10px; position: relative; }
.account-bar .session-warning { margin: 0; flex: 1 1 14em; padding: 6px 10px; border: 1px solid var(--rc-warn); border-radius: var(--rc-r-sm); color: var(--rc-warn); font-size: 0.86rem; font-weight: 600; }
.account-bar .session-warning[hidden] { display: none; }
.account { position: relative; }
.account-summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 12px;
  border: 1px solid var(--rc-border-strong); border-radius: var(--rc-r-pill); font-size: 0.86rem; font-weight: 600; color: var(--rc-text);
}
.account-summary::-webkit-details-marker { display: none; }
.account-summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.account-icon { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--rc-text-dim); box-sizing: border-box; flex: none; }
.account[open] > .account-summary { border-color: var(--rc-accent); }
.account-panel {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: min(320px, calc(100vw - 32px));
  padding: 12px 14px; border: 1px solid var(--rc-border-strong); border-radius: var(--rc-r-md); background: var(--rc-panel-solid);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}
.account-panel .session-info { margin: 0 0 4px; }
.account-panel .lead { font-size: 0.9rem; margin: 0; }
.account-panel [data-slot="expires"] { margin: 4px 0 10px; }
.account-panel .btn { width: 100%; min-height: 44px; }
.account-panel .msg { margin: 8px 0 0; }

h2 { margin: 0 0 12px; font-size: 1.12rem; line-height: 1.3; }
h2:focus, h3:focus, summary:focus:not(:focus-visible) { outline: none; }
h3 { margin: 20px 0 8px; font-size: 0.98rem; }
h4 { margin: 12px 0 6px; font-size: 0.9rem; }

.stage[hidden] { display: none; }
.stage-head { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 0 0 12px; }
.stage-head h2 { margin: 0; }
.btn-inline { width: auto; min-height: 44px; }

/* ─── 1 · Formulario ─────────────────────────────────────────────────────────────────────────── */
.stage-form { max-width: 820px; }
.group {
  margin: 0 0 16px;
  padding: 14px 14px 0;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-md);
  background: rgba(13, 23, 41, 0.45);
}
.group legend { padding: 0 6px; font-weight: 700; font-size: 0.9rem; }
.grid-2 { display: grid; grid-template-columns: 1fr; column-gap: 16px; }
.opt { font-weight: 400; color: var(--rc-text-dim); }
.icao { text-transform: uppercase; }
/* Sin la flecha nativa (appearance: none), una lista parece un campo de texto en iPad: se dibuja una propia. */
.field select {
  appearance: none; -webkit-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2395a6c7' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 12px 8px;
}

/* Hora (H1) y duración (H3): dos listas cada una, sin escribir «:»; funcionan con teclado táctil, físico y lector. */
fieldset.field { border: 0; margin: 0 0 16px; padding: 0; min-width: 0; }
fieldset.field legend { padding: 0; margin-bottom: 6px; font-weight: 600; font-size: 0.9rem; }
.time-pair { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.time-part { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 400; }
.field .time-part select { width: 6em; min-width: 6em; padding: 10px 26px 10px 8px; background-position: right 9px center; text-align: center; text-align-last: center; font-size: 1.05rem; }
.time-sep { font-family: var(--rc-font-mono); font-size: 1.2rem; font-weight: 700; color: var(--rc-text-dim); }
.unit { color: var(--rc-text-dim); font-size: 0.9rem; }
.zone-tag {
  display: inline-flex; align-items: center; min-height: 32px; padding: 2px 10px;
  border: 1px solid var(--rc-border-strong); border-radius: var(--rc-r-pill);
  font-family: var(--rc-font-mono); font-size: 0.85rem; font-weight: 600; color: var(--rc-text);
}

/* Paso de revisión (C4.1): la ventana se comprueba antes de solicitar el briefing. */
.review {
  margin: 16px 0;
  padding: 14px;
  border: 1px solid var(--rc-accent);
  border-radius: var(--rc-r-md);
  outline: none;
  background: rgba(131, 183, 255, 0.05);
}
.review[hidden] { display: none; }
.review:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.review h3 { margin-top: 0; }
.review-actions { display: grid; gap: 10px; margin-top: 12px; }
form[data-form="briefing"] > .msg { margin-top: 16px; }

/* Confirmación neutra: informa de que hubo respuesta, no de que sea favorable. */
.msg-info { border-color: rgba(131, 183, 255, 0.55); background: rgba(131, 183, 255, 0.08); }
.msg-info .msg-icon { background: var(--rc-accent); color: #0b1324; }

.window {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 4px 14px;
  margin: 0 0 8px;
  font-size: 0.92rem;
}
.window dt { color: var(--rc-text-dim); }
.window dd { margin: 0; overflow-wrap: anywhere; }

/* ─── 2 · Preparación (H15): etapas reales; la barra avanza por etapas terminadas ─────────────── */
.stage-prep { max-width: 640px; margin: 8px auto 12px; text-align: left; }
.prep-brand { display: flex; align-items: center; gap: 14px; margin: 4px 0 18px; }
.prep-logo { width: 56px; height: 52px; color: var(--rc-gold); flex: none; }
.prep-wordmark { margin: 0; font-size: 2rem; }
.prep-route { margin: -4px 0 14px; color: var(--rc-text-dim); font-size: 0.92rem; overflow-wrap: anywhere; }
.prep-progress {
  position: relative; height: 10px; margin: 0 0 10px; overflow: hidden;
  border-radius: var(--rc-r-pill); background: rgba(139, 158, 192, 0.18); border: 1px solid var(--rc-border);
}
.prep-progress-fill { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--rc-gold); border-radius: inherit; }
.prep-progress[data-done="1"] .prep-progress-fill { width: 20%; }
.prep-progress[data-done="2"] .prep-progress-fill { width: 40%; }
.prep-progress[data-done="3"] .prep-progress-fill { width: 60%; }
.prep-progress[data-done="4"] .prep-progress-fill { width: 80%; }
.prep-progress[data-done="5"] .prep-progress-fill { width: 100%; }
.prep-progress[data-failed="true"] .prep-progress-fill { background: var(--rc-warn); }
.prep-status { margin: 0 0 12px; font-weight: 600; min-height: 1.5em; }
.prep-steps, .prep-substeps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prep-substeps { margin: 8px 0 2px 28px; gap: 4px; font-size: 0.88rem; }
.prep-step { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 8px; align-items: start; }
.prep-step > .prep-substeps { grid-column: 2; }
.prep-text { grid-column: 2; overflow-wrap: anywhere; }
.prep-state { grid-column: 2; color: var(--rc-text-dim); font-size: 0.8rem; }
.prep-mark {
  grid-row: 1 / span 2; width: 18px; height: 18px; margin-top: 2px; border-radius: 50%;
  border: 2px solid var(--rc-border-strong); display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.7rem; font-weight: 800; line-height: 1; color: #0b1324;
}
.prep-step[data-state="active"] > .prep-mark { border-color: var(--rc-gold); border-top-color: transparent; }
.prep-step[data-state="done"] > .prep-mark { background: var(--rc-accent); border-color: var(--rc-accent); }
.prep-step[data-state="done"] > .prep-mark::after { content: "✓"; }
.prep-step[data-state="warn"] > .prep-mark { background: var(--rc-warn); border-color: var(--rc-warn); }
.prep-step[data-state="warn"] > .prep-mark::after { content: "!"; }
.prep-step[data-state="failed"] > .prep-mark { background: var(--rc-danger); border-color: var(--rc-danger); }
.prep-step[data-state="failed"] > .prep-mark::after { content: "×"; }
.prep-step[data-state="pending"] > .prep-text { color: var(--rc-text-dim); }
.prep-step[data-state="active"] > .prep-text { font-weight: 600; }
.prep-error { margin-top: 16px; }
.prep-error[hidden] { display: none; }
.prep-actions { display: grid; gap: 10px; }
.prep-actions [hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .prep-progress-fill { transition: width 240ms ease-out; }
  .prep-step[data-state="active"] > .prep-mark { animation: rc-spin 900ms linear infinite; }
}
@keyframes rc-spin { to { transform: rotate(360deg); } }

/* ─── 3 · Briefing: cabecera compacta, acciones y navegación (H16) ──────────────────────────────── */
.result { outline: none; }
.brief-head {
  display: grid; grid-template-columns: 1fr; gap: 10px 20px; align-items: start;
  padding: 0 0 12px; border-bottom: 1px solid var(--rc-border);
}
.brief-id h2 { margin: 0 0 2px; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-gold); }
.brief-route { margin: 0; font-size: 1.35rem; font-weight: 700; line-height: 1.25; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; }
.brief-icao { font-size: 1.45rem; letter-spacing: 0.04em; }
.brief-arrow { color: var(--rc-text-dim); font-weight: 400; }
.brief-alt { font-size: 0.95rem; font-weight: 500; color: var(--rc-text-dim); }
.brief-window { margin: 4px 0 0; font-size: 0.92rem; overflow-wrap: anywhere; }
.brief-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.brief-actions .btn { width: auto; min-height: 44px; flex: 1 1 auto; }
.export-options { grid-column: 1 / -1; }
.export-options > summary { cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; color: var(--rc-accent); font-size: 0.86rem; font-weight: 600; }
.export-options > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.export-scope { margin: 8px 0 10px; padding: 8px 12px; border: 1px solid var(--rc-border); border-radius: var(--rc-r-sm); display: grid; gap: 2px; }
.export-scope legend { padding: 0 6px; font-size: 0.82rem; font-weight: 600; color: var(--rc-text-dim); }
.export-status { grid-column: 1 / -1; margin: 0; }
.export-status:empty { display: none; }

.result-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 4px;
  padding: 8px 0;
  border-bottom: 1px solid var(--rc-border);
}
.result-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 4px 12px;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-pill);
  color: var(--rc-text);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration: none;
}
.result-nav a:hover { border-color: var(--rc-accent); color: var(--rc-accent); }
.result-nav a:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.result-nav a[aria-current="true"] { border-color: var(--rc-gold); color: var(--rc-gold); }
/* Navegación pegajosa sólo en pantallas anchas y altas (una fila); en móvil envolvería y taparía el contenido. */
@media (min-height: 600px) and (min-width: 900px) {
  .result-nav { position: sticky; top: 0; z-index: 5; background: var(--rc-panel-solid); }
}
/* Destinos de salto: quedan bajo la barra pegajosa si no se reserva su altura (--rc-nav-h, briefing-ui.mjs). */
[data-slot="result"] :is(.brief-section, .source, .aerodrome, .summary, .notam-airport, .notam-item, h2, h3, [id]) { scroll-margin-top: calc(var(--rc-nav-h, 0px) + 12px); }

.brief-section { margin: 18px 0 0; min-width: 0; }
.brief-section > h3, .source-head { margin-top: 0; }
.sources { display: grid; gap: 14px; margin: 14px 0 0; }
.source {
  padding: 12px 14px;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-md);
  background: rgba(13, 23, 41, 0.45);
  min-width: 0;
}
.source-pending, .source-nodata { border-left: 3px solid var(--rc-warn); }
.source-head { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-bottom: 4px; font-size: 1.02rem; }
.source-title { font-weight: 700; flex: 1 1 12em; }
.source-diagnostic { font-family: var(--rc-font-mono); font-size: 0.78rem; overflow-wrap: anywhere; }
.section-intro .help { margin-top: 2px; }
.wx-caveat { color: var(--rc-text); }

/* Insignias y chips: texto siempre presente; el color nunca es el único portador del estado. */
.badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: var(--rc-r-pill);
  border: 1px solid var(--rc-border);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--rc-text);
}
.badge:empty { display: none; }
.badge-pending, .badge-nodata, .badge-warn { border-color: var(--rc-warn); color: var(--rc-warn); }
.badge-data, .badge-neutral { border-color: var(--rc-border-strong); color: var(--rc-text-dim); }
.badge-experimental { border-color: var(--rc-gold); color: var(--rc-gold); }
.chip {
  display: inline-block;
  padding: 1px 8px;
  border-radius: var(--rc-r-pill);
  border: 1px solid var(--rc-border);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--rc-text-dim);
}
.chip-data, .chip-gnss { border-color: var(--rc-accent); color: var(--rc-accent); }
.chip-warn { border-color: var(--rc-warn); color: var(--rc-warn); }
.chip-forecast { border-color: var(--rc-gold); color: var(--rc-gold); }
.chip-neutral { color: var(--rc-text-dim); }
.count-badge {
  display: inline-flex; align-items: center; justify-content: center; min-width: 1.9em; padding: 0 6px;
  border-radius: var(--rc-r-pill); background: rgba(139, 158, 192, 0.2); font-family: var(--rc-font-mono); font-size: 0.8rem; font-weight: 600;
}
.role { font-weight: 700; }
.icao-code { font-size: 1rem; font-weight: 600; }

/* Desplegables con indicador propio (las cabeceras son flex y el marcador nativo no se pinta). */
:is(.notam-group, .notam-timing, .notam-cat, .notam-detail, .aero-detail, .raim-tech, .raim-about, .swx-about, .layer-about, .aero-more, .swx-more, .cmp-more, .notam-recv, .notam-filter-about, .prep-details) > summary { cursor: pointer; list-style: none; }
:is(.notam-group, .notam-timing, .notam-cat, .notam-detail, .aero-detail, .raim-tech, .raim-about, .swx-about, .layer-about, .aero-more, .swx-more, .cmp-more, .notam-recv, .notam-filter-about, .prep-details) > summary::-webkit-details-marker { display: none; }
:is(.notam-group, .notam-timing, .notam-cat, .notam-detail, .aero-detail, .raim-tech, .raim-about, .swx-about, .layer-about, .aero-more, .swx-more, .cmp-more, .notam-recv, .notam-filter-about, .prep-details) > summary::before {
  content: "▸"; display: inline-block; width: 1em; flex: none; color: var(--rc-accent); font-weight: 700;
}
:is(.notam-group, .notam-timing, .notam-cat, .notam-detail, .aero-detail, .raim-tech, .raim-about, .swx-about, .layer-about, .aero-more, .swx-more, .cmp-more, .notam-recv, .notam-filter-about, .prep-details)[open] > summary::before { content: "▾"; }
:is(.notam-group, .notam-timing, .notam-cat, .notam-detail, .aero-detail, .raim-tech, .raim-about, .swx-about, .layer-about, .aero-more, .swx-more, .cmp-more, .notam-recv, .notam-filter-about, .prep-details) > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
:is(.raim-tech, .raim-about, .swx-about, .layer-about) > summary { min-height: 44px; display: flex; align-items: center; font-size: 0.84rem; font-weight: 600; color: var(--rc-accent); }

/* ─── Resumen (H5): comparación por aeródromo; tabla en pantallas anchas, tarjetas en estrechas ─── */
.summary {
  margin: 14px 0 0;
  padding: 14px 14px 10px;
  border: 1px solid var(--rc-border-strong);
  border-left: 4px solid var(--rc-gold);
  border-radius: var(--rc-r-md);
  background: rgba(13, 23, 41, 0.6);
  min-width: 0;
}
.summary:empty { display: none; }
.summary-head h3 { margin: 0 0 2px; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-gold); }
.summary-window { margin: 0; color: var(--rc-text); font-size: 0.9rem; }
.summary-note { margin-top: 8px; }
.summary-warn { color: var(--rc-warn); font-weight: 600; }
/* Una tarjeta compacta por aeródromo: categoría y hora arriba; valores en pares con la etiqueta encima. */
.cmp-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); }
.cmp-row { padding: 10px 12px; border: 1px solid var(--rc-border); border-left: 3px solid var(--rc-accent); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.45); min-width: 0; }
.cmp-row[data-role="DESTINATION"] { border-left-color: var(--rc-gold); }
.cmp-row[data-role^="ALTERNATE"] { border-left-color: var(--rc-text-dim); }
.cmp-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.cmp-aero { margin: 0; display: flex; align-items: baseline; gap: 8px; }
.cmp-aero .role { font-size: 0.8rem; color: var(--rc-text-dim); font-weight: 600; }
.cmp-aero .icao-code { font-size: 1.1rem; letter-spacing: 0.04em; }
.cmp-wx { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.cmp-wx-note { margin: 6px 0 0; }
.cmp-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px 12px; margin: 8px 0 0; }
.cmp-item { min-width: 0; }
.cmp-item dt { font-size: 0.74rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: var(--rc-text-dim); }
.cmp-item dd { margin: 1px 0 0; font-size: 0.92rem; overflow-wrap: break-word; }
.cmp-item dd > span, .cmp-item dd > a { display: block; }
.cmp-item dd > span + span, .cmp-item dd > a + span { margin-top: 2px; }
.cmp-wind, .cmp-vis, .cmp-ceil { grid-column: span 2; }
.cmp-notam, .cmp-raim, .cmp-gps { grid-column: 1 / -1; }
@media (min-width: 480px) { .cmp-notam, .cmp-raim { grid-column: span 3; } }
.cmp-time { font-size: 0.82rem; color: var(--rc-text-dim); }
/* Un rango horario («14:45–15:15 UTC») no se parte tras el guion ni deja «UTC» sola en la línea siguiente. */
.keep { white-space: nowrap; }
.cmp-text { font-size: 0.86rem; }
.cmp-cats { margin: 4px 0; }
.cmp-more { margin: 6px 0 0; }
.cmp-more > summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; font-size: 0.84rem; font-weight: 600; color: var(--rc-accent); }
.cmp-more > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.cmp-strong { font-weight: 700; }
.cmp-link { color: var(--rc-text); text-decoration: none; border-bottom: 1px solid var(--rc-border-strong); width: fit-content; padding: 2px 0; }
.cmp-link:hover { color: var(--rc-accent); border-bottom-color: var(--rc-accent); }
.cmp-link:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.cmp-state { color: var(--rc-warn); }
.cmp-gps-value .cmp-text { color: var(--rc-text); }
.cmp-gps-none .cmp-text, .cmp-gps-loading .cmp-text, .cmp-gps-noposition .cmp-text, .cmp-gps-pending .cmp-text, .cmp-gps-unavailable .cmp-text { color: var(--rc-text-dim); }
.cmp-gps-failed .cmp-text { color: var(--rc-warn); }
.cmp-gnss { color: var(--rc-accent); }
.summary-raim-common { color: var(--rc-text); }
.summary-swx { margin: 14px 0 0; }
.summary-swx h4 { margin: 0 0 8px; font-size: 0.84rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--rc-text-dim); }
.summary-swx-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.summary-swx-item { min-width: 0; }
.summary-swx-title { display: inline-block; margin-bottom: 4px; color: var(--rc-text); font-weight: 600; font-size: 0.88rem; text-decoration: none; border-bottom: 1px solid var(--rc-border-strong); }
.summary-swx-title:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.summary-attention { margin: 14px 0 0; padding: 10px 12px; border: 1px solid var(--rc-border-strong); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.45); }
.summary-attention h4 { margin: 0 0 8px; font-size: 0.84rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--rc-text-dim); }
.attention-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.attention { display: grid; grid-template-columns: 1.4em 1fr; gap: 8px; align-items: start; font-size: 0.92rem; line-height: 1.4; padding: 3px 0; }
.attention-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.4em; height: 1.4em; margin-top: 0.1em; border-radius: 50%;
  font-size: 0.78em; font-weight: 800; line-height: 1; color: #0b1324; background: var(--rc-warn);
}
.attention-high .attention-mark { background: var(--rc-danger); }
/* Enlaces en línea: el relleno vertical amplía el área táctil sin alterar la altura de línea. */
.attention-link { color: var(--rc-text); text-decoration: none; border-bottom: 1px solid var(--rc-border-strong); overflow-wrap: anywhere; padding: 8px 0; }
.attention-link:hover { color: var(--rc-accent); border-bottom-color: var(--rc-accent); }
.attention-link:focus-visible, .notam-quick-link:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; border-radius: 2px; }
.summary-none { margin: 0; }

/* Categoría de vuelo: convención de colores del AWC (VFR verde, MVFR azul, IFR rojo, LIFR magenta), siempre con
   texto y con la advertencia de que no es un mínimo legal ni un estado del aeródromo. */
.wx-cat {
  display: inline-block; min-width: 3.6em; padding: 2px 10px; border-radius: var(--rc-r-sm);
  font-family: var(--rc-font-mono); font-weight: 700; font-size: 0.95rem; letter-spacing: 0.06em; text-align: center;
  border: 1px solid var(--rc-border-strong); color: var(--rc-text);
}
.wx-cat-vfr { border-color: #4caf7d; color: #7ed9a7; background: rgba(76, 175, 125, 0.12); }
.wx-cat-mvfr { border-color: #4f8ee8; color: #9cc3ff; background: rgba(79, 142, 232, 0.14); }
.wx-cat-ifr { border-color: #ff6b6b; color: #ff9c9c; background: rgba(255, 107, 107, 0.14); }
.wx-cat-lifr { border-color: #e06cd6; color: #f2a7ec; background: rgba(224, 108, 214, 0.14); }
.wx-cat-undetermined, .wx-cat-discrepancy, .wx-cat-warn { border-color: var(--rc-warn); color: var(--rc-warn); font-size: 0.78rem; letter-spacing: 0.03em; }
.wx-cat-neutral { color: var(--rc-text-dim); font-size: 0.78rem; letter-spacing: 0.03em; }

/* ─── Mapa (H14): capas con su estado, fecha, leyenda y explicación dentro del módulo ──────────── */
.map-panel {
  margin: 18px 0 0;
  padding: 12px;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-md);
  background: rgba(7, 13, 26, 0.55);
}
.map-head { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.map-head h3 { margin: 0; }
.map-status { margin: 0; flex: 1 1 16em; }
.map {
  position: relative;
  width: 100%;
  height: clamp(280px, 46vh, 520px);
  margin-top: 10px;
  border-radius: var(--rc-r-sm);
  border: 1px solid var(--rc-border);
  background: var(--rc-bg-deep);
  overflow: hidden;
  isolation: isolate;
}
.map:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.map[data-rc-map="loading"]::after {
  content: "Loading…";
  position: absolute;
  inset: auto 12px 12px auto;
  padding: 4px 10px;
  border-radius: var(--rc-r-pill);
  background: rgba(16, 26, 46, 0.85);
  color: var(--rc-text-dim);
  font-size: 0.8rem;
}
.map .leaflet-container { background: var(--rc-bg-deep); font-family: var(--rc-font-sans); }
.map .leaflet-control-attribution { background: rgba(7, 13, 26, 0.8); color: var(--rc-text-dim); font-size: 0.7rem; }
.map .leaflet-control-attribution a { color: var(--rc-accent); }
.map .leaflet-bar a { background: var(--rc-panel-raised); color: var(--rc-text); border-bottom-color: var(--rc-border); }
.map .leaflet-bar a:hover { background: var(--rc-panel-solid); }
.map .leaflet-tooltip { background: rgba(16, 26, 46, 0.95); color: var(--rc-text); border: 1px solid var(--rc-border-strong); border-radius: var(--rc-r-sm); font-size: 0.8rem; box-shadow: none; }
.map .leaflet-tooltip::before { display: none; }
.map .rc-map-label { font-family: var(--rc-font-mono); font-weight: 600; padding: 2px 6px; }
.map .rc-map-label-select { cursor: pointer; pointer-events: auto; }
.map .rc-map-label-select:hover { border-color: var(--rc-accent); }
.map-layers {
  margin: 10px 0 0;
  padding: 8px 12px 4px;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-sm);
  display: grid;
  gap: 4px;
  min-width: 0;
}
.map-layers legend { padding: 0 6px; font-size: 0.82rem; font-weight: 600; color: var(--rc-text-dim); }
.layer { padding: 6px 0 4px; border-top: 1px solid var(--rc-border); min-width: 0; }
.layer:first-of-type { border-top: 0; }
.layer-tag { font-weight: 700; }
.layer-status { margin: 2px 0 0 26px; overflow-wrap: anywhere; }
.layer-status:empty { display: none; }
.layer-status[data-state="nodata"], .layer-status[data-state="partial"], .layer-status[data-state="unverified"] { color: var(--rc-warn); }
.layer-about { margin: 0 0 0 26px; }
.layer-about .help { margin-top: 4px; }
.toggle { display: inline-flex; gap: 8px; align-items: flex-start; font-size: 0.9rem; cursor: pointer; padding: 6px 0; min-height: 44px; }
.toggle input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--rc-accent); flex: none; }
.toggle input:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.toggle input:disabled + span { opacity: 0.55; }
.legend { list-style: none; margin: 6px 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 0.82rem; color: var(--rc-text-dim); }
.legend[hidden] { display: none; }
.legend-item { display: inline-flex; gap: 6px; align-items: center; }
.legend-swatch { width: 14px; height: 14px; border-radius: 3px; border: 1px solid var(--rc-border-strong); }
.legend-swatch[data-band="0"] { background: rgba(60, 207, 136, 0.35); }
.legend-swatch[data-band="1"] { background: rgba(242, 181, 68, 0.5); }
.legend-swatch[data-band="2"] { background: rgba(255, 107, 107, 0.55); }
.map-markers { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; margin: 10px 0 0; }
.map-markers:empty { display: none; }
.map-markers-label { margin: 0; }
.btn-marker { width: auto; min-height: 44px; padding: 6px 12px; font-family: var(--rc-font-mono); font-size: 0.84rem; }
.map-ir-note { color: var(--rc-text); }
.map-select:empty { display: none; }
.map-select { margin: 6px 0 0; }

/* ─── Aeródromos (H6, H7): columnas anchas; METAR original primero y después su lectura ────────── */
.aerodromes { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }
.aerodrome {
  padding: 12px 14px;
  border: 1px solid var(--rc-border);
  border-left: 3px solid var(--rc-accent);
  border-radius: var(--rc-r-md);
  background: rgba(13, 23, 41, 0.45);
  min-width: 0;
}
.aerodrome[data-role="DESTINATION"] { border-left-color: var(--rc-gold); }
.aerodrome[data-role^="ALTERNATE"] { border-left-color: var(--rc-text-dim); }
.aerodrome.is-open { grid-column: 1 / -1; }
.aerodrome.is-focused { box-shadow: 0 0 0 2px var(--rc-focus); }
.aerodrome-head { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; margin: 0; }
.aerodrome-head .role { font-size: 0.95rem; }
.aerodrome-head .icao-code { font-size: 1.2rem; letter-spacing: 0.04em; }
.aero-wx { margin: 8px 0 0; }
.metar-raw {
  margin: 0; padding: 8px 10px; border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.6); border: 1px solid var(--rc-border);
  white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-size: 0.95rem; line-height: 1.45;
}
.metar-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin: 6px 0 0; }
.metar-time { margin: 0; }
.aero-wx-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 10px 0 6px; }
.aero-wx-basis { margin: 0; flex: 1 1 12em; }
.wx-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 0; }
.aero-more { margin: 6px 0 0; }
.aero-more > summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; font-size: 0.84rem; font-weight: 600; color: var(--rc-accent); }
.aero-more > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.aero-more-list { display: grid; gap: 6px; margin: 0; }
.wx-item { min-width: 0; }
.wx-item dt { font-size: 0.76rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: var(--rc-text-dim); }
.wx-item dd { margin: 1px 0 0; font-size: 0.92rem; overflow-wrap: break-word; }
.aero-wx-state { margin: 0; }
.aero-wx-warn { color: var(--rc-warn); font-weight: 600; }
.aero-wx-integrity { color: var(--rc-warn); }
.coords { margin-top: 8px; }
.coords-missing { color: var(--rc-text); }
.coords-missing::before { content: "⚠ "; color: var(--rc-warn); }
.coords-stale { color: var(--rc-text); }
.coords-stale::before { content: "⚠ "; color: var(--rc-warn); }
.notam-partial { color: var(--rc-text); }
.notam-partial::before { content: "⚠ "; color: var(--rc-warn); }
.aero-detail { margin: 6px 0 0; }
.aero-detail > summary { min-height: 44px; display: flex; align-items: center; padding: 6px 0; font-size: 0.86rem; font-weight: 600; color: var(--rc-accent); }
.aero-block { margin: 8px 0 0; padding: 8px 0 0; border-top: 1px solid var(--rc-border); }
.aero-block h4 { margin: 0 0 4px; font-size: 0.86rem; letter-spacing: 0.02em; }
.aero-spacewx-head { margin: 0 0 4px; }
.spacewx-rows { margin-top: 8px; }
.spacewx-rows dd { font-family: var(--rc-font-mono); font-size: 0.84rem; }
.spacewx-note, .gpsjam-note, .ir-note { margin-top: 6px; }

/* ─── NOTAM (H8): aeródromo → vigencia frente a la ventana → categoría → aviso ─────────────────── */
.notam-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.notam-quick-link { text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; padding: 2px 12px; font-size: 0.82rem; }
.notam-quick-link:hover { border-color: var(--rc-accent); color: var(--rc-accent); }
.notam-filters {
  margin: 10px 0 4px;
  padding: 12px 12px 4px;
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-r-sm);
  background: rgba(7, 13, 26, 0.45);
}
.notam-filters .field { margin-bottom: 10px; }
.notam-filters .help { margin-top: 0; }
.notam-clear { width: auto; min-height: 44px; margin: 4px 0 8px; }
.notam-filter-status { font-weight: 600; color: var(--rc-text); }
.notam-active-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.notam-active-filters:empty { display: none; }
.notam-filter-chip { min-height: 44px; padding: 2px 12px; font: inherit; font-size: 0.8rem; background: transparent; cursor: pointer; }
.notam-filter-chip:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.notam-airports { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.notam-airport { border-top: 1px solid var(--rc-border); padding-top: 8px; min-width: 0; }
.notam-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.notam-group > summary { padding: 6px 0; min-height: 44px; }
.notam-count { font-size: 0.82rem; color: var(--rc-text-dim); }
.notam-status { font-size: 0.82rem; font-weight: 600; }
.notam-visible { font-size: 0.8rem; font-weight: 600; color: var(--rc-accent); }
.notam-visible:empty { display: none; }
.notam-visible-none { color: var(--rc-warn); }
.notam-counts { margin: 4px 0; }
.notam-nomatch {
  margin: 6px 0;
  padding: 6px 10px;
  border: 1px dashed var(--rc-warn);
  border-radius: var(--rc-r-sm);
  color: var(--rc-warn);
  font-size: 0.85rem;
  font-weight: 600;
}
.notam-nomatch[hidden], .notam-item[hidden] { display: none; }
.notam-group-tools { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 4px 0; }
.notam-group-tools .link { min-height: 44px; }
.notam-timings { display: grid; gap: 8px; margin: 6px 0 0; }
.notam-timing { border: 1px solid var(--rc-border); border-left: 4px solid var(--rc-border-strong); border-radius: var(--rc-r-sm); padding: 0 10px; background: rgba(7, 13, 26, 0.35); }
.notam-timing-active { border-left-color: var(--rc-accent); }
.notam-timing-uncertain { border-left-color: var(--rc-warn); }
.notam-timing-outside { border-left-color: var(--rc-text-dim); }
.notam-timing.is-empty, .notam-cat.is-empty { opacity: 0.7; }
.notam-timing-head, .notam-cat-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; min-height: 44px; padding: 6px 0; }
.notam-timing-title { font-weight: 700; }
.notam-cat { margin: 0 0 6px; padding: 0 0 0 8px; border-top: 1px solid var(--rc-border); }
.notam-cat-title { font-weight: 600; font-size: 0.9rem; }
.notam-timing-shown, .notam-cat-shown { font-size: 0.78rem; color: var(--rc-accent); font-weight: 600; }
.notam-items { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.notam-item { padding: 6px 10px; border: 1px solid var(--rc-border); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.5); min-width: 0; }
.notam-detail > summary { padding: 6px 0; min-height: 44px; }
.notam-item-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 0; }
.notam-title { font-weight: 700; color: var(--rc-text); }
.notam-number { font-weight: 600; }
.notam-preview { flex: 1 1 100%; font-family: var(--rc-font-mono); font-size: 0.8rem; color: var(--rc-text-dim); overflow-wrap: anywhere; }
.notam-detail[open] .notam-preview { display: none; }
.notam-text { margin: 6px 0 2px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.86rem; }
.notam-validity, .notam-qcode { margin: 0; }
.notam-timing-uncertain.help, .notam-schedule-icao_d, .notam-schedule-text { color: var(--rc-text); font-weight: 600; }
.notam-schedule { margin: 2px 0 0; }

/* ─── Airport RAIM prediction (H11–H13) ─────────────────────────────────────────────────────────── */
.raim-scope { margin: 0 0 6px; }
.raim-settings { margin: 10px 0 0; }
.raim-airports { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.aero-raim-rows { grid-template-columns: 1fr; margin-top: 4px; }
.raim-airport { padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.45); min-width: 0; }
.aero-raim-rows .raim-airport { padding: 0; border: 0; background: none; }
.raim-ok { border-left: 4px solid var(--rc-ok); }
.raim-outage { border-left: 4px solid var(--rc-warn); }
.raim-unavailable { border-left: 4px solid var(--rc-border-strong); }
.raim-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 0; }
.raim-status { display: inline-block; padding: 2px 8px; border-radius: var(--rc-r-sm); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.03em; border: 1px solid var(--rc-border-strong); }
.raim-status-ok { border-color: var(--rc-ok); color: #7fe6b3; background: rgba(60, 207, 136, 0.12); }
.raim-status-outage { border-color: var(--rc-warn); color: #0b1324; background: var(--rc-warn); }
.raim-status-unavailable { border-color: var(--rc-border-strong); color: var(--rc-text); background: rgba(139, 158, 192, 0.14); }
.raim-status-pending { color: var(--rc-text-dim); }
.raim-window { margin: 6px 0 0; }
.raim-outage, .raim-cause { margin: 4px 0 0; font-weight: 600; font-size: 0.92rem; }
p.raim-outage { color: var(--rc-warn); }
.raim-sentence { margin: 4px 0 0; }
.raim-tech { margin: 4px 0 0; }
.raim-provider, .raim-basis, .raim-comparison, .raim-comparison-caveat, .raim-settings-text, .raim-comparison-provenance, .raim-comparison-basis,
.raim-detail, .raim-position, .raim-source { margin: 4px 0 0; overflow-wrap: anywhere; }
.raim-provider { font-weight: 600; }
.raim-comparison-discrepancy, .raim-basis-warn { color: var(--rc-warn); font-weight: 600; }
.raim-attempts { list-style: none; margin: 4px 0 0; padding: 0; }
.raim-attempt { margin: 2px 0 0; overflow-wrap: anywhere; }
.raim-attempts-head { margin: 6px 0 0; }
.raim-validity { margin-top: 6px; color: var(--rc-text); }
.raim-validity-warn { color: var(--rc-warn); font-weight: 600; }
.raim-about { margin: 10px 0 0; }
.raim-dataset-line { margin: 2px 0 0; overflow-wrap: anywhere; font-family: var(--rc-font-mono); font-size: 0.78rem; }

/* ─── Space weather (H9, H10): tarjetas con barra segmentada NOAA (colores oficiales SWPC) ─────── */
.spacewx-scope { margin: 4px 0 0; }
.swx-cards { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 10px 0 0; }
.swx-card { margin: 0; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.45); min-width: 0; }
.swx-card-medium { border-left: 3px solid var(--rc-warn); }
.swx-card-high { border-left: 3px solid var(--rc-danger); }
.swx-title { margin: 0 0 8px; font-size: 0.95rem; }
.swx-headline { margin: 8px 0 0; color: var(--rc-text); font-size: 0.92rem; }
.swx-basis, .swx-secondary { margin-top: 4px; }
.swx-about { margin: 10px 0 0; }
.swx-about h4 { margin-top: 10px; }
.scale { min-width: 0; }
.scale-track { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; }
.scale-seg { position: relative; display: flex; align-items: center; justify-content: center; height: 26px; border-radius: 3px; color: var(--rc-text); font-family: var(--rc-font-mono); font-size: 0.78rem; font-weight: 700; }
/* Segmentos inactivos: el color oficial atenuado por su FONDO (no por opacidad), de modo que el número conserva el contraste. */
.scale-seg[data-level="0"] { background: rgba(146, 208, 80, 0.30); }
.scale-seg[data-level="1"] { background: rgba(246, 235, 20, 0.28); }
.scale-seg[data-level="2"] { background: rgba(255, 200, 0, 0.28); }
.scale-seg[data-level="3"] { background: rgba(255, 150, 0, 0.30); }
.scale-seg[data-level="4"] { background: rgba(255, 0, 0, 0.34); }
.scale-seg[data-level="5"] { background: rgba(200, 0, 0, 0.42); }
.scale-seg[data-active="true"] { color: #0b1324; outline: 2px solid var(--rc-text); outline-offset: 1px; z-index: 1; }
.scale-seg[data-active="true"][data-level="0"] { background: #92D050; }
.scale-seg[data-active="true"][data-level="1"] { background: #F6EB14; }
.scale-seg[data-active="true"][data-level="2"] { background: #FFC800; }
.scale-seg[data-active="true"][data-level="3"] { background: #FF9600; }
.scale-seg[data-active="true"][data-level="4"] { background: #FF0000; }
.scale-seg[data-active="true"][data-level="5"] { background: #C80000; color: #fff; }
.scale-seg[data-active="true"]::after { content: "▲"; position: absolute; bottom: -15px; font-size: 0.7rem; color: var(--rc-text); }
.scale-nodata .scale-seg { background: rgba(211, 211, 211, 0.16); color: var(--rc-text-dim); }
.scale-stale .scale-track { outline: 1px dashed var(--rc-warn); outline-offset: 3px; }
.scale-text { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin: 14px 0 0; }
.scale-level { font-weight: 700; font-family: var(--rc-font-mono); font-size: 0.92rem; }
.scale-compact .scale-seg { height: 18px; font-size: 0.68rem; }
.scale-compact .scale-text { margin-top: 12px; }


/* ─── C5.6: pantalla de preparación, etiquetas sin partir, RAIM, Space Weather y NOTAM compactos ─────────────────── */
.prep-details { margin: 14px 0 0; border-top: 1px solid var(--rc-border); }
.prep-details > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 0.86rem; font-weight: 600; color: var(--rc-accent); }
.prep-details > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.prep-details .prep-steps { margin: 6px 0 0; }
/* «(done)» se conserva para lectores de pantalla; a la vista basta la marca ✓. */
.prep-step[data-state="done"] > .prep-state { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.prep-step { position: relative; }
/* Una etiqueta nunca se parte dejando letras sueltas: salta de línea entre palabras o ocupa su propia línea. */
.chip, .badge, .count-badge, .raim-status, .wx-cat, .role, .notam-title { overflow-wrap: normal; word-break: keep-all; hyphens: none; }
.chip { max-width: 100%; white-space: normal; }
.notam-item-head .chip { flex: 0 1 auto; }
.raim-common { margin: 8px 0 0; font-weight: 600; }
.raim-common[hidden] { display: none; }
.swx-window { margin-top: 4px; color: var(--rc-text); }
.swx-more { margin: 6px 0 0; }
.swx-more > summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; font-size: 0.84rem; font-weight: 600; color: var(--rc-accent); }
.swx-more > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.notam-recv, .notam-filter-about { margin: 4px 0; }
.notam-recv > summary, .notam-filter-about > summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; font-size: 0.84rem; font-weight: 600; color: var(--rc-accent); }
.notam-recv > summary:focus-visible, .notam-filter-about > summary:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.notam-rejected-flag { color: var(--rc-warn); font-weight: 600; }
.notam-conflict { color: var(--rc-warn); font-weight: 600; margin: 4px 0 0; }

/* Pantallas medianas y anchas */
@media (min-width: 640px) {
  .review-actions, .prep-actions { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .card-wide { padding: 24px 24px; }
}
@media (min-width: 760px) {
  .swx-cards, .summary-swx-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .brief-head { grid-template-columns: minmax(0, 1fr) auto; }
  .brief-actions .btn { flex: 0 0 auto; }
}
/* Pantallas estrechas: listas clave/valor en una columna (los valores largos no se estrechan). */
@media (max-width: 639px) {
  .card-wide { padding: 14px 12px; }
  .source { padding: 10px 10px; }
  .notam-timing { padding: 0 6px; border-left-width: 3px; }
  .notam-cat { padding-left: 0; }
  .notam-item { padding: 4px 6px; }
  .notam-filters { padding: 10px 10px 2px; }
  .notam-text { font-size: 0.9rem; }
  .window { grid-template-columns: 1fr; gap: 0; }
  .window dt { margin-top: 6px; }
  .window dd { margin-bottom: 2px; }
  .layer-status, .layer-about, .legend { margin-left: 0; }
}

/* El documento imprimible nunca se ve en pantalla. */
@media screen { .print-doc { display: none !important; } }

/* ─── Impresión / PDF (C5.3–C5.5): sólo el documento generado desde el briefing; tipografía legible, sin recortes
   (texto largo con ajuste), cabeceras de tabla repetidas y bloques que no se parten. ─── */
@media print {
  @page { size: A4; margin: 14mm 12mm; }
  /* Cabecera corrida y numeración en los márgenes de página (Chromium ≥ 131; Safari no los admite). Las variables
     --rc-run-* las fija el renderizador del documento en el elemento raíz (CSSOM, sin estilos en línea). */
  @page {
    @top-left { content: var(--rc-run-left, "ROTORCORE Environmental Briefing"); font-size: 8.5pt; font-weight: 600; color: #333; }
    @top-right { content: var(--rc-run-right, "Advisory document"); font-size: 8.5pt; color: #333; }
    @bottom-left { content: "ROTORCORE Environmental Briefing · advisory document · does not authorise any operational decision"; font-size: 8pt; color: #333; }
    @bottom-right { content: "Page " counter(page) " of " counter(pages); font-size: 8.5pt; color: #333; }
  }
  html, body { background: #fff !important; color: #000 !important; }
  body.has-print-doc > :not(.print-doc) { display: none !important; }
  body.has-print-doc { display: block; min-height: 0; font-size: 10.5pt; line-height: 1.35; }
  .print-doc { display: block; color: #000; font-family: var(--rc-font-sans); }
  .print-doc h1 { font-size: 16pt; margin: 0 0 4pt; color: #000; }
  .print-doc h2 { font-size: 12.5pt; margin: 12pt 0 4pt; padding-bottom: 2pt; border-bottom: 1px solid #555; color: #000; break-after: avoid; page-break-after: avoid; }
  .print-doc h3 { font-size: 11pt; margin: 8pt 0 3pt; color: #000; break-after: avoid; page-break-after: avoid; }
  .print-doc .pd-section { break-before: auto; page-break-before: auto; }
  .print-doc .pd-p { margin: 2pt 0; overflow-wrap: anywhere; }
  .print-doc .pd-subtitle { font-weight: 600; }
  .print-doc .pd-status { font-weight: 700; }
  .print-doc .pd-note { color: #333; font-size: 9.5pt; }
  .print-doc .pd-warn { font-weight: 600; border-left: 3px solid #000; padding-left: 6pt; }
  .print-doc .pd-mono, .print-doc .pd-raw { font-family: var(--rc-font-mono); font-size: 9pt; }
  .print-doc .pd-raw { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; margin: 3pt 0; }
  .print-doc .pd-subhead { font-weight: 700; margin-top: 6pt; break-after: avoid; page-break-after: avoid; }
  .print-doc .pd-kv { display: grid; grid-template-columns: max-content 1fr; gap: 1pt 10pt; margin: 4pt 0; }
  .print-doc .pd-kv dt { font-weight: 600; }
  .print-doc .pd-kv dd { margin: 0; overflow-wrap: anywhere; }
  .print-doc .pd-table { width: 100%; border-collapse: collapse; margin: 4pt 0; font-size: 9pt; }
  .print-doc .pd-table thead { display: table-header-group; }
  .print-doc .pd-table th, .print-doc .pd-table td { border: 1px solid #777; padding: 3pt 4pt; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
  .print-doc .pd-table tr { break-inside: avoid; page-break-inside: avoid; }
  .print-doc .pd-table-cmp, .print-doc .pd-table-raim { font-size: 8.5pt; }
  /* C9F Pilot Brief uses the existing ROTORCORE navy/gold visual language.
     The full source export retains its established print layout. */
  body.pd-variant-pilot .print-doc { font-size: 9.5pt; line-height: 1.28; }
  body.pd-variant-pilot .print-doc h1 { background:#10141d; color:#fff; border-left:4pt solid #c9a84c; padding:9pt 10pt; font-size:15pt; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.pd-variant-pilot .print-doc h2 { border-bottom:1pt solid #c9a84c; margin:8pt 0 3pt; font-size:12pt; }
  body.pd-variant-pilot .print-doc .pd-table-pilot { font-size:8pt; table-layout:fixed; }
  body.pd-variant-pilot .print-doc .pd-table-pilot th { background:#eef0f4; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.pd-variant-pilot .print-doc .pd-table-pilot td,
  body.pd-variant-pilot .print-doc .pd-table-pilot th { padding:2.5pt 3pt; }
  body.pd-variant-pilot .print-doc .pd-map-canvas { max-height:100mm; }
  body.pd-variant-pilot .print-doc .pd-p { margin:1.5pt 0; }
  body.pd-variant-pilot .print-doc .pd-list { margin:2pt 0 3pt; }
  body.pd-variant-pilot .print-doc .pd-li { margin:1pt 0; }
  /* The four-page approved design language: navy title, gold accents,
     compact flight hero, light tables and a complete, readable map figure. */
  body.pd-variant-pilot .print-doc .pd-card-pilot-hero {
    background:#f3f5f8; border:1px solid #d0d5df; border-left:4pt solid #c9a84c;
    padding:7pt 10pt; margin:7pt 0; break-inside:avoid;
  }
  body.pd-variant-pilot .print-doc .pd-card-pilot-hero .pd-card-title {font-size:17pt;color:#10141d;}
  body.pd-variant-pilot .print-doc .pd-card-pilot-hero .pd-badge {
    background:#c9a84c;color:#10141d;border:1px solid #aa883b;border-radius:3pt;
    padding:1pt 6pt;-webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  body.pd-variant-pilot .print-doc .pd-card-pilot-hero .pd-kv {
    grid-template-columns:max-content 1fr;gap:1pt 9pt;font-size:8.5pt;
  }
  body.pd-variant-pilot .print-doc .pd-table-pilot {
    border:1px solid #c4cad4;border-radius:4pt;table-layout:auto;
  }
  body.pd-variant-pilot .print-doc .pd-table-pilot th {color:#10141d;font-weight:700;border-color:#c4cad4;}
  body.pd-variant-pilot .print-doc .pd-table-pilot td {border-color:#c4cad4;overflow-wrap:break-word;}
  /* C9G: let the map flow onto the remaining space, but never split the
     title/image/attribution. Safari otherwise produces an almost-empty page. */
  body.pd-variant-pilot .print-doc .pd-section.pd-map {break-before:auto;page-break-before:auto;}
  body.pd-variant-pilot .print-doc .pd-section.pd-map h2 {break-after:avoid;page-break-after:avoid;}
  body.pd-variant-pilot .print-doc .pd-section.pd-map .pd-map-figure {break-inside:avoid;page-break-inside:avoid;}
  body.pd-variant-pilot .print-doc .pd-map-figure {break-inside:avoid;}
  body.pd-variant-pilot .print-doc .pd-list-attention {padding-left:11pt;}
  body.pd-variant-pilot .print-doc .pd-li-high {font-weight:600;}
  body.pd-variant-pilot .print-doc .pd-warn {border-left-color:#c9a84c;color:#202936;}

  .print-doc .pd-table-cmp th:first-child, .print-doc .pd-table-raim th:first-child { width: 7.5em; }
  .print-doc .pd-table-cmp td:first-child, .print-doc .pd-table-raim td:first-child { overflow-wrap: normal; word-break: normal; }
  .print-doc .pd-table-raim { table-layout: fixed; }
  .print-doc .pd-table-raim th:nth-child(1) { width: 13%; }
  .print-doc .pd-table-raim th:nth-child(2) { width: 15%; }
  .print-doc .pd-table-raim th:nth-child(3) { width: 23%; }
  .print-doc .pd-table-raim th:nth-child(4) { width: 13%; }
  .print-doc .pd-table-raim th:nth-child(5) { width: 36%; }
  .print-doc .pd-table-raim th, .print-doc .pd-table-raim td { overflow-wrap: normal; word-break: normal; }
  .print-doc .pd-map-figure { margin: 6pt 0; break-inside: avoid; page-break-inside: avoid; }
  .print-doc .pd-map-canvas { display: block; width: 100%; height: auto; max-height: 150mm; object-fit: contain; }
  .print-doc .pd-card { border: 1px solid #999; padding: 4pt 6pt; margin: 4pt 0; break-inside: avoid; page-break-inside: avoid; }
  .print-doc .pd-card-notam { break-inside: avoid; page-break-inside: avoid; }
  /* Oversized notices may still fragment; keep the identifier with its first lines. */
  .print-doc .pd-card-head, .print-doc .pd-card-notam .pd-subtitle { break-after: avoid; page-break-after: avoid; }
  .print-doc .pd-raw { orphans: 3; widows: 3; }
  .print-doc .pd-card-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2pt 8pt; margin: 0 0 2pt; font-weight: 700; }
  .print-doc .pd-badge { font-weight: 700; border: 1px solid #000; padding: 0 4pt; }
  .print-doc .pd-group { margin: 6pt 0; break-inside: auto; }
  .print-doc .pd-group .pd-group { margin-left: 6pt; }
  .print-doc .pd-group-keep { break-inside: avoid; page-break-inside: avoid; }
  .print-doc .pd-list { margin: 3pt 0 4pt; padding-left: 14pt; }
  .print-doc .pd-li { margin: 1pt 0; overflow-wrap: anywhere; }
  .print-doc .pd-li-high { font-weight: 700; }
  .print-doc .pd-li-high::marker { content: "! "; font-weight: 800; }
  .print-doc .pd-li-medium::marker { content: "• "; }
  /* Barras NOAA: colores oficiales impresos; el nivel también en texto. */
  .print-doc .pd-scale { display: grid; grid-template-columns: 11em 16em minmax(0, 1fr); gap: 2pt 8pt; align-items: center; margin: 3pt 0; break-inside: avoid; page-break-inside: avoid; }
  .print-doc .pd-scale-label { font-weight: 600; }
  .print-doc .pd-scale-track { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .print-doc .pd-scale-seg { text-align: center; font-family: var(--rc-font-mono); font-size: 8pt; font-weight: 700; padding: 1pt 0; color: #000; }
  .print-doc .pd-scale-seg[data-level="0"] { background: rgba(146, 208, 80, 0.35); }
  .print-doc .pd-scale-seg[data-level="1"] { background: rgba(246, 235, 20, 0.35); }
  .print-doc .pd-scale-seg[data-level="2"] { background: rgba(255, 200, 0, 0.35); }
  .print-doc .pd-scale-seg[data-level="3"] { background: rgba(255, 150, 0, 0.35); }
  .print-doc .pd-scale-seg[data-level="4"] { background: rgba(255, 0, 0, 0.30); }
  .print-doc .pd-scale-seg[data-level="5"] { background: rgba(200, 0, 0, 0.30); }
  .print-doc .pd-scale-seg[data-active="true"] { outline: 1.5pt solid #000; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="0"] { background: #92D050; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="1"] { background: #F6EB14; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="2"] { background: #FFC800; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="3"] { background: #FF9600; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="4"] { background: #FF0000; }
  .print-doc .pd-scale-seg[data-active="true"][data-level="5"] { background: #C80000; color: #fff; }
  .print-doc .pd-scale-text { font-size: 9pt; }
}


/* ─── C8 · SIGMET interactivo: detalle del aviso seleccionado en el mapa y leyenda de la capa ───────── */
.legend-swatch[data-sigmet="active"] { background: rgba(242, 181, 68, 0.3); border-color: #f2b544; }
.legend-swatch[data-sigmet="other"] { background: rgba(149, 166, 199, 0.12); border: 1px dashed #95a6c7; }
.legend-swatch[data-sigmet="selected"] { background: rgba(242, 181, 68, 0.42); border: 3px solid #f2b544; box-sizing: border-box; }
.map .rc-sigmet-tip { white-space: pre-line; width: max-content; max-width: min(72vw, 360px); font-family: var(--rc-font-mono); font-size: 0.78rem; line-height: 1.35; }
.sigmet-detail {
  margin: 10px 0 0;
  padding: 12px 14px;
  border: 1px solid var(--rc-border-strong);
  border-left: 3px solid var(--rc-warn);
  border-radius: var(--rc-r-md);
  background: rgba(13, 23, 41, 0.72);
  min-width: 0;
  overflow-wrap: anywhere;
}
.sigmet-detail[hidden] { display: none; }
.sigmet-detail { scroll-margin-top: calc(var(--rc-nav-h, 0px) + 12px); }
.sigmet-detail:focus-visible { outline: 2px solid var(--rc-focus); outline-offset: 2px; }
.sigmet-detail[data-timing="OUTSIDE_WINDOW"], .sigmet-detail[data-timing="TIME_UNVERIFIED"] { border-left-color: var(--rc-text-dim); }
.sigmet-detail[data-state="none"] { border-left-color: var(--rc-text-dim); }
.sigmet-head { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: flex-start; justify-content: space-between; }
.sigmet-head h4 { margin: 0; font-size: 1rem; line-height: 1.3; flex: 1 1 14em; }
.sigmet-point { margin: 2px 0 0; font-family: var(--rc-font-mono); font-size: 0.8rem; color: var(--rc-text-dim); }
.sigmet-close { width: auto; min-height: 44px; min-width: 44px; padding: 6px 14px; flex: none; }
.sigmet-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 8px; }
.sigmet-list-intro { margin: 8px 0 0; }
.sigmet-pick { width: auto; min-height: 44px; padding: 6px 12px; font-family: var(--rc-font-mono); font-size: 0.82rem; text-align: left; border-color: var(--rc-border); display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.sigmet-pick[aria-selected="true"] { border-color: var(--rc-warn); color: var(--rc-text); background: rgba(242, 181, 68, 0.14); }
.sigmet-pick[data-timing="OVERLAPS_WINDOW"] .sigmet-pick-timing { color: var(--rc-warn); }
.sigmet-pick[data-timing="OUTSIDE_WINDOW"] .sigmet-pick-timing, .sigmet-pick[data-timing="TIME_UNVERIFIED"] .sigmet-pick-timing { color: var(--rc-text-dim); }
.sigmet-pick-timing { display: block; font-size: 0.72rem; letter-spacing: 0.03em; }
.sigmet-body { margin: 10px 0 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.sigmet-section { margin: 0; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.45); min-width: 0; }
.sigmet-section h5 { margin: 0 0 6px; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--rc-text-dim); }
.sigmet-section dl { margin: 0; display: grid; grid-template-columns: minmax(9em, auto) 1fr; gap: 4px 10px; font-size: 0.86rem; }
.sigmet-section dt { color: var(--rc-text-dim); }
.sigmet-section dd { margin: 0; }
.sigmet-section .help { margin: 6px 0 0; }
.sigmet-timing { display: inline-block; margin: 0 0 6px; }
.sigmet-timing[data-timing="OVERLAPS_WINDOW"] { border-color: var(--rc-warn); color: var(--rc-warn); }
.sigmet-timing[data-timing="OUTSIDE_WINDOW"], .sigmet-timing[data-timing="TIME_UNVERIFIED"] { border-color: var(--rc-border-strong); color: var(--rc-text-dim); }
.sigmet-raw { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 40vh; overflow: auto; padding: 8px 10px; border-radius: var(--rc-r-sm); background: rgba(7, 13, 26, 0.7); font-family: var(--rc-font-mono); font-size: 0.82rem; line-height: 1.4; }
.sigmet-message, .sigmet-provenance { grid-column: 1 / -1; }
@media (min-width: 900px) { .sigmet-provenance ul { columns: 2; column-gap: 24px; } .sigmet-provenance li { break-inside: avoid; } }
.sigmet-provenance ul { margin: 0; padding: 0 0 0 1.1em; font-size: 0.84rem; color: var(--rc-text-dim); display: grid; gap: 4px; }
.sigmet-coverage { margin: 4px 0 0; }
.sigmet-coverage li { margin: 2px 0 0; }
@media (max-width: 640px) {
  .sigmet-section dl { grid-template-columns: 1fr; gap: 2px; }
  .sigmet-section dd { margin: 0 0 4px; }
  .sigmet-raw { max-height: 34vh; }
}

/* C9E V10 APPROVED FORM + VISIBLE PREPARATION
   Authenticated standalone shell only. No provider contracts, validations or navigation changed. */
.topbar-tools { display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap; }
.session-live-clock {
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  background:#12221e;border:1px solid #315448;border-radius:9px;
  min-height:32px;padding:6px 10px;
  color:#e0f3eb;font:600 .72rem/1 var(--rc-font-mono);
  font-variant-numeric:tabular-nums;
}
.session-live-clock[hidden] {display:none;}
.session-live-dot,.account-active-dot {display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:#58c49e;}
.session-clock-label {font-size:.60rem;letter-spacing:.09em;color:#82dab6;font-weight:700;}
.account-summary {
  border-radius:11px;background:#16263d;
  border-color:#425a77;gap:9px;padding:7px 11px;min-height:45px;
}
.account-icon {width:19px;height:19px;border:2px solid #a9bacb;position:relative;}
.account-icon::after{content:"";position:absolute;top:4px;left:4px;width:7px;height:7px;border-radius:50%;background:#8fa2b8;}
.account-session-indicator {display:inline-flex;align-items:center;gap:5px;font:700 .59rem/1 var(--rc-font-mono);letter-spacing:.055em;color:#9ce1c2;}
.account-panel {border-radius:13px;background:#15253a;border-color:#4a6079;box-shadow:0 16px 39px rgba(0,0,0,.50);padding:17px;}
.account-panel .session-info {display:grid;gap:3px;margin:0 0 9px;}
.account-panel .session-info .lead {color:#b6e2d0;font-weight:800;}
.account-panel-secondary {font-size:.73rem;color:#a3b6ca;}
.account-panel [data-slot="expires"] {margin:5px 0 12px;font-size:.75rem;line-height:1.55;color:#adbed2;}
.account-panel-link {display:grid;gap:3px;text-align:left;width:100%;min-height:54px;padding:10px 12px;border-radius:9px;margin:8px 0;border:1px solid #3c526d;background:#101d30;color:#e5eefa;cursor:pointer;font-weight:700;font-size:.80rem;}
.account-panel-link span+span {font-size:.68rem;font-weight:500;color:#9db1c7;}
.account-panel-link:hover,.account-panel-link:focus-visible {border-color:var(--rc-gold);}
.stage-form {max-width:none;}
.stage-head--premium {margin-bottom:16px;align-items:center;gap:10px 24px;}
.stage-head--premium h2 {font-size:clamp(1.5rem,2.3vw,2rem);letter-spacing:-.03em;margin:4px 0 6px;}
.stage-eyebrow {margin:0;color:var(--rc-gold);font:700 .70rem/1.3 var(--rc-font-mono);letter-spacing:.12em;}
.stage-description {margin:0;color:#aebed0;font-size:.87rem;line-height:1.55;max-width:760px;}
.form-mission-strip {
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 26px;
  margin:15px 0 18px;padding:15px 17px;
  border:1px solid #435a71;border-left:3px solid var(--rc-gold);
  background:linear-gradient(105deg,#182a3f,#112034);
  border-radius:12px;
}
.strip-label {display:block;color:#a2b3c7;text-transform:uppercase;font:700 .61rem/1.3 var(--rc-font-mono);letter-spacing:.13em;margin-bottom:5px;}
.strip-route {display:flex;align-items:center;gap:12px;font:700 clamp(1.2rem,2vw,1.6rem)/1.2 var(--rc-font-mono);letter-spacing:.035em;color:#f1f5fb;}
.strip-arrow {color:var(--rc-gold);}
.strip-alternates strong {color:#e2eaf4;font:650 .85rem/1.2 var(--rc-font-mono);}
.stage-form > .notice {background:rgba(217,180,106,.055);border-color:#405065;border-left-color:var(--rc-gold);color:#b4c2d1;font-size:.79rem;margin-bottom:16px;}
.briefing-compose-layout {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.86fr);align-items:start;gap:16px;}
.briefing-fields {min-width:0;display:grid;gap:15px;}
.briefing-fields .group {margin:0;padding:17px 17px 3px;border-color:#364b64;background:linear-gradient(145deg,#13233a,#101d30);border-radius:13px;}
.briefing-fields .group legend {padding:0 8px;font-size:.83rem;color:#e7d09a;letter-spacing:.01em;}
.briefing-fields .field :is(input,select) {border-color:#3b506b;background:#0b1626;color:#f5f6fa;}
.briefing-fields .field :is(input,select):focus-visible {border-color:var(--rc-gold);outline:2px solid rgba(217,180,106,.45);outline-offset:1px;}
.briefing-product-overview {min-width:0;padding:17px 17px 16px;border-radius:13px;background:linear-gradient(145deg,#14243a,#101b2c);border:1px solid #36495f;}
.products-eyebrow {margin:0;color:var(--rc-gold);font:800 .64rem/1.3 var(--rc-font-mono);letter-spacing:.14em;}
.briefing-product-overview h3 {margin:6px 0 5px;font-size:1rem;}
.products-intro {margin:0 0 12px;color:#a4b5ca;font-size:.74rem;line-height:1.55;}
.briefing-product-row {display:flex;align-items:center;gap:10px;margin:6px 0;padding:10px;border:1px solid #2a4057;background:#101d31;border-radius:9px;min-width:0;}
.briefing-product-row .product-symbol {display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#20334b;color:#c6d5e9;font-size:1.06rem;flex:none;}
.briefing-product-row strong {display:block;font-size:.80rem;color:#e7eff8;}
.briefing-product-row small {display:block;color:#a0b2c7;font-size:.67rem;margin-top:3px;line-height:1.3;}
.product-advisory {margin:13px 0 0;background:#211f24;border:1px solid #524530;border-left:2px solid var(--rc-gold);border-radius:8px;padding:11px;color:#c8c6bd;font-size:.73rem;line-height:1.6;}
.product-advisory strong {color:#f1d697;}
.briefing-review-cta {width:100%;margin-top:16px;display:flex;justify-content:center;align-items:center;gap:12px;min-height:49px;border-color:transparent;background:var(--rc-gold);color:#121821;font-weight:800;border-radius:10px;}
.briefing-review-cta:hover {filter:brightness(1.05);}
.stage-prep {max-width:1060px;margin:10px auto 12px;}
.stage-prep .prep-brand {margin:0 0 12px;}
.stage-prep .prep-logo {width:38px;height:38px;}
.stage-prep .prep-wordmark {font-size:1.5rem;}
.stage-prep h2 {font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.03em;margin:0 0 9px;}
.stage-prep .prep-route {padding:13px 15px;background:linear-gradient(100deg,#172b42,#101e30);border:1px solid #3b526b;border-left:3px solid var(--rc-gold);border-radius:10px;color:#d8e6f5;font-size:.83rem;line-height:1.6;margin:0 0 17px;}
.stage-prep .prep-progress {height:8px;margin:0 0 11px;}
.stage-prep .prep-status {font-size:.94rem;color:#e7d09a;margin:0 0 13px;min-height:1.5em;}
.stage-prep .prep-details {border:1px solid #364960;border-radius:13px;background:#101c2d;padding:12px 14px 17px;}
.stage-prep .prep-details>summary {display:flex;min-height:42px;align-items:center;color:#e6eef6;font-size:.89rem;font-weight:750;}
.stage-prep .prep-details>summary::before {color:var(--rc-gold);}
.stage-prep .prep-steps {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:13px;}
.stage-prep .prep-steps > .prep-step {
  display:grid;grid-template-columns:23px minmax(0,1fr);align-content:start;gap:2px 9px;
  border:1px solid #33465c;border-left:3px solid #57677b;border-radius:11px;
  padding:13px 14px;background:#142237;min-height:93px;
}
.stage-prep .prep-steps > .prep-step[data-step="server"] {grid-column:1/-1;}
.stage-prep .prep-text {font-size:.82rem;line-height:1.43;color:#e0e9f3;}
.stage-prep .prep-state {font-size:.69rem;margin-top:4px;color:#a4b6c9;}
.stage-prep .prep-step[data-state="done"] {border-left-color:#59c9a3;}
.stage-prep .prep-step[data-state="active"] {border-left-color:var(--rc-gold);border-color:#947947;border-left-width:3px;}
.stage-prep .prep-step[data-state="warn"] {border-left-color:var(--rc-warn);}
.stage-prep .prep-step[data-state="failed"] {border-left-color:var(--rc-danger);}
.stage-prep .prep-step[data-state="active"] > .prep-text {color:#f4d89f;}
.stage-prep .prep-substeps {grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:11px 0 0;padding:10px 0 0;border-top:1px solid #31445b;}
.stage-prep .prep-substeps > .prep-step {
  display:grid;grid-template-columns:18px minmax(0,1fr);align-content:start;gap:2px 7px;
  border:1px solid #31445a;border-radius:9px;background:#101c2e;
  padding:11px;min-height:84px;min-width:0;
}
.stage-prep .prep-substeps .prep-text {font-size:.73rem;}
.stage-prep .prep-substeps .prep-state {font-size:.65rem;}
.stage-prep .prep-substeps .prep-mark {width:15px;height:15px;}
.stage-prep .prep-error {padding:13px;border:1px solid #805258;border-radius:10px;background:#2a1d25;}
@media(max-width:950px) {
  .briefing-compose-layout {grid-template-columns:minmax(0,1fr);}
  .briefing-product-overview {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 9px;}
  .briefing-product-overview> :is(.products-eyebrow,h3,.products-intro,.product-advisory) {grid-column:1/-1;}
}
@media(max-width:760px) {
  .topbar-tools {justify-content:flex-start;}
  .stage-prep .prep-steps {grid-template-columns:minmax(0,1fr);}
  .stage-prep .prep-steps > .prep-step[data-step="server"] {grid-column:auto;}
  .stage-prep .prep-substeps {grid-template-columns:minmax(0,1fr);}
  .stage-prep .prep-substeps>.prep-step {min-height:54px;}
}
@media(max-width:520px) {
  .briefing-fields .group {padding:14px 13px 2px;}
  .briefing-product-overview {display:block;}
  .form-mission-strip {padding:12px 13px;}
  .strip-route {font-size:1.16rem;}
  .stage-head--premium h2 {font-size:1.43rem;}
  .account-summary {gap:6px;}
}
