:root{--primary:#2b7a3b;--primary-light:#e6f2e8;--primary-dark:#1e5629;--background:#fdfaf3;--surface:#fff;--surface-elevated:#fff;--text:#1a2e20;--text-muted:#5c7562;--text-light:#94a3b8;--border:#e2e8f0;--border-soft:#1a2e2014;--success:#10b981;--warning:#f2bd27;--error:#ef4444;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 8px 30px #1a2e2014;--shadow-lg:0 12px 40px #1a2e201f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tg-viewport-height:100dvh}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0;padding:0}body{background-color:var(--background);color:var(--text);height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Outfit,Inter,sans-serif;line-height:1.5;overflow:hidden}#root{flex-direction:column;height:100%;display:flex}.scrollbar-none::-webkit-scrollbar{display:none}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.heading-l{letter-spacing:-.03em;text-align:center;font-size:28px;font-weight:800;line-height:1.2}.heading-m{letter-spacing:-.02em;text-align:center;font-size:22px;font-weight:700}.heading-s{letter-spacing:-.01em;text-align:center;font-size:17px;font-weight:700}.text-m{font-size:15px;font-weight:600}.text-s{color:var(--text-muted);font-size:14px;font-weight:500}.text-xs{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.app-container{padding-bottom:calc(70px + var(--safe-bottom));background:radial-gradient(120% 90% at 50% -20%, #2b7a3b14 0%, transparent 50%), var(--background);flex-direction:column;flex:1;transition:padding-bottom .2s;display:flex;overflow:hidden}.app-container.keyboard-open{padding-bottom:0!important}.scroll-content{padding:12px;padding-top:calc(10px + var(--safe-top));flex:1;overflow-y:auto}.card{-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-soft);box-shadow:var(--shadow-md);background:#fffffff0;border-radius:24px;padding:18px;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.card:active{transform:scale(.97)}.input-field{border:1px solid var(--border);background:var(--background);width:100%;color:var(--text);border-radius:14px;outline:none;padding:14px 16px;font-size:15px;transition:all .2s}.input-field:focus{box-shadow:0 0 0 4px var(--primary-light);border-color:var(--primary)!important;background:var(--surface)!important}.bottom-nav{height:calc(70px + var(--safe-bottom));-webkit-backdrop-filter:blur(25px);padding-bottom:var(--safe-bottom);border-top:1px solid var(--border-soft);z-index:100;background:#ffffffe6;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000005}.nav-item{color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;width:25%;font-size:10px;font-weight:700;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.nav-item.active{color:var(--primary);transform:translateY(-2px)}.nav-item svg{width:24px;height:24px;transition:transform .3s}.nav-item.active svg{transform:scale(1.1)}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:14px 24px;font-size:15px;font-weight:700;display:flex;box-shadow:0 4px 15px #2b7a3b33}.btn-primary:active{opacity:.9;transform:scale(.96)}.btn-secondary{background:var(--primary-light);color:var(--primary);border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;display:flex}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:12px;padding:6px 12px;font-size:10px;font-weight:800}.badge-pending{color:#145cb9;background:#eaf3ff}.badge-active{color:#ad6c12;background:#fff5e6}.badge-success{color:#1a8f60;background:#eaf9f1}.badge-error{color:#c24b45;background:#fff0ef}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.5s cubic-bezier(.2,.8,.2,1) forwards slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:.4s forwards fadeIn}.center-text{text-align:center}.fab{bottom:calc(90px + var(--safe-bottom));background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;z-index:200;cursor:pointer;border:none;border-radius:28px;justify-content:center;align-items:center;width:56px;height:56px;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;right:20px;box-shadow:0 4px 20px #2b7a3b66}.fab:active{transform:scale(.9)}
