:root{--color-primary:#05731f;--color-primary-light:#458f56;--color-primary-dark:#054414;--color-accent:#c4a35a;--color-accent-light:#d4b86a;--color-accent-dark:#a88a3d;--color-success:#2f855a;--color-error:#c53030;--color-warning:#c05621;--color-bg:#fff;--color-bg-card:#fff;--color-bg-overlay:rgba(26,54,93,.03);--color-text:#2d3748;--color-text-light:#4a5568;--color-text-muted:#718096;--color-border:#e2ddd5;--color-border-light:#eee9e2;--font-display:"Crimson Pro",Georgia,serif;--font-body:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--shadow-sm:0 1px 2px rgba(26,54,93,.05);--shadow-md:0 4px 12px rgba(26,54,93,.08);--shadow-lg:0 12px 32px rgba(26,54,93,.12);--shadow-xl:0 20px 48px rgba(26,54,93,.16);--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms ease;--app-header-height:60px}.tightHeaderSpacing{margin-top:8px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:none}.appShell{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.appContent{flex:1 1}.appHeader{position:-webkit-sticky;position:sticky;top:0;z-index:50;height:var(--app-header-height);background:var(--color-primary);color:#fff;border-bottom:1px solid hsla(0,0%,100%,.12);box-shadow:0 8px 24px rgba(15,36,66,.18)}.appHeader,.appHeaderInner{display:flex;align-items:center}.appHeaderInner{width:100%;max-width:640px;margin:0 auto;justify-content:center;padding:0 var(--space-lg);position:relative}.appHeaderLogo{display:flex;align-items:center;gap:var(--space-sm)}.appHeaderLogoText{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:#fff;letter-spacing:.01em}.appHeaderCenter{display:flex;align-items:center;gap:var(--space-md);width:100%;justify-content:flex-start}.appHeaderEnvBadge{font-size:.75rem;font-weight:600;padding:var(--space-xs) var(--space-sm);background:hsla(0,0%,100%,.14);color:#fff;border:1px solid hsla(0,0%,100%,.22);border-radius:var(--radius-sm);letter-spacing:.05em;display:inline-flex;align-items:center;position:absolute;right:0;transform:translateX(0)}@media (max-width:640px){.appHeaderCenter,.appHeaderInner{justify-content:center}.appHeaderCenter{flex-direction:column;gap:6px}}.appHeaderInner .appHeaderEnvBadge{right:var(--space-lg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.3;color:var(--color-primary-dark)}h1{font-size:2.5rem;letter-spacing:-.02em}h2{font-size:1.75rem}h3{font-size:1.25rem}p{margin-bottom:var(--space-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left var(--transition-slow)}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);color:#fff;box-shadow:var(--shadow-md),0 2px 8px rgba(26,54,93,.2)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 4px 16px rgba(26,54,93,.25)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-bg-card);color:var(--color-primary);border:2px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-primary);background:var(--color-bg)}.btn-accent{background:linear-gradient(135deg,var(--color-accent) 0,var(--color-accent-light) 100%);color:var(--color-primary-dark);box-shadow:var(--shadow-md),0 2px 8px rgba(196,163,90,.3)}.btn-accent:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 4px 16px rgba(196,163,90,.35)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn:disabled:before{display:none}.card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-2xl)}.card-elevated{box-shadow:var(--shadow-lg)}input,select,textarea{font-family:var(--font-body);font-size:1rem;padding:var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-card);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,54,93,.1)}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-light{color:var(--color-text-light)}.text-accent{color:var(--color-accent-dark)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mt-2xl{margin-top:var(--space-2xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.mb-2xl{margin-bottom:var(--space-2xl)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease forwards}.animate-slide-up{animation:slideUp var(--transition-slow) ease forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}@media (max-width:768px){html{font-size:15px}h1{font-size:2rem}.card{padding:var(--space-xl)}}@media (max-width:480px){html{font-size:14px}h1{font-size:1.75rem}.btn{padding:var(--space-md) var(--space-lg)}}