:root{--color-primary:#1b4332;--color-primary-lighter:#2d6a4f;--color-accent:#d4a843;--color-accent-lighter:#e8c572;--color-text:#1a1a1a;--color-text-secondary:#5a6b5e;--color-text-disabled:#9ca3af;--color-bg:#f8f6f0;--color-bg-white:#fff;--color-bg-hover:#f0ede0;--color-border:#e5e5e5;--color-border-light:#f0f0f0;--color-success:#2d6a4f;--color-warning:#e8871e;--color-danger:#c1292e;--color-info:#3b82f6;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-xxl:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-card:0 1px 3px #0000000d;--shadow-modal:0 8px 32px #00000026;--font-app:"DM Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"Courier New", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-app);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-size:14px;line-height:1.6}html,body{max-width:100%;overflow-x:hidden}button{font-family:var(--font-app)}input,textarea,select{font-family:var(--font-app);font-size:14px}@media (width<=768px){input,textarea,select{font-size:16px}}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-secondary{color:var(--color-text-secondary)}.bg-white{background-color:var(--color-bg-white)}.bg-light{background-color:var(--color-bg)}.card{background:var(--color-bg-white);border-radius:var(--radius-xl);padding:var(--space-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.safe-top{padding-top:env(safe-area-inset-top,0px)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes vh-fade-in{0%{opacity:0}to{opacity:1}}@keyframes vh-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes vh-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes vh-spin{to{transform:rotate(360deg)}}.vh-overlay{animation:.2s ease-out vh-fade-in}.vh-modal{animation:.2s ease-out vh-scale-in}.vh-sheet{animation:.26s cubic-bezier(.32,.72,0,1) vh-slide-up}.vh-spin{animation:.8s linear infinite vh-spin}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body.vh-scroll-lock{overflow:hidden}
