:root{--foreground:#1f2937;--background:#fff;--primary:#1e40af;--primary-hover:#1e3a8a;--primary-light:#eff6ff;--border:#d1d5db;--border-hover:#9ca3af;--card-bg:#fff;--surface:#f3f4f6;--text-secondary:#4b5563;--text-muted:#6b7280;--text-disabled:#9ca3af;--success:#067647;--success-light:#f0fdf4;--success-border:#bbf7d0;--warning:#b54708;--warning-light:#fffbeb;--warning-border:#fde68a;--error:#b42318;--error-light:#fef2f2;--error-border:#fecaca;--info:#075985;--info-light:#f0f9ff;--info-border:#bae6fd;--critical:#b42318;--critical-bg:#fff;--major:#b54708;--major-bg:#fff;--minor:#4b5563;--minor-bg:#fff;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.04);--shadow:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 2px 4px -1px rgba(0,0,0,.06),0 1px 2px -1px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:0.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--spacing-2xl:2rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--foreground);background-color:var(--surface);line-height:1.5}a{color:inherit;transition:color var(--transition-fast)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}button,input,select,textarea{font:inherit}h1{line-height:1.25;font-weight:700;letter-spacing:-.01em}h2,h3{letter-spacing:-.005em}h2,h3,h4,h5,h6{line-height:1.25;font-weight:600}.input,.select,.textarea{padding:.625rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:.875rem;background-color:var(--background);color:var(--foreground);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.input:hover:not(:disabled):not(:focus),.select:hover:not(:disabled):not(:focus),.textarea:hover:not(:disabled):not(:focus){border-color:var(--border-hover)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input:disabled,.select:disabled,.textarea:disabled{background-color:var(--surface);color:var(--text-muted);cursor:not-allowed}.input.input-error,.select.input-error,.textarea.input-error{border-color:var(--error)}.input.input-error:focus,.select.input-error:focus,.textarea.input-error:focus{box-shadow:0 0 0 3px var(--error-light)}.input-sm{padding:.5rem .625rem;font-size:.8125rem}.input-lg{padding:.75rem 1rem;font-size:1rem}.textarea{min-height:80px;resize:vertical}.input-group{position:relative;display:flex;align-items:stretch}.input-group .input{flex:1 1}.input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input-group.has-icon .input{padding-left:2.5rem}.form-field{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.875rem;font-weight:500;color:var(--foreground)}.form-label.required:after{content:" *";color:var(--error)}.form-hint{font-size:.75rem;color:var(--text-muted)}.form-error{font-size:.75rem;color:var(--error);display:flex;align-items:center;gap:.25rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem}.form-section{padding:1.25rem;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border)}.form-section-title{font-size:.875rem;font-weight:600;color:var(--foreground);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.char-counter{font-size:.75rem;color:var(--text-muted);text-align:right;margin-top:.25rem}.char-counter.warning{color:var(--warning)}.char-counter.error{color:var(--error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;border-radius:.25rem;border:1px solid transparent;cursor:pointer;transition:background-color .12s ease,border-color .12s ease;white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-light)}.btn-primary{background-color:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:active:not(:disabled){background-color:#172554}.btn-secondary{background-color:var(--background);color:var(--foreground);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background-color:var(--surface);border-color:var(--border-hover)}.btn-ghost{background-color:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--surface);color:var(--foreground)}.btn-danger{background-color:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.btn-success{background-color:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover:not(:disabled){background-color:#15803d;border-color:#15803d}.btn-link{background:none;border:none;color:var(--primary);padding:0;font-weight:500}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-icon{padding:.5rem;min-width:unset}.btn-icon.btn-sm{padding:.375rem}.card{background-color:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);transition:border-color .12s ease,box-shadow .12s ease}.card-hoverable{cursor:pointer}.card-hoverable:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.card-hoverable:active{transform:scale(.998)}.card-padding-sm{padding:.75rem}.card-padding-md{padding:1rem}.card-padding-lg{padding:1.5rem}.card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}.card-title{font-size:1rem;font-weight:600;color:var(--foreground);margin:0}.card-subtitle{font-size:.875rem;color:var(--text-secondary);margin:.25rem 0 0}.card-footer{display:flex;justify-content:flex-end;gap:.5rem;padding-top:1rem;margin-top:1rem;border-top:1px solid var(--border)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.025em}.badge-critical{background-color:var(--critical-bg);color:var(--critical)}.badge-major{background-color:var(--major-bg);color:var(--major)}.badge-minor{background-color:var(--minor-bg);color:var(--minor)}.badge-success{background-color:var(--success-light);color:var(--success)}.badge-warning{background-color:var(--warning-light);color:var(--warning)}.badge-info{background-color:var(--info-light);color:var(--info)}.badge-neutral{background-color:var(--surface);color:var(--text-secondary)}.badge-ai{background-color:#dbeafe;color:#1e40af;font-size:.65rem}.tag{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.8125rem;font-weight:500;border-radius:var(--radius-md);background-color:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.tag-primary{background-color:var(--primary-light);color:var(--primary);border-color:transparent}.signal-card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;transition:all var(--transition-base)}.signal-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.signal-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1rem .75rem}.signal-card-title{font-size:.9375rem;font-weight:600;color:var(--foreground);margin:0;line-height:1.4}.signal-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.signal-card-body{padding:0 1rem 1rem}.signal-card-narrative{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.signal-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface);border-top:1px solid var(--border)}.signal-card-actions{display:flex;gap:.5rem}.signal-card.severity-critical{border-left:3px solid var(--critical)}.signal-card.severity-major{border-left:3px solid var(--major)}.signal-card.severity-minor{border-left:3px solid var(--minor)}.data-row{display:flex;justify-content:space-between;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--border)}.data-row:last-child{border-bottom:none}.data-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.data-value{font-size:.875rem;color:var(--foreground);text-align:right}.data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1rem;gap:1rem}.data-item{display:flex;flex-direction:column;gap:.25rem}.stat-card{padding:1rem;border-radius:var(--radius-lg);background:var(--card-bg);border:1px solid var(--border);transition:border-color .12s ease,box-shadow .12s ease}.stat-card:hover{box-shadow:var(--shadow)}.stat-card-clickable{cursor:pointer}.stat-card-clickable:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.stat-value{font-size:1.75rem;font-weight:700;color:var(--foreground);line-height:1.2}.stat-label{font-size:.8125rem;color:var(--text-secondary);margin-top:.25rem}.stat-card.variant-critical{background:var(--critical-bg);border-color:transparent}.stat-card.variant-critical .stat-value{color:var(--critical)}.stat-card.variant-major{background:var(--major-bg);border-color:transparent}.stat-card.variant-major .stat-value{color:var(--major)}.stat-card.variant-minor{background:var(--warning-light);border-color:transparent}.stat-card.variant-minor .stat-value{color:var(--warning)}.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:2px;transition:width var(--transition-slow)}.progress-bar-indeterminate .progress-bar-fill{width:30%;animation:indeterminate 1.5s ease-in-out infinite}@keyframes indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(400%)}}.progress-steps{gap:0}.progress-step,.progress-steps{display:flex;align-items:center}.progress-step{flex:1 1}.progress-step-indicator{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;background:var(--surface);border:2px solid var(--border);color:var(--text-muted);transition:all var(--transition-base);flex-shrink:0}.progress-step.active .progress-step-indicator{background:var(--primary);border-color:var(--primary);color:#fff}.progress-step.completed .progress-step-indicator{background:var(--success);border-color:var(--success);color:#fff}.progress-step-line{flex:1 1;height:2px;background:var(--border);margin:0 .5rem}.progress-step.completed .progress-step-line{background:var(--success)}.progress-step-label{font-size:.8125rem;color:var(--text-muted);margin-top:.5rem}.progress-step.active .progress-step-label{color:var(--foreground);font-weight:500}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-lg{width:32px;height:32px;border-width:3px}.spinner-white{border-color:#fff hsla(0,0%,100%,.3) hsla(0,0%,100%,.3)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out}.animate-shake{animation:shake .3s ease-out}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity .2s ease-in}.fade-exit{opacity:1}.fade-exit-active{opacity:0;transition:opacity .2s ease-out}.tab-content{animation:fadeIn .2s ease-out}.btn-spinner{animation:spin 1s linear infinite}@keyframes lockClick{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}.lock-animate{animation:lockClick .3s ease-out}.tabs{display:flex;gap:.25rem;padding:.25rem;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border)}.tab{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.tab-active,.tab:hover:not(.tab-active){color:var(--foreground);background:var(--background)}.tab-active{box-shadow:var(--shadow-sm);font-weight:600}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip{bottom:100%;transform:translateX(-50%) translateY(-4px);padding:.5rem .75rem;background:var(--foreground);color:#fff;font-size:.75rem;border-radius:var(--radius-md);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:100}.tooltip,.tooltip:after{position:absolute;left:50%}.tooltip:after{content:"";top:100%;transform:translateX(-50%);border:4px solid transparent;border-top:4px solid var(--foreground)}.tooltip-wrapper:hover .tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(-8px)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease-out}.modal{background:var(--card-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:90%;max-height:85vh;overflow:auto;animation:scaleIn var(--transition-base) ease-out}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.modal-title{font-size:1.125rem;font-weight:600;color:var(--foreground);margin:0}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;background:var(--surface);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.empty-state-icon{width:64px;height:64px;color:var(--text-muted);margin-bottom:1rem}.empty-state-title{font-size:1rem;font-weight:600;color:var(--foreground);margin:0 0 .5rem}.empty-state-description{font-size:.875rem;color:var(--text-secondary);margin:0 0 1.5rem;max-width:320px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border:0}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.truncate{text-overflow:ellipsis}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3}.severity-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem}.severity-dot.critical{background-color:var(--critical)}.severity-dot.major{background-color:var(--major)}.severity-dot.minor{background-color:var(--minor)}.severity-indicator{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500}.severity-indicator.critical{color:var(--critical)}.severity-indicator.major{color:var(--major)}.severity-indicator.minor{color:var(--minor)}.react-pdf__Page{position:relative}.textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.react-pdf__Page__textContent{line-height:1;-webkit-user-select:text;-moz-user-select:text;user-select:text}.react-pdf__Page__textContent span{color:transparent}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.react-pdf__Page__annotations{position:absolute;top:0;left:0;pointer-events:none}@keyframes pdf-highlight-pulse{0%,to{background-color:rgba(255,213,79,.5);box-shadow:0 0 0 0 rgba(255,167,38,.5)}50%{background-color:rgba(255,213,79,.25);box-shadow:0 0 8px 4px rgba(255,167,38,.3)}}.pdf-highlight-overlay{background-color:rgba(255,213,79,.4);animation:pdf-highlight-pulse 2s ease-in-out 3}.link{color:var(--primary);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}.link:hover{color:var(--primary-hover);text-decoration:underline}.nav-link{text-decoration:none;color:var(--text-secondary);font-weight:500;font-size:.875rem;padding:.5rem .75rem;border-radius:.375rem;background-color:transparent;transition:background-color .15s,color .15s}.nav-link:hover{background-color:#f1f5f9;color:var(--foreground)}.nav-link.active{background-color:#eff6ff;color:var(--primary)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-title{font-size:1rem;font-weight:600;color:var(--foreground);margin:0}.section-subtitle{font-size:.875rem;color:var(--text-secondary);margin:.25rem 0 0}.section-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);letter-spacing:.01em;margin-bottom:.5rem}.clickable{cursor:pointer;transition:all var(--transition-fast)}.clickable:hover{opacity:.8}.clickable:active{transform:scale(.98)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--surface);color:var(--foreground)}.icon-btn:active{transform:scale(.95)}.icon-btn.danger:hover{background:var(--error-light);color:var(--error)}.icon-btn-sm{width:28px;height:28px}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--border) 50%,var(--surface) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-text:last-child{width:70%}.skeleton-title{height:1.5rem;width:60%;margin-bottom:1rem}.skeleton-circle{border-radius:50%}@keyframes signal-pulse{0%{box-shadow:0 0 0 0 rgba(5,150,105,.4)}70%{box-shadow:0 0 0 10px rgba(5,150,105,0)}to{box-shadow:0 0 0 0 rgba(5,150,105,0)}}.signal-highlight{animation:signal-pulse .8s ease-out 2;background-color:rgba(5,150,105,.08)!important;border-color:#059669!important}