:root{--color-blue: #007AFF;--color-blue-dark: #0062CC;--color-blue-light: #E5F1FF;--color-indigo: #5856D6;--color-purple: #AF52DE;--color-pink: #FF2D55;--color-red: #FF3B30;--color-orange: #FF9500;--color-yellow: #FFCC00;--color-green: #34C759;--color-teal: #00C7BE;--color-cyan: #32ADE6;--color-gray-50: #F9FAFB;--color-gray-100: #F5F5F7;--color-gray-200: #E5E5EA;--color-gray-300: #D4D4D8;--color-gray-400: #A1A1AA;--color-gray-500: #8E8E93;--color-gray-600: #636366;--color-gray-700: #48484A;--color-gray-800: #3A3A3C;--color-gray-900: #1D1D1F;--bg-primary: #F5F5F7;--bg-card: #FFFFFF;--bg-hover: #F0F0F2;--text-primary: #1D1D1F;--text-secondary: #8E8E93;--text-tertiary: #AEAEB2;--border-light: rgba(0, 0, 0, .05);--border-default: #E5E5EA;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-hover: 0 10px 25px rgba(0, 0, 0, .06), 0 4px 10px rgba(0, 0, 0, .02);--shadow-glass: 0 4px 30px rgba(0, 0, 0, .1);--shadow-modal: 0 25px 50px -12px rgba(0, 0, 0, .25);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*{box-sizing:border-box}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-primary);color:var(--text-primary);margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}*{scrollbar-width:thin;scrollbar-color:var(--color-gray-300) transparent}.glass{background:#ffffffbf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light)}.glass-card{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4)}.animate-enter{animation:enter .4s cubic-bezier(.16,1,.3,1)}@keyframes enter{0%{opacity:0;transform:scale(.98) translateY(5px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-up{animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slideDown .3s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-scale-in{animation:scaleIn .2s cubic-bezier(.16,1,.3,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-pulse-slow{animation:pulseSlow 2s infinite}@keyframes pulseSlow{0%,to{opacity:1}50%{opacity:.7}}.shadow-soft{box-shadow:var(--shadow-soft)}.shadow-hover{box-shadow:var(--shadow-hover)}.shadow-glass{box-shadow:var(--shadow-glass)}.shadow-modal{box-shadow:var(--shadow-modal)}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--color-gray-200);border-radius:4px}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}:focus-visible{outline:2px solid var(--color-blue);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background-color:#007aff26;color:inherit}input,select,textarea{font-family:inherit}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--bg-card) inset;box-shadow:0 0 0 1000px var(--bg-card) inset;-webkit-text-fill-color:var(--text-primary)}.animate-progress{animation:progress linear forwards;transform-origin:left}@keyframes progress{0%{width:100%}to{width:0%}}.animate-toast-in{animation:toastIn .4s cubic-bezier(.16,1,.3,1)}@keyframes toastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}
