:root{--color-bg: #f0edf7;--color-surface: #ffffff;--color-text: #2b2a4c;--color-text-muted: #7e7c97;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", Roboto, sans-serif;--radius-sm: 12px;--radius-md: 20px;--radius-lg: 32px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--shadow-sm: 0 4px 12px rgba(0, 0, 0, .05);--shadow-md: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .12);--transition-smooth: all .4s cubic-bezier(.16, 1, .3, 1);--transition-fast: all .2s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{margin:0;min-height:100vh;background-color:var(--color-bg);position:relative;overflow-x:hidden}.glass{background:#ffffffa6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}button{font-family:var(--font-family);cursor:pointer;border:none;background:none;transition:var(--transition-fast)}button:active{transform:scale(.96)}.page-enter-active,.page-leave-active{transition:var(--transition-smooth)}.page-enter-from{opacity:0;transform:translate(10px)}.page-leave-to{opacity:0;transform:translate(-10px)}.fade-in{animation:fadeIn .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.scale-in{animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-enter-active,.modal-leave-active{transition:var(--transition-smooth)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-card,.modal-enter-from .login-card,.modal-enter-from .error-alert{transform:translateY(30px) scale(.95)}.modal-leave-to .modal-card,.modal-leave-to .login-card,.modal-leave-to .error-alert{transform:translateY(20px) scale(.98)}
