:root{--background: #0f172a;--foreground: #f8fafc;--primary: #38bdf8;--primary-hover: #0ea5e9;--secondary: #1e293b;--accent: #818cf8;--card-bg: rgba(30, 41, 59, .7);--border: rgba(255, 255, 255, .1);--glass-bg: rgba(15, 23, 42, .8);--glass-border: rgba(255, 255, 255, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Outfit,Inter,-apple-system,sans-serif;background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}.glass{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:1rem}.container{max-width:800px;margin:0 auto;padding:1rem;width:100%}.header{padding:2rem 1rem;text-align:center;position:sticky;top:0;z-index:10}.header h1{font-size:2.5rem;letter-spacing:-.05em;background:linear-gradient(to right,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}button{cursor:pointer;border:none;border-radius:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background-color:var(--primary);color:var(--background)}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #38bdf84d}.btn-secondary{background-color:var(--secondary);color:var(--foreground)}.btn-secondary:hover{background-color:#334155}.card{background:var(--card-bg);padding:1.5rem;border-radius:1rem;border:1px solid var(--border);transition:transform .2s ease,border-color .2s ease;margin-bottom:1rem}.card:hover{transform:translateY(-2px);border-color:var(--primary)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.input{width:100%;padding:.75rem 1rem;background:var(--secondary);border:1px solid var(--border);border-radius:.5rem;color:var(--foreground);font-size:1rem;outline:none;transition:border-color .2s ease}.input:focus{border-color:var(--primary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-content{width:100%;max-width:600px;max-height:90vh;overflow-y:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade{animation:fadeIn .4s ease forwards}
