:root{--bg: #f4f6f9;--surface: #ffffff;--border: #dfe4ea;--text: #1a2233;--text-muted: #5c6b7a;--primary: #1f4d6b;--primary-hover: #163a52;--accent: #b8722e;--success: #1f7a4d;--success-bg: #e6f4ec;--warning: #9a5b00;--warning-bg: #fdf1de;--danger: #a3312a;--danger-bg: #fbe9e7;--radius: 8px;--shadow: 0 1px 3px rgba(20, 30, 45, .08), 0 1px 2px rgba(20, 30, 45, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--primary)}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--primary);color:#eaf1f6;padding:24px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}.sidebar .brand{font-weight:700;font-size:16px;margin-bottom:24px;letter-spacing:-.01em}.sidebar .brand-sub{display:block;font-weight:400;font-size:12px;opacity:.75;margin-top:2px}.sidebar a{color:#d7e4ec;text-decoration:none;padding:9px 12px;border-radius:6px;font-size:14px}.sidebar a:hover{background:#ffffff14}.sidebar a.active{background:#ffffff29;color:#fff;font-weight:600}.sidebar .section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.6;margin:18px 0 4px 12px}.sidebar .user-box{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.15);font-size:13px}.sidebar .user-box .name{font-weight:600}.sidebar .user-box .role{opacity:.75;font-size:12px}.sidebar .logout-btn{margin-top:10px;background:none;border:1px solid rgba(255,255,255,.35);color:#eaf1f6;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer;width:100%}.sidebar .logout-btn:hover{background:#ffffff1a}main.content{padding:32px 40px;max-width:980px}h1{font-size:22px;margin:0 0 6px;letter-spacing:-.01em}h2{font-size:17px;margin:28px 0 12px}.page-subtitle{color:var(--text-muted);margin:0 0 28px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:13px;font-weight:600;color:var(--text)}.field .hint{font-size:12px;color:var(--text-muted)}.field .hint.text-bad{color:var(--danger);font-weight:600}input[type=text],input[type=email],input[type=password],input[type=url],textarea,select{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1f4d6b1f}textarea{resize:vertical;min-height:90px;font-family:inherit}button{font:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:none;border-radius:6px;padding:10px 18px;font-weight:600;font-size:14px}.btn:hover{background:var(--primary-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--primary);border:1px solid var(--border)}.btn.secondary:hover{border-color:var(--primary)}.btn.danger{background:var(--danger)}.btn.danger:hover{background:#832721}.error-banner{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(163,49,42,.25);border-radius:6px;padding:10px 14px;font-size:14px;margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:650}tr:last-child td{border-bottom:none}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.03em}.pill-received{background:#e4ecf3;color:var(--primary)}.pill-processing{background:var(--warning-bg);color:var(--warning)}.pill-completed{background:var(--success-bg);color:var(--success)}.pill-failed{background:var(--danger-bg);color:var(--danger)}.pill-active{background:var(--success-bg);color:var(--success)}.pill-disabled,.pill-revoked{background:#eceef1;color:var(--text-muted)}.pill-risk-high{background:var(--danger-bg);color:var(--danger)}.pill-risk-moderate{background:var(--warning-bg);color:var(--warning)}.violation-card{border:1px solid var(--border);border-left:4px solid var(--danger);border-radius:6px;padding:12px 14px;margin-bottom:10px;background:#fff}.violation-card.moderate{border-left-color:var(--warning)}.violation-card .fragment{font-style:italic;color:var(--text-muted);margin-bottom:6px;font-size:13.5px}.file-list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.file-list a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13.5px}.file-list a:hover{border-color:var(--primary)}.result-html{font-size:14.5px}.result-html p{margin:0 0 10px}.secret-box{background:#fffbea;border:1px solid #e8d68a;border-radius:6px;padding:14px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;word-break:break-all;margin:8px 0 16px}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:360px}.login-card h1{text-align:center;margin-bottom:4px}.login-card .page-subtitle{text-align:center}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.toolbar .filters{display:flex;gap:8px;flex-wrap:wrap}.toolbar select,.toolbar input{padding:7px 9px;font-size:13px}.muted{color:var(--text-muted)}td.query-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:13px}.empty-state{color:var(--text-muted);padding:24px 0;text-align:center}.diag .card{margin-bottom:16px;overflow-x:auto}.diag h3{font-size:15px;margin:0 0 12px}.diag .small{font-size:12px}.diag code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.diag .table-wrap{overflow-x:auto}.diag a.btn{text-decoration:none}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--text-muted)}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.text-good{color:var(--success);font-weight:600}.text-warn{color:var(--warning);font-weight:600}.text-bad{color:var(--danger);font-weight:600}.pill-tone-good{background:var(--success-bg);color:var(--success)}.pill-tone-warn{background:var(--warning-bg);color:var(--warning)}.pill-tone-bad{background:var(--danger-bg);color:var(--danger)}.pill-tone-muted{background:#eceef1;color:var(--text-muted)}.pill[class*=pill-tone-]{text-transform:none;font-size:12.5px;letter-spacing:0}.kv{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;margin:0;font-size:14px}.kv dt{color:var(--text-muted)}.kv dd{margin:0;word-break:break-word}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}.stat .v{font-size:22px;font-weight:650;letter-spacing:-.01em}.stat .k{font-size:12px;color:var(--text-muted);margin-top:2px}.toolbar .check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.toolbar .check input{padding:0;margin:0}.log-box{background:#131a24;color:#d6dde6;border-radius:var(--radius);padding:12px 14px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.55;max-height:520px;overflow:auto;margin:0;white-space:pre-wrap;word-break:break-word}.log-box .muted-on-dark{color:#8a97a8}.log-row{display:flex;gap:12px;align-items:baseline;white-space:normal}.log-ts{color:#8a97a8;flex:none}.log-level{flex:none;width:66px;font-weight:700}.log-INFO{color:#7fb4d6}.log-WARNING{color:#e3b25c}.log-ERROR{color:#ef7d72}.log-msg{min-width:0;overflow-wrap:anywhere}.scenario-hint{margin:6px 0 0;padding:8px 12px;font-size:13px;background:#eef3f7;border-left:3px solid var(--primary);border-radius:4px;color:var(--text)}.key-grid{display:grid;gap:16px}.key-card{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:#fff}.key-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.key-card-head h3{margin:0;font-size:15px}.key-card .small{font-size:12.5px;margin:6px 0 10px}.key-meta{margin:0 0 12px;font-size:13.5px}.key-meta code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;background:#f1f4f8;padding:1px 6px;border-radius:4px}.key-actions{display:flex;gap:8px;flex-wrap:wrap}.key-card input[type=password]{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.table-scroll{overflow-x:auto;margin:12px 0}.proxy-table{width:100%;border-collapse:collapse;font-size:13.5px}.proxy-table th,.proxy-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.proxy-table td:last-child{white-space:normal}.proxy-table code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.proxy-upload{margin-top:14px}.proxy-table td.proxy-actions{white-space:nowrap}.proxy-table td.proxy-actions .btn{padding:4px 10px;font-size:12.5px;margin-right:6px}.proxy-table input,.proxy-table select{padding:5px 8px;font-size:13px;min-width:0}.proxy-table input.proxy-port{width:78px}.proxy-table input.proxy-host{width:160px}.proxy-table input.proxy-login{width:120px}.proxy-table input.proxy-password{width:150px}.proxy-add{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.proxy-add .field{margin-bottom:0}.proxy-add .field.grow{flex:1 1 320px}.proxy-add input[type=text]{font-family:ui-monospace,Cascadia Code,Consolas,monospace}
