.attack-matrix-wrap[data-v-2ea1d8c9]{--bg:#0f172a;--card:#0b1220;--ink:#e6eef6;--muted:#9aa8bd;--border:rgba(148,163,184,0.14);--chip:#0b1830;--chip-border:rgba(148,163,184,0.16);--accent:#22d3ee;--track:#0a1222;--progress:#22d3ee;--not-applicable:#374151;--available:#f59e0b;--partial:#3b82f6;--full:#10b981;padding:2rem;padding-bottom:140px;background:var(--bg);min-height:100vh;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}.breadcrumb[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px}.breadcrumb-link[data-v-2ea1d8c9]{color:var(--accent);text-decoration:none;transition:opacity .2s}.breadcrumb-link[data-v-2ea1d8c9]:hover{opacity:.8;text-decoration:underline}.breadcrumb-current[data-v-2ea1d8c9],.breadcrumb-sep[data-v-2ea1d8c9]{color:var(--muted)}.empty-state[data-v-2ea1d8c9],.error-state[data-v-2ea1d8c9],.loading-state[data-v-2ea1d8c9]{text-align:center;padding:60px 20px}.loader[data-v-2ea1d8c9]{border:4px solid var(--border);border-top:4px solid var(--accent);border-radius:50%;width:50px;height:50px;animation:spin-2ea1d8c9 1s linear infinite;margin:0 auto 20px}@keyframes spin-2ea1d8c9{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.empty-icon[data-v-2ea1d8c9],.error-icon[data-v-2ea1d8c9]{font-size:24px;width:50px;height:50px;line-height:50px;border-radius:50%;background:#e74c3c;color:#fff;margin:0 auto 16px;font-weight:700;text-align:center}.empty-icon[data-v-2ea1d8c9]{background:var(--not-applicable)}.panel[data-v-2ea1d8c9]{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:12px}.header-controls[data-v-2ea1d8c9]{display:flex;align-items:center;gap:16px;flex:1;justify-content:space-between;flex-wrap:wrap}.filter-group[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px}.filter-group label[data-v-2ea1d8c9]{font-size:13px;color:var(--muted);font-weight:500}.category-select[data-v-2ea1d8c9]{padding:6px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;min-width:180px;max-width:250px;background:var(--chip);color:var(--ink);cursor:pointer}.category-select[data-v-2ea1d8c9]:hover{border-color:var(--accent)}.category-select[data-v-2ea1d8c9]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(34,211,238,.1)}.legend-panel[data-v-2ea1d8c9]{flex-direction:column;align-items:flex-start;gap:12px}.legend-header[data-v-2ea1d8c9]{justify-content:space-between;width:100%;flex-wrap:wrap}.filter-controls[data-v-2ea1d8c9],.legend-header[data-v-2ea1d8c9]{display:flex;align-items:center;gap:10px}.filter-status[data-v-2ea1d8c9]{font-size:12px;color:var(--accent);background:rgba(34,211,238,.1);padding:4px 12px;border-radius:12px;font-weight:500}.reset-filters-btn[data-v-2ea1d8c9]{font-size:11px;padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;transition:all .2s}.reset-filters-btn[data-v-2ea1d8c9]:hover{background:hsla(0,0%,100%,.05);border-color:var(--accent);color:var(--accent)}.legend-items[data-v-2ea1d8c9]{display:flex;gap:20px;flex-wrap:wrap}.legend-item[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);transition:opacity .3s,transform .2s}.legend-item.clickable[data-v-2ea1d8c9]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.legend-item.clickable[data-v-2ea1d8c9]:hover{transform:translateY(-2px)}.legend-item.clickable[data-v-2ea1d8c9]:active{transform:translateY(0)}.legend-item.inactive[data-v-2ea1d8c9]{opacity:.35;text-decoration:line-through}.legend-item.inactive .legend-box[data-v-2ea1d8c9]{opacity:.4;filter:grayscale(50%)}.legend-box[data-v-2ea1d8c9]{width:40px;height:20px;border-radius:4px;border:1px solid var(--border)}.legend-box.not-applicable[data-v-2ea1d8c9]{background:var(--not-applicable)}.legend-box.available[data-v-2ea1d8c9]{background:transparent;border:2px solid var(--available)}.legend-box.partial[data-v-2ea1d8c9]{background:linear-gradient(90deg,var(--partial) 50%,var(--chip) 0)}.legend-box.full[data-v-2ea1d8c9]{background:var(--full)}.stats-panel[data-v-2ea1d8c9]{justify-content:space-around}.stat-card[data-v-2ea1d8c9]{text-align:center;padding:12px 20px;background:rgba(148,163,184,.05);border-radius:8px;min-width:140px}.stat-value[data-v-2ea1d8c9]{font-size:32px;font-weight:700;color:var(--ink);line-height:1;margin-bottom:4px}.stat-label[data-v-2ea1d8c9]{font-size:12px;color:var(--muted)}.stat-card.applicable .stat-value[data-v-2ea1d8c9]{color:var(--available)}.stat-card.enabled .stat-value[data-v-2ea1d8c9]{color:var(--full)}.stat-card.potential .stat-value[data-v-2ea1d8c9]{color:var(--partial)}.brand h1[data-v-2ea1d8c9]{font-size:18px;margin:0;color:var(--ink);font-weight:700}.btn[data-v-2ea1d8c9]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#071025;color:var(--ink);padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s;text-decoration:none;display:inline-block}.btn[data-v-2ea1d8c9]:hover{background:rgba(148,163,184,.1)}.btn-primary[data-v-2ea1d8c9]{background:var(--accent);color:#000;border-color:var(--accent)}.btn-outline[data-v-2ea1d8c9]{background:transparent}.label[data-v-2ea1d8c9]{font-size:13px;color:var(--muted);margin-right:6px;font-weight:600}.master-detail[data-v-2ea1d8c9]{display:flex;margin-bottom:12px;min-height:60vh}.tactics-sidebar[data-v-2ea1d8c9]{flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}.tactics-sidebar-header[data-v-2ea1d8c9]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px 10px 0 0;margin-bottom:0}.sidebar-title[data-v-2ea1d8c9]{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.techniques-sidebar-header[data-v-2ea1d8c9]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px 10px 0 0;margin-bottom:0}.tactics-list[data-v-2ea1d8c9]{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:calc(100vh - 390px);padding:6px;background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px}.tactics-list.grid[data-v-2ea1d8c9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.tactics-list.grid .tactic-item[data-v-2ea1d8c9]{padding:10px 12px}.tactics-list.grid .tactic-item-top h2[data-v-2ea1d8c9]{font-size:13px;white-space:normal}.tactics-list.grid .tactic-status-tags[data-v-2ea1d8c9]{flex-wrap:wrap}.resize-handle[data-v-2ea1d8c9]{width:12px;cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:2}.resize-handle:active .resize-handle-grip[data-v-2ea1d8c9],.resize-handle:hover .resize-handle-grip[data-v-2ea1d8c9]{background:var(--accent);box-shadow:0 0 8px rgba(34,211,238,.3)}.resize-handle-grip[data-v-2ea1d8c9]{width:4px;height:48px;background:var(--border);border-radius:4px;transition:background .2s,box-shadow .2s}.tactic-item[data-v-2ea1d8c9]{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tactic-item[data-v-2ea1d8c9]:hover{background:rgba(148,163,184,.08)}.tactic-item.active[data-v-2ea1d8c9]{background:rgba(34,211,238,.08);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 16px rgba(34,211,238,.1)}.tactic-item-top[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tactic-item-top h2[data-v-2ea1d8c9]{font-size:16px;margin:0;color:var(--ink);text-transform:capitalize;white-space:nowrap;flex:1}.tactic-item.active .tactic-item-top h2[data-v-2ea1d8c9]{color:var(--accent)}.tactic-item-bar[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.technique-count[data-v-2ea1d8c9]{font-size:11px;color:var(--muted);background:hsla(0,0%,100%,.05);padding:2px 8px;border-radius:10px;border:1px solid var(--border);flex-shrink:0}.techniques-panel[data-v-2ea1d8c9]{min-width:0;overflow:hidden}.techniques-empty[data-v-2ea1d8c9]{display:flex;align-items:center;justify-content:center;height:100%;min-height:40vh;background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 12px 12px}.empty-prompt[data-v-2ea1d8c9]{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted)}.empty-prompt svg[data-v-2ea1d8c9]{opacity:.4}.empty-prompt p[data-v-2ea1d8c9]{font-size:14px;margin:0}.techniques-panel-header[data-v-2ea1d8c9]{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-top:none;border-bottom:2px solid var(--accent);border-radius:0;margin-bottom:0}.techniques-panel-header h2[data-v-2ea1d8c9]{font-size:16px;margin:0;color:var(--accent);text-transform:capitalize}.tactic-status-tags[data-v-2ea1d8c9]{display:flex;gap:6px;flex-wrap:wrap}.status-tag[data-v-2ea1d8c9]{font-size:10px;font-weight:600;padding:2px 10px;border-radius:12px;white-space:nowrap}.status-tag.full[data-v-2ea1d8c9]{background:rgba(16,185,129,.2);color:#10b981}.status-tag.partial[data-v-2ea1d8c9]{background:rgba(59,130,246,.2);color:#60a5fa}.status-tag.available[data-v-2ea1d8c9]{background:rgba(245,158,11,.2);color:#f59e0b}.status-tag.not-applicable[data-v-2ea1d8c9]{background:rgba(148,163,184,.15);color:#9aa8bd}.tbar[data-v-2ea1d8c9]{flex:1;height:10px;background:var(--track);border:1px solid var(--border);border-radius:999px;overflow:hidden}.tbar>.p[data-v-2ea1d8c9]{height:100%;background:var(--progress);transition:width .3s ease}.tbar-label[data-v-2ea1d8c9]{font-size:11px;color:var(--muted);min-width:50px;text-align:right}.view-toggle[data-v-2ea1d8c9]{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.view-toggle-btn[data-v-2ea1d8c9]{background:transparent;border:none;color:var(--muted);padding:5px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.view-toggle-btn[data-v-2ea1d8c9]:first-child{border-right:1px solid var(--border)}.view-toggle-btn[data-v-2ea1d8c9]:hover{background:rgba(148,163,184,.1)}.view-toggle-btn.active[data-v-2ea1d8c9]{background:rgba(34,211,238,.15);color:var(--accent)}.tactic-techniques[data-v-2ea1d8c9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:8px;padding:12px;background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 12px 12px;max-height:calc(100vh - 420px);overflow-y:auto}.tactic-techniques.list[data-v-2ea1d8c9]{grid-template-columns:1fr;gap:4px}.tactic-techniques.list .chip[data-v-2ea1d8c9]{font-size:15px;border-radius:6px;box-shadow:0 2px 6px rgba(2,6,23,.35)}.tactic-techniques.list .chip-content[data-v-2ea1d8c9]{padding:6px 10px}.chip[data-v-2ea1d8c9]{background:var(--chip);border:1px solid var(--chip-border);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:13px;color:var(--ink);box-shadow:0 4px 14px rgba(2,6,23,.55);transition:all .2s;cursor:pointer;overflow:hidden}.chip[data-v-2ea1d8c9]:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(2,6,23,.7)}.chip.not-applicable[data-v-2ea1d8c9]{background:var(--not-applicable);opacity:.6;cursor:default}.chip.not-applicable[data-v-2ea1d8c9]:hover{transform:none}.chip.available[data-v-2ea1d8c9]{border:2px solid var(--available);border-left:4px solid var(--available)}.chip.partial-coverage[data-v-2ea1d8c9]{border-left:4px solid var(--partial)}.chip.full-coverage[data-v-2ea1d8c9]{border-left:4px solid var(--full);background:rgba(16,185,129,.1)}.chip-content[data-v-2ea1d8c9]{display:flex;align-items:center;gap:10px;padding:10px}.chip-text[data-v-2ea1d8c9]{line-height:1.4;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#e2e8f0;white-space:nowrap}.chip-meta[data-v-2ea1d8c9]{display:flex;align-items:center;gap:8px;flex-shrink:0}.chip-progress[data-v-2ea1d8c9]{flex:1;height:18px;background:rgba(148,163,184,.1);border-radius:4px;position:relative;overflow:hidden}.chip-progress-fill[data-v-2ea1d8c9]{position:absolute;top:0;left:0;bottom:0;background:var(--full);transition:width .3s ease}.chip-progress-text[data-v-2ea1d8c9]{position:relative;font-size:11px;line-height:18px;text-align:center;font-weight:600;color:var(--ink);z-index:1}.chip-gap-tag[data-v-2ea1d8c9]{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.chip-gap-tag.no-coverage[data-v-2ea1d8c9]{background:rgba(239,68,68,.2);color:#ef4444}.chip-gap-tag.available[data-v-2ea1d8c9]{background:rgba(245,158,11,.2);color:#f59e0b}.chip-gap-tag.partial[data-v-2ea1d8c9]{background:rgba(59,130,246,.2);color:#60a5fa}.bars-stack[data-v-2ea1d8c9]{position:fixed;left:0;right:0;bottom:0;padding:10px 16px;background:rgba(2,6,23,.95);backdrop-filter:blur(6px);border-top:1px solid var(--border);z-index:1000}.visbar[data-v-2ea1d8c9]{display:flex;gap:12px;align-items:center}.visbar-title[data-v-2ea1d8c9]{font-size:12px;color:var(--muted);min-width:140px}.visbar-track[data-v-2ea1d8c9]{flex:1;height:16px;background:var(--track);border:1px solid var(--border);border-radius:999px;overflow:hidden}.visbar-progress[data-v-2ea1d8c9]{height:100%;background:var(--full);transition:width .3s ease}.visbar-progress.total[data-v-2ea1d8c9]{background:var(--accent)}.visbar-progress.datasource[data-v-2ea1d8c9]{background:linear-gradient(90deg,#a855f7,#ec4899)}.visbar-perc[data-v-2ea1d8c9]{min-width:280px;text-align:right;font-size:12px;color:var(--ink);font-weight:600}.modal-overlay[data-v-2ea1d8c9]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal-content[data-v-2ea1d8c9]{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:800px;width:100%;max-height:85vh;overflow:auto}.modal-header[data-v-2ea1d8c9]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}.modal-header h2[data-v-2ea1d8c9]{margin:0;font-size:18px;color:var(--ink)}.close-btn[data-v-2ea1d8c9]{background:none;border:none;color:var(--muted);font-size:32px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn[data-v-2ea1d8c9]:hover{color:var(--ink)}.modal-body[data-v-2ea1d8c9]{padding:20px}.coverage-summary[data-v-2ea1d8c9]{padding:16px;background:rgba(148,163,184,.05);border-radius:8px;margin-bottom:20px}.coverage-stat[data-v-2ea1d8c9]{display:flex;justify-content:space-between;align-items:center}.coverage-label[data-v-2ea1d8c9]{font-size:14px;color:var(--muted)}.coverage-value[data-v-2ea1d8c9]{font-size:18px;font-weight:700;color:var(--full)}.type-coverage-section[data-v-2ea1d8c9]{background:rgba(148,163,184,.05);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:20px}.type-coverage-section h3[data-v-2ea1d8c9]{font-size:15px;color:var(--accent);margin:0 0 8px 0}.type-coverage-hint[data-v-2ea1d8c9]{font-size:12px;color:var(--muted);margin:0 0 12px}.type-coverage-list[data-v-2ea1d8c9]{display:flex;flex-direction:column;gap:8px}.type-coverage-row[data-v-2ea1d8c9]{display:flex;align-items:center;gap:10px}.type-coverage-label[data-v-2ea1d8c9]{min-width:160px;display:flex;align-items:center;gap:6px}.type-name[data-v-2ea1d8c9]{font-size:13px;font-weight:600;color:var(--ink)}.type-count[data-v-2ea1d8c9]{font-size:11px;color:var(--muted)}.type-coverage-bar[data-v-2ea1d8c9]{flex:1;height:10px;background:var(--track);border:1px solid var(--border);border-radius:5px;overflow:hidden}.type-coverage-fill[data-v-2ea1d8c9]{height:100%;border-radius:5px;transition:width .3s}.type-coverage-fill.full[data-v-2ea1d8c9]{background:var(--full)}.type-coverage-fill.partial[data-v-2ea1d8c9]{background:var(--available)}.type-coverage-fill.none[data-v-2ea1d8c9]{background:#ef4444}.type-coverage-pct[data-v-2ea1d8c9]{min-width:36px;text-align:right;font-size:12px;font-weight:700;color:var(--ink)}.gap-analysis-section[data-v-2ea1d8c9]{background:rgba(239,68,68,.05);border:1px solid rgba(239,68,68,.15);border-radius:10px;padding:16px;margin-bottom:20px}.gap-analysis-section h3[data-v-2ea1d8c9]{font-size:15px;color:#ef4444;margin:0 0 12px 0}.gap-analysis-section h4[data-v-2ea1d8c9]{font-size:13px;color:var(--ink);margin:12px 0 8px}.gap-hint[data-v-2ea1d8c9]{font-size:12px;color:var(--muted);margin:0 0 8px}.gap-loading[data-v-2ea1d8c9]{color:var(--muted);font-style:italic;padding:12px 0}.gap-datasource-list[data-v-2ea1d8c9]{display:flex;flex-direction:column;gap:6px}.gap-datasource-item[data-v-2ea1d8c9]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:13px}.gap-datasource-item.actionable[data-v-2ea1d8c9]{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2)}.gap-datasource-item.enabled[data-v-2ea1d8c9]{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.2)}.ds-name[data-v-2ea1d8c9]{flex:1;font-weight:600;color:var(--ink)}.ds-type[data-v-2ea1d8c9]{color:var(--muted)}.ds-quality[data-v-2ea1d8c9],.ds-type[data-v-2ea1d8c9]{font-size:11px;padding:2px 8px;border-radius:4px;background:rgba(148,163,184,.15)}.ds-quality[data-v-2ea1d8c9]{color:var(--accent)}.ds-status-tag[data-v-2ea1d8c9]{font-size:10px;font-weight:600;padding:3px 10px;border-radius:12px;color:#fff}.ds-status-tag.not-enabled[data-v-2ea1d8c9]{background:var(--available)}.ds-status-tag.enabled[data-v-2ea1d8c9]{background:var(--full)}.no-datasources[data-v-2ea1d8c9]{text-align:center;color:var(--muted);padding:16px}.no-datasources p[data-v-2ea1d8c9]{margin:0}.coverage-target[data-v-2ea1d8c9]{margin-top:12px;padding:10px 12px;background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.15);border-radius:8px;display:flex;justify-content:space-between;align-items:center}.target-label[data-v-2ea1d8c9]{font-size:12px;color:var(--muted)}.target-value[data-v-2ea1d8c9]{font-size:13px;font-weight:600;color:var(--accent)}.detail-section[data-v-2ea1d8c9]{margin-bottom:20px}.detail-section h3[data-v-2ea1d8c9]{font-size:14px;color:var(--accent);margin:0 0 12px 0}.no-coverage[data-v-2ea1d8c9]{text-align:center;color:var(--muted);padding:20px}.info-text[data-v-2ea1d8c9]{color:var(--ink);padding:12px;text-align:center;line-height:1.6}.modal-actions[data-v-2ea1d8c9]{display:flex;gap:8px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}@media (max-width:900px){.master-detail[data-v-2ea1d8c9]{flex-direction:column}.resize-handle[data-v-2ea1d8c9]{display:none}.tactics-sidebar[data-v-2ea1d8c9]{width:100%!important;max-height:none;overflow-y:visible}.techniques-panel[data-v-2ea1d8c9]{width:100%!important}.tactics-list[data-v-2ea1d8c9]{max-height:none;flex-direction:row;flex-wrap:wrap;overflow-y:visible}.tactic-item[data-v-2ea1d8c9]{flex:1 1 auto;min-width:160px}.techniques-empty[data-v-2ea1d8c9]{min-height:20vh}.tactic-techniques[data-v-2ea1d8c9]{grid-template-columns:1fr;max-height:none}.chip-content[data-v-2ea1d8c9]{flex-direction:column;align-items:flex-start}.chip-text[data-v-2ea1d8c9]{white-space:normal}.chip-meta[data-v-2ea1d8c9]{width:100%}.header-controls[data-v-2ea1d8c9]{flex-direction:column}.visbar[data-v-2ea1d8c9]{flex-direction:column;gap:4px}.visbar-perc[data-v-2ea1d8c9]{min-width:auto;text-align:left}}