:root{color:#111827;background:#f3f4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:#f3f4f6;margin:0}button,input{font:inherit}.app-shell{flex-direction:column;height:100vh;padding:20px;display:flex;overflow:hidden}.topbar{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.topbar h1{margin:0;font-size:28px}.subtitle{color:#4b5563;margin:6px 0 0}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:10px 14px}.tab.active{color:#fff;background:#111827;border-color:#111827}.tab:disabled{opacity:.5;cursor:not-allowed}.main-grid{flex:1;grid-template-columns:360px 1fr;gap:16px;min-height:0;display:grid}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:16px;min-height:0;padding:16px}.left-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-header h2{margin:0 0 10px}.search-input{border:1px solid #d1d5db;border-radius:10px;width:100%;margin-bottom:10px;padding:10px 12px}.meta{color:#6b7280;margin-bottom:14px;font-size:13px}.list{flex-direction:column;flex:1;gap:18px;min-height:0;padding-right:4px;display:flex;overflow:auto}.tactic-section{flex-direction:column;gap:10px;display:flex}.tactic-section-header{border-bottom:1px solid #f1f5f9;border-left:3px solid #e5e7eb;justify-content:space-between;align-items:baseline;gap:12px;padding:0 2px 8px 8px;display:flex}.tactic-section-title{letter-spacing:-.01em;color:#374151;margin:0;font-size:18px;font-weight:700}.tactic-section-count{color:#9ca3af;font-size:12px;font-weight:600}.tactic-section-list{flex-direction:column;gap:12px;display:flex}.technique-tree-group{flex-direction:column;gap:8px;display:flex}.list-item{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:10px 12px;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s}.list-item:hover{background:#fcfcfd;border-color:#d1d5db}.list-item.active{background:#f9fafb;border-color:#111827;box-shadow:inset 0 0 0 1px #111827}.list-item-id{color:#9ca3af;letter-spacing:.01em;margin-bottom:4px;font-size:11px;font-weight:600}.list-item-name{color:#111827;font-weight:600}.subtechnique-list{border-left:1px solid #e5e7eb;flex-direction:column;gap:6px;margin-left:12px;padding-left:12px;display:flex}.subtechnique-item{background:#fafafa;border-color:#eef2f7;border-radius:10px;padding:8px 10px;position:relative}.subtechnique-item:hover{background:#f8fafc;border-color:#dbe3ec}.subtechnique-item.active{background:#f9fafb;border-color:#111827}.subtechnique-item:before{content:"";border-top:1px solid #e5e7eb;width:8px;position:absolute;top:18px;left:-12px}.subtechnique-item .list-item-id{margin-bottom:3px}.subtechnique-item .list-item-name{font-weight:600}.detail-panel{min-height:0;overflow:auto}.detail-id{color:#3730a3;background:#eef2ff;border-radius:999px;margin-bottom:8px;padding:4px 8px;font-size:13px;display:inline-block}.detail-header h2{margin:0 0 12px;font-size:28px}.description{color:#374151;white-space:pre-wrap}.description a{color:#2563eb;text-underline-offset:2px;text-decoration:underline}.description a:hover{color:#1d4ed8}.description p{margin:0 0 12px;line-height:1.7}.description p:last-child{margin-bottom:0}.description li{line-height:1.7}.badges{flex-wrap:wrap;gap:8px;margin:16px 0 20px;display:flex}.badge{color:#fff;background:#111827;border-radius:999px;padding:6px 10px;font-size:12px;display:inline-block}.badge.subtle{color:#111827;background:#e5e7eb}.related-section{margin-top:24px}.related-section h3{margin-bottom:12px}.related-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.related-card{text-align:left;cursor:pointer;background:#fafafa;border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:12px;transition:border-color .15s,background-color .15s,box-shadow .15s}.related-card:hover{background:#f3f4f6;border-color:#9ca3af}.related-card.active{background:#f9fafb;border-color:#111827;box-shadow:inset 0 0 0 1px #111827}.related-type{color:#6b7280;margin-bottom:6px;font-size:12px}.related-name{margin-bottom:6px;font-weight:600}.related-rel{color:#374151;font-size:12px}.related-group-block{margin-top:16px}.related-group-title{color:#374151;text-transform:lowercase;margin:0 0 10px;font-size:14px}.related-id{color:#6b7280;word-break:break-all;font-size:12px}.detail-actions{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.back-link-button{color:#111827;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:8px 12px}.back-link-button:hover{background:#f9fafb}.breadcrumbs{color:#6b7280;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:flex}.breadcrumb-item{align-items:center;gap:6px;min-width:0;display:inline-flex}.breadcrumb-link{color:#4b5563;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-items:center;gap:6px;padding:0;text-decoration:underline;display:inline-flex}.breadcrumb-link:hover{color:#111827}.breadcrumb-current{color:#111827;font-weight:600}.breadcrumb-separator{color:#9ca3af}.breadcrumb-current-wrap{align-items:center;gap:6px;display:inline-flex}.breadcrumb-type{color:#6b7280;background:#f3f4f6;border-radius:999px;padding:2px 6px;font-size:11px}.related-card-topline{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.related-external-id{color:#3730a3;background:#eef2ff;border-radius:999px;padding:2px 6px;font-size:11px;display:inline-block}.reference-section{opacity:.85;margin:12px 0 4px}.reference-title{color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px}.reference-list{flex-wrap:wrap;gap:8px;display:flex}.reference-link,.reference-pill{opacity:.8;padding:4px 8px;font-size:11px}.reference-link{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe}.reference-link:hover{background:#e0e7ff}.reference-pill{color:#4b5563;background:#f9fafb;border:1px solid #e5e7eb}.related-section-header,.related-group-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.related-section-header{margin-bottom:12px}.related-section-header h3,.related-group-header h4{margin:0}.related-section-count,.related-group-count{color:#3730a3;background:#eef2ff;border-radius:999px;justify-content:center;align-items:center;min-width:28px;height:24px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.related-group-header{margin-bottom:10px}.tactic-toggle{cursor:pointer;text-align:left;background:0 0;border:none;width:100%}.tactic-section-heading{align-items:center;gap:8px;display:flex}.tactic-toggle-icon{color:#6b7280;flex:0 0 12px;width:12px;font-size:12px}.inline-technique-link{color:#2563eb;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline;display:inline}.inline-technique-link:hover{color:#1d4ed8}.citation-pill,a.citation-pill,button.citation-pill,span.citation-pill{vertical-align:middle;color:#3730a3;white-space:nowrap;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;justify-content:center;align-items:center;margin:0 4px;padding:2px 8px;font-size:12px;line-height:1.4;text-decoration:none;display:inline-flex}a.citation-pill,button.citation-pill{cursor:pointer;transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}button.citation-pill{appearance:none;font:inherit;background:#eef2ff;outline:none}a.citation-pill:hover,button.citation-pill:hover{color:#fff;background:#3730a3;border-color:#3730a3;text-decoration:none}a.citation-pill:focus-visible,button.citation-pill:focus-visible{outline-offset:2px;outline:2px solid #3730a3}.citation-pill.muted,span.citation-pill.muted{opacity:.65;cursor:default}@media (width<=900px){.app-shell{height:auto;min-height:100vh;overflow:visible}.topbar{flex-direction:column}.main-grid{flex:none;grid-template-columns:1fr}.left-panel,.detail-panel,.list{overflow:visible}.subtechnique-list{margin-left:10px;padding-left:10px}}.reference-section{margin:12px 0 8px}.reference-toggle{color:#6b7280;cursor:pointer;letter-spacing:.02em;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.reference-toggle:hover{color:#374151}.reference-toggle-label{text-transform:uppercase}.reference-toggle-icon{font-size:12px}.reference-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.subtle-link{color:#9ca3af;text-decoration:none}.subtle-link:hover{color:#6b7280;text-decoration:underline}
