:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1a1d23;--text-muted: #6b7280;--primary: #3b5bfd;--primary-hover: #2c47db;--danger: #e0393e;--danger-hover: #c62f34;--ok-bg: #e3f6e9;--ok-text: #1a7f37;--warn-bg: #fdf1d6;--warn-text: #9a6700;--err-bg: #fbe2e2;--err-text: #b3261e;--p0-bg: #fbe2e2;--p0-text: #b3261e;--p1-bg: #fdf1d6;--p1-text: #9a6700;--p2-bg: #e7ecf5;--p2-text: #3b5bfd;--code-bg: #f1f2f5;--shadow: 0 1px 2px rgba(16, 24, 40, .06);--radius: 8px}@media (prefers-color-scheme: dark){:root{--bg: #14161a;--surface: #1c1f26;--border: #2c313a;--text: #e7e9ec;--text-muted: #9aa1ac;--primary: #5b7cfa;--primary-hover: #7691fb;--danger: #f0575c;--danger-hover: #f47478;--ok-bg: #123420;--ok-text: #4ade80;--warn-bg: #3a2e0d;--warn-text: #f2c14e;--err-bg: #3a1717;--err-text: #f4807f;--p0-bg: #3a1717;--p0-text: #f4807f;--p1-bg: #3a2e0d;--p1-text: #f2c14e;--p2-bg: #1c2440;--p2-text: #8ea2fb;--code-bg: #10131a;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.container{max-width:1100px;margin:0 auto;padding:24px 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;margin-bottom:16px;overflow-x:auto}.row{display:flex;align-items:center;gap:12px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.input,.select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit}.input:focus,.select:focus{outline:2px solid var(--primary);outline-offset:-1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:8px 14px;font-size:14px;font-weight:500;cursor:pointer}.btn:hover{border-color:var(--text-muted)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn-sm{padding:4px 10px;font-size:12px}.muted{color:var(--text-muted)}.mono,.code-block{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.code-block{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12.5px;overflow-wrap:anywhere;overflow-x:auto;white-space:pre-wrap}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.table th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em}.table tbody tr:hover{background:var(--code-bg)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;background:var(--code-bg);color:var(--text-muted)}.badge-p0{background:var(--p0-bg);color:var(--p0-text)}.badge-p1{background:var(--p1-bg);color:var(--p1-text)}.badge-p2{background:var(--p2-bg);color:var(--p2-text)}.badge-ok{background:var(--ok-bg);color:var(--ok-text)}.badge-warn{background:var(--warn-bg);color:var(--warn-text)}.badge-err{background:var(--err-bg);color:var(--err-text)}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{padding:32px 16px;text-align:center;color:var(--text-muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{padding:8px 14px;font-size:13.5px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;background:none;border-left:none;border-right:none;border-top:none}.tab-active{color:var(--primary);border-bottom-color:var(--primary)}.banner{padding:10px 14px;border-radius:6px;font-size:13.5px;margin-bottom:14px}.banner-error{background:var(--err-bg);color:var(--err-text)}.banner-success{background:var(--ok-bg);color:var(--ok-text)}
