:root{--primary:#4f46e5;--primary-hover:#6366f1;--primary-pressed:#4338ca;--primary-light:#e0e7ff;--primary-text:#fff;--canvas:#faf9f6;--surface-1:#fff;--surface-2:#f5f4f0;--surface-3:#ebe9e3;--ink:#1a1a1a;--ink-secondary:#6b6b6b;--ink-tertiary:#9b9b9b;--success:#16a34a;--warning:#d97706;--error:#dc2626;--info:#0284c7;--border:#e5e5e5;--border-light:#f0f0f0;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem}[data-theme=dark]{--canvas:#0f0f11;--surface-1:#18181b;--surface-2:#1e1e22;--surface-3:#27272a;--ink:#f4f4f5;--ink-secondary:#a1a1aa;--ink-tertiary:#71717a;--border:#27272a;--border-light:#1e1e22;--primary-light:#312e81;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);color:var(--ink);background-color:var(--canvas);line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=dark] option{background:var(--surface-1);color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--ink-tertiary)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid #0000;font-weight:500;line-height:1.5;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-secondary{background:var(--surface-1);color:var(--ink);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-2)}.btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover{opacity:.9}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn-pill{border-radius:var(--radius-full)}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-1);color:var(--ink);font-size:var(--text-sm);outline:none;transition:border-color .15s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.badge{border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;padding:2px 8px;font-weight:500;display:inline-flex}.badge-success{color:#166534;background:#dcfce7}.badge-warning{color:#92400e;background:#fef3c7}.badge-error{color:#991b1b;background:#fee2e2}[data-theme=dark] .badge-success{color:#86efac;background:#052e16}[data-theme=dark] .badge-warning{color:#fcd34d;background:#422006}[data-theme=dark] .badge-error{color:#fca5a5;background:#450a0a}.table-container{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-light);font-size:var(--text-sm)}th{background:var(--surface-2);color:var(--ink-secondary);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface-2)}.code-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.7;overflow-x:auto}.pagination{align-items:center;gap:var(--space-2);margin-top:var(--space-6);justify-content:center;display:flex}.pagination button{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-1);color:var(--ink);font-size:var(--text-sm)}.pagination button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.modal-overlay{z-index:50;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-8);width:90%;max-width:480px;box-shadow:var(--shadow-lg)}.toast{top:var(--space-4);right:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);z-index:100;animation:.3s slideIn;position:fixed}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--error);color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}
