:root{--theme-bg: #ffffff;--theme-bg-subtle: #f5f5f5;--theme-bg-muted: #fafafa;--theme-surface: #ffffff;--theme-surface-hover: rgba(0, 0, 0, .03);--theme-border: rgba(0, 0, 0, .1);--theme-border-subtle: rgba(0, 0, 0, .05);--theme-text: #000000;--theme-text-secondary: #333333;--theme-text-muted: #666666;--theme-text-faint: #999999;--theme-accent: #fa4a34;--theme-sidebar-bg: #fafafa;--theme-sidebar-active: rgba(0, 0, 0, .05);--theme-font: "Manrope", sans-serif;--theme-mono: "SF Mono", Monaco, Consolas, "Liberation Mono", monospace;--theme-radius: 6px;--theme-radius-lg: 16px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--theme-font);color:var(--theme-text);background:var(--theme-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.app-shell{display:flex;height:100vh}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--theme-bg-subtle)}.app-content{flex:1;padding:32px 40px;overflow-y:auto}.sidebar{width:240px;background:var(--theme-sidebar-bg);border-right:1px solid var(--theme-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-logo{padding:20px 24px;font-size:14px;font-weight:700;color:var(--theme-text);letter-spacing:-.01em;border-bottom:1px solid var(--theme-border-subtle)}.sidebar-logo span{color:var(--theme-accent)}.sidebar-nav{display:flex;flex-direction:column;padding:8px;gap:2px}.sidebar-link{display:block;padding:8px 16px;color:var(--theme-text-muted);text-decoration:none;font-size:13px;font-weight:500;border-radius:var(--theme-radius);transition:all .12s}.sidebar-link:hover{background:var(--theme-sidebar-active);color:var(--theme-text-secondary)}.sidebar-link.active{background:var(--theme-sidebar-active);color:var(--theme-text);font-weight:600}.sidebar-section{padding:20px 16px 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--theme-text-faint)}.header{height:52px;border-bottom:1px solid var(--theme-border);display:flex;align-items:center;padding:0 40px;background:var(--theme-bg);flex-shrink:0}.header-spacer{flex:1}.header-user{display:flex;align-items:center;gap:16px}.header-user-name{font-size:13px;font-weight:500;color:var(--theme-text-secondary)}.header-logout{font-size:13px;color:var(--theme-text-faint);text-decoration:none;font-weight:500}.header-logout:hover{color:var(--theme-accent)}.page-title{font-size:20px;font-weight:700;color:var(--theme-text);letter-spacing:-.02em}.page-subtitle{font-size:13px;color:var(--theme-text-muted);margin-top:2px}.page-header{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.page-count{font-size:13px;color:var(--theme-text-faint);font-weight:500}.data-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:16px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--theme-radius);overflow:hidden}.data-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--theme-border);color:var(--theme-text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:var(--theme-bg-muted)}.data-table td{padding:9px 14px;border-bottom:1px solid var(--theme-border-subtle);color:var(--theme-text-secondary);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--theme-surface-hover)}.data-table .col-num{text-align:center;width:44px}.cell-primary{font-weight:600;color:var(--theme-text)}.cell-link{color:inherit;text-decoration:none}.cell-link:hover{color:var(--theme-accent)}.cell-title{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mono{font-family:var(--theme-mono);font-size:12px;color:var(--theme-text-muted)}code.digest,code.version{font-family:var(--theme-mono);font-size:12px;color:var(--theme-text-muted);background:none;padding:0}.text-muted{color:var(--theme-text-faint)}.severity-badge{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.6}.severity-critical{background:#fde8e8;color:#b91c1c}.severity-high{background:#fff3e0;color:#c2410c}.severity-medium{background:#fef9e7;color:#92400e}.severity-low{background:#e8f5e9;color:#166534}.severity-unknown{background:var(--theme-bg-subtle);color:var(--theme-text-faint)}.severity-counts{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.tag-pill{display:inline-block;padding:1px 8px;background:var(--theme-bg-subtle);border:1px solid var(--theme-border);border-radius:4px;font-size:11px;font-weight:500;color:var(--theme-text-muted)}.source-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;font-weight:600;background:var(--theme-bg-subtle);border:1px solid var(--theme-border);color:var(--theme-text-muted)}.filter-bar{display:flex;gap:4px;margin:16px 0 4px}.filter-bar-multi{flex-wrap:wrap;gap:10px;align-items:flex-end}.filter-btn{padding:5px 14px;border:1px solid var(--theme-border);border-radius:var(--theme-radius);background:var(--theme-surface);color:var(--theme-text-muted);font-family:var(--theme-font);font-size:12px;font-weight:600;cursor:pointer;text-transform:capitalize;transition:all .12s}.filter-btn:hover{border-color:var(--theme-text-faint);background:var(--theme-bg-muted)}.filter-btn.active{background:var(--theme-text);color:var(--theme-bg);border-color:var(--theme-text)}.filter-select{display:flex;flex-direction:column;gap:3px}.filter-select-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--theme-text-faint)}.filter-select select{padding:5px 10px;border:1px solid var(--theme-border);border-radius:var(--theme-radius);background:var(--theme-surface);color:var(--theme-text-secondary);font-family:var(--theme-font);font-size:12px;font-weight:500;cursor:pointer;min-width:140px}.filter-select select:hover{border-color:var(--theme-text-faint)}.filter-select select:focus{outline:2px solid var(--theme-accent);outline-offset:-1px;border-color:transparent}.filter-clear{align-self:flex-end;padding:5px 12px;border:1px solid var(--theme-border);border-radius:var(--theme-radius);background:transparent;color:var(--theme-text-muted);font-family:var(--theme-font);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.filter-clear:hover{border-color:var(--theme-text-faint);background:var(--theme-bg-muted)}.link-button{background:none;border:none;padding:0;color:var(--theme-accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.link-button:hover{opacity:.8}.scanner-badge,.finding-type-badge,.target-type-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.scanner-badge{background:var(--theme-bg-subtle);border-color:var(--theme-border);color:var(--theme-text-muted)}.scanner-badge.scanner-trivy{background:#e0f2fe;color:#075985;border-color:transparent}.scanner-badge.scanner-codeql{background:#ede9fe;color:#5b21b6;border-color:transparent}.scanner-badge.scanner-sarif{background:#ecfeff;color:#155e75;border-color:transparent}.scanner-badge.scanner-osv_scanner{background:#fef3c7;color:#92400e;border-color:transparent}.scanner-badge.scanner-license_checker{background:#fce7f3;color:#9d174d;border-color:transparent}.finding-type-badge{background:var(--theme-bg-subtle);border-color:var(--theme-border);color:var(--theme-text-muted)}.finding-type-badge.ft-vulnerability{background:#fef2f2;color:#991b1b;border-color:transparent}.finding-type-badge.ft-code_scanning{background:#f0fdf4;color:#166534;border-color:transparent}.finding-type-badge.ft-license{background:#fffbeb;color:#92400e;border-color:transparent}.finding-type-badge.ft-secret{background:#fdf2f8;color:#9d174d;border-color:transparent}.finding-type-badge.ft-misconfiguration{background:#fef9c3;color:#854d0e;border-color:transparent}.target-type-badge{background:var(--theme-bg-subtle);border-color:var(--theme-border);color:var(--theme-text-muted)}.badge-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 16px}.status-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;line-height:1.6;white-space:nowrap}.status-badge.status-open{background:#dbeafe;color:#1e40af}.status-badge.status-reopened{background:#ffedd5;color:#9a3412}.status-badge.status-fixed{background:#dcfce7;color:#166534;opacity:.85}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:16px}.stat-card{background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--theme-radius);padding:16px 18px}.stat-card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--theme-text-faint);margin-bottom:4px}.stat-card-value{font-size:28px;font-weight:700;color:var(--theme-text);letter-spacing:-.03em;line-height:1.1}.stat-card-value.accent{color:var(--theme-accent)}.back-link{display:inline-block;margin-bottom:12px;font-size:13px;color:var(--theme-text-faint);text-decoration:none;font-weight:500}.back-link:hover{color:var(--theme-accent)}.detail-meta{font-size:13px;color:var(--theme-text-muted);margin-top:2px;margin-bottom:24px}.section-heading{font-size:15px;font-weight:700;color:var(--theme-text);margin-top:32px;margin-bottom:4px;letter-spacing:-.01em}.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:4px 16px;font-size:13px;margin-bottom:8px}.detail-grid dt{color:var(--theme-text-faint);font-weight:600}.detail-grid dd{color:var(--theme-text-secondary)}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:8px 0;font-size:13px;color:var(--theme-text-muted)}.pagination-info{font-weight:500}.pagination-buttons{display:flex;gap:4px}.pagination-btn{padding:5px 12px;border:1px solid var(--theme-border);border-radius:var(--theme-radius);background:var(--theme-surface);color:var(--theme-text-secondary);font-family:var(--theme-font);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.pagination-btn:hover:not(:disabled){border-color:var(--theme-text-faint);background:var(--theme-bg-muted)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.empty-state{margin-top:48px;text-align:center}.empty-state p{color:var(--theme-text-muted);font-size:14px}.empty-hint{margin-top:6px;font-size:13px!important;color:var(--theme-text-faint)!important}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--theme-bg-subtle)}.login-card{text-align:center;padding:48px;background:var(--theme-surface);border-radius:var(--theme-radius-lg);border:1px solid var(--theme-border)}.login-card h1{font-size:20px;font-weight:700;margin-bottom:6px;color:var(--theme-text);letter-spacing:-.02em}.login-card p{color:var(--theme-text-muted);margin-bottom:24px;font-size:14px}.login-button{display:inline-block;padding:10px 24px;background:var(--theme-text);color:var(--theme-bg);text-decoration:none;border-radius:var(--theme-radius);font-size:13px;font-weight:600;font-family:var(--theme-font);transition:opacity .12s}.login-button:hover{opacity:.85}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:14px;color:var(--theme-text-faint)}.page-loading{color:var(--theme-text-faint);font-size:13px;padding:24px 0}
