@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#2563eb;--primary-hover:#1d4ed8;--bg-main:#f8fafc;--bg-card:#fff;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--success:#10b981;--error:#ef4444;--radius:12px;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.5}.container{max-width:800px;margin:0 auto;padding:2rem 1rem}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:2rem;padding:2rem;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-lg)}button{cursor:pointer;font-family:inherit;transition:all .2s}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);border:none;padding:.75rem 1.5rem;font-weight:600}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-outline{border:2px solid var(--primary);color:var(--primary);border-radius:var(--radius);background:0 0;padding:.75rem 1.5rem;font-weight:600}.btn-outline:hover{background:#2563eb0d}h1,h2,h3{margin-bottom:1rem;font-weight:700}.text-muted{color:var(--text-muted)}.progress-bar{background:var(--border);border-radius:4px;width:100%;height:8px;margin-bottom:2rem;overflow:hidden}.progress-fill{background:var(--primary);height:100%;transition:width .3s ease-out}.fade-in{animation:.4s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.05);box-shadow:0 0 0 10px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}.pulse{animation:1.5s infinite pulse}@media (width<=640px){.container{padding:1rem}.card{padding:1.5rem}}
