/* FAA data surfaces on the map page: the flight-detail "Conditions at"
   banner and FAA times, the hub modal FAA card, the aircraft registry block,
   the type-aware hub pills, and the FAA plan / nationwide programs panels in
   both Ops layouts. Everything is namespaced (.faa-*, .ov-faa-*, .lc-faa-*)
   so it does not depend on load order against styles.css or the layout CSS
   that layout-loader.js appends later. */

:root {
    --faa-red: #EF4444;
    --faa-orange: #FB923C;
    --faa-yellow: #F59E0B;
    --faa-green: #22C55E;
    --faa-muted: #64748B;
}

.faa-conditions[hidden],
.faa-times[hidden],
.faa-hub-card[hidden] { display: none !important; }

/* ---- Type-aware hub pill (api.js renderFAAStatusPill) ---- */
.faa-status-pill.orange { background: rgba(251, 146, 60, 0.15); color: var(--faa-orange); }
.faa-status-pill.unknown,
.faa-status-pill.na { background: rgba(148, 163, 184, 0.12); color: var(--gray-400, #94A3B8); }
.faa-status-dot.orange { background: var(--faa-orange); }
.faa-status-dot.unknown,
.faa-status-dot.na { background: var(--faa-muted); }

/* ---- Shared building blocks ---- */
.faa-chip {
    display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 9999px;
    font-size: 10px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase;
    background: rgba(255, 255, 255, 0.08); color: var(--gray-200, #E2E8F0);
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.faa-programs, .faa-notams, .faa-notices {
    list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px;
}
.faa-program {
    padding: 6px 0 6px 10px; border-left: 2px solid var(--faa-yellow);
}
.faa-program[data-tone="red"] { border-left-color: var(--faa-red); }
.faa-program[data-tone="orange"] { border-left-color: var(--faa-orange); }
.faa-program[data-tone="neutral"] { border-left-color: var(--faa-muted); }
.faa-program-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.faa-program-label { font-size: 13px; font-weight: 700; color: var(--white, #fff); }
.faa-program-detail { font-size: 12px; color: var(--gray-300, #CBD5E1); font-variant-numeric: tabular-nums; }
.faa-program-reason { font-size: 11px; color: var(--gray-400, #94A3B8); overflow-wrap: anywhere; }
.faa-tag {
    font-size: 9px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
    padding: 1px 6px; border-radius: 4px; background: rgba(148, 163, 184, 0.14); color: var(--gray-300, #CBD5E1);
}
.faa-link { display: inline-block; margin-top: 2px; font-size: 11px; color: var(--ua-blue-light, #0088FF); }
.faa-notam {
    display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline;
    padding-left: 10px; border-left: 2px solid var(--faa-yellow); font-size: 12px; color: var(--gray-200, #E2E8F0);
}
.faa-notam[data-severity="high"] { border-left-color: var(--faa-red); }
.faa-notam-summary { font-weight: 600; overflow-wrap: anywhere; }
.faa-notam-when { font-size: 11px; color: var(--gray-400, #94A3B8); }
.faa-notice { font-size: 11px; color: var(--gray-400, #94A3B8); padding-left: 10px; border-left: 2px solid rgba(148, 163, 184, 0.25); }
.faa-empty { font-size: 12px; color: var(--gray-300, #CBD5E1); }
.faa-attribution { font-size: 10px; color: var(--gray-500, #64748B); letter-spacing: 0.2px; }
.faa-subhead {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--gray-400, #94A3B8); margin-top: 4px;
}

/* ---- Flight detail: "Conditions at <dest>" ---- */
.faa-conditions {
    display: flex; flex-direction: column; gap: 8px;
    margin: -4px 0 16px; padding: 10px 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-left: 3px solid var(--faa-muted);
    border-radius: var(--radius-md, 10px);
}
.faa-conditions[data-tone="red"] { border-left-color: var(--faa-red); background: rgba(239, 68, 68, 0.06); }
.faa-conditions[data-tone="orange"] { border-left-color: var(--faa-orange); background: rgba(251, 146, 60, 0.06); }
.faa-conditions[data-tone="yellow"] { border-left-color: var(--faa-yellow); background: rgba(245, 158, 11, 0.05); }
.faa-conditions[data-tone="green"] { border-left-color: var(--faa-green); }
.faa-conditions-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.faa-conditions-title {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-300, #CBD5E1);
}
.faa-conditions[data-tone="red"] .faa-chip { background: rgba(239, 68, 68, 0.18); color: #FCA5A5; }
.faa-conditions[data-tone="orange"] .faa-chip { background: rgba(251, 146, 60, 0.18); color: #FDBA74; }
.faa-conditions[data-tone="yellow"] .faa-chip { background: rgba(245, 158, 11, 0.18); color: #FCD34D; }

/* ---- Flight detail: FAA times (SWIM) ---- */
.faa-times {
    margin: -8px 0 16px; padding: 10px 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-md, 10px);
}
.faa-times[data-tone="orange"] { border-color: rgba(251, 146, 60, 0.35); }
.faa-times[data-tone="red"] { border-color: rgba(239, 68, 68, 0.35); }
.faa-times-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.faa-times-title {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-300, #CBD5E1);
}
.faa-times-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 6px; margin: 0 0 6px;
}
.faa-times-cell { padding: 6px 8px; border-radius: var(--radius-sm, 6px); background: rgba(255, 255, 255, 0.04); }
.faa-times-cell dt { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-400, #94A3B8); }
.faa-times-cell dd { margin: 2px 0 0; font-size: 13px; font-weight: 700; color: var(--white, #fff); font-variant-numeric: tabular-nums; }
.faa-times-cell.is-edct { background: rgba(251, 146, 60, 0.12); }
.faa-times-cell.is-edct dd { color: #FDBA74; }

/* ---- Hub modal FAA card ---- */
.faa-hub-card {
    display: flex; flex-direction: column; gap: 10px;
    padding: 16px; margin-bottom: 20px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-left: 3px solid var(--faa-muted);
    border-radius: var(--radius-md, 10px);
}
.faa-hub-card[data-tone="red"] { border-left-color: var(--faa-red); }
.faa-hub-card[data-tone="orange"] { border-left-color: var(--faa-orange); }
.faa-hub-card[data-tone="yellow"] { border-left-color: var(--faa-yellow); }
.faa-hub-card[data-tone="green"] { border-left-color: var(--faa-green); }
.faa-hub-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.faa-hub-title {
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-300, #CBD5E1);
}
.faa-facts { display: flex; flex-wrap: wrap; gap: 6px; }
.faa-fact {
    font-size: 12px; padding: 4px 10px; border-radius: var(--radius-sm, 6px);
    background: rgba(255, 255, 255, 0.05); color: var(--gray-200, #E2E8F0); font-variant-numeric: tabular-nums;
}
.faa-fact.is-deicing { background: rgba(59, 130, 246, 0.14); color: #93C5FD; }

/* ---- Aircraft profile: FAA registry block ---- */
.faa-registry-head {
    grid-column: 1 / -1; margin-top: 6px;
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-300, #CBD5E1);
}
.faa-registry-span { grid-column: 1 / -1; }
.faa-registry-item .aircraft-profile-value { text-align: right; overflow-wrap: anywhere; }
.faa-registry-caption { display: block; margin-top: 2px; font-size: 10px; font-weight: 400; color: var(--gray-500, #64748B); }
.faa-registry-warn .aircraft-profile-value { color: var(--faa-yellow); }
.faa-registry-source { grid-column: 1 / -1; font-size: 11px; color: var(--gray-500, #64748B); }

/* ---- Ops (layout A): FAA plan + nationwide programs ---- */
.ov-faa-body { padding: 10px 14px 12px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ov-faa-body .ov-constraint-empty { padding: 24px 12px; }
.ov-faa-list { padding: 0; flex: none; }
.ov-faa-group { display: flex; flex-direction: column; gap: 4px; }
.ov-faa-subhead {
    font-family: var(--ov-mono, ui-monospace, Menlo, monospace); font-size: 9px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--ov-text-mute, #6b7799);
}
.ov-faa-subhead--rule { margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--ov-border, rgba(92, 138, 255, 0.08)); }
.ov-faa-plan-item {
    display: flex; align-items: baseline; gap: 10px; padding: 6px 10px;
    background: var(--ov-surface, #0a0f1e); border-left: 2px solid var(--ov-text-mute, #6b7799); border-radius: 3px;
    font-family: var(--ov-mono, ui-monospace, Menlo, monospace); font-size: 11px; line-height: 1.45;
}
.ov-faa-plan-item.hub { border-left-color: var(--ov-warn, #f59e0b); }
.ov-faa-window { flex: none; min-width: 84px; color: var(--ov-accent, #4a7dff); font-weight: 700; white-space: nowrap; }
.ov-faa-text { flex: 1; min-width: 0; color: var(--ov-text, #e5eaf7); overflow-wrap: anywhere; }
.ov-faa-hubs { flex: none; color: var(--ov-warn, #f59e0b); font-weight: 700; letter-spacing: 0.04em; }
.ov-faa-notes, .ov-faa-note {
    font-family: var(--ov-mono, ui-monospace, Menlo, monospace); font-size: 10px; color: var(--ov-text-mute, #6b7799);
    letter-spacing: 0.06em;
}
.ov-faa-source {
    margin-top: auto; padding-top: 6px;
    font-family: var(--ov-mono, ui-monospace, Menlo, monospace); font-size: 9px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--ov-text-mute, #6b7799);
}
.ov-faa-source a { color: var(--ov-accent, #4a7dff); }
.ov-constraint.orange { border-left-color: #fb923c; background: rgba(251, 146, 60, 0.06); }
/* An AFP that has not started yet: neutral, no delay shown. */
.ov-constraint.scheduled { border-left-color: var(--ov-text-mute, #6b7799); background: transparent; }
.ov-constraint.scheduled .ov-constraint-time { color: var(--ov-text-mute, #6b7799); }
.ov-constraint.hub .ov-constraint-main b { color: var(--ov-warn, #f59e0b); }

/* ---- Ops (layout C, mobile): hub dots + FAA overview ---- */
body.layout-c .lc-ops-faa-dot--orange { background: #fb923c; box-shadow: 0 0 6px rgba(251, 146, 60, 0.5); }
body.layout-c .lc-ops-faa-dot--unknown,
body.layout-c .lc-ops-faa-dot--na { background: transparent; border: 1px solid #64748b; box-shadow: none; }
body.layout-c .lc-faa-overview { padding: 0 2px 8px; }
body.layout-c .lc-faa-row { border-left: 2px solid #f59e0b; padding-left: 8px; }
body.layout-c .lc-faa-row[data-tone="red"] { border-left-color: #ef4444; }
body.layout-c .lc-faa-row[data-tone="orange"] { border-left-color: #fb923c; }
body.layout-c .lc-faa-row[data-tone="scheduled"] { border-left-color: #64748b; }
body.layout-c .lc-faa-row[data-tone="scheduled"] .lc-faa-detail { color: var(--gray-400, #94A3B8); }
body.layout-c .lc-faa-row-main { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
body.layout-c .lc-faa-code { font-weight: 800; color: var(--white, #fff); font-size: 13px; letter-spacing: 0.5px; }
body.layout-c .lc-faa-title { font-size: 12px; font-weight: 600; color: var(--gray-200, #E2E8F0); }
body.layout-c .lc-faa-detail { margin-left: auto; font-size: 12px; color: #f59e0b; font-variant-numeric: tabular-nums; }
body.layout-c .lc-faa-sub { font-size: 11px; color: var(--gray-400, #94A3B8); overflow-wrap: anywhere; }
body.layout-c .lc-faa-plan-item { display: flex; gap: 8px; align-items: baseline; font-size: 12px; }
body.layout-c .lc-faa-window { flex: none; min-width: 72px; font-weight: 700; color: #93c5fd; font-variant-numeric: tabular-nums; }
body.layout-c .lc-faa-text { flex: 1; min-width: 0; color: var(--gray-200, #E2E8F0); overflow-wrap: anywhere; }
body.layout-c .lc-faa-note { font-size: 12px; color: var(--gray-400, #94A3B8); }
body.layout-c .lc-faa-source { margin-top: 8px; font-size: 10px; color: var(--gray-500, #64748B); text-transform: uppercase; letter-spacing: 0.5px; }

/* ---- Map layers panel: TFR feed state on the toggle (faa-layers.js) ---- */
.faa-tfr-state {
    font-size: 8px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.2;
    padding: 1px 5px; border-radius: 4px; background: rgba(245, 158, 11, 0.16); color: #FCD34D;
}
.faa-tfr-state[hidden] { display: none; }

@media (max-width: 768px) {
    .faa-conditions { margin-top: 0; }
    .ov-faa-window { min-width: 64px; }
}
