*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #3b82f6;--primary-hover: #2563eb;--secondary-color: #6b7280;--success-color: #10b981;--warning-color: #f59e0b;--danger-color: #ef4444;--bg-color: #f9fafb;--card-bg: #ffffff;--text-primary: #111827;--text-secondary: #6b7280;--border-color: #e5e7eb;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--radius: .5rem;--transition: all .2s ease}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-color);color:var(--text-primary);line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem}.btn{padding:.625rem 1.25rem;border-radius:var(--radius);border:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-outline{background-color:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-outline:hover{background-color:var(--bg-color)}.input{width:100%;padding:.625rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;transition:var(--transition)}.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-primary)}.error-text{color:var(--danger-color);font-size:.75rem;margin-top:.25rem}.spinner{border:3px solid var(--border-color);border-top:3px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:2rem auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.container{padding:0 .5rem}.card{padding:1rem}}
