.hazard-page { padding-bottom: 3rem; }
.hazard-page .compact-hero { background:linear-gradient(125deg,#06304b,#087e9e); }
.hazard-toolbar,.hazard-controls,.hazard-views,.hazard-pagination { display:flex;align-items:center;flex-wrap:wrap;gap:.6rem; }
.hazard-toolbar { margin:1.2rem 0; }
.hazard-button { min-height:2.75rem;padding:.65rem .9rem;border:1px solid #95bac7;border-radius:.7rem;background:#fff;color:#06304b;font:inherit;font-weight:650;cursor:pointer; }
.hazard-button[aria-pressed=true] { background:#007b9f;color:#fff;border-color:#007b9f; }
.hazard-button:disabled { opacity:.55;cursor:default; }
.hazard-button:focus-visible,.hazard-page input:focus-visible,.hazard-page select:focus-visible,.hazard-page a:focus-visible { outline:3px solid #f0bc44;outline-offset:3px; }
.hazard-status { min-height:1.5rem; }
.hazard-status-warning { padding:1rem;border-left:4px solid #b56c10;border-radius:.5rem;background:#fff2d8; }
.hazard-summary { display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem; }
.hazard-summary>div { padding:1rem;background:#edf8fb;border:1px solid #d0e3e9;border-radius:1rem; }
.hazard-summary span { display:block;color:#35576b; }
.hazard-summary strong { display:block;margin-top:.3rem;font-size:1.2rem; }
.hazard-map-section { padding:1.3rem;border-radius:1.3rem;background:#082e43;color:#f4faff; }
.hazard-map-section h2 { margin-top:0; }
.hazard-map-section .hazard-button { background:#123e51;color:#fff;border-color:#56899c; }
.hazard-map-section .hazard-button[aria-pressed=true] { background:#007b9f; }
.hazard-views { margin-bottom:.8rem; }
.hazard-globe,.hazard-map2d { position:relative;height:clamp(350px,52vw,650px);width:100%;margin-top:.8rem;border-radius:1rem;overflow:hidden; }
.hazard-globe canvas { display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px; }
.hazard-map2d { background:#173f54;z-index:0; }
.hazard-map-attribution { padding:.2rem .45rem;background:#ffffffed;color:#06304b;border-radius:.3rem;font-size:.75rem; }
.hazard-map-attribution a { color:#06304b; }
.hazard-help,.hazard-attribution { font-size:.9rem;line-height:1.6; }
.hazard-legend { display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin:1rem 0; }
.hazard-legend span { display:inline-flex;align-items:center;gap:.45rem; }
.hazard-swatch { display:inline-block;flex-shrink:0;width:.85rem;height:.85rem;border:1px solid #fff;border-radius:50%; }
.hazard-experimental-swatch { border-radius:.1rem;background-image:linear-gradient(90deg,transparent 45%,#06304b70 45%,#06304b70 55%,transparent 55%),linear-gradient(transparent 45%,#06304b70 45%,#06304b70 55%,transparent 55%); }
.hazard-line { width:1.4rem;height:0;border-width:2px 0 0;border-radius:0; }
.hazard-dashed { border-top-style:dashed; }
.hazard-map-risk { animation:hazard-risk-pulse 3s ease-in-out infinite; }
@keyframes hazard-risk-pulse { 0%,100% { stroke-opacity:1; } 50% { stroke-opacity:.45; } }
[data-hazard-animate=false] .hazard-map-risk { animation:none; }
.hazard-detail { margin:1.2rem 0;padding:1.3rem;border:1px solid #b6d8e2;border-radius:1rem;background:#f3fbfd; }
.hazard-detail h2 { margin-top:0; }
.hazard-experimental-disclaimer { padding:.9rem 1rem;border-left:4px solid #47cbb9;border-radius:.4rem;background:#123e51;color:#f4faff;line-height:1.65; }
.hazard-experimental-method { padding:.8rem;border:1px solid #56899c;border-radius:.7rem;font-size:.92rem;line-height:1.65; }
.hazard-experimental-method summary { cursor:pointer;font-weight:650; }
.hazard-experimental-method p:last-child { margin-bottom:0; }
.hazard-environment-note { padding:.7rem 1rem;border-left:3px solid #47cbb9;background:#edf8fb;line-height:1.6; }
.hazard-missing-parameters { display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;padding-inline-start:1.3rem;line-height:1.6; }
.hazard-detail dl { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0 0 1rem; }
.hazard-detail dt { font-size:.85rem;color:#35576b; }
.hazard-detail dd { margin:.2rem 0 0;overflow-wrap:anywhere; }
.hazard-bulletin { white-space:pre-wrap;max-height:28rem;overflow:auto;font:inherit;line-height:1.6; }
.hazard-filters { display:flex;flex-wrap:wrap;gap:.9rem;align-items:flex-end;margin:1rem 0; }
.hazard-filters label { display:flex;flex:1 1 11rem;flex-direction:column;gap:.4rem;min-width:0;max-width:100%; }
.hazard-filters input,.hazard-filters select { padding:.6rem;border:1px solid #a4c5d1;border-radius:.5rem;min-width:0;max-width:100%;min-height:2.75rem;font:inherit;background:#fff; }
.hazard-filters .hazard-check { flex:1 1 100%;flex-direction:row;align-items:center; }
.hazard-check input { width:1.2rem;height:1.2rem;min-height:0; }
.hazard-layers { display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;padding:.8rem 0; }
.hazard-layers label { display:flex;align-items:center;gap:.4rem; }
.hazard-table-wrap { overflow-x:auto;border:1px solid #d0e3e9;border-radius:1rem; }
.hazard-table { width:100%;border-collapse:collapse;font-size:.93rem; }
.hazard-table th,.hazard-table td { text-align:start;padding:.9rem;border-bottom:1px solid #d0e3e9;vertical-align:top; }
.hazard-table th { background:#edf8fb; }
.hazard-table .hazard-button { text-align:start;min-width:7rem; }
.hazard-row-selected { background:#e3f6fc; }
.hazard-table small { display:block;margin-top:.3rem; }
.hazard-coverage { margin:2rem 0;padding:1.2rem;border:1px solid #d0e3e9;border-radius:1rem; }
.hazard-coverage h2 { margin-top:0; }
.hazard-source-list { list-style:none;padding:0;display:grid;gap:1rem; }
.hazard-source-list li { padding-bottom:1rem;border-bottom:1px solid #d0e3e9;overflow-wrap:anywhere; }
.hazard-source-list small { display:block;margin-top:.4rem; }
.hazard-pagination { justify-content:center;margin:1rem 0; }
.hazard-page [hidden] { display:none!important; }
@media(max-width:42rem) {
 .hazard-summary { grid-template-columns:1fr; }
 .hazard-map-section { padding:.9rem; }
 .hazard-detail dl { grid-template-columns:1fr; }
 .hazard-filters>label { flex-basis:100%; }
 .hazard-controls .hazard-button { flex:1 1 8rem; }
 .hazard-map-section h2 { font-size:1.3rem; }
}
@media(prefers-reduced-motion:reduce) { .hazard-map-risk { animation:none; } }
@media(forced-colors:active) { .hazard-swatch { background:CanvasText!important; } .hazard-map-section { border:1px solid CanvasText; } }
