:root{--bg: #0b0f17;--panel: rgba(255, 255, 255, .06);--panel-border: rgba(255, 255, 255, .08);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .7);--accent: #22c55e;--danger: #ef4444;--shadow: 0 12px 40px rgba(0, 0, 0, .35);--radius: 16px;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);background:radial-gradient(1200px 700px at 20% 10%,rgba(34,197,94,.18),transparent 60%),radial-gradient(900px 600px at 70% 20%,rgba(34,197,94,.08),transparent 60%),var(--bg);color:var(--text)}a{color:inherit}.mapboxgl-map{font-family:var(--sans)}.mapboxgl-popup-content{background:#000000e6!important;color:#fff!important;border-radius:8px;padding:8px 12px}.mapboxgl-popup-tip{border-top-color:#000000e6!important}.mapboxgl-ctrl button{width:30px;height:30px}.container{max-width:1100px;margin:0 auto;padding:20px 16px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.14);background:#0b0f17e0;border-radius:var(--radius);box-shadow:var(--shadow);position:sticky;top:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:10px}.dot{width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 6px #22c55e26}.brandTitle{font-weight:700;letter-spacing:-.02em}.nav{display:flex;gap:8px}.nav a{text-decoration:none;padding:8px 10px;border-radius:999px;border:1px solid transparent;color:var(--muted)}.nav a[data-active=true]{border-color:var(--panel-border);background:#ffffff0f;color:var(--text)}.grid{margin-top:16px;display:grid;gap:12px}.column{display:grid;gap:12px;align-content:start}.card{border:1px solid var(--panel-border);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.card h2{margin:0 0 8px;font-size:16px}.muted{color:var(--muted);font-size:13px}.kpiRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:12px;border:1px solid var(--panel-border);border-radius:14px;background:#ffffff0a}.kpiLabel{font-size:12px;color:var(--muted)}.kpiValue{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:4px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:top}.badge{font-family:var(--mono);font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:#ffffffdb}.badge.bad{border-color:#ef444480;color:#ef4444f2}.badgeExcellent{border-color:#eaff00f2;color:#161900;background:linear-gradient(180deg,#eaff00fa,#d2ff00db);box-shadow:0 0 0 1px #eaff0052,0 0 24px #eaff004d;font-weight:800}.badgeNd{border-color:#94a3b86b;color:#cbd5e1f2;background:#94a3b81f}.rowActions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--text);padding:8px 10px;border-radius:12px;cursor:pointer;text-decoration:none;font-size:13px}.btn:hover{background:#ffffff1a}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btnPrimary{border-color:#22c55e73;background:#22c55e29}.btnPrimary:hover{background:#22c55e38}.mono{font-family:var(--mono);word-break:break-word}.progressBar{height:10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;overflow:hidden}.progressBarFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55ef2,#22c55e59);box-shadow:0 0 24px #22c55e38}@media(min-width:860px){.grid{grid-template-columns:1.1fr .9fr;align-items:start}.fullWidth{grid-column:1 / -1}.kpiRow{grid-template-columns:repeat(5,minmax(0,1fr))}.radarLayout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:center}}@media(min-width:1100px){.container{max-width:1240px;padding:24px 20px 70px}.grid{gap:16px}.card{padding:18px}.topbar{padding:14px 18px}.kpiValue{font-size:24px}.table{font-size:14px}.rowActions{gap:12px}}.matrixWrap{overflow:auto;margin-top:8px}.matrixTable{min-width:1240px}.matrixStickyCol{position:sticky;left:0;z-index:1;background:#0b0f17f5;min-width:180px}thead .matrixStickyCol{z-index:2}.matrixHeaderCell{min-width:150px}.matrixHeaderTitle{font-weight:700;margin-bottom:4px}.matrixFamilyRow{position:sticky;left:0;background:#ffffff0f;font-weight:800;letter-spacing:.01em;color:#ffffffe6}.matrixVerticalName{font-weight:700;margin-bottom:4px}.matrixCell{width:100%;min-width:110px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:var(--text);border-radius:14px;padding:10px 8px;cursor:pointer;text-align:left}.matrixCell:hover{background:#ffffff17}.matrixCell--strong{border-color:#22c55e73;background:#22c55e24}.matrixCell--excellent{border-color:#eaff00fa;background:linear-gradient(180deg,#eaff0075,#d2ff003d);box-shadow:inset 0 0 0 1px #ffffff14,0 0 28px #eaff0038;transform:translateY(-1px)}.matrixCell--mixed{border-color:#facc1573;background:#facc151f}.matrixCell--weak{border-color:#ef444473;background:#ef44441f}.matrixCell--nd{border-color:#94a3b842;background:#94a3b814;color:#cbd5e1e0}.matrixCell--nd:hover{background:#94a3b81f}.matrixCellVerdict{display:flex;align-items:center;gap:6px;font-weight:700}.matrixCell--excellent .matrixCellVerdict{font-weight:800;color:#f8ffd8}.matrixCell--excellent .matrixConfidence{color:#f8ffd8eb}.matrixCell--nd .matrixCellVerdict{color:#e2e8f0e6}.matrixCell--nd .matrixConfidence{color:#94a3b8f2}.matrixCellIcon{font-size:16px;line-height:1}.matrixConfidence{margin-top:6px;font-size:12px;color:var(--muted)}.radarCard{position:relative;overflow:hidden;background:radial-gradient(520px 280px at 8% 0%,rgba(234,255,0,.08),transparent 60%),radial-gradient(460px 260px at 100% 10%,rgba(56,189,248,.12),transparent 58%),linear-gradient(180deg,#ffffff0d,#ffffff08)}.radarHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.radarHeader h3{margin:0 0 6px}.radarLayout{display:grid;gap:18px}.radarStage{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:24px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.06),transparent 58%),#ffffff08;padding:12px;box-shadow:inset 0 1px #ffffff0f}.radarSvg{width:100%;height:auto;display:block}.radarAxisLabel{fill:#ffffffd1;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;transition:fill .14s ease,transform .14s ease}.radarAxisGroup{cursor:pointer}.radarAxisLabel--active{fill:#eaff00fa}.radarLegend{display:grid;gap:10px}.radarAxisRankingCard{border:1px solid rgba(234,255,0,.22);border-radius:18px;background:#eaff0012;padding:12px;box-shadow:inset 0 1px #ffffff0d}.radarAxisRankingTitle{font-weight:800;margin-bottom:10px}.radarAxisRankingList{display:grid;gap:8px}.radarAxisRankingRow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.radarAxisRankingLeft{display:flex;align-items:center;gap:10px;min-width:0}.radarAxisRankingValue{font-family:var(--mono);color:#ffffffdb}.radarLegendItem{border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#ffffff0a;padding:12px;box-shadow:inset 0 1px #ffffff0d}.radarLegendButton{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--text);text-align:left;cursor:pointer;transition:opacity .16s ease,transform .16s ease,border-color .16s ease,background .16s ease}.radarLegendButton:hover,.radarLegendButton:focus-visible{border-color:#fff3;background:#ffffff12;transform:translate(-2px);outline:none}.radarLegendItem--dimmed{opacity:.32}.radarLegendTop{display:flex;align-items:center;gap:10px}.radarSwatch{width:12px;height:12px;border-radius:999px;flex:0 0 auto;box-shadow:0 0 18px currentColor}.radarLegendMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.modalCard{width:min(760px,100%);max-height:min(86vh,900px);overflow:auto;border:1px solid var(--panel-border);background:#0b0f17fa;border-radius:18px;box-shadow:var(--shadow);padding:16px}
