:root{--color-primary: #2e7d32;--color-primary-light: #4caf50;--color-primary-dark: #1b5e20;--color-secondary: #8d6e63;--color-accent: #9ccc65;--color-background: #f5f5f5;--color-surface: #ffffff;--color-text-primary: #212121;--color-text-secondary: #757575;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .04);--shadow-md: 0 2px 16px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 24px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06)}*{margin:0;padding:0;box-sizing:border-box}html{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}#root{min-height:100vh;min-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}button,a,[role=button]{transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);-webkit-tap-highlight-color:transparent}button:active,a:active,[role=button]:active{transform:scale(.96)}*{-webkit-overflow-scrolling:touch}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp var(--transition-normal) ease-out}.haptic-light{animation:hapticLight .1s ease-out}.haptic-medium{animation:hapticMedium .15s ease-out}.haptic-heavy{animation:hapticHeavy .2s ease-out}@keyframes hapticLight{0%,to{transform:scale(1)}50%{transform:scale(.98)}}@keyframes hapticMedium{0%,to{transform:scale(1)}50%{transform:scale(.96)}}@keyframes hapticHeavy{0%,to{transform:scale(1)}50%{transform:scale(.94)}}
