*{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono:"Consolas", "Monaco", "Courier New", monospace;--color-sidebar-dark:#1a1a2e;--color-sidebar-darker:#16213e;--color-bg-light:#fff;--color-bg-gray:#f5f5f5;--color-border:#e2e8f0;--color-text-primary:#1a1a2e;--color-text-secondary:#64748b;--color-text-light:#ffffffb3;--color-primary:#60a5fa;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#fbbf24}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-gray);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:16px;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin:0 0 1rem}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none}code{font-family:var(--font-mono);background-color:var(--color-bg-gray);border-radius:4px;padding:.125rem .375rem;font-size:.875em}.error-boundary{background-color:#f8fafc;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.error-boundary-content{text-align:center;background-color:#fff;border-radius:12px;max-width:600px;padding:3rem 2rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.error-icon{color:#ef4444;margin-bottom:1.5rem}.error-boundary-content h1{color:#1a1a2e;margin:0 0 1rem;font-size:1.75rem;font-weight:700}.error-message{color:#64748b;margin:0 0 2rem;font-size:1rem;line-height:1.6}.error-details{text-align:left;margin:2rem 0}.error-details details{background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;padding:1rem}.error-details summary{cursor:pointer;color:#991b1b;-webkit-user-select:none;user-select:none;font-weight:600}.error-details summary:hover{color:#7f1d1d}.error-stack{color:#991b1b;white-space:pre-wrap;word-wrap:break-word;background-color:#fef2f2;border-radius:4px;margin-top:1rem;padding:1rem;font-family:Monaco,Courier New,monospace;font-size:.75rem;overflow-x:auto}.error-actions{justify-content:center;gap:1rem;display:flex}.error-actions .btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.error-actions .btn-primary{color:#fff;background-color:#3b82f6}.error-actions .btn-primary:hover{background-color:#2563eb}.error-actions .btn-secondary{color:#475569;background-color:#fff;border:1px solid #cbd5e1}.error-actions .btn-secondary:hover{background-color:#f8fafc;border-color:#94a3b8}.backend-status-banner{z-index:9999;background-color:#fee2e2;border-bottom:2px solid #fecaca;animation:.3s ease-out slideDown;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 6px -1px #0000001a}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.banner-content{align-items:center;gap:1rem;max-width:1400px;margin:0 auto;padding:.75rem 2rem;display:flex}.banner-content svg{color:#991b1b;flex-shrink:0}.banner-message{flex-direction:column;flex:1;gap:.25rem;display:flex}.banner-message strong{color:#991b1b;font-size:.875rem;font-weight:700}.banner-message span{color:#7f1d1d;font-size:.75rem}.banner-retry-btn{color:#991b1b;cursor:pointer;white-space:nowrap;background-color:#fff;border:1px solid #fca5a5;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;font-weight:600;transition:all .2s;display:flex}.banner-retry-btn:hover:not(:disabled){background-color:#fef2f2;border-color:#f87171}.banner-retry-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.layout{background-color:#f5f5f5;flex-direction:column;height:100vh;display:flex}.header{color:#fff;z-index:10;background-color:#1a1a2e;justify-content:space-between;align-items:center;height:60px;padding:0 2rem;display:flex;box-shadow:0 2px 4px #0000001a}.header-left{align-items:center;display:flex}.app-title{letter-spacing:.5px;margin:0;font-size:1.5rem;font-weight:600}.header-right{align-items:center;display:flex}.status-indicator{background-color:#ffffff1a;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.status-indicator.connected .status-dot{color:#22c55e}.status-indicator.disconnected .status-dot{color:#ef4444}.status-indicator.connecting .status-dot{color:#fbbf24;animation:1.5s ease-in-out infinite pulse}.status-text{font-weight:500}.main-container{flex:1;display:flex;overflow:hidden}.sidebar{color:#fff;background-color:#16213e;flex-direction:column;width:240px;display:flex;box-shadow:2px 0 4px #0000001a}.nav{flex-direction:column;padding:1rem 0;display:flex}.nav-item{color:#ffffffb3;border-left:3px solid #0000;align-items:center;gap:.75rem;padding:.875rem 1.5rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:#fff;background-color:#ffffff0d}.nav-item.active{color:#fff;background-color:#ffffff1a;border-left-color:#60a5fa}.content{background-color:#fff;flex:1;padding:2rem;overflow-y:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.threat-card{background-color:#fff;border:1px solid #e2e8f0;border-left:4px solid;border-radius:8px;margin-bottom:1rem;padding:1.25rem;transition:box-shadow .2s}.threat-card:hover{box-shadow:0 2px 8px #0000001a}.threat-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.threat-card-badges{align-items:center;gap:.5rem;display:flex}.severity-badge,.category-badge{letter-spacing:.025em;border-radius:4px;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.threat-card-score{align-items:center;gap:.25rem;font-size:.875rem;display:flex}.score-label{color:#64748b;font-weight:500}.score-value{color:#1a1a2e;font-size:1rem;font-weight:700}.threat-card-body{flex-direction:column;gap:.625rem;display:flex}.threat-card-title{color:#1a1a2e;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;line-height:1.4;text-decoration:none;transition:color .2s;display:flex}.threat-card-title:hover{color:#3b82f6;text-decoration:none}.threat-card-meta{color:#64748b;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.meta-source{font-weight:600}.meta-separator{color:#cbd5e1}.meta-time{font-style:italic}.threat-card-summary{color:#475569;margin:0;font-size:.9375rem;line-height:1.6}.summary-toggle{color:#3b82f6;cursor:pointer;background:0 0;border:none;margin-left:.375rem;padding:0;font-size:.875rem;font-weight:600}.summary-toggle:hover{text-decoration:underline}.threat-card-tags{flex-wrap:wrap;gap:.375rem;margin-top:.25rem;display:flex}.tag{border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.tag-cve{color:#92400e;background-color:#fef3c7;border:1px solid #fcd34d}.tag-ttp{color:#1e40af;background-color:#dbeafe;border:1px solid #93c5fd}.tag-default{color:#475569;background-color:#f1f5f9;border:1px solid #e2e8f0}.tag-more{color:#64748b;background-color:#f8fafc;border:1px solid #cbd5e1}.toast{z-index:1000;background-color:#fff;border-left:4px solid;border-radius:8px;align-items:center;gap:.75rem;min-width:300px;max-width:500px;padding:1rem;display:flex;position:fixed;top:80px;right:20px;box-shadow:0 4px 12px #00000026}.toast-success{border-left-color:#22c55e}.toast-error{border-left-color:#ef4444}.toast-icon{color:inherit;align-items:center;display:flex}.toast-success .toast-icon{color:#22c55e}.toast-error .toast-icon{color:#ef4444}.toast-message{color:#1a1a2e;flex:1;font-size:.875rem}.toast-close{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;transition:color .2s;display:flex}.toast-close:hover{color:#1a1a2e}.source-manager{border-top:2px solid #e2e8f0;margin-top:2rem;padding-top:1rem}.source-manager-toggle{color:#fff;cursor:pointer;background-color:#16213e;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:1rem 1.5rem;font-size:1rem;font-weight:600;transition:background-color .2s;display:flex}.source-manager-toggle:hover{background-color:#1a2844}.source-manager-content{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:1rem;padding:1.5rem}.source-manager-loading{flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.source-manager-loading .spinner{border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.source-manager-loading p{color:#64748b;margin:0}.sources-table-container{margin-bottom:1.5rem;overflow-x:auto}.sources-table{border-collapse:collapse;width:100%;font-size:.875rem}.sources-table thead{background-color:#f8fafc;border-bottom:2px solid #e2e8f0}.sources-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.05em;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.sources-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s}.sources-table tbody tr:hover{background-color:#f8fafc}.sources-table td{color:#1a1a2e;padding:1rem}.source-name{font-weight:600}.no-sources{text-align:center;color:#64748b;padding:2rem!important}.status-indicator{align-items:center;gap:.5rem;font-weight:500;display:flex}.status-indicator.healthy{color:#059669}.status-indicator.unhealthy{color:#dc2626}.status-dot{background-color:currentColor;border-radius:50%;width:8px;height:8px}.error-message{color:#dc2626;margin-top:.25rem;font-size:.75rem}.toggle-switch{cursor:pointer;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#cbd5e1;border-radius:24px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:#22c55e}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.btn-delete{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.375rem;transition:all .2s;display:flex}.btn-delete:hover{color:#dc2626;background-color:#fee2e2}.add-source-section{border-top:1px solid #e2e8f0;padding-top:1.5rem}.add-source-form{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.form-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.form-header h3{color:#1a1a2e;margin:0;font-size:1.125rem;font-weight:600}.btn-cancel{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s}.btn-cancel:hover{color:#1a1a2e;background-color:#e2e8f0}.form-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field-full{grid-column:1/-1}.form-field-checkbox{align-items:flex-start;padding-top:1.875rem}.form-field-checkbox label{cursor:pointer;align-items:center;gap:.5rem;font-weight:400;display:flex}.form-field-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px}.form-field label{color:#475569;font-size:.875rem;font-weight:600}.required{color:#dc2626}.form-field input,.form-field select{color:#1a1a2e;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.625rem .875rem;font-size:.875rem;transition:border-color .2s}.form-field input:focus,.form-field select:focus{border-color:#3b82f6;outline:none}.form-actions{justify-content:flex-end;display:flex}.threat-intel-page{max-width:1400px;margin:0 auto}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.page-header h2{color:#1a1a2e;margin:0 0 .5rem;font-size:2rem;font-weight:600}.page-subtitle{color:#64748b;margin:0;font-size:1rem}.action-buttons{gap:.75rem;display:flex}.spinning{animation:1s linear infinite spin}.filter-bar{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.filter-group label{color:#475569;white-space:nowrap;font-size:.875rem;font-weight:600}.filter-group select,.filter-group input{color:#1a1a2e;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.5rem .75rem;font-size:.875rem;transition:border-color .2s}.filter-group select:focus,.filter-group input:focus{border-color:#3b82f6;outline:none}.filter-group select:disabled,.filter-group input:disabled{opacity:.5;cursor:not-allowed}.filter-search{flex:1}.filter-search input{width:100%}.item-count{color:#64748b;white-space:nowrap;margin-left:auto;font-size:.875rem}.item-count strong{color:#1a1a2e;font-weight:600}.feed-container{min-height:400px}.feed-list{flex-direction:column;display:flex}.loading-state,.error-state,.empty-state{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.loading-state p,.error-state p,.empty-state p{color:#64748b;margin:0;font-size:1rem}.loading-state .spinner{border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;width:40px;height:40px;margin-bottom:1rem;animation:.8s linear infinite spin}.error-state p{color:#ef4444;margin-bottom:1rem}.empty-state p{margin:0}.score-definition-section{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:2rem;margin-bottom:2rem;padding:1.5rem}.score-definition-section h3{color:#1a1a2e;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.score-formula{color:#475569;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem;font-family:Monaco,Courier New,monospace;font-size:.9rem}.score-details{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.score-details li{color:#475569;padding-left:1rem;font-size:.875rem;position:relative}.score-details li:before{content:"•";color:#3b82f6;font-weight:700;position:absolute;left:0}.score-details strong{color:#1a1a2e;font-weight:600}.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{background:#ffffff80;margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.mitigation-summary-panel{background:var(--color-background-primary);border:1px solid var(--color-border-secondary);border-radius:8px;margin-bottom:24px;padding:20px}.mitigation-summary-header{margin-bottom:24px}.summary-title-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.summary-title-row svg{color:#166534}.summary-title-row h3{color:var(--color-text-primary);margin:0;font-size:1.5rem;font-weight:700}.summary-subtitle{color:var(--color-text-secondary);margin:0;padding-left:36px;font-size:.875rem}.global-mitigation-stats{background:var(--color-background-secondary);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px;padding:16px;display:grid}.global-mitigation-stats .stat-item{border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:4px;padding:12px;transition:all .2s;display:flex}.global-mitigation-stats .stat-item.total{background:#fff;border-color:#e2e8f0}.global-mitigation-stats .stat-item .stat-icon{font-size:1.5rem}.global-mitigation-stats .stat-item .stat-value{color:var(--color-text-primary);font-size:1.75rem;font-weight:700}.global-mitigation-stats .stat-item .stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;text-align:center;font-size:.75rem;font-weight:600}.mitigation-paths-list{flex-direction:column;gap:16px;display:flex}.mitigation-path-card{border:1px solid var(--color-border-secondary);background:#fff;border-radius:8px;overflow:hidden}.path-header{background:var(--color-background-secondary);cursor:pointer;justify-content:space-between;align-items:center;padding:16px 20px;transition:background-color .2s;display:flex}.path-header:hover{background:#f1f5f9}.path-info{flex:1;min-width:0}.path-number{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:.75rem;font-weight:700}.path-name{color:var(--color-text-primary);margin-bottom:6px;font-size:1.125rem;font-weight:600}.path-meta{color:var(--color-text-secondary);align-items:center;gap:12px;font-size:.875rem;display:flex}.path-steps,.path-mitigations{align-items:center;gap:4px;display:flex}.expand-icon{color:var(--color-text-tertiary)}.path-mitigations-content{flex-direction:column;gap:16px;padding:20px;display:flex}.defense-layer-section{border:1px solid var(--color-border-tertiary);border-radius:6px;overflow:hidden}.layer-header{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;transition:opacity .2s;display:flex}.layer-header:hover{opacity:.9}.layer-title{align-items:center;gap:10px;display:flex}.layer-icon{font-size:1.25rem}.layer-name{text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:700}.layer-count{color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.layer-expand-icon{color:var(--color-text-secondary)}.layer-mitigations{background:var(--color-background-primary);flex-direction:column;gap:12px;padding:16px;display:flex}.mitigation-card{border:1px solid var(--color-border-tertiary);background:#fff;border-left-width:4px;border-radius:6px;padding:16px;transition:box-shadow .2s}.mitigation-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.mitigation-header{margin-bottom:12px}.mitigation-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.mitigation-name{color:var(--color-text-primary);flex:1;margin:0;font-size:1rem;font-weight:600}.priority-badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:3px;padding:3px 8px;font-size:.625rem;font-weight:700}.priority-badge.priority-critical{color:#991b1b;background:#fee2e2}.priority-badge.priority-high{color:#9a3412;background:#fed7aa}.priority-badge.priority-medium{color:#92400e;background:#fef3c7}.priority-badge.priority-low{color:#4b5563;background:#f3f4f6}.mitigation-context{color:var(--color-text-tertiary);align-items:center;gap:6px;font-size:.75rem;display:flex}.context-step{color:var(--color-text-secondary);font-weight:600}.context-technique{background:var(--color-background-secondary);color:#3b82f6;border-radius:3px;padding:2px 6px;font-family:monospace;font-weight:600}.context-asset{font-family:monospace;font-size:.7rem}.context-separator{color:var(--color-border-secondary)}.mitigation-description{color:var(--color-text-secondary);margin-bottom:12px;font-size:.875rem;line-height:1.6}.mitigation-aws-action{border:1px solid;border-radius:4px;margin-bottom:12px;padding:10px 12px;font-size:.875rem;line-height:1.5}.mitigation-aws-action strong{text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.75rem;display:block}.mitigation-aws-action span{color:var(--color-text-secondary)}.mitigation-metadata{border-top:1px solid var(--color-border-tertiary);gap:20px;padding-top:8px;font-size:.75rem;display:flex}.metadata-item{gap:6px;display:flex}.metadata-label{color:var(--color-text-secondary);font-weight:600}.metadata-value{color:var(--color-text-tertiary)}@media (width<=768px){.global-mitigation-stats{grid-template-columns:repeat(3,1fr)}.path-header{padding:12px 16px}.path-name{font-size:1rem}.path-mitigations-content{padding:16px}.mitigation-metadata{flex-direction:column;gap:8px}}.stigmergic-results-view{flex-direction:column;gap:1.5rem;max-width:1400px;margin:0 auto;display:flex}.stigmergic-header{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-radius:8px;padding:1.5rem;box-shadow:0 4px 12px #8b5cf64d}.stigmergic-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.stigmergic-subtitle{opacity:.95;margin:0;font-size:.95rem}.results-stats-bar .stat-item{text-align:center;flex-direction:column;align-items:center;display:flex}.results-stats-bar .stat-label{color:#475569;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.875rem;font-weight:600}.results-stats-bar .stat-value{color:#1a1a2e;font-size:1rem;font-weight:600}.stigmergic-section{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.section-header{cursor:pointer;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;transition:background-color .2s;display:flex}.section-header:hover{background-color:#f1f5f9}.section-header h3{color:#1a1a2e;align-items:center;gap:.75rem;margin:0;font-size:1.125rem;font-weight:600;display:flex}.timeline-container{padding:1.5rem}.timeline-header{border-bottom:2px solid #e2e8f0;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.timeline-label{color:#64748b;font-size:.875rem}.timeline-label strong{color:#1a1a2e;font-weight:600}.persona-timeline{flex-direction:column;gap:.5rem;display:flex}.persona-badge-timeline{align-items:center;gap:1rem;display:flex;position:relative}.timeline-connector{z-index:0;background:linear-gradient(#8b5cf6,#6366f1);width:3px;height:100%;position:absolute;top:50%;left:15px}.persona-badge-timeline:last-child .timeline-connector{display:none}.persona-card{z-index:1;background-color:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;flex:1;align-items:center;gap:1rem;padding:.75rem 1rem;transition:all .2s;display:flex;position:relative}.persona-card:hover{border-color:#8b5cf6;transform:translate(4px);box-shadow:0 2px 8px #8b5cf633}.persona-card.reinforced{border-left:4px solid #10b981}.persona-card.diverged{border-left:4px solid #f59e0b}.persona-order{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;font-weight:700;display:flex}.persona-name{color:#1a1a2e;flex:1;font-size:.95rem;font-weight:600}.persona-stats{align-items:center;gap:1rem;font-size:.8rem;display:flex}.stat-item{color:#64748b;align-items:center;gap:.25rem;display:flex}.stat-item.reinforcement{color:#10b981;font-weight:600}.stat-item.divergence{color:#f59e0b;font-weight:600}.insights-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;padding:1.5rem;display:grid}.insight-card{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.25rem}.insight-card h4{color:#1a1a2e;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;font-weight:600;display:flex}.insight-description{color:#64748b;margin:0 0 1rem;font-size:.8rem}.technique-list{flex-direction:column;gap:.5rem;display:flex}.technique-item{background-color:#fff;border:1px solid #e2e8f0;border-radius:4px;align-items:center;gap:.75rem;padding:.5rem;font-size:.85rem;display:flex}.technique-badge-link{color:#fff;background-color:#3b82f6;border-radius:4px;padding:.25rem .5rem;font-family:Courier New,monospace;font-size:.75rem;font-weight:600;text-decoration:none;transition:background-color .2s;display:inline-block}.technique-badge-link:hover{background-color:#2563eb}.technique-name{color:#475569;flex:1;font-size:.8rem}.technique-reinforcement{color:#10b981;background-color:#d1fae5;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.convergent-paths-list{flex-direction:column;gap:.75rem;display:flex}.convergent-path-item{background-color:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:.75rem}.path-sequence{margin-bottom:.5rem;font-size:.8rem;line-height:1.6}.technique-code{color:#475569;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:3px;padding:.15rem .4rem;font-family:Courier New,monospace;font-size:.75rem;font-weight:600}.convergence-badge{color:#6b21a8;background-color:#e9d5ff;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.gap-list{flex-direction:column;gap:.4rem;max-height:300px;display:flex;overflow-y:auto}.gap-item{background-color:#fff;border:1px solid #fecaca;border-left:3px solid #ef4444;border-radius:4px;padding:.4rem .75rem;font-size:.8rem}.gap-item code{color:#991b1b;font-family:Courier New,monospace;font-size:.75rem}.cluster-list{flex-direction:column;gap:.5rem;display:flex}.cluster-item{background-color:#fff;border:1px solid #e2e8f0;border-radius:4px;justify-content:space-between;align-items:center;padding:.5rem;display:flex}.cluster-techniques{align-items:center;gap:.5rem;font-size:.8rem;display:flex}.cluster-techniques code{background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:3px;padding:.2rem .4rem;font-family:Courier New,monospace;font-size:.7rem}.cluster-arrow{color:#8b5cf6;font-weight:700}.cluster-count{color:#64748b;font-size:.7rem;font-weight:600}.empty-state{color:#94a3b8;margin:.5rem 0 0;font-size:.85rem;font-style:italic}.more-items{color:#64748b;margin-top:.5rem;font-size:.75rem;font-style:italic}.graph-interpretation{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-bottom:1.5rem;padding:1rem 1.25rem}.graph-interpretation h4{color:#1e40af;margin:0 0 .5rem;font-size:1rem;font-weight:600}.graph-interpretation p{color:#475569;margin:0;font-size:.875rem;line-height:1.6}.graph-interpretation strong{color:#1e3a8a;font-weight:600}.graph-container{padding:1.5rem}.graph-legend{background-color:#f8fafc;border-radius:6px;gap:2rem;margin-bottom:1rem;padding:.75rem;display:flex}.legend-item{color:#64748b;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.legend-indicator{flex-shrink:0}.graph-svg{background-color:#fafafa;border:1px solid #e2e8f0;border-radius:8px;width:100%;max-width:800px;height:600px;margin:0 auto;display:block}.graph-stats{color:#64748b;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;font-size:.85rem;display:flex}.paths-container{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.attack-path-card-stigmergic{background-color:#fff;border:2px solid #e2e8f0;border-radius:8px;transition:all .2s;overflow:hidden}.attack-path-card-stigmergic:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #00000014}.path-header-stigmergic{background:linear-gradient(#f8fafc,#fff);border-bottom:2px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.path-title-section{flex-direction:column;gap:.5rem;display:flex}.path-name{color:#1a1a2e;margin:0;font-size:1.125rem;font-weight:600}.path-objective{color:#64748b;font-size:.875rem}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:.25rem;padding:.3rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-actor{color:#475569;background-color:#f1f5f9}.badge-impact{font-weight:600}.badge-difficulty{color:#92400e;background-color:#fef3c7}.badge-reinforces{color:#065f46;background-color:#d1fae5;border:1px solid #10b981}.badge-diverges{color:#92400e;background-color:#fef3c7;border:1px solid #f59e0b}.badge-score{color:#6b21a8;background-color:#e9d5ff}.badge-confidence{border:1px solid;font-weight:600}.score-label{opacity:.9;margin-top:.125rem;font-size:.75rem}.executive-summary{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.expand-toggle{color:#64748b;cursor:pointer;background-color:#fff;border:none;border-top:1px solid #e2e8f0;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.expand-toggle:hover{color:#475569;background-color:#f8fafc}.kill-chain-container{padding:1.5rem}.kill-chain-step{background-color:#fff;border:2px solid #e2e8f0;border-radius:8px;width:100%;overflow:hidden}.phase-name{flex:1;font-weight:600}.step-content{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.step-technique-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.step-target-row{color:#64748b;font-size:.875rem}.step-target-row code{color:#475569;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:3px;padding:.2rem .5rem;font-family:Courier New,monospace;font-size:.85rem}.step-action{color:#475569;margin:0;font-size:.9rem;line-height:1.6}.step-outcome-box strong{color:#065f46;font-weight:600}.kill-chain-arrow{color:#cbd5e1;justify-content:center;align-items:center;margin:.5rem 0;display:flex}@media (width<=768px){.insights-grid{grid-template-columns:1fr}.timeline-header{flex-direction:column;align-items:flex-start;gap:.5rem}.persona-card{flex-direction:column;align-items:flex-start}.persona-stats{justify-content:space-between;width:100%}.graph-svg{height:400px}.path-header-stigmergic{flex-direction:column;align-items:stretch}.path-score-indicator{justify-content:flex-start}.score-circle{width:60px;height:60px}.score-value{font-size:1.5rem}.mitigation-action-bar{flex-direction:column;gap:1rem}.mitigation-action-buttons{flex-direction:column;width:100%}.mitigation-action-buttons .btn{width:100%}}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.threat-model-page{max-width:1400px;margin:0 auto}.tab-navigation{border-bottom:3px solid #e2e8f0;gap:6px;margin-bottom:24px;padding-bottom:8px;display:flex;overflow-x:hidden}.tab-button{color:#64748b;cursor:pointer;white-space:nowrap;text-align:center;background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border:2px solid #e2e8f0;border-radius:8px 8px 0 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:0;padding:8px 12px;font-size:11px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 2px 4px #0000000d}.tab-button:hover:not(:disabled){color:#667eea;background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 8px #667eea26}.tab-button.active{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-color:#667eea #667eea #0000;transform:translateY(-4px);box-shadow:0 4px 12px #667eea4d}.tab-button.active:after{content:"";background:#fff;height:3px;position:absolute;bottom:-3px;left:0;right:0}.tab-button:disabled{color:#cbd5e1;cursor:not-allowed;opacity:.6;box-shadow:none;background:#f8fafc;border-color:#f1f5f9}.tab-button svg{flex-shrink:0}.tab-button span:not(.tab-text-multiline){white-space:nowrap;text-overflow:ellipsis;width:100%;display:block;overflow:hidden}.tab-button .tab-text-multiline{white-space:normal;text-align:center;font-size:10px;line-height:1.2;display:block}.tab-content{animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.upload-panel{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.upload-panel h3{color:#1a1a2e;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.file-dropzone{text-align:center;cursor:pointer;background-color:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;margin-bottom:1rem;padding:3rem 2rem;transition:all .2s;position:relative}.file-dropzone:hover{background-color:#eff6ff;border-color:#3b82f6}.file-dropzone.has-file{cursor:default;background-color:#d1fae5;border-color:#10b981}.file-dropzone.has-file:hover{background-color:#d1fae5;border-color:#10b981}.dropzone-icon{color:#94a3b8;margin-bottom:1rem}.dropzone-text{color:#475569;margin:0 0 .5rem;font-size:1rem;font-weight:600}.dropzone-hint{color:#64748b;margin:0;font-size:.875rem}.file-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.selected-file-info{align-items:center;gap:1rem;display:flex}.file-check-icon{color:#10b981;flex-shrink:0}.file-details{text-align:left;flex:1}.file-name{color:#1a1a2e;margin:0 0 .25rem;font-size:1rem;font-weight:600}.file-size{color:#64748b;margin:0;font-size:.875rem}.bedrock-config-section{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1.5rem}.bedrock-config-form{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:1rem;padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#475569;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-input{border:1px solid #cbd5e1;border-radius:6px;width:100%;padding:.625rem .875rem;font-family:inherit;font-size:.875rem;transition:border-color .2s}.form-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled{cursor:not-allowed;opacity:.6;background-color:#f1f5f9}.form-actions{gap:.75rem;margin-top:1.5rem;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#fff;background-color:#3b82f6}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-secondary{color:#475569;background-color:#fff;border:1px solid #cbd5e1}.btn-secondary:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8}.btn-danger{color:#fff;background-color:#ef4444;border:none}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-ghost{color:#475569;background-color:#0000;border:1px solid #cbd5e1}.btn-ghost:hover:not(:disabled){background-color:#f8fafc}.error-message{color:#991b1b;background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.agent-selection{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:1rem;padding:1rem}.agent-label{color:#475569;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:flex}.agent-select{color:#1a1a2e;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;width:100%;padding:.625rem .875rem;font-size:.875rem;transition:all .2s}.agent-select:hover:not(:disabled){border-color:#3b82f6}.agent-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.agent-select:disabled{cursor:not-allowed;opacity:.6;background-color:#f1f5f9}.run-buttons{gap:.75rem;display:flex}.run-buttons .btn{flex:1;justify-content:center}.btn-stigmergic{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border:none;position:relative}.btn-stigmergic:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed 0%,#4f46e5 100%);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.badge-new{color:#fff;text-transform:uppercase;letter-spacing:.025em;background-color:#ef4444;border-radius:9999px;padding:.15rem .4rem;font-size:.65rem;font-weight:700;line-height:1;position:absolute;top:-6px;right:-6px;box-shadow:0 2px 4px #0003}.btn-sm{padding:.5rem .875rem;font-size:.875rem}.btn-ghost.btn-sm{padding:.375rem .75rem}.progress-indicator{text-align:center;margin-top:1rem}.progress-bar{background-color:#e2e8f0;border-radius:4px;width:100%;height:8px;margin-bottom:.5rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:4px;height:100%;animation:2s ease-in-out infinite progress}@keyframes progress{0%{width:0%}50%{width:100%}to{width:0%}}.progress-text{color:#475569;margin:0;font-size:.875rem;font-weight:600}.heartbeat-indicator{color:#10b981;font-weight:500;animation:1.5s ease-in-out infinite pulse;display:inline-block}.elapsed-time-display{text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;margin:1.5rem 0;padding:1rem;box-shadow:0 4px 6px #0000001a}.elapsed-time-value{color:#fff;letter-spacing:.1em;text-shadow:0 2px 4px #0003;font-family:Courier New,monospace;font-size:3rem;font-weight:700}.elapsed-time-label{color:#ffffffe6;text-transform:uppercase;letter-spacing:.05em;margin-top:.5rem;font-size:.875rem;font-weight:600}.heartbeat-indicators{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem;margin:1.5rem 0;padding:1rem;display:flex}.heartbeat-item{align-items:center;gap:.5rem;display:flex}.heartbeat-pulse{border-radius:50%;width:12px;height:12px;position:relative}.heartbeat-pulse.alive{background-color:#10b981;animation:1.5s ease-in-out infinite pulse-beat;box-shadow:0 0 #10b981b3}.heartbeat-pulse.dead{background-color:#ef4444;animation:1s ease-in-out infinite pulse-warning}@keyframes pulse-beat{0%{box-shadow:0 0 #10b981b3}50%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.5}}.heartbeat-label{color:#475569;font-size:.875rem;font-weight:600}.heartbeat-timestamp{color:#64748b;font-size:.75rem;font-style:italic}.long-operation-notice{color:#92400e;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:8px;align-items:center;gap:.75rem;margin-top:1rem;padding:1rem;font-size:.875rem;line-height:1.5;display:flex}.long-operation-notice svg{color:#f59e0b;flex-shrink:0}.attack-path-card-v2{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.path-header-v2{background:linear-gradient(#f8fafc,#fff);border-bottom:2px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem;display:flex}.path-title-section{flex:1;min-width:300px}.path-name-v2{color:#1a1a2e;margin:0 0 .75rem;font-size:1.25rem;font-weight:700}.path-objective{color:#78350f;background-color:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;margin-top:.75rem;padding:.75rem 1rem;font-size:.95rem}.path-objective strong{font-weight:600}.path-badges-section{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.path-badges-section .badge{text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:.375rem .75rem;font-size:.75rem;font-weight:600}.badge-actor{color:#374151;background-color:#f3f4f6;border:1px solid #d1d5db}.badge-impact{border:1px solid}.badge-difficulty{color:#3730a3;background-color:#e0e7ff;border:1px solid #818cf8}.badge-challenged{color:#9a3412;background-color:#fed7aa;border:1px solid #f97316}.badge-confidence{border:1px solid}.path-score-indicator{justify-content:center;align-items:center;display:flex}.score-circle{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:70px;height:70px;display:flex;box-shadow:0 4px 6px #0000001a}.score-value{font-size:1.75rem;font-weight:700;line-height:1}.score-label{opacity:.9;font-size:.75rem}.kill-chain-container{background-color:#fafafa;padding:2rem 1.5rem}.kill-chain-pipeline{flex-direction:column;gap:0;display:flex}.kill-chain-step-wrapper{flex-direction:column;align-items:center;display:flex}.kill-chain-step{background-color:#fff;border:2px solid #cbd5e1;border-radius:8px;width:100%;max-width:800px;transition:transform .2s,box-shadow .2s;overflow:hidden;box-shadow:0 2px 4px #0000000d}.kill-chain-step:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.step-phase-header{align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;font-weight:600;display:flex}.step-number-badge{background-color:#0000001a;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;font-weight:700;display:inline-flex}.phase-name{text-transform:uppercase;letter-spacing:.5px;flex:1}.step-content{padding:1.25rem}.step-technique-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.technique-badge{color:#fff;background-color:#3b82f6;border-radius:6px;padding:.375rem .75rem;font-family:Monaco,Courier New,monospace;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .2s;display:inline-block}.technique-badge:hover{background-color:#2563eb}.technique-name-display{color:#374151;font-size:.95rem;font-weight:500}.step-target-row{color:#6b7280;margin-bottom:.75rem;font-size:.875rem}.step-target-row code{color:#1f2937;background-color:#f3f4f6;border-radius:4px;padding:.25rem .5rem;font-size:.875rem}.step-action{color:#374151;margin-bottom:.75rem;font-size:.95rem;line-height:1.6}.step-outcome-box{color:#065f46;background-color:#f0fdf4;border-left:4px solid #10b981;border-radius:4px;margin-top:.75rem;padding:.75rem;font-size:.875rem}.step-outcome-box strong{font-weight:600}.kill-chain-arrow{color:#9ca3af;justify-content:center;align-items:center;padding:.5rem 0;display:flex}.mitigations-section{background-color:#f8fafc;border-top:1px solid #e2e8f0;padding:1rem 1.5rem}.mitigations-toggle{justify-content:center;gap:.5rem;width:100%}.mitigations-content{margin-top:1rem}.mitigations-header{border-bottom:2px solid #e2e8f0;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.mitigations-header h5{color:#1a1a2e;margin:0;font-size:1.1rem;font-weight:600}.mitigations-table{flex-direction:column;gap:1rem;display:flex}.mitigation-row{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:1rem;padding:1rem;display:flex}.mitigation-step-info{flex-direction:column;gap:.5rem;min-width:140px;display:flex}.mitigation-step-badge{color:#fff;text-align:center;background-color:#3b82f6;border-radius:6px;padding:.375rem .75rem;font-size:.75rem;font-weight:600}.mitigation-phase{color:#6b7280;text-align:center;font-size:.75rem;line-height:1.3}.mitigation-details{flex:1}.mitigation-title{color:#374151;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.mitigation-title strong{color:#1f2937;font-weight:600}.mitigation-description-text{color:#6b7280;margin:.5rem 0;font-size:.875rem;line-height:1.6}.aws-action-block{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;margin-top:.75rem;padding:.75rem}.aws-action-block strong{color:#0c4a6e;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.aws-action-block code{color:#0c4a6e;white-space:pre-wrap;word-break:break-word;background-color:#fff;border:1px solid #bae6fd;border-radius:4px;padding:.5rem .75rem;font-family:Monaco,Courier New,monospace;font-size:.875rem;display:block}.provenance-section{background-color:#f8fafc;border-top:1px solid #e2e8f0}.provenance-toggle{cursor:pointer;color:#475569;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-weight:600;transition:background-color .2s;display:flex}.provenance-toggle:hover{background-color:#f1f5f9}.provenance-toggle:before{content:"▶";font-size:.875rem;transition:transform .2s;display:inline-block}.provenance-section[open] .provenance-toggle:before{transform:rotate(90deg)}.provenance-content{padding:1rem 1.5rem 1.5rem}.provenance-item{margin-bottom:1.5rem}.provenance-item:last-child{margin-bottom:0}.provenance-item h6{color:#1a1a2e;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem;font-size:.875rem;font-weight:600}.provenance-item p{color:#6b7280;margin:0;font-size:.875rem;line-height:1.6}.evaluation-scores-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:.75rem;display:grid}.eval-score-item{text-align:center;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;flex-direction:column;align-items:center;padding:.75rem;display:flex}.eval-label{color:#6b7280;margin-bottom:.5rem;font-size:.75rem}.eval-value{color:#1a1a2e;font-size:1.25rem;font-weight:700}@media (width<=768px){.path-header-v2{flex-direction:column;align-items:stretch}.path-score-indicator{justify-content:flex-start}.score-circle{width:60px;height:60px}.score-value{font-size:1.5rem}.kill-chain-pipeline{padding:0}.step-technique-row{flex-direction:column;align-items:flex-start}.mitigation-row{flex-direction:column}.mitigation-step-info{min-width:auto}.evaluation-scores-grid{grid-template-columns:repeat(2,1fr)}}.asset-graph-panel{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.asset-graph-panel h3{color:#1a1a2e;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.asset-summary-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{text-align:center;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:1rem}.stat-card .stat-value{color:#1a1a2e;margin-bottom:.25rem;font-size:2rem;font-weight:700;display:block}.stat-card .stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;display:block}.asset-table-container{flex-direction:column;gap:1.5rem;display:flex}.boundary-group{border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.boundary-header{color:#1a1a2e;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;margin:0;padding:.75rem 1rem;font-size:1rem;font-weight:600;display:flex}.boundary-count{color:#64748b;margin-left:auto;font-size:.875rem;font-weight:400}.asset-table{border-collapse:collapse;width:100%}.asset-table thead{background-color:#f8fafc}.asset-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0;padding:.75rem 1rem;font-size:.875rem;font-weight:600}.asset-table tbody tr{border-bottom:1px solid #f1f5f9}.asset-table tbody tr:last-child{border-bottom:none}.asset-table tbody tr:hover{background-color:#f8fafc}.asset-table td{color:#475569;padding:.75rem 1rem;font-size:.875rem}.asset-table .asset-name{color:#1a1a2e;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-success{color:#065f46;background-color:#d1fae5}.badge-warning{color:#92400e;background-color:#fef3c7}.badge-challenged{color:#991b1b;background-color:#fee2e2}.badge-gap-fill{color:#1e40af;background-color:#dbeafe}.results-panel{flex-direction:column;gap:1.5rem;display:flex}.executive-summary{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;padding:1.5rem}.executive-summary h3{margin:0 0 .75rem;font-size:1.25rem;font-weight:600}.executive-summary p{opacity:.95;margin:0;font-size:1rem;line-height:1.6}.results-stats-bar{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:1fr 1fr 1fr;gap:1rem;padding:1rem;display:grid}.stat-item{text-align:center;flex-direction:column;align-items:center;display:flex}.stat-item .stat-label{color:#475569;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.875rem;font-weight:600}.stat-item .stat-value{color:#1a1a2e;font-size:1rem;font-weight:600}.attack-paths-list{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.attack-paths-list>h3{color:#1a1a2e;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.attack-path-card{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;transition:box-shadow .2s;overflow:hidden}.attack-path-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.path-header{cursor:pointer;padding:1rem 1.5rem;position:relative}.path-title-row{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.path-name{color:#1a1a2e;flex:1;margin:0;padding-right:1rem;font-size:1.125rem;font-weight:600}.path-badges{flex-shrink:0;gap:.5rem;display:flex}.confidence-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.path-meta{color:#64748b;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.875rem;display:flex}.path-meta .threat-actor{color:#475569;font-weight:600}.path-separator{color:#cbd5e1}.score-breakdown{margin-top:.75rem}.score-bar-container{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.score-bar{background-color:#e2e8f0;border-radius:4px;flex:1;height:8px;overflow:hidden}.score-bar .score-bar-fill{background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;height:100%;transition:width .3s;animation:none}.score-value{color:#1a1a2e;text-align:right;min-width:45px;font-size:.875rem;font-weight:700}.score-details{color:#64748b;gap:1rem;font-size:.75rem;display:flex}.score-detail{font-weight:600}.expand-icon{color:#94a3b8;position:absolute;top:1rem;right:1rem}.path-details{background-color:#fff;border-top:1px solid #e2e8f0;padding:1.5rem}.validation-notes,.challenge-resolution{background-color:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.validation-notes h5,.challenge-resolution h5{color:#92400e;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem;font-size:.875rem;font-weight:700}.validation-notes p,.challenge-resolution p{color:#78350f;margin:0;font-size:.875rem;line-height:1.6}.attack-steps h5{color:#1a1a2e;margin:0 0 1rem;font-size:1rem;font-weight:600}.attack-step{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:1rem;padding:1rem}.attack-step:last-child{margin-bottom:0}.step-number{color:#fff;background-color:#3b82f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;font-weight:700;display:flex}.step-info{flex:1}.step-technique{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.technique-id{color:#1e40af;background-color:#dbeafe;border-radius:4px;padding:.125rem .5rem;font-family:Monaco,Courier New,monospace;font-size:.75rem;font-weight:700;display:inline-block}.technique-name{color:#1a1a2e;font-size:.875rem;font-weight:600}.step-target{color:#64748b;font-size:.875rem}.step-description{color:#475569;margin:0 0 .75rem;font-size:.875rem;line-height:1.6}.step-section{color:#475569;margin-bottom:.5rem;font-size:.875rem;line-height:1.6}.step-section strong{color:#1a1a2e}.step-mitigations{border-top:1px solid #e2e8f0;margin-top:1rem;padding-top:1rem}.step-mitigations>strong{color:#1a1a2e;margin-bottom:.75rem;font-size:.875rem;display:block}.mitigation-item{background-color:#d1fae5;border:1px solid #a7f3d0;border-radius:6px;margin-bottom:.5rem;padding:.75rem}.mitigation-item:last-child{margin-bottom:0}.mitigation-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.mitigation-header svg{color:#059669}.mitigation-id{color:#065f46;background-color:#fff;border-radius:4px;padding:.125rem .5rem;font-family:Monaco,Courier New,monospace;font-size:.75rem;font-weight:700;display:inline-block}.mitigation-name{color:#065f46;font-size:.875rem;font-weight:600}.mitigation-description{color:#064e3b;margin:0;font-size:.875rem;line-height:1.6}.landing-state{margin-bottom:1.5rem}.landing-card{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:3rem;box-shadow:0 4px 6px -1px #0000001a}.landing-icon{color:#3b82f6;margin-bottom:1.5rem}.landing-card h3{color:#1a1a2e;margin:0 0 1rem;font-size:1.75rem;font-weight:700}.landing-description{color:#64748b;margin:0 0 2rem;font-size:1rem;line-height:1.6}.landing-steps{flex-direction:column;gap:1.5rem;margin-bottom:2rem;display:flex}.landing-step{align-items:flex-start;gap:1rem;display:flex}.step-number{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.125rem;font-weight:700;display:flex}.step-content{flex:1}.step-content h4{color:#1a1a2e;margin:0 0 .25rem;font-size:1rem;font-weight:600}.step-content p{color:#64748b;margin:0;font-size:.875rem;line-height:1.6}.landing-requirements{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.landing-requirements h4{color:#475569;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.875rem;font-weight:700}.landing-requirements ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.landing-requirements li{color:#64748b;padding-left:1.5rem;font-size:.875rem;position:relative}.landing-requirements li:before{content:"✓";color:#10b981;font-weight:700;position:absolute;left:0}.mitigation-checkbox{border-right:1px solid #e5e7eb;align-items:center;gap:.5rem;padding:.5rem;display:flex}.mitigation-checkbox-input{cursor:pointer;accent-color:#3b82f6;width:18px;height:18px}.mitigation-checkbox-label{color:#6b7280;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.875rem}.mitigation-row{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;gap:1rem;margin-bottom:.75rem;padding:1rem;transition:all .2s;display:flex}.mitigation-row.mitigation-selected{background-color:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.mitigations-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.mitigations-header-actions{gap:.5rem;display:flex}.mitigation-action-bar{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;justify-content:space-between;align-items:center;margin-top:2rem;padding:1.5rem;display:flex;box-shadow:0 4px 6px #0000001a}.mitigation-action-info{color:#fff}.mitigation-count{font-size:1.125rem;font-weight:600}.mitigation-action-buttons{gap:1rem;display:flex}.mitigation-action-buttons .btn{min-width:140px}.post-mitigation-container{background:linear-gradient(#f9fafb,#fff);border:2px solid #e5e7eb;margin-top:2rem}.view-mode-toggle{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;gap:.5rem;padding:4px;display:flex}.view-mode-toggle .btn-sm{border-radius:6px;padding:.5rem 1rem;font-size:.875rem}.residual-risk-summary{background-color:#fff;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:2rem;padding:2rem}.residual-risk-summary h3{color:#1f2937;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.5rem;display:flex}.risk-stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.risk-stat-card{text-align:center;border-radius:10px;padding:1.5rem;box-shadow:0 2px 4px #0000000d}.risk-stat-card.neutralized{background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border:2px solid #10b981}.risk-stat-card.reduced{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:2px solid #f59e0b}.risk-stat-card.partial{background:linear-gradient(135deg,#fed7aa 0%,#fdba74 100%);border:2px solid #f97316}.risk-stat-card.viable{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);border:2px solid #ef4444}.risk-stat-value{color:#1f2937;font-size:2.5rem;font-weight:700}.risk-stat-label{color:#6b7280;margin-top:.5rem;font-size:.875rem;font-weight:500}.risk-reduction-banner{text-align:center;color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:12px;margin-bottom:2rem;padding:2rem;box-shadow:0 4px 12px #10b9814d}.risk-reduction-value{margin-bottom:.5rem;font-size:3.5rem;font-weight:800;line-height:1}.risk-reduction-label{opacity:.95;font-size:1.125rem;font-weight:500}.risk-scores{background-color:#f9fafb;border-radius:10px;justify-content:space-around;margin-bottom:2rem;padding:1.5rem;display:flex}.risk-score-item{flex-direction:column;align-items:center;gap:.5rem;display:flex}.risk-score-item .label{color:#6b7280;font-size:.875rem}.risk-score-item .value{color:#1f2937;font-size:1.5rem;font-weight:700}.top-residual-risks{margin-bottom:2rem}.top-residual-risks h4{color:#1f2937;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.25rem;display:flex}.residual-risk-list{flex-direction:column;gap:1rem;display:flex}.residual-risk-item{background-color:#fef3c7;border:2px solid #f59e0b;border-radius:8px;align-items:center;gap:1rem;padding:1rem;display:flex}.residual-risk-rank{color:#f59e0b;text-align:center;min-width:40px;font-size:1.5rem;font-weight:800}.residual-risk-details{flex:1}.residual-risk-name{color:#1f2937;margin-bottom:.5rem;font-weight:600}.residual-risk-meta{color:#6b7280;align-items:center;gap:1rem;font-size:.875rem;display:flex}.risk-status-badge{text-transform:uppercase;border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.risk-status-badge.still_viable{color:#991b1b;background-color:#fee2e2}.risk-status-badge.partially_mitigated{color:#9a3412;background-color:#fed7aa}.risk-status-badge.significantly_reduced{color:#92400e;background-color:#fef3c7}.risk-status-badge.neutralized{color:#065f46;background-color:#d1fae5}.residual-risk-score{color:#ef4444;font-weight:700}.recommendations-section h4{color:#1f2937;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.25rem;display:flex}.recommendations-list{flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.recommendations-list li{color:#1f2937;background-color:#eff6ff;border-left:4px solid #3b82f6;border-radius:6px;padding:1rem;line-height:1.6}.comparison-view{margin-top:2rem}.comparison-view h3{color:#1f2937;margin-bottom:1.5rem;font-size:1.5rem}.comparison-card{background-color:#fff;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:2rem;overflow:hidden}.comparison-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.comparison-header h4{margin:0;font-size:1.25rem}.comparison-status .status-badge{text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#fff3;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:700}.comparison-body{grid-template-columns:1fr 1fr;gap:2rem;padding:2rem;display:grid}.comparison-column{flex-direction:column;gap:1rem;display:flex}.comparison-column.pre-mitigation{border-right:2px solid #e5e7eb;padding-right:2rem}.column-header{border-bottom:2px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.column-header h5{color:#1f2937;margin:0;font-size:1.125rem}.difficulty-badge{text-transform:uppercase;color:#6b7280;background-color:#f3f4f6;border-radius:999px;padding:.375rem .75rem;font-size:.75rem;font-weight:600}.difficulty-badge.neutralized{color:#065f46;background-color:#d1fae5}.difficulty-badge.still_viable{color:#991b1b;background-color:#fee2e2}.impact-summary{background-color:#f9fafb;border-radius:8px;gap:1rem;margin-bottom:1rem;padding:1rem;display:flex}.impact-stat{color:#6b7280;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.impact-stat .icon.blocked{color:#10b981}.impact-stat .icon.reduced{color:#f59e0b}.impact-stat .icon.active{color:#ef4444}.steps-list{flex-direction:column;gap:.75rem;display:flex}.step-comparison-item{background-color:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1rem;position:relative}.step-comparison-item.status-blocked{background-color:#f0fdf4;border-color:#10b981}.step-comparison-item.status-reduced{background-color:#fffbeb;border-color:#f59e0b}.step-comparison-item.status-active{background-color:#fef2f2;border-color:#ef4444}.step-header{gap:.5rem;margin-bottom:.5rem;display:flex}.step-badge{color:#fff;background-color:#3b82f6;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.technique-badge-small{color:#fff;background-color:#6b7280;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.step-name{color:#1f2937;font-size:.875rem;font-weight:600}.step-phase{color:#6b7280;margin-top:.25rem;font-size:.75rem}.step-status-indicator{text-transform:uppercase;border-radius:6px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem;font-size:.75rem;font-weight:700;display:flex}.step-status-indicator.blocked{color:#065f46;background-color:#d1fae5}.step-status-indicator.reduced{color:#92400e;background-color:#fef3c7}.step-status-indicator.active{color:#991b1b;background-color:#fee2e2}.step-impact-item{background-color:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1rem}.step-impact-item.blocked{background-color:#f0fdf4;border-color:#10b981}.step-impact-item.reduced{background-color:#fffbeb;border-color:#f59e0b}.step-impact-item.active{background-color:#fef2f2;border-color:#ef4444}.step-impact-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.effectiveness-badge{text-transform:uppercase;border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.effectiveness-badge.high{color:#065f46;background-color:#d1fae5}.effectiveness-badge.medium{color:#92400e;background-color:#fef3c7}.effectiveness-badge.low,.effectiveness-badge.none{color:#991b1b;background-color:#fee2e2}.step-impact-reasoning{color:#4b5563;margin-bottom:.75rem;font-size:.875rem;line-height:1.5}.applied-mitigations{color:#3b82f6;background-color:#eff6ff;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem;font-size:.75rem;font-weight:600;display:flex}.score-display{text-align:center;color:#6b7280;background-color:#f9fafb;border-radius:8px;margin-top:1rem;padding:1rem;font-size:1rem}.score-display.residual{color:#92400e;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);font-weight:600}.score-display strong{color:#1f2937;margin-left:.5rem;font-size:1.25rem}@media (width<=1024px){.comparison-body{grid-template-columns:1fr;gap:1.5rem}.comparison-column.pre-mitigation{border-bottom:2px solid #e5e7eb;border-right:none;padding-bottom:2rem;padding-right:0}.risk-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.mitigation-action-bar{flex-direction:column;gap:1rem}.mitigation-action-buttons{flex-direction:column;width:100%}.mitigation-action-buttons .btn{width:100%}.risk-stats-grid{grid-template-columns:1fr}.risk-scores{flex-direction:column;gap:1rem}.view-mode-toggle{flex-direction:column;width:100%}.view-mode-toggle .btn-sm{width:100%}}.page-content-with-sidebar{align-items:flex-start;gap:1.5rem;display:flex}.archived-runs-sidebar{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;flex:0 0 420px;max-height:calc(100vh - 180px);padding:1.5rem;position:sticky;top:100px;overflow-y:auto}.sidebar-header{border-bottom:2px solid #e2e8f0;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.sidebar-header h3{color:#1a1a2e;margin:0;font-size:1.125rem;font-weight:600}.archived-runs-list{flex-direction:column;gap:.75rem;display:flex}.no-runs-message{text-align:center;color:#64748b;padding:2rem 1rem}.no-runs-message p{margin:.5rem 0}.no-runs-message .hint{color:#94a3b8;font-size:.875rem}.archived-run-item{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.875rem;transition:all .2s;position:relative}.archived-run-item:hover{background-color:#eff6ff;border-color:#3b82f6;box-shadow:0 2px 4px #3b82f61a}.run-info{cursor:pointer}.run-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.model-badge-main{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:6px;flex:1;min-width:0;padding:.25rem .75rem;font-size:.8125rem;font-weight:600;display:inline-block}.model-badge-main.unknown{background:linear-gradient(135deg,#94a3b8 0%,#64748b 100%)}.run-mode-badge{text-transform:uppercase;color:#1e40af;background-color:#dbeafe;border-radius:9999px;flex-shrink:0;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-block}.run-timestamp{color:#64748b;align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.8125rem;display:flex}.timestamp-icon{flex-shrink:0;font-size:.875rem}.timestamp-text{line-height:1.3}.run-file-info{align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.8125rem;display:flex}.file-icon{flex-shrink:0;font-size:.875rem}.file-name{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-family:Courier New,monospace;font-weight:500;overflow:hidden}.run-paths-info{align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.8125rem;display:flex}.paths-icon{flex-shrink:0;font-size:.875rem}.paths-text{color:#475569}.paths-text strong{color:#1e293b;font-weight:700}.run-duration-info{align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.duration-icon{flex-shrink:0;font-size:.875rem}.duration-text{color:#475569}.duration-text strong{color:#1e293b;font-weight:700}.run-actions{border-top:1px solid #e2e8f0;gap:.375rem;margin-top:.5rem;padding-top:.5rem;display:flex}.btn-icon{cursor:pointer;color:#64748b;background-color:#0000;border:1px solid #e2e8f0;border-radius:4px;justify-content:center;align-items:center;padding:.375rem;transition:all .2s;display:flex}.btn-icon:hover{color:#1e293b;background-color:#f1f5f9;border-color:#cbd5e1}.btn-icon.btn-delete:hover{color:#dc2626;background-color:#fee2e2;border-color:#fca5a5}.btn-icon.btn-save:hover{color:#16a34a;background-color:#dcfce7;border-color:#86efac}.btn-icon.btn-cancel:hover{color:#ca8a04;background-color:#fef3c7;border-color:#fcd34d}.editing-run-name{flex-direction:column;gap:.5rem;display:flex}.edit-name-input{border:1px solid #cbd5e1;border-radius:4px;width:100%;padding:.5rem;font-family:inherit;font-size:.875rem}.edit-name-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.edit-actions{gap:.5rem;display:flex}.main-content{flex:1;min-width:0}.threat-model-page{max-width:1600px}@media (width<=1200px){.page-content-with-sidebar{flex-direction:column}.archived-runs-sidebar{flex:auto;max-width:100%;max-height:400px;position:static}.main-content{width:100%}}.evaluation-summary-panel{background:linear-gradient(135deg,#f8fafc 0%,#fff 100%);border:2px solid #e2e8f0;border-radius:12px;margin-bottom:2rem;padding:2rem;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.evaluation-header{border-bottom:2px solid #e2e8f0;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.evaluation-header h3{color:#1e293b;margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.overall-score-badge{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border-radius:12px;flex-direction:column;align-items:center;padding:1.25rem 2rem;display:flex;box-shadow:0 10px 15px -3px #3b82f64d}.score-badge-value{color:#fff;font-size:2.5rem;font-weight:800;line-height:1}.score-badge-label{color:#ffffffe6;text-transform:uppercase;letter-spacing:.05em;margin-top:.5rem;font-size:.75rem;font-weight:600}.scoring-methodology{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.methodology-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.methodology-item{flex-direction:column;gap:.25rem;display:flex}.weight-badge{color:#fff;background:#3b82f6;border-radius:4px;width:fit-content;padding:.25rem .75rem;font-size:.875rem;font-weight:700;display:inline-block}.methodology-label{color:#1e293b;font-size:.9375rem;font-weight:600}.methodology-desc{color:#64748b;font-size:.8125rem}.evaluation-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1.25rem;transition:all .2s}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.metric-card.composite{background:linear-gradient(135deg,#f0f9ff 0%,#fff 100%);border:2px solid #3b82f6;grid-column:1/-1}.metric-header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.metric-icon{font-size:1.5rem}.metric-title{color:#1e293b;font-size:.9375rem;font-weight:600}.metric-score-display{margin-bottom:.75rem}.metric-main-score{color:#1e293b;font-size:2rem;font-weight:800;line-height:1}.metric-range{color:#64748b;margin-top:.25rem;font-size:.75rem}.metric-bar{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.metric-bar-fill{border-radius:4px;height:100%;transition:width .5s ease-out}.metric-bar-fill.feasibility{background:linear-gradient(90deg,#10b981 0%,#059669 100%)}.metric-bar-fill.impact{background:linear-gradient(90deg,#ef4444 0%,#dc2626 100%)}.metric-bar-fill.detection{background:linear-gradient(90deg,#f59e0b 0%,#d97706 100%)}.metric-bar-fill.novelty{background:linear-gradient(90deg,#8b5cf6 0%,#7c3aed 100%)}.metric-bar-fill.coherence{background:linear-gradient(90deg,#06b6d4 0%,#0891b2 100%)}.metric-bar-fill.composite{background:linear-gradient(90deg,#3b82f6 0%,#2563eb 100%)}.evaluation-findings{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.findings-list{flex-direction:column;gap:.75rem;display:flex}.finding-item{border-left:4px solid;border-radius:6px;align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.finding-item.critical{background:#fef2f2;border-left-color:#dc2626}.finding-item.high{background:#fef3c7;border-left-color:#f59e0b}.finding-item.medium{background:#dbeafe;border-left-color:#3b82f6}.finding-item.low{background:#d1fae5;border-left-color:#10b981}.finding-item.info{background:#f3f4f6;border-left-color:#6b7280}.finding-badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:4px;padding:.25rem .75rem;font-size:.75rem;font-weight:700}.finding-badge.critical{color:#fff;background:#dc2626}.finding-badge.high{color:#fff;background:#f59e0b}.finding-badge.medium{color:#fff;background:#3b82f6}.finding-badge.low{color:#fff;background:#10b981}.finding-badge.info{color:#fff;background:#6b7280}.finding-text{color:#1e293b;flex:1;font-size:.9375rem;line-height:1.5}.adversarial-validation-summary{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.adversarial-stats{flex-direction:column;gap:.75rem;display:flex}.adversarial-stat-item{background:#f8fafc;border-radius:6px;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.adversarial-label{color:#475569;font-size:.875rem;font-weight:600}.adversarial-value{color:#1e293b;font-size:.9375rem;font-weight:700}@media (width<=768px){.evaluation-summary-panel{padding:1.25rem}.evaluation-header{flex-direction:column;gap:1rem}.overall-score-badge{width:100%}.methodology-grid,.evaluation-metrics-grid{grid-template-columns:1fr}.metric-card.composite{grid-column:1}}#root{width:100%;height:100vh;margin:0;padding:0}*{box-sizing:border-box}
