:root{--color-bg-page:#0f0f13;--color-bg-panel:#18181b;--color-bg-input:#27272a;--color-bg-elevated:#1e1e22;--color-bg-hover:#27272a;--color-bg-overlay:rgba(0,0,0,.6);--color-border:#27272a;--color-border-strong:#3f3f46;--color-border-focus:#6366f1;--color-text:#e4e4e7;--color-text-strong:#fff;--color-text-muted:#a1a1aa;--color-text-faint:#71717a;--color-text-disabled:#52525b;--color-brand:#6366f1;--color-brand-hover:#4f46e5;--color-brand-subtle:rgba(99,102,241,.15);--color-success:#22c55e;--color-success-subtle:rgba(34,197,94,.15);--color-warning:#eab308;--color-warning-subtle:rgba(234,179,8,.15);--color-danger:#ef4444;--color-danger-subtle:rgba(239,68,68,.15);--color-info:#3b82f6;--color-info-subtle:rgba(59,130,246,.15);--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"SF Mono",SFMono-Regular,ui-monospace,Menlo,monospace;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--leading-tight:1.25;--leading-normal:1.5;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 8px 24px rgba(0,0,0,.5);--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.25s ease;--sidebar-width:240px;--header-height:56px;--content-padding-x:var(--space-8);--content-padding-y:var(--space-6);--modal-width-sm:400px;--modal-width-md:520px;--modal-width-lg:640px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{background:var(--color-bg-page);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}a{color:var(--color-brand);text-decoration:none}a:hover{color:var(--color-brand-hover)}code{background:var(--color-bg-input);border-radius:var(--radius-sm);color:var(--color-text-faint);font-family:var(--font-mono);font-size:var(--text-xs);padding:2px 6px}.text-strong{color:var(--color-text-strong)}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.text-brand{color:var(--color-brand)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.flex,.flex-col{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-6)}.page-title{color:var(--color-text-strong);font-size:var(--text-2xl);font-weight:var(--weight-bold)}.page-subtitle{color:var(--color-text-faint);font-size:var(--text-sm);margin-top:var(--space-1)}.section-title{color:var(--color-text-strong);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.section-desc{font-size:var(--text-sm);margin-bottom:var(--space-4)}.field-label,.section-desc{color:var(--color-text-faint)}.field-label{display:block;font-size:var(--text-xs);letter-spacing:.5px;margin-bottom:var(--space-1);text-transform:uppercase}.field-label,.field-required{font-weight:var(--weight-semibold)}.field-required{color:#ef4444;margin-left:2px}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);gap:var(--space-2);justify-content:center;line-height:1;padding:var(--space-2) var(--space-4);transition:all var(--transition-base);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover)}.btn-ghost{background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-icon{align-items:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-faint);cursor:pointer;display:inline-flex;justify-content:center;padding:var(--space-1) var(--space-2);transition:all var(--transition-base)}.btn-icon:hover{background:var(--color-bg-hover);color:var(--color-text)}.btn-sm{font-size:var(--text-sm);padding:6px var(--space-3)}.input,.select,.textarea{background:var(--color-bg-input);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:var(--text-base);outline:none;padding:var(--space-2) var(--space-3);transition:border-color var(--transition-base);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-border-focus)}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--color-text-disabled)}.input::placeholder,.textarea::placeholder{color:var(--color-text-disabled)}.select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.textarea{min-height:100px;resize:vertical}.card{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color var(--transition-base)}.card:hover{border-color:var(--color-border-strong)}.card-title{color:var(--color-text-strong);font-size:var(--text-md);font-weight:var(--weight-semibold)}.table{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.table-header{color:var(--color-text-faint);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.5px;text-transform:uppercase}.table-header,.table-row{border-bottom:1px solid var(--color-border);display:grid;padding:var(--space-3)}.table-row{align-items:center;font-size:var(--text-sm);transition:background var(--transition-base)}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--color-bg-input)}.badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.3px;padding:2px var(--space-2);text-transform:uppercase}.badge-success{background:var(--color-success-subtle);color:var(--color-success)}.badge-warning{background:var(--color-warning-subtle);color:var(--color-warning)}.badge-danger{background:var(--color-danger-subtle);color:var(--color-danger)}.badge-neutral{background:#71717a26;color:var(--color-text-faint)}.badge-brand{background:var(--color-brand-subtle);color:var(--color-brand)}.modal-overlay{align-items:center;background:var(--color-bg-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:85vh;overflow-y:auto;padding:var(--space-6);width:var(--modal-width-sm)}.modal-md{width:var(--modal-width-md)}.modal-lg{width:var(--modal-width-lg)}.modal-title{color:var(--color-text-strong);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}.modal-footer{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-6)}.empty-state{color:var(--color-text-faint);font-size:15px;padding:var(--space-16) 0;text-align:center}.empty-state-sm{color:var(--color-border-strong);font-size:var(--text-sm);padding:var(--space-6) 0;text-align:center}.nav-item{align-items:center;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-3);padding:var(--space-3) var(--space-3);text-decoration:none;transition:all var(--transition-base)}.nav-item:hover{background:var(--color-bg-hover);color:var(--color-text)}.nav-item.active{background:var(--color-brand);color:#fff}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-faint)}
