:root{--bg: #0d1117;--bg2: #161b22;--bg3: #21262d;--border: #30363d;--text: #c9d1d9;--text2: #8b949e;--accent: #4a9eff;--green: #3fb950;--red: #f85149;--yellow: #d29922;--orange: #db6d28;--purple: #bc8cff}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,monospace;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.app{display:flex;flex-direction:column;min-height:100vh}.header{background:var(--bg2);border-bottom:1px solid var(--border);padding:0 20px;height:52px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:100}.header-logo{font-size:18px;font-weight:700;color:var(--text)}.header-logo span{color:var(--accent)}.header-logo small{font-size:11px;color:var(--text2);margin-left:6px;font-weight:400}.header-gap{flex:1}.header-link{color:var(--text2);text-decoration:none;font-size:13px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);cursor:pointer;transition:color .15s,border-color .15s}.header-link:hover{color:var(--text);border-color:var(--accent)}.auth-row{display:flex;align-items:center;gap:8px}.auth-avatar{width:24px;height:24px;border-radius:50%;border:1px solid var(--border)}.auth-name{font-size:13px;color:var(--text2)}.layout{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;min-width:260px;border-right:1px solid var(--border);overflow-y:auto;background:var(--bg2)}.main-panel{flex:1;overflow-y:auto;padding:24px}.filters{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.filters select,.filters input{background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:5px 8px;width:100%}.filters select:focus,.filters input:focus{outline:none;border-color:var(--accent)}.stmt-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.stmt-item:hover{background:var(--bg3)}.stmt-item.selected{background:var(--bg3);border-left:3px solid var(--accent)}.stmt-cve{font-weight:600;font-size:13px;color:var(--text)}.stmt-image{font-size:11px;color:var(--text2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stmt-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge.draft{background:#333;color:#888}.badge.approved{background:#1f3a5f;color:#4a9eff}.badge.rejected{background:#3a1a1a;color:#f85149}.badge.publishing{background:#3a2f00;color:#d29922}.badge.published{background:#1a3a1a;color:#3fb950}.badge.failed{background:#3a1a1a;color:#f85149}.detail-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.detail-title{font-size:20px;font-weight:700}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.section{margin-bottom:24px}.section-title{font-size:13px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.info-grid{display:grid;grid-template-columns:160px 1fr;gap:6px 16px}.info-label{color:var(--text2);font-size:13px}.info-value{color:var(--text);font-size:13px;word-break:break-all}.btn{padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--text);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:#2d333b;border-color:var(--text2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#3d8fe0}.btn.danger{background:#3a1a1a;border-color:var(--red);color:var(--red)}.btn.danger:hover{background:#4a1a1a}.btn.success{background:#1a3a1a;border-color:var(--green);color:var(--green)}.btn.success:hover{background:#1a4a1a}.field-label{font-size:12px;color:var(--text2);margin-bottom:4px}.field-textarea{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:8px;resize:vertical;min-height:80px;font-family:inherit}.field-textarea:focus{outline:none;border-color:var(--accent)}.field-input{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:6px 8px}.field-input:focus{outline:none;border-color:var(--accent)}.field-select{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:6px 8px}.job-log{display:flex;flex-direction:column;gap:8px}.job-row{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.job-row-header{display:flex;align-items:center;gap:10px}.job-target{font-weight:600;font-size:12px;text-transform:uppercase}.job-time{font-size:11px;color:var(--text2);margin-left:auto}.job-error{font-size:12px;color:var(--red);margin-top:6px;font-family:monospace;word-break:break-all}.job-path{font-size:12px;color:var(--text2);margin-top:4px;font-family:monospace}.code-block{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px;font-family:SF Mono,Fira Code,monospace;font-size:12px;overflow-x:auto;white-space:pre;color:var(--text)}.empty{text-align:center;padding:60px 20px;color:var(--text2)}.empty-icon{font-size:48px;margin-bottom:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px;width:480px;max-width:95vw;display:flex;flex-direction:column;gap:16px}.modal-title{font-size:16px;font-weight:700}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.stats-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 20px;flex:1;min-width:120px}.stat-value{font-size:28px;font-weight:700}.stat-label{font-size:12px;color:var(--text2);margin-top:2px}.target-row{display:flex;gap:12px;align-items:center}.target-row label{display:flex;gap:6px;align-items:center;cursor:pointer;font-size:13px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
