:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: #e0e7ff;--color-success: #10b981;--color-success-light: #d1fae5;--color-danger: #f43f5e;--color-danger-light: #ffe4e6;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-bg: #f8fafc;--color-card: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-text: #1e293b;--color-text-muted: #64748b;--color-text-light: #94a3b8;--color-sidebar: #0f172a;--color-sidebar-hover: #1e293b;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--overlay-backdrop: rgba(15, 23, 42, .6);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--color-bg);color:var(--color-text)}.card{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-hoverable{transition:box-shadow var(--transition-normal),transform var(--transition-normal)}.card-hoverable:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.page-header{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}@media(min-width:768px){.page-header{flex-direction:row;justify-content:space-between;align-items:center}}.page-title{font-size:1.875rem;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:var(--space-3)}.page-description{color:var(--color-text-muted);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:500;border-radius:var(--radius-lg);transition:all var(--transition-fast);cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg)}.btn-ghost{background-color:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background-color:var(--color-border-light);color:var(--color-text)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#e11d48}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.875rem}.btn-md{padding:var(--space-2) var(--space-4);font-size:.875rem}.btn-lg{padding:var(--space-3) var(--space-6);font-size:1rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background-color:var(--color-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);max-height:90vh;overflow:hidden;animation:pop-in .2s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--color-border-light)}.modal-title{font-size:1.25rem;font-weight:700;color:var(--color-text)}.modal-body{overflow-y:auto;padding:var(--space-6)}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text);margin-bottom:var(--space-1)}.form-input{width:100%;padding:var(--space-3);background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.stat-card{padding:var(--space-6)}.stat-label{font-size:.875rem;color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-value{font-size:1.5rem;font-weight:700;font-family:JetBrains Mono,monospace;color:var(--color-text)}.table-container{overflow-x:auto}.table{width:100%;text-align:left;font-size:.875rem}.table thead{background-color:var(--color-bg);color:var(--color-text-muted);font-weight:500;border-bottom:1px solid var(--color-border)}.table th,.table td{padding:var(--space-4)}.table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.table tbody tr:hover{background-color:var(--color-bg)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:.625rem;font-weight:700;border-radius:var(--radius-full);text-transform:uppercase}.badge-success{background-color:var(--color-success-light);color:#047857}.badge-danger{background-color:var(--color-danger-light);color:#be123c}.badge-warning{background-color:var(--color-warning-light);color:#b45309}.badge-info{background-color:var(--color-info-light);color:#1d4ed8}.badge-neutral{background-color:var(--color-border-light);color:var(--color-text-muted)}.icon-btn{padding:var(--space-2);border-radius:var(--radius-full);color:var(--color-text-light);transition:all var(--transition-fast)}.icon-btn:hover{background-color:var(--color-border-light);color:var(--color-text)}.divider{height:1px;background-color:var(--color-border-light);margin:var(--space-4) 0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in var(--transition-slow) forwards}.animate-pop-in{animation:pop-in var(--transition-normal) ease-out forwards}.animate-slide-up{animation:slide-up var(--transition-slow) ease-out forwards}
