/* Hazmat "Isolate & protect" (Donald + Brad, 2026-09-29, docs/preplans/hazmat/DESIGN.md).
   App tokens only: --ovd is the ERG orange, --fire the isolation red, --acc the button. */
.hz-sheet{max-height:92vh;overflow-y:auto;padding-left:16px;padding-right:16px;box-sizing:border-box}
.hz-banner{background:color-mix(in srgb,var(--fire) 18%,transparent);color:var(--text);border:1px solid var(--fire);border-radius:10px;padding:8px 10px;font:600 .8rem/1.35 var(--font);margin-bottom:10px}
.hz-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.hz-head .hz-ht{flex:1;min-width:0}
.hz-plac{flex-shrink:0;background:var(--ovd);color:var(--acc-ink);font:800 .8125rem/1 var(--font-mono);padding:6px 7px;border-radius:6px}
.hz-t{font:800 1.0625rem/1.2 var(--font);color:var(--text)}
.hz-s{font:500 .8rem/1.35 var(--font-mono);color:var(--muted);margin-top:3px;letter-spacing:.02em}
.hz-tih{font-style:normal;background:var(--fire);color:var(--acc-ink);border-radius:4px;padding:1px 4px;font:700 .8rem/1 var(--font-mono);vertical-align:middle}
.hz-change{background:none;border:none;color:var(--acc);font:700 .8rem var(--font);padding:0 12px;min-height:44px}
.hz-nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hz-num{border-radius:12px;padding:10px;border:1.5px solid var(--bdr);background:var(--card2)}
.hz-num.iso{border-color:var(--fire);background:color-mix(in srgb,var(--fire) 12%,var(--card2))}
.hz-num.pro{border-color:var(--ovd);background:color-mix(in srgb,var(--ovd) 12%,var(--card2))}
.hz-num i{display:block;font:600 .8rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hz-num b{display:block;font:800 1.75rem/1.1 var(--font);color:var(--text);margin:6px 0 4px}
.hz-num span{font:500 .8rem/1.3 var(--font-mono);color:var(--muted)}
.hz-basis{font:500 .8rem/1.4 var(--font-mono);color:var(--muted2);margin:8px 0}
.hz-sec{font:700 .8rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;display:flex;justify-content:space-between;gap:8px}
.hz-sec span{text-transform:none;letter-spacing:0;color:var(--muted2)}
.hz-segs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.hz-seg{border:1px solid var(--bdr);background:var(--card2);color:var(--text);border-radius:10px;padding:8px 10px;font:600 .8rem var(--font);min-height:44px}
.hz-seg.on{border-color:var(--acc);color:var(--acc)}
.hz-wind{background:var(--card2);border-radius:10px;padding:9px 10px;font:600 .8rem/1.35 var(--font);color:var(--text)}
.hz-wind.warn,.hz-warn{color:var(--fire)}
.hz-btn,.hz-btn2{width:100%;min-height:52px;border:none;border-radius:13px;font:800 .9375rem var(--font);margin:8px 0}
.hz-btn{background:var(--acc);color:var(--acc-ink)}
.hz-btn2{background:var(--pill);color:var(--text)}
.hz-segs .hz-btn,.hz-segs .hz-btn2{flex:1;width:auto}
.hz-guide{margin:0;padding-left:18px;border-left:3px solid var(--ovd);font:500 .8rem/1.45 var(--font);color:var(--text)}
.hz-guide li.hd{list-style:none;margin-left:-18px;padding-left:6px;font-weight:700;color:var(--muted2)}
.hz-calls{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.hz-call{display:block;background:var(--card2);border-radius:10px;padding:8px;text-decoration:none;color:var(--text)}
.hz-call b{display:block;font:700 .8rem var(--font)}
.hz-call span{display:block;font:700 .8rem var(--font-mono);color:var(--acc);margin-top:2px}
.hz-call i{display:block;font:500 .8rem var(--font-mono);color:var(--muted);font-style:normal}
.hz-foot,.hz-note{font:500 .8rem/1.45 var(--font-mono);color:var(--muted);margin:10px 0}
/* a "not checked" / "unavailable" note must stand out (it follows .hz-warn, same specificity) */
.hz-note.hz-warn{color:var(--fire)}
.hz-row{display:flex;align-items:center;gap:10px;width:100%;background:var(--card2);border:none;border-radius:12px;padding:9px 10px;margin:5px 0;color:var(--text);text-align:left;min-height:48px}
.hz-row[disabled]{opacity:.55}
.hz-lrow{display:flex;gap:6px;align-items:center}
.hz-lrow .hz-row{flex:1;min-width:0}
.hz-setun{flex-shrink:0;border:1px solid var(--bdr);background:var(--pill);color:var(--text);border-radius:10px;padding:8px;font:700 .8rem var(--font);min-height:44px}
.hz-un{background:var(--ovd);color:var(--acc-ink);font:800 .8rem/1 var(--font-mono);padding:5px 6px;border-radius:5px;flex-shrink:0}
.hz-rt{flex:1;min-width:0}
.hz-rt b{display:block;font:700 .8125rem/1.25 var(--font)}
.hz-rt span{display:block;font:500 .8rem/1.35 var(--font-mono);color:var(--muted)}
.hz-chev,.hz-g{color:var(--muted);font:700 .875rem var(--font)}
.hz-q{width:100%;box-sizing:border-box;background:var(--card2);border:1.5px solid var(--acc);border-radius:12px;padding:12px;color:var(--text);font:600 16px var(--font)}
.hz-f{display:block;font:600 .8rem var(--font);color:var(--muted);margin:8px 0}
.hz-f input,.hz-f select{display:block;width:100%;box-sizing:border-box;margin-top:4px;background:var(--card2);border:1px solid var(--bdr);border-radius:10px;padding:10px;color:var(--text);font:600 16px var(--font)}
.hz-chk{display:block;font:600 .8rem var(--font);color:var(--text);margin:6px 0}
.hz-trow,.hz-drow{display:flex;flex-wrap:wrap;gap:4px;align-items:center;background:var(--card2);border-radius:10px;padding:6px;margin:4px 0;font:600 .8rem var(--font);color:var(--text)}
.hz-trow input[type=time],.hz-drow input{background:var(--pill);border:none;border-radius:6px;color:var(--text);padding:6px}
.hz-search{margin-bottom:10px}
/* zone (H3/H5): drawn on the Map tab; this panel is a .pp-card (preplans.css) */
.pp-card.hz-zcard{max-height:46vh;overflow-y:auto}
.hz-ztop{display:flex;align-items:center;gap:10px;margin:0 30px 6px 0}
.hz-ztop b{display:block;font:800 .8125rem var(--font);color:var(--text)}
.hz-ztop span{display:block;font:500 .8rem var(--font-mono);color:var(--muted)}
.hz-ztop>div:first-child{flex:1;min-width:0}
.hz-zw{font:700 .8rem var(--font-mono);color:var(--acc)}
.hz-zw.warn{color:var(--fire)}
.hz-ph{font:800 .9375rem/1.3 var(--font);color:var(--text)}
.hz-ph span{display:block;font:500 .8rem var(--font-mono);color:var(--muted)}
.hz-tiles{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
.hz-tiles div{background:var(--card2);border-radius:10px;padding:8px;border-left:3px solid var(--assist)}
.hz-tiles div.est{border:1.5px dashed var(--ovd)}
.hz-tiles b{display:block;font:800 1.125rem var(--font);color:var(--text)}
.hz-tiles i{display:block;font:500 .8rem/1.3 var(--font-mono);color:var(--muted);font-style:normal}
.hz-edges div{font:600 .8rem/1.5 var(--font);color:var(--text)}
.hz-edges i{display:inline-block;width:70px;font:500 .8rem var(--font-mono);color:var(--muted);font-style:normal}
.hz-pri{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bdr)}
.hz-pri em{font:600 .8rem var(--font-mono);color:var(--assist);font-style:normal}
.hz-pl{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font:800 .8rem var(--font-mono);border:1.5px solid var(--muted);color:var(--text);flex-shrink:0}
.hz-pri.inside .hz-pl{background:var(--fire);border-color:var(--fire)}
.hz-pri.edge .hz-pl{border-color:var(--ovd)}
.hz-pin span{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--card);border:1.5px solid var(--muted);color:var(--text);font:800 .8rem var(--font-mono)}
.hz-pin.inside span{background:var(--fire);border-color:var(--fire)}
.hz-pin.edge span{border-color:var(--ovd)}
/* Task 13 fix 1: a UN outside the app's ERG subset, or a failed load: one box, no distances */
.hz-missing{border:1.5px solid var(--ovd);background:color-mix(in srgb,var(--ovd) 12%,var(--card2));border-radius:12px;padding:12px;margin:8px 0}
.hz-missing b{display:block;font:800 .9375rem/1.3 var(--font);color:var(--text)}
.hz-missing span{display:block;font:500 .8rem/1.4 var(--font-mono);color:var(--muted);margin-top:6px}
.hz-seg.hz-fixed{display:inline-flex;align-items:center;color:var(--muted2);border-style:dashed}
/* Task 15: Settings forms (priority sites, sign-off, facility-specific distances) */
.hz-segs .hz-f{flex:1;min-width:0;margin:0}
.hz-trow label{display:inline-flex;align-items:center;gap:2px}
.hz-trow input[data-l],.hz-drow input[data-l]{flex:1;min-width:90px;background:var(--pill);border:none;border-radius:6px;color:var(--text);padding:6px;font:600 16px var(--font)}
.hz-trow button,.hz-drow button{border:none;background:var(--pill);color:var(--text);border-radius:6px;padding:6px 9px;font:700 .8rem var(--font)}
.hz-plist .hz-row{background:var(--card2)}
