:root{--color-bg: #f5f6f8;--color-surface: #ffffff;--color-surface-hover: #f9fafb;--color-border: #e2e5ea;--color-border-light: #eef0f3;--color-text: #1a1d23;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--color-danger: #dc2626;--color-danger-light: #fef2f2;--color-success: #059669;--color-success-light: #ecfdf5;--color-warning: #d97706;--color-warning-light: #fffbeb;--color-sidebar: #111827;--color-sidebar-text: #d1d5db;--color-sidebar-active: #1f2937;--color-sidebar-hover: #1f2937;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 1px 3px rgba(0, 0, 0, .07), 0 1px 2px rgba(0, 0, 0, .04);--font-family: "DM Sans", system-ui, -apple-system, sans-serif;--transition: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:15px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition);line-height:1.25}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover)}.btn-danger{background:var(--color-danger);color:#fff}.input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.875rem;transition:border-color var(--transition)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:4px}
