:root{--color-primary: #6c63ff;--color-primary-dark: #4b44cc;--color-primary-light: #ede9ff;--color-primary-hover: #d3c9ff;--color-white: #ffffff;--color-surface: #ffffff;--color-surface-alt: #f7f8fc;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-success: #10b981;--color-success-bg: #d1fae5;--color-success-dark: #065f46;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-warning-dark: #92400e;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .06);--shadow-card: 0 4px 12px rgba(0, 0, 0, .08);--shadow-card-hover: 0 8px 24px rgba(108, 99, 255, .2);--shadow-card-active: 0 10px 24px rgba(108, 99, 255, .35);--radius-card: 12px;--radius-btn: 8px;--font-sans: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:var(--font-sans);background:var(--color-surface-alt);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2}p{margin:0}button{cursor:pointer;font-family:var(--font-sans)}input{font-family:var(--font-sans)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-btn);border:none;font-size:.9375rem;font-weight:500;transition:background .2s,transform .1s,box-shadow .2s;text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn.btn-outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn.btn-outline:hover:not(:disabled){background:var(--color-primary-light)}.btn.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn.btn-ghost:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.btn.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn.btn-lg{padding:.75rem 1.75rem;font-size:1rem}.btn.btn-sm{padding:.375rem .875rem;font-size:.875rem}.btn.btn-full{width:100%}.form-field{display:flex;flex-direction:column;gap:.375rem}.form-field label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-field input{padding:.625rem .875rem;border:1.5px solid var(--color-border);border-radius:var(--radius-btn);font-size:.9375rem;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .2s,box-shadow .2s}.form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-field input.invalid{border-color:var(--color-danger)}.form-field .error-msg{font-size:.8125rem;color:var(--color-danger)}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.badge-success{background:var(--color-success-bg);color:var(--color-success-dark)}.badge.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-dark)}.badge.badge-info{background:var(--color-primary-light);color:var(--color-primary-dark)}
