*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s,color .3s}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border-color:#cbd5e1;--shadow:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 20px 25px -5px rgba(0,0,0,.1)}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border-color:#475569;--shadow:0 4px 6px -1px rgba(0,0,0,.3);--shadow-lg:0 20px 25px -5px rgba(0,0,0,.3)}.App{background-color:var(--bg-primary);min-height:100vh;color:var(--text-primary);transition:background-color .3s,color .3s}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translate(0,0)}40%,43%{transform:translateY(-30px)}70%{transform:translateY(-15px)}90%{transform:translateY(-4px)}}.fade-in{animation:.6s ease-out fadeIn}.slide-in{animation:.6s ease-out slideIn}.pulse{animation:2s infinite pulse}.spin{animation:1s linear infinite spin}.bounce{animation:1s infinite bounce}.btn{cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn:hover:before{left:100%}.btn-primary{color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.btn-primary:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.btn-ghost{color:var(--text-primary);border:1px solid var(--border-color);background:0 0}.btn-ghost:hover{background:var(--bg-secondary)}.input{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:.5rem;padding:.75rem 1rem;font-size:1rem;transition:all .2s}.input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.input::placeholder{color:var(--text-muted)}.card{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:1rem;padding:1.5rem;transition:all .3s}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(0,0,0,.5);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg-primary);max-width:90vw;max-height:90vh;box-shadow:var(--shadow-lg);border-radius:1rem;padding:2rem;animation:.3s fadeIn;overflow-y:auto}.progress-bar{background:var(--bg-tertiary);border-radius:.25rem;width:100%;height:.5rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:.25rem;height:100%;transition:width .3s}.spinner{border:3px solid var(--bg-tertiary);border-top:3px solid #3b82f6;border-radius:50%;width:2rem;height:2rem;animation:1s linear infinite spin}@media (max-width:768px){.btn{padding:.625rem 1.25rem;font-size:.875rem}.card{padding:1rem}.modal{margin:1rem;padding:1.5rem}}@media (max-width:480px){.btn{padding:.5rem 1rem;font-size:.8rem}.card{padding:.75rem}.modal{margin:.5rem;padding:1rem}}
