/* AO coverage grid: phenomena (rows) x approaches (cols). */
#ao-grid{overflow-x:auto;max-width:100%}
.aogrid{display:grid;gap:3px;max-width:1080px;min-width:860px;margin:1.2rem 0 0;font-size:.82rem}
.aogrid .aoh{font-weight:600;color:var(--muted);padding:0 .3rem .5rem;align-self:end}
.aogrid .aoh.col{text-align:center;font-size:.74rem;line-height:1.2;color:var(--ink)}
.aogrid .aogroup{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent2);
  font-weight:700;padding:.9rem .2rem .35rem;border-bottom:1px solid var(--line)}
.aogrid .aorow{color:var(--ink);padding:.42rem .5rem .42rem 0;line-height:1.25;display:flex;align-items:center}
.aogrid .aocell{min-height:30px;border-radius:5px;cursor:default;transition:transform .08s, outline-color .08s;
  outline:1px solid transparent}
.aogrid .aocell:hover{transform:scale(1.06);outline-color:var(--ink)}
.aogrid .aocell.open{background:rgba(108,197,255,.05);border:1px dashed var(--line)}
.aogrid .aocell.field{background:rgba(108,197,255,.42)}   /* broader field = blue/accent */
.aogrid .aocell.lab{background:rgba(169,139,255,.6)}      /* our lab = purple/accent2 */
.aogrid .aocell.both{background:linear-gradient(135deg, rgba(169,139,255,.6) 0 50%, rgba(108,197,255,.42) 50% 100%)} /* both */

.ao-legend{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:center;margin:.4rem 0 0;font-size:.8rem;color:var(--muted)}
.ao-legend .key{display:inline-flex;align-items:center;gap:.45rem}
.ao-legend .sw{width:15px;height:15px;border-radius:4px;display:inline-block}
.ao-legend .sw.lab{background:rgba(169,139,255,.6)}
.ao-legend .sw.field{background:rgba(108,197,255,.42)}
.ao-legend .sw.both{background:linear-gradient(135deg, rgba(169,139,255,.6) 0 50%, rgba(108,197,255,.42) 50% 100%)}
.ao-legend .sw.open{background:rgba(108,197,255,.05);border:1px dashed var(--line)}

#aogrid-tip{position:fixed;z-index:60;pointer-events:none;display:none;max-width:300px;
  background:var(--panel,#161b27);border:1px solid var(--line);border-radius:9px;padding:.55rem .7rem;
  font-size:.82rem;box-shadow:0 8px 28px rgba(0,0,0,.5)}
#aogrid-tip b{color:var(--ink);display:block;margin-bottom:.1rem}
#aogrid-tip .ap{color:var(--muted);font-size:.74rem;display:block}
#aogrid-tip .st{display:inline-block;margin-top:.4rem;font-size:.72rem;font-weight:600}
#aogrid-tip .st-lab{color:#c3b0ff}
#aogrid-tip .st-field{color:var(--accent)}
#aogrid-tip .st-open{color:var(--faint)}
#aogrid-tip .nt{display:block;margin-top:.4rem;color:var(--muted);font-size:.75rem;line-height:1.4}
#aogrid-tip .more{display:block;margin-top:.45rem;color:var(--accent);font-size:.72rem;font-weight:600}

#aogrid-panel{position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);background:var(--bg2,#11151f);
  border-left:1px solid var(--line);z-index:70;padding:56px 28px 40px;overflow-y:auto;
  transform:translateX(100%);transition:transform .2s;box-shadow:-18px 0 50px rgba(0,0,0,.5)}
#aogrid-panel.open{transform:none}
#aogrid-panel .x{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--muted);font-size:1.7rem;cursor:pointer}
#aogrid-panel .x:hover{color:var(--ink)}
#aogrid-panel .tag{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:.6rem}
#aogrid-panel .tag.st-lab{color:#c3b0ff}
#aogrid-panel .tag.st-field{color:var(--accent)}
#aogrid-panel .tag.st-both{color:#c3b0ff}
#aogrid-panel .tag.st-open{color:var(--faint)}
#aogrid-panel h2{font-size:1.2rem;margin:0 0 .25rem;line-height:1.3;color:var(--ink)}
#aogrid-panel .c{color:var(--muted);font-size:.85rem;margin:0 0 1rem}
#aogrid-panel .nt{color:#c5cde0;font-size:.86rem;line-height:1.55;margin:0 0 1.1rem}
#aogrid-panel .refs-h{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:.5rem}
#aogrid-panel .ref{display:block;padding:.6rem 0;border-top:1px solid rgba(39,48,74,.6);font-size:.85rem;line-height:1.45;color:var(--ink);text-decoration:none}
#aogrid-panel .ref:hover{color:var(--accent)}
#aogrid-panel .ref:first-of-type{border-top:none}

@media (max-width:640px){
  .aogrid{font-size:.74rem}
  .aogrid .aoh.col{font-size:.64rem}
}
