/* Public FoodLeo site: intentionally separate from the compact daily Mini App. */
.is-public-site { background: #07121f; }
.is-public-site .app-shell { width: min(100%, 1440px); max-width: none; min-height: 100dvh; margin: 0 auto; padding: 0; overflow: visible; border-radius: 0; box-shadow: none; }
.is-public-site .topbar, .is-public-site .bottom-nav { display: none; }
.site-landing { overflow: hidden; color: #edf5ff; background: radial-gradient(circle at 90% 4%, #173c53 0, transparent 26%), radial-gradient(circle at 8% 38%, #372047 0, transparent 26%), #07121f; }
.site-header, .site-hero, .site-section, .site-proof, .site-faq, .site-final, .site-footer { width: min(calc(100% - 40px), 1180px); margin-inline: auto; }
.site-header { min-height: 84px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.site-brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; color: #fff; text-decoration: none; font-size: 24px; font-weight: 900; letter-spacing: -.07em; }
.site-brand img { filter: drop-shadow(0 5px 12px rgba(255, 121, 48, .24)); }
.site-brand > span > span { color: #ff7a32; }
.site-brand small { display: block; margin-top: 2px; color: #91a7bc; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.site-nav { display: flex; gap: 22px; }
.site-nav a, .site-footer a { color: #bdd1e5; font-size: 13px; font-weight: 700; text-decoration: none; }
.site-nav a:hover, .site-footer a:hover { color: #fff; }
.site-header-cta { justify-self: end; padding: 11px 15px; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; color: #fff; background: rgba(255,255,255,.07); font-size: 13px; font-weight: 800; text-decoration: none; cursor: pointer; }
.site-login-cta { border: 1px solid rgba(255,255,255,.18); cursor: pointer; }
.site-hero__actions .site-login-cta { color: #edf5ff; background: rgba(255,255,255,.05); }
.site-header-cta span { color: #ff8a4b; }
.site-hero { min-height: 590px; padding: 74px 0 68px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(400px, .8fr); align-items: center; gap: 44px; }
.site-kicker { display: inline-block; color: #ffad77; font-size: 12px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.site-hero h1, .site-section h2, .site-final h2 { margin: 13px 0 18px; color: #fff; font-size: clamp(43px, 5.6vw, 77px); line-height: .94; letter-spacing: -.075em; }
.site-hero h1 em { color: #ff7939; font-style: normal; }
.site-hero p { max-width: 570px; margin: 0; color: #b5c6d6; font-size: 18px; line-height: 1.55; }
.site-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; }
.site-primary-cta, .site-secondary-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 19px; border-radius: 15px; font-size: 14px; font-weight: 850; text-decoration: none; }
.site-primary-cta { color: #111c2b; background: linear-gradient(135deg, #ffcf58, #ff8a3e); box-shadow: 0 12px 28px rgba(255, 126, 59, .25); }
.site-secondary-cta { border: 1px solid rgba(255,255,255,.2); color: #edf5ff; background: rgba(255,255,255,.05); }
.site-hero__copy > small { display: block; margin-top: 13px; color: #7f96ab; font-size: 11px; }
.site-hero__visual { position: relative; min-height: 466px; }
.site-glow { position: absolute; inset: 2% 5% 5% 3%; border-radius: 50% 43% 52% 44%; background: linear-gradient(145deg, #ff7c37, #f9ba42 60%, #8ccf76); filter: blur(.2px); transform: rotate(-8deg); }
.site-hero__visual > img { position: absolute; z-index: 2; right: 3%; bottom: 0; width: min(100%, 475px); height: 450px; object-fit: cover; object-position: 50% 18%; filter: drop-shadow(0 24px 26px rgba(0,0,0,.26)); }
.site-demo-card { position: absolute; z-index: 3; bottom: 25px; left: 0; width: min(240px, 54%); padding: 17px; border: 1px solid rgba(255,255,255,.22); border-radius: 22px; color: #f7fbff; background: rgba(9, 21, 35, .83); box-shadow: 0 18px 42px rgba(0,0,0,.25); backdrop-filter: blur(15px); }
.site-demo-card > span { display: block; color: #a9bed0; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.site-demo-card > b { display: block; margin: 4px 0 10px; font-size: 28px; letter-spacing: -.06em; }
.site-demo-card b small { color: #a9bed0; font-size: 10px; letter-spacing: 0; }
.site-demo-card div { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.site-demo-card i { display: block; height: 7px; border-radius: 99px; background: linear-gradient(90deg, #77d88c var(--amount), #263d4f var(--amount)); }
.site-demo-card p { margin: 11px 0 0; color: #a9bed0; font-size: 9px; line-height: 1.2; }
.site-proof { position: relative; z-index: 4; margin-top: -27px; padding: 18px 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(15, 32, 49, .83); box-shadow: 0 18px 40px rgba(0,0,0,.15); backdrop-filter: blur(15px); }
.site-proof article { display: flex; align-items: center; gap: 11px; }
.site-proof article > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,141,65,.16); font-size: 20px; }
.site-proof b, .site-proof small { display: block; }
.site-proof b { color: #fff; font-size: 13px; }
.site-proof small { margin-top: 2px; color: #95aac0; font-size: 10px; line-height: 1.35; }
.site-section { padding: 118px 0 0; }
.site-section__intro { max-width: 650px; }
.site-section h2 { max-width: 780px; font-size: clamp(33px, 4vw, 56px); }
.site-section__intro p, .site-showcase__content > p { margin: 0; color: #afc0cf; font-size: 16px; line-height: 1.55; }
.site-steps { margin: 41px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; list-style: none; counter-reset: foodleo-step; }
.site-steps li { min-height: 198px; padding: 21px; border-radius: 23px; background: linear-gradient(145deg, #101f30, #0c1928); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.site-steps span { display: block; color: #ff924f; font-size: 13px; font-weight: 900; letter-spacing: .08em; }
.site-steps b { display: block; margin-top: 35px; color: #fff; font-size: 22px; }
.site-steps p { margin: 8px 0 0; color: #9fb3c4; font-size: 13px; line-height: 1.45; }
.site-steps strong { color: #ffd06a; }
.site-feature-grid { margin-top: 38px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.site-feature { min-height: 222px; padding: 20px; border: 1px solid rgba(255,255,255,.1); border-radius: 22px; background: rgba(255,255,255,.035); }
.site-feature--accent { border-color: rgba(255,147,78,.55); background: linear-gradient(145deg, rgba(255,126,58,.2), rgba(255,255,255,.04)); }
.site-feature > span { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 15px; background: rgba(255,255,255,.1); font-size: 22px; }
.site-feature h3 { margin: 19px 0 7px; color: #fff; font-size: 20px; }
.site-feature p { min-height: 58px; margin: 0; color: #abc0d1; font-size: 13px; line-height: 1.45; }
.site-feature small { display: block; margin-top: 12px; color: #ffb16b; font-size: 10px; font-weight: 750; }
.site-showcase { margin-top: 118px; padding: 0; display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 75px; }
.site-showcase__content h2 { margin-bottom: 17px; }
.site-showcase__content ul { padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; list-style: none; }
.site-showcase__content li { color: #e7f0f8; font-size: 13px; font-weight: 750; }
.site-showcase__content li::before { margin-right: 7px; color: #ff914b; content: "✓"; }
.site-phone { width: min(100%, 350px); justify-self: center; padding: 15px; border: 9px solid #192c3d; border-radius: 38px; color: #172532; background: #edf5f5; box-shadow: 0 25px 55px rgba(0,0,0,.35); transform: rotate(4deg); }
.site-phone__top { display: flex; justify-content: space-between; padding: 3px 5px 17px; color: #697883; font-size: 9px; }
.site-phone__top b { color: #172532; font-size: 12px; }
.site-phone h3 { margin: 0 5px 14px; font-size: 22px; }
.site-phone__option { width: 100%; margin-top: 9px; padding: 13px; display: grid; grid-template-columns: 33px 1fr; gap: 8px; border: 1px solid #d4e0e2; border-radius: 15px; color: #20313e; background: #fff; font-size: 15px; font-weight: 800; text-align: left; }
.site-phone__option small { grid-column: 2; color: #7b8990; font-size: 10px; font-weight: 600; }
.site-phone > p { margin: 13px 5px 2px; color: #809099; font-size: 9px; text-align: center; }
.site-privacy { margin-top: 125px; padding: 45px; border: 1px solid rgba(255,255,255,.12); border-radius: 30px; background: linear-gradient(120deg, rgba(246,188,77,.13), rgba(79,184,139,.12)); }
.site-privacy h2 { font-size: clamp(32px, 3.7vw, 51px); }
.site-privacy__grid { margin-top: 27px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.site-privacy__grid article { padding-top: 15px; border-top: 2px solid #ff9a51; }
.site-privacy__grid b { color: #fff; font-size: 16px; }
.site-privacy__grid p { margin: 8px 0 0; color: #b8c8d6; font-size: 12px; line-height: 1.5; }
.site-faq { margin-top: 72px; padding-bottom: 65px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.site-faq details { min-height: 141px; padding: 17px; border: 1px solid rgba(255,255,255,.12); border-radius: 19px; background: rgba(255,255,255,.035); }
.site-faq summary { color: #fff; font-size: 14px; font-weight: 800; cursor: pointer; }
.site-faq p { margin: 12px 0 0; color: #a9bdce; font-size: 12px; line-height: 1.45; }
.site-final { margin-top: 25px; margin-bottom: 38px; padding: 48px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-radius: 30px; background: linear-gradient(135deg, #ff9a50, #ff6b37); color: #182330; }
.site-final .site-kicker { color: #3d2824; }
.site-final h2 { margin: 9px 0; color: #182330; font-size: clamp(34px, 4vw, 55px); }
.site-final p { margin: 0; color: #553229; }
.site-final .site-primary-cta { flex: 0 0 auto; color: #fff; background: #132638; box-shadow: none; }
.site-footer { padding: 0 0 36px; display: flex; justify-content: space-between; color: #8298ac; font-size: 11px; }
.site-mobile-cta { display: none; }
.site-footer a:first-child { color: #fff; font-size: 15px; font-weight: 900; }
@media (max-width: 780px) { .site-landing { padding-bottom: calc(76px + env(safe-area-inset-bottom)); } .site-header, .site-hero, .site-section, .site-proof, .site-faq, .site-final, .site-footer { width: min(calc(100% - 28px), 600px); } .site-header { min-height: 70px; grid-template-columns: 1fr auto; } .site-nav { display: none; } .site-header-cta { padding: 9px 10px; font-size: 11px; } .site-hero { min-height: 0; padding: 10px 0 42px; grid-template-columns: 1fr; gap: 14px; } .site-hero h1 { font-size: clamp(42px, 13vw, 63px); } .site-hero p { font-size: 15px; } .site-hero__visual { min-height: 355px; order: -1; } .site-glow { display: none; } .site-hero__visual > img { height: 345px; right: 3%; } .site-demo-card { bottom: 0; } .site-proof { margin-top: 0; grid-template-columns: 1fr; gap: 13px; } .site-section { padding-top: 72px; } .site-steps, .site-feature-grid, .site-privacy__grid, .site-faq { grid-template-columns: 1fr; } .site-steps { gap: 10px; } .site-steps li { min-height: 0; display: grid; grid-template-columns: 52px 1fr; gap: 11px; } .site-steps b { margin-top: 0; } .site-steps span { grid-row: 1 / 3; } .site-feature { min-height: 0; } .site-feature p { min-height: 0; } .site-showcase { margin-top: 76px; grid-template-columns: 1fr; gap: 40px; } .site-phone { transform: none; } .site-privacy { margin-top: 76px; padding: 28px 21px; } .site-faq { margin-top: 48px; padding-bottom: 36px; } .site-faq details { min-height: 0; } .site-final { margin-bottom: 28px; padding: 29px 21px; align-items: flex-start; flex-direction: column; } .site-footer { padding-bottom: 28px; flex-wrap: wrap; gap: 12px; } }

@media (max-width: 780px) { .site-mobile-cta { position: fixed; z-index: 50; right: 14px; bottom: calc(12px + env(safe-area-inset-bottom)); left: 14px; min-height: 58px; padding: 8px 15px; display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; color: #172535; background: linear-gradient(135deg, #ffd45c, #ff853f); box-shadow: 0 16px 34px rgba(0,0,0,.32); text-decoration: none; } .site-mobile-cta > span:first-child { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: rgba(18,34,49,.12); font-size: 19px; } .site-mobile-cta b, .site-mobile-cta small { display: block; } .site-mobile-cta b { font-size: 14px; line-height: 1.1; } .site-mobile-cta small { margin-top: 2px; color: #5e3b2c; font-size: 10px; font-weight: 700; } .site-mobile-cta strong { font-size: 20px; } }

.telegram-code-steps { margin: 22px 0 12px; padding: 0; display: grid; gap: 16px; list-style: none; counter-reset: none; }
.telegram-code-steps li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: start; }
.telegram-code-steps li > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #d6d8ff; border-radius: 50%; color: #605bd9; background: #f0f0ff; font-size: 14px; font-weight: 900; }
.telegram-code-steps b { display: block; color: var(--ink); font-size: 16px; }
.telegram-code-steps p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.telegram-login-command { width: 100%; margin-top: 12px; padding: 13px 15px; border: 1px dashed #a8a5ec; border-radius: 14px; color: #5650d5; background: #f6f5ff; font: 850 18px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; cursor: pointer; }
.telegram-login-code { display: block; margin-top: 8px; color: var(--muted); font: 800 11px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .12em; text-align: center; }
.telegram-login-status { margin: 14px 0 0; color: #676c8b; font-size: 12px; text-align: center; }
.telegram-login-status::before { margin-right: 6px; content: "●"; color: #7774dc; }
.telegram-login-safety { display: block; margin-top: 13px; padding: 11px; border-radius: 12px; color: var(--muted); background: var(--surface-input); font-size: 10px; line-height: 1.45; }

.site-login-fallback { width: 100%; margin-top: 14px; justify-content: center; box-sizing: border-box; }

.noscript-fallback {
  width: min(calc(100% - 32px), 520px);
  margin: 24px auto;
  padding: 18px;
  border: 1px solid #ffc26c;
  border-radius: 18px;
  color: #f5f8fb;
  background: #102335;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
  text-align: center;
}
.noscript-fallback b, .noscript-fallback a { display: block; }
.noscript-fallback a { margin-top: 10px; color: #ffd45c; font-weight: 850; }

