.page-anderson-localization-observatory .lab-hero h1{font-size:clamp(1.8rem,3.6vw,3rem)}
.al-app{width:min(var(--max),calc(100% - 32px));margin:0 auto 2rem;display:grid;gap:16px;min-width:0}.al-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:16px;align-items:start}.al-app .panel-line{padding:20px;min-width:0}.al-app h2{font-size:1.2rem;line-height:1.4;margin:.4rem 0 1rem}.al-app p,.al-app li{color:#a0bbb7;font-size:.85rem;line-height:1.65}.al-app canvas{width:100%;height:auto;display:block;border:1px solid var(--line);touch-action:pan-y;cursor:crosshair}.al-app [hidden]{display:none!important}.al-controls label{display:grid;gap:5px;margin:16px 0;font-size:.85rem}.al-controls input,.al-controls select{width:100%;min-height:44px;accent-color:var(--cyan);box-sizing:border-box}.al-controls input[type=text],.al-controls select{border:1px solid var(--line);background:#081416;color:var(--text);padding:9px;font:1rem monospace}.al-controls output{color:var(--cyan)}.al-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.al-actions button,.al-actions a{flex:1 1 90px;min-height:44px;border:1px solid var(--line);background:rgba(120,246,231,.06);color:var(--text);padding:10px;font:700 .75rem monospace;cursor:pointer;text-align:center;box-sizing:border-box}.al-actions .al-primary{border-color:var(--cyan);background:rgba(120,246,231,.15);color:var(--cyan)}.al-actions :disabled{opacity:.45;cursor:not-allowed}.al-app :is(button,a,input,canvas,select,summary):focus-visible{outline:2px solid var(--amber);outline-offset:3px}.al-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.al-metrics>div{padding:10px;border:1px solid var(--line);min-width:0}.al-metrics dt{font-size:.73rem;color:var(--muted)}.al-metrics dd{margin:7px 0 0;font:.86rem monospace;overflow-wrap:anywhere;color:var(--cyan)}.al-app pre{white-space:pre-wrap;overflow-wrap:anywhere;font:.75rem/1.5 monospace;max-height:26rem;overflow:auto}.al-app summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--cyan)}.al-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}.al-notes code{overflow-wrap:anywhere;white-space:normal}.al-app li{margin:10px 0}.al-table-wrap{width:100%;overflow:auto;max-height:22rem}.al-app table{width:100%;border-collapse:collapse;font:.75rem/1.5 monospace}.al-app th,.al-app td{padding:8px;text-align:left;border-bottom:1px solid var(--line)}.al-app th{color:var(--muted)}.al-state{color:var(--cyan)}.al-state[data-state=dirty],.al-state[data-state=error]{color:var(--amber)}.al-legend{display:flex;flex-wrap:wrap;gap:12px;font:.75rem monospace;color:var(--muted)}.al-legend span:first-child{color:var(--cyan)}.al-legend span:nth-child(2){color:var(--amber)}.al-legend span:nth-child(3){color:#a8ffbf}.al-tests{color:var(--cyan)}.al-app [data-pass=false]{color:#ffad93}
@media(max-width:800px){.al-layout,.al-notes{grid-template-columns:1fr}.al-app .panel-line{padding:14px}.al-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.al-app{width:calc(100% - 22px)}.al-app h2{font-size:1.05rem}.al-app .panel-line{padding:12px}.al-metrics dd{font-size:.78rem}}
