:root{--background-primary: #ffffff;--background-secondary: #f2f2f7;--background-tertiary: #e5e5ea;--text-primary: #000000;--text-secondary: #8e8e93;--accent-color: #2DCA73;--accent-color-rgb: 45, 202, 115;--border-color: rgba(0, 0, 0, .1);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--card-shadow: 0 10px 30px rgba(0, 0, 0, .05);--status-under: #3498db;--status-perfect: #2ecc71;--status-over: #e74c3c}@media (prefers-color-scheme: dark){html:not([data-theme=light]){--background-primary: #000000;--background-secondary: #1c1c1e;--background-tertiary: #2c2c2e;--text-primary: #ffffff;--text-secondary: #aeaeb2;--accent-color: #2DCA73;--accent-color-rgb: 45, 202, 115;--border-color: rgba(255, 255, 255, .15);--glass-bg: rgba(28, 28, 30, .7);--glass-border: rgba(255, 255, 255, .1);--card-shadow: 0 15px 35px rgba(0, 0, 0, .4)}}html[data-theme=dark]{--background-primary: #000000;--background-secondary: #1c1c1e;--background-tertiary: #2c2c2e;--text-primary: #ffffff;--text-secondary: #aeaeb2;--accent-color: #2DCA73;--accent-color-rgb: 45, 202, 115;--border-color: rgba(255, 255, 255, .15);--glass-bg: rgba(28, 28, 30, .7);--glass-border: rgba(255, 255, 255, .1);--card-shadow: 0 15px 35px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Icons,Helvetica Neue,Helvetica,Arial,sans-serif;background-color:var(--background-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;overflow-x:hidden}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--card-shadow);transition:background .3s ease,border-color .3s ease}@keyframes glow-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.shimmer-under{background:linear-gradient(-45deg,#3498db,#5dade2,#3498db);background-size:200% 200%;animation:glow-flow 3s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.shimmer-perfect{background:linear-gradient(-45deg,#2ecc71,#58d68d,#2ecc71);background-size:200% 200%;animation:glow-flow 2s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.shimmer-over{background:linear-gradient(-45deg,#e74c3c,#f1948a,#e74c3c);background-size:200% 200%;animation:glow-flow 1.5s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.pulse-glow-under{animation:pulse-under 3s infinite}.pulse-glow-perfect{animation:pulse-perfect 2s infinite}.pulse-glow-over{animation:pulse-over 1s infinite}@keyframes pulse-under{0%,to{box-shadow:0 0 10px #3498db33}50%{box-shadow:0 0 20px #3498db66}}@keyframes pulse-perfect{0%,to{box-shadow:0 0 15px #2ecc714d}50%{box-shadow:0 0 30px #2ecc7199}}@keyframes pulse-over{0%,to{box-shadow:0 0 20px #e74c3c66}50%{box-shadow:0 0 40px #e74c3cb3}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer-flow{0%{transform:translate(-100%)}to{transform:translate(100%)}}button{transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .2s ease}button:active{transform:scale(.96);opacity:.8}input,select{background-color:var(--background-tertiary);color:var(--text-primary);border:1px solid var(--border-color);outline:none}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-sm{max-width:24rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.relative{position:relative}.absolute{position:absolute}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.text-secondary{color:var(--text-secondary)}.text-accent-color{color:var(--accent-color)}.bg-accent-color\/10{background-color:rgba(var(--accent-color-rgb),.1)}.bg-white\/50{background-color:#ffffff0d}.animate-in{animation-duration:.5s;animation-fill-mode:both}.fade-in{animation-name:fade-in}.zoom-in{animation-name:zoom-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmerText{0%{background-position:-200% center}to{background-position:200% center}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}
