:root{--bg: #f5f6f8;--card: #ffffff;--text: #1c2330;--muted: #6b7280;--border: #e3e6ea;--primary: #2563eb;--primary-hover: #1d4ed8;--red: #dc2626;--green: #16a34a}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}h1{font-size:24px;margin:0 0 16px}h2{font-size:17px;margin:0 0 12px}a{color:var(--primary);text-decoration:none}.layout{min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700;color:var(--text);font-size:16px}.topbar-right{display:flex;align-items:center;gap:12px}.content{max-width:900px;margin:0 auto;padding:24px 16px 64px}.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.login-card{width:340px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0;font-size:20px;text-align:center}.login-card p{margin:0;text-align:center}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field span{font-size:13px;font-weight:600;color:var(--muted)}input,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}textarea{resize:vertical}.btn{font:inherit;padding:8px 16px;border-radius:8px;border:1px solid transparent;cursor:pointer;background:transparent}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{color:var(--primary)}.btn-ghost:hover:not(:disabled){background:#eef2ff}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.error-box{background:#fef2f2;border:1px solid #fecaca;color:var(--red);border-radius:8px;padding:10px 14px;margin-bottom:16px}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.table th,.table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc}.table tr:last-child td{border-bottom:none}.chat-link{font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#eef2ff;color:var(--primary)}.badge-red{background:#fef2f2;color:var(--red)}.badge-green{background:#f0fdf4;color:var(--green)}.badge-sev-low{background:#fefce8;color:#a16207}.badge-sev-medium{background:#fff7ed;color:#c2410c}.badge-sev-high{background:#fef2f2;color:var(--red)}.row{display:flex;align-items:center;gap:12px}.space-between{justify-content:space-between}.breadcrumbs{margin-bottom:12px}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.chat-header h1{margin:0}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{display:none}.toggle-track{width:40px;height:22px;border-radius:999px;background:#cbd5e1;position:relative;transition:background .15s;flex-shrink:0}.toggle input:checked+.toggle-track{background:var(--green)}.toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.toggle input:checked+.toggle-track .toggle-thumb{left:20px}.toggle-disabled{opacity:.5;cursor:default}.toggle-label{font-size:14px}.violations{display:flex;flex-direction:column;gap:8px}.violation{border:1px solid var(--border);border-radius:8px;padding:8px 12px}.violation summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.violation summary::-webkit-details-marker{display:none}.violation-summary{flex:1}.violation-body{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.notif-list{margin:6px 0 0;padding-left:18px}.notif-error{font-size:13px}
