/* /analyze/ — the screening interface.
 *
 * Scoped to .az-* so it cannot collide with style.css, whose tokens it reuses rather than redefining.
 * The page is operated, not read, so the hierarchy is: verdict, then the one thing to do next, then
 * the evidence, then the engine. A screening tool that opens on a table of forty fields has moved the
 * work back onto the user.
 *
 * Decision colours come from the existing palette on purpose -- brick for set aside, gold for needs
 * work, green for go and look. A new three-colour scale would have been one more thing to learn.
 */

.az-wrap{max-width:1040px;margin:0 auto;padding:0 26px 56px;
  /* the same offset .doc-wrap uses; without it the h1 sits under the fixed header */
  padding-top:calc(var(--gea-header-h, 104px) + 14px)}

/* ---- the one input ---------------------------------------------------- */
.az-ask{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;
  margin:6px 0 26px}
.az-ask label{display:block;font:600 12px/1.4 var(--mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-dim);margin-bottom:10px}
.az-field{display:flex;gap:10px;flex-wrap:wrap}
.az-field input{flex:1 1 320px;min-width:0;background:var(--bg-2);border:1px solid var(--border-2);
  border-radius:10px;padding:13px 15px;color:var(--text);font:400 15px/1.3 var(--sans)}
.az-field input:focus-visible{outline:2px solid var(--green-2);outline-offset:1px;border-color:var(--green-2)}
.az-field button{background:var(--green-2);color:#04120a;border:0;border-radius:10px;
  padding:13px 22px;font:700 14px/1 var(--sans);cursor:pointer}
.az-field button:hover{background:var(--green)}
.az-field button:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.az-hint{margin-top:11px;font:400 13px/1.5 var(--sans);color:var(--text-dim)}
.az-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.az-chip{background:var(--bg-3);border:1px solid var(--border);border-radius:999px;
  padding:6px 13px;font:500 12.5px/1 var(--mono);color:var(--text-2);cursor:pointer}
.az-chip:hover{border-color:var(--green-2);color:var(--text)}

/* ---- search results --------------------------------------------------- */
.az-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:8px}
.az-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel);
  border:1px solid var(--border);border-radius:10px;padding:12px 15px;cursor:pointer}
.az-list li:hover{border-color:var(--border-2)}
.az-list .az-nm{font:600 14.5px/1.3 var(--sans);color:var(--text)}
.az-list .az-loc{font:400 13px/1.3 var(--sans);color:var(--text-dim)}
.az-list .az-id{font:400 11.5px/1 var(--mono);color:var(--text-dim);margin-left:auto}

/* ---- the verdict ------------------------------------------------------ */
.az-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.az-head{padding:24px 26px;border-bottom:1px solid var(--border);
  border-left:5px solid var(--dc,var(--text-dim))}
.az-card[data-d="DO_NOT_PRIORITIZE"]{--dc:var(--muted)}
.az-card[data-d="INSUFFICIENT_EVIDENCE"]{--dc:var(--gold)}
.az-card[data-d="INVESTIGATE"]{--dc:var(--green-2)}
.az-verdict{font:800 clamp(22px,3.4vw,31px)/1.1 var(--sans);color:var(--dc);
  letter-spacing:-.01em;text-wrap:balance}
.az-sub{margin-top:5px;font:400 14px/1.4 var(--sans);color:var(--text-2)}
.az-pending{display:inline-block;margin-top:13px;background:var(--bg-3);
  border:1px solid var(--border-2);border-radius:7px;padding:7px 12px;
  font:600 11.5px/1.35 var(--mono);letter-spacing:.04em;color:var(--gold)}
.az-pending span{display:block;font:400 11.5px/1.5 var(--sans);color:var(--text-dim);
  letter-spacing:0;margin-top:5px;max-width:66ch;text-transform:none}

.az-why{padding:22px 26px;border-bottom:1px solid var(--border)}
.az-why p{color:var(--text);font-size:15.5px;line-height:1.6;max-width:72ch;margin:0}

/* ---- evidence strength: three steps, never a number ------------------- */
.az-strength{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 26px;
  border-bottom:1px solid var(--border)}
.az-strength .az-k{font:600 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dim)}
.az-steps{display:flex;gap:5px}
.az-steps i{width:38px;height:7px;border-radius:4px;background:var(--border-2)}
.az-steps i.on{background:var(--gold)}
.az-strength .az-v{font:700 13.5px/1 var(--mono);color:var(--gold)}
.az-strength .az-note{font:400 12.5px/1.5 var(--sans);color:var(--text-dim);flex:1 1 260px}

/* ---- next action: the hero when there is nothing to decide ------------ */
.az-next{padding:24px 26px;border-bottom:1px solid var(--border);background:var(--panel-2)}
.az-next h2{font:700 13px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;
  color:var(--green);margin:0 0 13px}
.az-next .az-an{font:700 18px/1.3 var(--sans);color:var(--text);margin:0 0 7px;text-wrap:balance}
.az-next .az-am{font:400 14.5px/1.6 var(--sans);color:var(--text-2);margin:0 0 15px;max-width:72ch}
.az-meta{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}
.az-tag{background:var(--bg-2);border:1px solid var(--border-2);border-radius:7px;padding:6px 11px;
  font:500 12px/1.3 var(--mono);color:var(--text-2)}
.az-tag b{color:var(--text);font-weight:700}
.az-res{margin:0;padding-left:19px}
.az-res li{color:var(--text-2);font-size:14px;line-height:1.6;margin-bottom:4px}
.az-res li b{color:var(--text);font-weight:600}
.az-lim{margin-top:14px;font:400 13px/1.55 var(--sans);color:var(--gold-2);max-width:72ch}
.az-then{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border-2)}
.az-then h3{font:600 11.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;
  color:var(--text-dim);margin:0 0 9px}
.az-then ol{margin:0;padding-left:20px}
.az-then li{color:var(--text-2);font-size:13.5px;line-height:1.65}

/* ---- know / missing -------------------------------------------------- */
.az-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:0;
  border-bottom:1px solid var(--border)}
.az-col{padding:22px 26px}
.az-col + .az-col{border-left:1px solid var(--border)}
.az-col h2{font:700 12.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dim);margin:0 0 13px}
.az-col ul{margin:0;padding-left:18px}
.az-col li{color:var(--text-2);font-size:14px;line-height:1.6;margin-bottom:8px}
.az-col li b{color:var(--text);font-weight:600}
.az-col li em{color:var(--text-dim);font-style:normal;display:block;font-size:12.5px;margin-top:2px}
.az-empty{color:var(--text-dim);font-size:13.5px;font-style:italic}

/* ---- sources + full evidence ----------------------------------------- */
.az-foot{padding:20px 26px}
.az-src{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.az-src a,.az-src span{font:500 12.5px/1 var(--mono);color:var(--text-2);background:var(--bg-2);
  border:1px solid var(--border);border-radius:7px;padding:7px 11px}
.az-src a:hover{color:var(--green);border-color:var(--green-2)}

.az-tech{margin-top:16px;border-top:1px solid var(--border);padding-top:4px}
.az-tech summary{cursor:pointer;font:600 12.5px/1 var(--mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-2);padding:14px 0;list-style:none}
.az-tech summary::-webkit-details-marker{display:none}
.az-tech summary::before{content:"▸ ";color:var(--green-2)}
.az-tech[open] summary::before{content:"▾ "}
.az-tech summary:hover{color:var(--green)}
.az-block{margin-bottom:20px}
.az-block h3{font:700 11.5px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;
  margin:0 0 9px;color:var(--text-dim)}
.az-block.fact h3{color:var(--green-2)}
.az-block.inference h3{color:var(--gold)}
.az-block.unknown h3{color:var(--text-2)}
.az-block.counter h3{color:var(--muted)}
.az-rows{display:grid;gap:7px}
.az-row{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:11px 13px;
  font:400 13.5px/1.55 var(--sans);color:var(--text-2)}
.az-row b{color:var(--text);font-weight:600}
.az-row code{font:400 12px/1.4 var(--mono);color:var(--text-dim)}
.az-cond{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.az-cond li{display:flex;gap:10px;align-items:flex-start;font:400 13px/1.5 var(--sans);
  color:var(--text-2)}
.az-cond .mk{font:700 13px/1.5 var(--mono);width:1.1em;flex:none}
.az-cond li.yes .mk{color:var(--green-2)}
.az-cond li.no .mk{color:var(--muted)}
.az-vers{display:flex;gap:7px;flex-wrap:wrap}
.az-vers span{font:400 11.5px/1 var(--mono);color:var(--text-dim);background:var(--bg-2);
  border:1px solid var(--border);border-radius:6px;padding:6px 9px}

/* ---- ask / add evidence ---------------------------------------------- */
.az-evid{margin-top:26px;background:var(--panel);border:1px solid var(--border);border-radius:14px;
  padding:22px}
.az-evid h2{font:700 13px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--green);margin:0 0 8px}
.az-evid > p{font:400 14px/1.6 var(--sans);color:var(--text-2);max-width:74ch;margin:0 0 16px}
.az-wi{display:grid;gap:9px;margin-bottom:14px}
.az-wi label{display:flex;gap:11px;align-items:flex-start;font:400 14px/1.55 var(--sans);
  color:var(--text-2);cursor:pointer}
.az-wi input{margin-top:3px;flex:none;accent-color:var(--green-2)}
.az-out{background:var(--bg-2);border:1px solid var(--border-2);border-radius:10px;padding:15px 17px;
  font:400 14px/1.6 var(--sans);color:var(--text)}
.az-out b{color:var(--gold)}
.az-out .az-wl{display:block;margin-top:9px;font:600 11px/1.4 var(--mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-dim)}
/* C2063: "Do you have information about this facility?" — two tabs, plain questions, a form */
.az-evid h2{text-transform:none;letter-spacing:0;font:700 17px/1.3 var(--sans);color:var(--text)}
.az-evid-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;border-bottom:1px solid var(--border)}
.az-evid-tab{background:none;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;
  padding:9px 14px;font:600 14px/1.3 var(--sans);color:var(--text-2);cursor:pointer;margin-bottom:-1px}
.az-evid-tab.on{background:var(--bg-2);border-color:var(--border);color:var(--green)}
.az-evid-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.az-evid-pane > p{font:400 14px/1.6 var(--sans);color:var(--text-2);max-width:74ch;margin:0 0 14px}
.az-wi-row{padding:10px 12px;border:1px solid var(--border-2);border-radius:10px;background:var(--bg-2)}
.az-wi-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.az-wi-q{color:var(--text)}
.az-wi-ex{font-size:12.5px;color:var(--text-dim);font-style:italic}
.az-wi-now{font:600 11.5px/1.4 var(--mono);color:var(--gold)}
.az-out h4{margin:0 0 6px;font:700 12px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.az-wi-why{color:var(--text-2);font-size:13.5px}
.az-ef{display:flex;flex-direction:column;gap:5px;margin:0 0 12px;max-width:640px}
.az-ef-l,.az-ef-set legend{font:600 13px/1.3 var(--sans);color:var(--text)}
.az-ef select,.az-ef input,.az-ef textarea{background:#0b0f0c;border:1px solid var(--border-2);border-radius:8px;
  color:var(--text);font:400 14px/1.4 var(--sans);padding:9px 11px;width:100%;box-sizing:border-box}
.az-ef-set{border:1px solid var(--border-2);border-radius:10px;padding:10px 12px;margin:0 0 12px;max-width:640px}
.az-ef-cb{display:flex;gap:9px;align-items:flex-start;font:400 13.5px/1.5 var(--sans);color:var(--text-2);margin:5px 0}
.az-ef-cb input{margin-top:3px;flex:none;accent-color:var(--green-2)}
.az-ef-go{background:var(--green-2);color:#04110a;border:none;border-radius:10px;padding:11px 18px;
  font:700 14px/1 var(--sans);cursor:pointer}
.az-ef-go:focus-visible{outline:2px solid #fff;outline-offset:2px}
.az-ef-err{color:#ef4444;font:600 13px/1.4 var(--sans);margin:0 0 10px}

.az-msg{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px 22px;
  color:var(--text-2);font-size:14.5px;line-height:1.6}
.az-msg b{color:var(--text)}

@media (max-width:620px){
  /* padding-left/right/bottom only. The `padding` shorthand here reset padding-top to 0 and put the
     h1 under the fixed header on every phone, while desktop looked fine -- measured in the DOM, not
     guessed from the screenshot, because a full-page capture of a fixed header looks like this bug
     even when the bug is not there. */
  .az-wrap{padding-left:16px;padding-right:16px;padding-bottom:44px}
  .az-head,.az-why,.az-strength,.az-next,.az-col,.az-foot{padding-left:18px;padding-right:18px}
  .az-col + .az-col{border-left:0;border-top:1px solid var(--border)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.az-h2{font-size:19px;margin:38px 0 10px}

/* The mode label and the standing caveat. Both are permanent fixtures rather than fine print: the
   first says what question is being answered, the second says which half of the answer is not yet
   validated. */
.az-mode{font:700 11.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--green-2);margin:0 0 10px}
.az-caveat{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--gold);
  border-radius:10px;padding:15px 18px;margin:26px 0 0;font-size:14.5px;line-height:1.6;
  color:var(--text-2);max-width:74ch}
.az-caveat b{color:var(--gold)}
.az-caveat code{font:500 13px/1 var(--mono);color:var(--text)}

/* The CSV input, styled as a link rather than a button: it is an alternative to typing, not a
   primary action. The native control is hidden but still reachable by keyboard through the label. */
.az-file{color:var(--green);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.az-file:hover{color:var(--text)}
.az-file input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.az-file:focus-within{outline:2px solid var(--green-2);outline-offset:2px;border-radius:3px}

/* ---- Facility Explorer (C2057) ------------------------------------------------------------- */
.az-exp{margin:34px 0 0}
.az-exp-lead{color:var(--text-2);max-width:72ch;margin:.4em 0 1em}
.az-exp-stats{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.az-exp-stat{border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-width:116px}
.az-exp-stat b{display:block;font-size:19px;font-variant-numeric:tabular-nums;line-height:1.2}
.az-exp-stat span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}
.az-exp-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 12px}
.az-exp-f{display:flex;flex-direction:column;gap:3px;font-size:11px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--text-2)}
.az-exp-f input,.az-exp-f select{font:inherit;font-size:13px;text-transform:none;letter-spacing:0;
  color:var(--text);background:var(--bg-2,#11151a);border:1px solid var(--line);border-radius:6px;
  padding:6px 8px;min-width:140px;max-width:220px}
.az-exp-csv{font:inherit;font-size:13px;color:var(--text);background:transparent;
  border:1px solid var(--line);border-radius:6px;padding:7px 12px;cursor:pointer}
.az-exp-csv:hover{border-color:var(--green,#25c281)}
.az-exp-tabs{display:flex;gap:4px;margin:0 0 10px;border-bottom:1px solid var(--line);
  align-items:flex-end;flex-wrap:wrap}

/* ---------- C2061: the global facility map ----------
   Reset sits with the view tabs rather than among the filters: it undoes all of them at once, so
   putting it inside the set it clears reads as one more filter. */
.az-exp-reset{margin-inline-start:auto;align-self:center;background:none;border:1px solid var(--line);
  color:var(--text-2);border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}
.az-exp-reset:hover,.az-exp-reset:focus-visible{color:var(--text);border-color:var(--text-2)}

/* The selected facility is red, and red on this map means SELECTED — never risk, grade or priority.
   The ring is decoration and takes no clicks, so it can never sit between the reader and the point
   it is drawing attention to. */
.az-exp-sel{filter:drop-shadow(0 0 6px rgba(255,59,48,.65))}
.az-exp-selring{pointer-events:none}
#az-exp-tbody tr.is-sel{background:rgba(255,59,48,.10);outline:1px solid rgba(255,59,48,.45);
  outline-offset:-1px}
.az-exp-pop-w{font-size:12px;color:var(--text-2);margin:0 0 4px}
.az-exp-tab{font:inherit;font-size:13px;color:var(--text-2);background:transparent;border:0;
  border-bottom:2px solid transparent;padding:8px 14px;cursor:pointer}
.az-exp-tab.is-on{color:var(--text);border-bottom-color:var(--green,#25c281)}
.az-exp-tab:focus-visible{outline:2px solid #4dffbf;outline-offset:-2px}
.az-exp-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.az-exp-t{width:100%;border-collapse:collapse;font-size:13px}
.az-exp-t th,.az-exp-t td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);
  white-space:nowrap}
.az-exp-t thead th{position:sticky;top:0;background:var(--bg-2,#11151a);z-index:1}
.az-exp-t thead button{font:inherit;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-2);background:transparent;border:0;padding:0;cursor:pointer}
.az-exp-t thead button:hover{color:var(--text)}
.az-exp-t tbody tr{cursor:pointer}
.az-exp-t tbody tr:hover{background:rgba(37,194,129,.07)}
.az-exp-t tbody tr:focus-visible{outline:2px solid #4dffbf;outline-offset:-2px}
/* A decision must never be carried by colour alone. */
.az-exp-dec{display:inline-block;border:1px solid currentColor;border-radius:4px;padding:1px 6px;
  font-size:11px;letter-spacing:.04em}
.az-exp-dec.d-dnp{color:#9aa4ad}
.az-exp-dec.d-ins{color:#d8a657}
.az-exp-dec.d-inv{color:#25c281}
.az-exp-pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin:10px 0 0;
  font-size:12px;color:var(--text-2)}
.az-exp-pager button{font:inherit;color:var(--text);background:transparent;border:1px solid var(--line);
  border-radius:6px;padding:5px 11px;cursor:pointer}
.az-exp-pager button[disabled]{opacity:.4;cursor:default}
#az-exp-map{height:min(560px,68vh);border:1px solid var(--line);border-radius:8px;background:#0c1013}
.az-exp-mapnote{font-size:12px;color:var(--text-2);margin:8px 0 0}
@media (max-width:720px){
  .az-exp-f input,.az-exp-f select{min-width:0;width:100%;max-width:none}
  .az-exp-f{flex:1 1 46%}
  #az-exp-map{height:min(420px,58vh)}
}
[dir="rtl"] .az-exp-t th,[dir="rtl"] .az-exp-t td{text-align:right}
[dir="rtl"] .az-exp-pager{justify-content:flex-start}
@media (prefers-reduced-motion:reduce){.az-exp-t tbody tr{transition:none}}

/* ════════════════════════════════════════════════════════════════════════
   C2059 — finding a facility, and meeting one
   ════════════════════════════════════════════════════════════════════════ */

/* The label is still there for a screen reader; the modes say the same thing visually. */
.az-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- four modes instead of four remembered syntaxes -------------------- */
.az-modes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.az-modes button{background:var(--bg-2);color:var(--text-dim);border:1px solid var(--border-2);
  border-radius:9px;padding:8px 14px;font:600 12.5px/1 var(--sans);cursor:pointer;
  transition:color .13s,background .13s,border-color .13s}
.az-modes button:hover{color:var(--text);border-color:var(--green-2)}
.az-modes button.is-on{background:rgba(0,255,65,.10);color:var(--green);
  border-color:rgba(0,255,65,.45)}
.az-modes button:focus-visible{outline:2px solid var(--green-2);outline-offset:2px}

/* ---- the suggestion list ---------------------------------------------- */
/* The combo wraps the input so the list can be positioned against it and nothing else. */
.az-combo{position:relative;flex:1 1 320px;min-width:0;display:flex}
.az-combo input{flex:1 1 auto}
.az-sugg{position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;
  list-style:none;max-height:min(58vh,420px);overflow-y:auto;
  background:var(--panel);border:1px solid rgba(0,255,65,.30);border-radius:12px;
  box-shadow:0 18px 44px rgba(0,0,0,.55)}
.az-sugg li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:baseline;
  padding:9px 11px;border-radius:8px;cursor:pointer}
.az-sugg li.is-on,.az-sugg li:hover{background:rgba(0,255,65,.09)}
.az-sg-n{font:600 14px/1.3 var(--sans);color:var(--text);overflow-wrap:anywhere}
.az-sg-p{grid-column:1;font:400 11.5px/1.3 var(--sans);color:var(--text-dim)}
.az-sg-r{grid-column:1;font:400 10.5px/1.3 var(--mono);color:var(--text-dim);opacity:.8}
/* The verdict travels with the suggestion: choosing is a decision, so show the one already made. */
.az-sg-d{grid-row:1;grid-column:2;justify-self:end;white-space:nowrap;
  font:700 9.5px/1 var(--mono);letter-spacing:.06em;padding:4px 7px;border-radius:5px;
  border:1px solid currentColor}
.az-sg-d[data-d="DO_NOT_PRIORITIZE"]{color:var(--muted)}
.az-sg-d[data-d="INSUFFICIENT_EVIDENCE"]{color:var(--gold)}
.az-sg-d[data-d="INVESTIGATE"]{color:var(--green)}

/* ---- the three answers, as cards -------------------------------------- */
.az-dcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:14px;
  margin:16px 0 4px}
.az-dcard{background:var(--bg-2);border:1px solid var(--border-2);border-radius:12px;padding:15px 16px;
  border-top-width:3px}
.az-dcard[data-d="DO_NOT_PRIORITIZE"]{border-top-color:var(--muted)}
.az-dcard[data-d="INSUFFICIENT_EVIDENCE"]{border-top-color:var(--gold)}
.az-dcard[data-d="INVESTIGATE"]{border-top-color:var(--green-2)}
.az-dcard h3{margin:0 0 10px}
/* The verdict name carries a border as well as a colour: a decision must never be colour alone. */
.az-dchip{display:inline-block;font:700 10.5px/1 var(--mono);letter-spacing:.07em;
  padding:5px 9px;border-radius:5px;border:1px solid currentColor}
.az-dcard[data-d="DO_NOT_PRIORITIZE"] .az-dchip{color:var(--muted)}
.az-dcard[data-d="INSUFFICIENT_EVIDENCE"] .az-dchip{color:var(--gold)}
.az-dcard[data-d="INVESTIGATE"] .az-dchip{color:var(--green)}
.az-dcard p{margin:0 0 9px;font:400 12.8px/1.55 var(--sans);color:var(--text-2,#cbd5e1)}
.az-dcard p b{display:block;font:700 10px/1.4 var(--mono);letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-dim);margin-bottom:3px}
/* "What it does NOT mean" is the half that stops a verdict being over-read. It is not a footnote. */
.az-dcard .az-dn{padding:9px 10px;border-radius:0 7px 7px 0;
  border-left:2px solid rgba(217,160,32,.5);background:rgba(217,160,32,.07)}
.az-dcard .az-dw{margin:11px 0 0;padding-top:9px;border-top:1px solid var(--line,rgba(255,255,255,.07));
  font:400 11.5px/1.5 var(--sans);color:var(--text-dim);font-style:italic}

/* ---- facility overview: the facts, before the argument ----------------- */
.az-ov{margin:2px 0 16px;padding:14px 16px;border:1px solid rgba(0,255,65,.16);border-radius:10px;
  background:rgba(0,255,65,.025)}
.az-ov-h{margin:0 0 11px;font:700 11px/1.3 var(--mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-dim)}
.az-ov-dl{margin:0;display:grid;grid-template-columns:minmax(104px,auto) 1fr;gap:5px 14px;
  align-items:baseline}
.az-ov-dl dt{font:400 11.5px/1.4 var(--sans);color:var(--text-dim);margin:0}
.az-ov-dl dd{margin:0;min-width:0;font:400 13px/1.45 var(--sans);color:var(--text);
  overflow-wrap:anywhere}
/* Ids, coordinates and version stamps are identifiers: monospace, so they read as data. */
.az-ov-dl dd[data-canonical],.az-ov-dl dd:nth-of-type(2){font-family:var(--mono);font-size:12px}
.az-ov-tools{margin-top:13px;padding-top:12px;
  border-top:1px solid var(--line,rgba(255,255,255,.07))}

/* ---- wide screens: the overview reads as two columns ------------------- */
@media (min-width:820px){
  .az-ov-dl{grid-template-columns:minmax(104px,auto) 1fr minmax(104px,auto) 1fr}
}

/* ---- touch and narrow ------------------------------------------------- */
@media (max-width:620px){
  .az-modes button{flex:1 1 auto;min-height:44px}
  .az-sugg li{min-height:48px;align-content:center}
  .az-ov-dl{grid-template-columns:1fr;gap:1px 0}
  .az-ov-dl dt{margin-top:8px}
}

/* ---- RTL -------------------------------------------------------------- */
/* The list is anchored to the field, so it mirrors with it. What must flip is the accent rail on the
   "does not mean" panel and the monospace runs, which stay left-to-right because an id read in the
   other direction is a different id. */
[dir=rtl] .az-dcard .az-dn{border-left:0;border-right:2px solid rgba(217,160,32,.5);
  border-radius:7px 0 0 7px}
[dir=rtl] .az-ov-dl dd[data-canonical]{direction:ltr;text-align:right;unicode-bidi:plaintext}
[dir=rtl] .az-sg-d{justify-self:start}

@media (prefers-reduced-motion:reduce){
  .az-modes button{transition:none}
}

/* ---- the reason, with a heading --------------------------------------- */
/* The card now reads as a sequence: why this result, what we know, what is missing, what to do next,
   full evidence. The reason used to be an unlabelled paragraph between the verdict and the columns. */
.az-why-h{margin:0 0 7px;font:700 11px/1.3 var(--mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-dim)}

/* ---- the Explorer map popup ------------------------------------------- */
/* Same information the Asset Map offers on a marker: who, what was decided, what to do, the tools. */
.az-exp-pop .leaflet-popup-content{margin:13px 46px 13px 15px}
.az-exp-pop-in h4{margin:0 0 7px;font:700 14.5px/1.3 var(--sans);color:var(--text);
  overflow-wrap:anywhere}
.az-exp-pop-d{display:inline-block;font:700 9.5px/1 var(--mono);letter-spacing:.07em;
  padding:4px 8px;border-radius:5px;border:1px solid currentColor;margin-bottom:8px}
.az-exp-pop-d[data-d="DO_NOT_PRIORITIZE"]{color:var(--muted)}
.az-exp-pop-d[data-d="INSUFFICIENT_EVIDENCE"]{color:var(--gold)}
.az-exp-pop-d[data-d="INVESTIGATE"]{color:var(--green)}
.az-exp-pop-a{font:400 12px/1.5 var(--sans);color:var(--text-2,#cbd5e1);margin-bottom:5px}
.az-exp-pop-a b{display:block;font:700 9.5px/1.4 var(--mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-dim)}
.az-exp-pop-id{font:400 10.5px/1.3 var(--mono);color:var(--text-dim);margin-bottom:9px}
.az-exp-pop-go{display:block;width:100%;margin-top:10px;background:var(--green-2);color:#04120a;
  border:0;border-radius:8px;padding:9px 12px;font:700 12.5px/1 var(--sans);cursor:pointer}
.az-exp-pop-go:hover{background:var(--green)}
.az-exp-pop-go:focus-visible{outline:2px solid var(--text);outline-offset:2px}
[dir=rtl] .az-exp-pop .leaflet-popup-content{margin:13px 15px 13px 46px}
[dir=rtl] .az-exp-pop-id{direction:ltr;text-align:right;unicode-bidi:plaintext}

/* ---------- the facility picker ----------
   A catalogue you can touch, not a form you must already understand. Full-screen on a phone,
   a centred sheet on a desktop. The row height is fixed because the list is virtualised: the
   spacer's height and each row's `top` are computed from it, so ROW_H in analyze-picker.js and
   the height here must stay equal. */
.az-pick{position:fixed;inset:0;z-index:4000;display:flex;align-items:flex-end;justify-content:center}
.az-pick[hidden]{display:none}
body.az-pick-open{overflow:hidden}
.az-pick-back{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(2px)}
.az-pick-panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:720px;
  max-height:92vh;background:var(--panel-2,#0f1512);border:1px solid var(--border-2,#223029);
  border-radius:16px 16px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.6);overflow:hidden}
@media (min-width:720px){
  .az-pick{align-items:center}
  .az-pick-panel{border-radius:16px;max-height:84vh}
}
.az-pick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:16px 16px 10px}
.az-pick-h{margin:0;font:700 17px/1.2 var(--sans,system-ui,sans-serif);color:var(--text-1,#e8eef2)}
.az-pick-count{margin-top:3px;font:600 12.5px/1.3 var(--mono,ui-monospace,monospace);
  color:var(--green,#00ff41);letter-spacing:.3px}
.az-pick-x{flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--border-2,#223029);background:transparent;color:var(--text-2,#9fb0a8);
  font:400 24px/1 system-ui;cursor:pointer}
.az-pick-x:hover,.az-pick-x:focus-visible{color:var(--green,#00ff41);border-color:var(--green,#00ff41)}
.az-pick-q{margin:0 16px 10px;padding:12px 14px;border-radius:10px;
  border:1px solid var(--border-2,#223029);background:var(--bg-3,#0a0f0c);
  color:var(--text-1,#e8eef2);font:400 15px/1.3 var(--sans,system-ui,sans-serif)}
.az-pick-q:focus-visible{outline:2px solid var(--green,#00ff41);outline-offset:1px}
.az-pick-filters{display:flex;gap:10px;flex-wrap:wrap;padding:0 16px 10px}
.az-pick-f{display:flex;flex-direction:column;gap:3px;font:600 10.5px/1 var(--mono,monospace);
  text-transform:uppercase;letter-spacing:.6px;color:var(--text-3,#8ea3b0)}
.az-pick-f select{padding:8px 10px;border-radius:8px;border:1px solid var(--border-2,#223029);
  background:var(--bg-3,#0a0f0c);color:var(--text-1,#e8eef2);
  font:400 13px/1 var(--sans,system-ui,sans-serif);max-width:46vw}
/* The scroller. overscroll-behavior keeps a swipe here from scrolling the page behind it. */
.az-pick-list{position:relative;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;touch-action:pan-y;border-top:1px solid var(--border,#1a241e)}
.az-pick-spacer{width:1px}
.az-pick-win{position:absolute;inset:0 0 auto 0}
.az-pick-row{position:absolute;left:0;right:0;height:68px;display:grid;
  grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:1px 10px;align-content:center;
  padding:0 16px;border:0;border-bottom:1px solid var(--border,#1a241e);background:transparent;
  text-align:left;cursor:pointer}
.az-pick-row:hover,.az-pick-row.is-cursor{background:rgba(0,255,65,.06)}
.az-pick-row.is-cursor{box-shadow:inset 3px 0 0 var(--green,#00ff41)}
.az-pick-name{grid-column:1;font:600 14.5px/1.25 var(--sans,system-ui,sans-serif);
  color:var(--text-1,#e8eef2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.az-pick-where{grid-column:1;font:400 12px/1.25 var(--sans,system-ui,sans-serif);
  color:var(--text-2,#9fb0a8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.az-pick-id{grid-column:1;font:400 10.5px/1.2 var(--mono,ui-monospace,monospace);
  color:var(--text-3,#8ea3b0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.az-pick-v{grid-column:2;grid-row:1/4;align-self:center;padding:4px 9px;border-radius:999px;
  font:700 9.5px/1.3 var(--mono,monospace);text-transform:uppercase;letter-spacing:.5px;
  border:1px solid var(--border-2,#223029);color:var(--text-2,#9fb0a8);white-space:nowrap}
.az-v-investigate{color:#7fd1b9;border-color:#2f6b5a}
.az-v-insufficient_evidence{color:#e0a33e;border-color:#6b5324}
.az-v-do_not_prioritize{color:#8ea3b0;border-color:#2a3a33}
.az-pick-none{padding:22px 16px;color:var(--text-2,#9fb0a8);
  font:400 14px/1.5 var(--sans,system-ui,sans-serif)}
[dir=rtl] .az-pick-row{text-align:right}
[dir=rtl] .az-pick-row.is-cursor{box-shadow:inset -3px 0 0 var(--green,#00ff41)}
[dir=rtl] .az-pick-v{grid-column:1}
[dir=rtl] .az-pick-name,[dir=rtl] .az-pick-where,[dir=rtl] .az-pick-id{grid-column:2}
/* 360 px: the verdict chip is the first thing to go, not the facility name. */
@media (max-width:380px){
  .az-pick-v{display:none}
  .az-pick-f select{max-width:40vw}
}
@media (prefers-reduced-motion:reduce){.az-pick-back{backdrop-filter:none}}

/* ---------- the map on a facility record ----------
   A fixed height so the card's layout does not jump while Leaflet initialises, and full width on a
   phone because a map squeezed into a column is not a map. */
.az-map{margin:14px 0 4px}
.az-map-canvas{height:260px;border-radius:12px;overflow:hidden;
  border:1px solid var(--border-2,#223029);background:var(--bg-3,#0a0f0c)}
.az-map-cap{margin-top:6px;font:400 11.5px/1.4 var(--mono,ui-monospace,monospace);
  color:var(--text-3,#8ea3b0)}
.az-map-none{padding:16px;border-radius:12px;border:1px dashed var(--border-2,#223029);
  color:var(--text-2,#9fb0a8);font:400 13px/1.5 var(--sans,system-ui,sans-serif)}
.az-map-canvas .leaflet-container{background:var(--bg-3,#0a0f0c)}
@media (max-width:600px){.az-map-canvas{height:220px}}
[dir=rtl] .az-map-cap{text-align:right}
