.vis-disclaimer{display:flex;gap:var(--space-2);align-items:flex-start;background:var(--fair-bg);border:1px solid rgba(210,153,34,.35);border-radius:var(--radius);padding:var(--space-3);margin:var(--space-4) 0;font-size:.9rem;color:var(--text)}.vis-disclaimer strong{color:var(--fair)}.vis-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;padding:.18rem .55rem;border-radius:999px;border:1px solid;white-space:nowrap;cursor:default}.vis-chip.green{background:var(--good-bg);border-color:#3fb95073;color:var(--good)}.vis-chip.yellow{background:var(--fair-bg);border-color:#d2992273;color:var(--fair)}.vis-chip.red{background:var(--poor-bg);border-color:#f8514973;color:var(--poor)}.vis-chip.na{background:#ffffff08;border-color:var(--border);color:var(--text-faint)}.vis-legend{font-size:.85rem;color:var(--text-muted);margin:var(--space-3) 0 var(--space-2);line-height:1.7}.vis-controls{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:var(--space-4) 0;align-items:flex-start}.vis-control-group{display:flex;flex-direction:column;gap:var(--space-2)}.vis-control-label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.vis-search input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:.9rem;padding:.45rem .8rem;min-width:220px;outline:none}.vis-search input:focus{border-color:var(--accent)}.vis-regions{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:46rem}.vis-region{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;padding:.28rem .6rem;border:1px solid var(--border);border-radius:999px;cursor:pointer;user-select:none}.vis-region input{display:none}.vis-region .vis-dot{width:9px;height:9px;border-radius:50%;opacity:.35}.vis-region:has(input:checked) .vis-dot{opacity:1}.vis-region:has(input:checked){border-color:var(--rc);color:var(--text)}.vis-region:not(:has(input:checked)){opacity:.5}.vis-rcount{color:var(--text-faint);font-family:var(--font-mono);font-size:.72rem}.vis-btn-group{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;flex-wrap:wrap}.vis-btn-group button{background:var(--surface);color:var(--text-muted);border:none;border-right:1px solid var(--border);font:inherit;font-size:.85rem;font-weight:600;padding:.45rem .85rem;cursor:pointer}.vis-btn-group button:last-child{border-right:none}.vis-btn-group button:hover{color:var(--text);background:var(--surface-raised)}.vis-btn-group button.active{background:var(--accent-strong);color:#fff}.vis-clear{background:none;border:none;color:var(--text-faint);font:inherit;font-size:.75rem;cursor:pointer;text-decoration:underline;padding:0}.vis-quick{display:flex;flex-wrap:wrap;gap:var(--space-2)}.vis-qf{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font:inherit;font-size:.85rem;font-weight:600;padding:.35rem .85rem;cursor:pointer;transition:border-color .15s,color .15s}.vis-qf:hover{color:var(--text)}.vis-qf.active{background:var(--good-bg);border-color:var(--good);color:var(--good)}.vis-scatter{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin:var(--space-3) 0 var(--space-4)}.vis-svg{display:block;width:100%;height:auto}.vis-plotbg{fill:var(--bg);stroke:var(--border)}.vis-band{fill:#ffffff09}.vis-mid{stroke:#ffffff2e;stroke-dasharray:4 4}.vis-tick{stroke:#ffffff1a}.vis-tick-label{fill:var(--text-faint);font-size:9.5px;font-family:var(--font-mono)}.vis-quad{fill:var(--text-faint);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.85}.vis-axis{fill:var(--text-muted);font-size:12.5px;font-weight:600}.vis-band-label{fill:var(--text-faint);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.vis-pt{cursor:pointer}.vis-pt:hover circle,.vis-pt:focus circle{fill-opacity:.55}.vis-pt:focus{outline:none}.vis-tooltip{position:absolute;max-width:280px;background:var(--surface-raised);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:.8rem;line-height:1.4;color:var(--text);pointer-events:none;z-index:5;box-shadow:0 6px 20px #0006}.vis-topbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.vis-topbar .count-pill{font-size:.8rem;font-family:var(--font-mono);padding:.15rem .6rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.vis-list{display:grid;gap:var(--space-2)}.vis-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;transition:border-color .15s}.vis-row:hover,.vis-row:focus{border-color:var(--accent);outline:none}.vis-row-top{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:.3rem}.vis-flag{font-size:1.4rem;line-height:1}.vis-country{font-weight:700;font-size:1rem}.vis-region-tag{font-size:.68rem;padding:.08rem .45rem;border-radius:4px;font-weight:600}.vis-route{margin-left:auto;font-size:.78rem;color:var(--text-faint);max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.vis-row-chips{display:flex;flex-wrap:wrap;gap:.35rem}.vis-modal-bg{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(6px);z-index:500;display:none;align-items:center;justify-content:center;padding:20px}.vis-modal-bg.open{display:flex}.vis-modal-bg .modal-card{background:var(--surface);border:1px solid rgba(255,255,255,.18);border-radius:16px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto}.vis-modal-bg .modal-top{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4) var(--space-4) var(--space-3);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);z-index:2}.vis-m-name{font-size:1.4rem;font-weight:700}.vis-m-sub{font-size:.82rem;color:var(--text-muted);margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.vis-modal-x{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);width:30px;height:30px;border-radius:50%;cursor:pointer;flex-shrink:0;font-size:.9rem}.vis-modal-x:hover{color:var(--text)}.vis-modal-bg .modal-body{padding:var(--space-4)}.vis-sec{margin-bottom:var(--space-4)}.vis-sec-head{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-2);display:flex;gap:.4rem;flex-wrap:wrap}.vis-sec-head .vis-chip{font-size:.9rem;padding:.28rem .8rem}.vis-sec-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-2)}.vis-sec p{margin:0 0 var(--space-2);font-size:.92rem;line-height:1.55}.vis-sec-intro{color:var(--text-muted);font-style:italic}.vis-kv{display:flex;gap:var(--space-3);padding:.25rem 0;font-size:.9rem}.vis-k{flex:0 0 10.5rem;color:var(--text-muted)}.vis-v{flex:1}.vis-applyfrom{display:flex;align-items:flex-start;gap:var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-2)}.vis-applyfrom-badge{flex-shrink:0}.vis-applyfrom-text{font-size:.9rem;line-height:1.5}.vis-checklist{list-style:none;margin:.4rem 0 0;padding:0;font-size:.9rem}.vis-checklist li{padding:.2rem 0 .2rem 1.5rem;position:relative;line-height:1.5}.vis-checklist li:before{content:"☐";position:absolute;left:0;color:var(--text-faint)}.vis-modal-disclaimer{font-size:.78rem;color:var(--text-faint);border-top:1px solid var(--border);padding-top:var(--space-3)}@media(max-width:640px){.vis-route{display:none}.vis-k{flex-basis:7.5rem}.vis-chip{font-size:.72rem}.vis-qf{padding:.55rem .9rem}.vis-btn-group{display:flex;width:100%}.vis-btn-group button{flex:1 0 auto;padding:.6rem .8rem}.vis-region{padding:.45rem .7rem}.vis-control-group{width:100%}.vis-search input{width:100%;min-width:0}.vis-kv{flex-direction:column;gap:.1rem}.vis-k{flex-basis:auto;font-size:.8rem}.vis-applyfrom{flex-direction:column;gap:var(--space-2)}}
