/* =========================================================
   oliva — эксперимент: светлые шалфейные поверхности
   #B3C697 вместо глубокого тёмно-зелёного на крупных блоках.
   Функциональные тёмные элементы (кнопки, камера, код) сохранены.
   ========================================================= */

:root {
  --sage-surface: #b3c697;
  --sage-surface-soft: #a8bd8b;
  --sage-ink: #0e3528;
  --sage-muted: rgba(9, 42, 30, 0.82);
  --sage-line: rgba(14, 53, 40, 0.16);
  --macro-protein: #ff7d4d;
  --macro-fat: #ffb03a;
  --macro-carbs: #ffd93b;
  --macro-track: rgba(14, 53, 40, 0.2);
}

/* ---------- большой блок Оливии ---------- */

.assistant-shell {
  background:
    radial-gradient(circle at 96% 5%, rgba(255, 255, 255, 0.2), transparent 34%),
    radial-gradient(circle at 4% 92%, rgba(14, 53, 40, 0.08), transparent 36%),
    var(--sage-surface);
  color: var(--sage-ink);
}
.assistant-shell::before {
  border-color: rgba(14, 53, 40, 0.15);
}
.assistant-shell::after {
  color: rgba(14, 53, 40, 0.055);
}
.assistant-copy .section-title {
  color: var(--sage-ink);
}
.assistant-copy .section-title em {
  color: var(--forest-2);
}
.assistant-copy .section-copy {
  color: rgba(9, 42, 30, 0.82);
}
.assistant-copy .eyebrow--light {
  color: var(--forest);
}
.assistant-copy .eyebrow--light::before {
  background: var(--forest);
  box-shadow: 0 0 0 5px rgba(14, 53, 40, 0.09);
}
.assistant-feature__icon {
  border-color: rgba(14, 53, 40, 0.22);
  background: rgba(255, 255, 255, 0.25);
  color: var(--forest);
}
.assistant-feature strong {
  color: var(--sage-ink);
}
.assistant-feature p {
  color: rgba(9, 42, 30, 0.82);
}
.assistant-copy .btn--lime,
.site-footer .btn--lime {
  background: var(--forest);
  color: var(--cream);
}
.assistant-copy .btn--lime:hover,
.site-footer .btn--lime:hover {
  background: var(--forest-2);
}
.demo-chat {
  border-color: rgba(255, 255, 255, 0.48);
  box-shadow:
    0 35px 70px -35px rgba(14, 53, 40, 0.38),
    0 0 0 8px rgba(255, 255, 255, 0.12);
}
.demo-chat-note {
  color: rgba(9, 42, 30, 0.82);
}

/* ---------- bento: блок приватности ---------- */

.bento--norm {
  background:
    radial-gradient(circle at 95% 0%, rgba(255, 255, 255, 0.25), transparent 41%),
    var(--sage-surface);
  border-color: rgba(14, 53, 40, 0.14);
  color: var(--sage-ink);
}
.bento--norm .bento-kicker {
  color: var(--forest);
}
.bento--norm > p {
  color: var(--sage-muted);
}
.bento--norm::after {
  border-color: rgba(14, 53, 40, 0.14);
}
.bento--norm h3 {
  color: var(--sage-ink);
}
.privacy-node {
  border-color: rgba(14, 53, 40, 0.22);
  background: rgba(255, 254, 250, 0.55);
}
.privacy-node__icon {
  background: var(--forest);
  color: var(--lime);
}
.privacy-node__icon .icon {
  color: var(--lime);
}
.privacy-node strong {
  color: var(--sage-ink);
  font-size: 9.5px;
}
.privacy-node > span:not(.privacy-node__icon) {
  color: rgba(9, 42, 30, 0.82);
  font-size: 9.5px;
}
.privacy-arrow {
  color: rgba(9, 42, 30, 0.82);
}

/* ---------- подвал ---------- */

.site-footer {
  background: var(--sage-surface);
  color: var(--sage-ink);
}
.site-footer::before {
  border-color: rgba(14, 53, 40, 0.14);
}
.site-footer .brand--light {
  color: var(--sage-ink);
}
.site-footer .brand--light .brand__engine {
  border-color: rgba(14, 53, 40, 0.24);
  color: var(--forest);
}
.footer-brand p {
  color: var(--sage-muted);
}
.footer-badge {
  border-color: rgba(14, 53, 40, 0.22);
  color: var(--forest);
}
.footer-badge span {
  background: var(--forest);
  box-shadow: 0 0 0 4px rgba(14, 53, 40, 0.08);
}
.footer-col h3 {
  color: rgba(9, 42, 30, 0.82);
}
.footer-col a,
.footer-col button {
  color: rgba(9, 42, 30, 0.82);
}
.footer-col a:hover,
.footer-col button:hover {
  color: var(--forest);
}
.footer-cta p {
  color: var(--sage-muted);
}
.footer-bottom {
  border-color: rgba(14, 53, 40, 0.14);
  color: rgba(9, 42, 30, 0.82);
}
.footer-bottom__links a:hover {
  color: var(--forest);
}
.footer-word {
  color: rgba(14, 53, 40, 0.055);
}

/* ---------- телефон на лендинге ---------- */

.daily-card {
  background:
    radial-gradient(circle at 110% -20%, rgba(255, 255, 255, 0.3), transparent 45%),
    linear-gradient(145deg, #b9cb9e 0%, var(--sage-surface) 54%, #a8bd8b 100%);
  color: var(--sage-ink);
  box-shadow: 0 18px 28px -22px rgba(14, 53, 40, 0.32);
}
.daily-card::before {
  border-color: rgba(14, 53, 40, 0.15);
}
.daily-card__label {
  color: var(--sage-ink);
}
.daily-card__goal {
  color: rgba(9, 42, 30, 0.82);
}
.daily-badge,
.balance-badge {
  border-color: transparent;
  background: var(--forest);
  color: var(--lime);
}
.daily-badge .icon,
.balance-badge .icon {
  color: var(--lime);
}
.daily-card .ring-bg {
  stroke: rgba(14, 53, 40, 0.2);
}
.daily-card .ring-value {
  stroke: var(--macro-protein);
}
.calorie-ring__center strong {
  color: var(--sage-ink);
}
.calorie-ring__center span {
  color: rgba(9, 42, 30, 0.82);
}
.daily-copy__label {
  color: rgba(9, 42, 30, 0.82);
}
.daily-copy strong {
  color: var(--sage-ink);
}
.daily-copy strong small {
  color: rgba(9, 42, 30, 0.82);
}
.daily-copy__hint {
  color: rgba(9, 42, 30, 0.82);
}
.daily-copy__hint svg {
  color: var(--forest);
}
.daily-card .macro {
  border-color: rgba(14, 53, 40, 0.1);
  background: rgba(255, 255, 255, 0.25);
}
.daily-card .macro__top {
  color: rgba(9, 42, 30, 0.82);
}
.daily-card .macro__top strong {
  color: var(--forest);
}
.daily-card .macro-bar {
  background: rgba(14, 53, 40, 0.13);
}
.daily-card .macro-bar i {
  background: var(--macro-protein);
}
.daily-card .macro:nth-child(2) .macro-bar i {
  background: var(--macro-fat);
}
.daily-card .macro:nth-child(3) .macro-bar i {
  background: var(--macro-carbs);
}

/* ---------- дневной баланс в кабинете ---------- */

.balance-card {
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 0.3), transparent 42%),
    linear-gradient(145deg, #b9cb9e 0%, var(--sage-surface) 58%, #a8bd8b 100%);
  border: 1px solid rgba(14, 53, 40, 0.12);
  color: var(--sage-ink);
  box-shadow: 0 24px 44px -36px rgba(14, 53, 40, 0.34);
}
.balance-card::after {
  border-color: rgba(14, 53, 40, 0.14);
}
.balance-card__head h2,
.balance-copy__title {
  color: var(--sage-ink);
}
.balance-card__head p {
  color: rgba(9, 42, 30, 0.82);
}
.balance-ring__inner {
  background: var(--sage-surface);
}
.balance-ring__inner strong {
  color: var(--sage-ink);
}
.balance-ring__inner span {
  color: rgba(9, 42, 30, 0.82);
}
.balance-copy__label,
.balance-copy__sub {
  color: rgba(9, 42, 30, 0.82);
}
.balance-card .macro-empty {
  border-color: rgba(14, 53, 40, 0.18);
  background: rgba(255, 255, 255, 0.24);
  color: rgba(9, 42, 30, 0.82);
}
.balance-card .macro-row {
  border-color: rgba(14, 53, 40, 0.1);
  background: rgba(255, 255, 255, 0.23);
}
.balance-card .macro-row__label {
  color: rgba(9, 42, 30, 0.82);
}
.balance-card .macro-row__value {
  color: var(--forest);
}
.balance-card .macro-row__share {
  color: rgba(9, 42, 30, 0.82);
}
.balance-card .macro-row__bar {
  background: rgba(14, 53, 40, 0.13);
}
.balance-card .macro-row__dot {
  background: var(--macro-protein);
}
.balance-card .macro-row:nth-child(2) .macro-row__dot {
  background: var(--macro-fat);
}
.balance-card .macro-row:nth-child(3) .macro-row__dot {
  background: var(--macro-carbs);
}
.balance-card .macro-row__bar i {
  background: var(--macro-protein);
}
.balance-card .macro-row:nth-child(2) .macro-row__bar i {
  background: var(--macro-fat);
}
.balance-card .macro-row:nth-child(3) .macro-row__bar i {
  background: var(--macro-carbs);
}
.balance-card .today-count {
  border-color: rgba(14, 53, 40, 0.14);
  color: rgba(9, 42, 30, 0.82);
}
.balance-card .today-count .icon {
  color: var(--forest);
}

/* На светлом фоне подсказка Оливии остаётся лаймовой,
   но её подпись становится темнее для контраста. */
.olivia-card .olivia-card__foot {
  color: rgba(9, 42, 30, 0.82);
}

@media (max-width: 520px) {
  .assistant-shell {
    background:
      radial-gradient(circle at 96% 5%, rgba(255, 255, 255, 0.2), transparent 34%),
      var(--sage-surface);
  }
}

/* =========================================================
   Полностью светлый вариант: ни одной тёмно-зелёной поверхности.
   Тёмными остаются только текст, иконки и тонкие границы.
   ========================================================= */

/* ---------- кнопки и логотипы ---------- */

.btn--dark {
  border-color: rgba(14, 53, 40, 0.24);
  background: var(--sage-surface);
  color: var(--forest);
  box-shadow: 0 12px 26px -20px rgba(14, 53, 40, 0.38);
}
.btn--dark:hover {
  border-color: rgba(14, 53, 40, 0.34);
  background: var(--sage-surface-soft);
  color: var(--forest);
}
.header-actions .btn--dark {
  border-color: rgba(14, 53, 40, 0.2);
}
.cta-actions .btn--dark {
  border-color: rgba(14, 53, 40, 0.16);
  background: var(--cream);
  color: var(--forest);
}
.cta-actions .btn--dark:hover {
  background: var(--white);
}
.assistant-copy .btn--lime,
.site-footer .btn--lime {
  background: var(--lime);
  color: var(--forest);
}
.assistant-copy .btn--lime:hover,
.site-footer .btn--lime:hover {
  background: var(--lime-soft);
}

.brand svg rect {
  fill: var(--sage-surface);
  stroke: rgba(14, 53, 40, 0.18);
  stroke-width: 0.8;
}
.brand svg path[fill="#c9f36d"] {
  fill: var(--forest);
}
.brand svg path[stroke="#0e3528"] {
  stroke: var(--cream);
}

.page-veil {
  background: var(--sage-surface);
  color: var(--forest);
}
.page-veil .brand {
  color: var(--forest);
}
.page-veil .brand svg rect {
  fill: var(--cream);
}
.page-veil .brand svg path[stroke="#0e3528"] {
  stroke: var(--cream);
}
.page-veil__line {
  background: rgba(14, 53, 40, 0.16);
}
.page-veil__line::after {
  background: var(--forest);
}

/* ---------- меню на мобильных ---------- */

.mobile-menu {
  background: var(--sage-surface);
  color: var(--forest);
}
.mobile-menu nav a {
  border-color: rgba(14, 53, 40, 0.16);
  color: var(--forest);
}
.mobile-menu nav a span {
  color: var(--green);
}
.mobile-menu__note {
  color: rgba(9, 42, 30, 0.82);
}
.mobile-menu__footer .btn--ghost {
  border-color: rgba(14, 53, 40, 0.22);
  color: var(--forest);
}
.mobile-menu__footer .btn--lime {
  background: var(--lime);
  color: var(--forest);
}

/* ---------- тёмные детали чата и карточек ---------- */

.hero-float__icon {
  background: var(--sage-surface);
  color: var(--forest);
}
.ai-nudge__avatar,
.demo-chat__avatar,
.demo-msg__avatar,
.olivia-avatar {
  background: var(--sage-surface);
  color: var(--forest);
}
.demo-chat__avatar i,
.olivia-avatar i {
  border-color: var(--cream);
}
.demo-msg--user .demo-msg__bubble {
  background: var(--sage-surface);
  color: var(--forest);
}
.demo-msg--user .demo-msg__time {
  color: rgba(9, 42, 30, 0.82);
}
.demo-chat__compose button,
.chat-compose button {
  background: var(--sage-surface);
  color: var(--forest);
}
.demo-chat__compose button:hover,
.chat-compose button:hover {
  background: var(--sage-surface-soft);
}
.scan-result-card__add b {
  background: var(--sage-surface);
  color: var(--forest);
}
.cta-plate__label span {
  color: var(--forest);
}

/* ---------- телефон: светлая рамка ---------- */

.device {
  background: linear-gradient(145deg, #c5d5ad 0%, #a9be8c 48%, #8fa477 100%);
  box-shadow:
    0 60px 95px -42px rgba(14, 53, 40, 0.28),
    0 20px 40px -30px rgba(14, 53, 40, 0.22),
    inset 0 0 0 1px rgba(255, 255, 255, 0.28),
    inset 0 0 0 2px rgba(14, 53, 40, 0.08);
}
.device::before,
.device::after {
  background: #8fa477;
}
.device:hover {
  box-shadow:
    0 70px 110px -48px rgba(14, 53, 40, 0.32),
    0 20px 40px -30px rgba(14, 53, 40, 0.24),
    inset 0 0 0 1px rgba(255, 255, 255, 0.28),
    inset 0 0 0 2px rgba(14, 53, 40, 0.08);
}
.device-island {
  background: var(--forest);
}
.device-island::after {
  background: var(--forest-2);
  box-shadow: inset 0 0 0 1.5px var(--forest);
}

/* ---------- камера / загрузка фото ---------- */

.scan-stage {
  border-color: rgba(14, 53, 40, 0.18);
  background:
    radial-gradient(circle at 70% 20%, rgba(255, 255, 255, 0.4), transparent 35%),
    var(--sage-surface);
  color: var(--forest);
}
.scan-stage:hover {
  border-color: rgba(14, 53, 40, 0.36);
}
.scan-stage.is-dragover {
  border-color: var(--forest);
  box-shadow: 0 0 0 4px rgba(14, 53, 40, 0.1);
}
.scan-stage > img {
  filter: brightness(0.92) saturate(0.9);
}
.scan-stage__empty-icon {
  border-color: rgba(14, 53, 40, 0.22);
  background: rgba(255, 254, 250, 0.42);
  color: var(--forest);
}
.scan-stage__empty strong {
  color: var(--forest);
}
.scan-stage__empty span {
  color: rgba(9, 42, 30, 0.82);
}
.scan-corners span {
  border-color: rgba(14, 53, 40, 0.6);
}
.scan-stage .scan-line {
  background: var(--forest);
  box-shadow: 0 0 16px 1px rgba(14, 53, 40, 0.25);
}
.scan-stage.is-busy::after {
  border-color: rgba(14, 53, 40, 0.14);
  background: rgba(255, 254, 250, 0.86);
  color: var(--forest);
}
.scan-stage__hint {
  right: auto;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 30px);
  padding: 4px 8px;
  border: 1px solid rgba(14, 53, 40, 0.12);
  border-radius: 999px;
  background: rgba(255, 254, 250, 0.78);
  color: var(--forest);
  transform: translateX(-50%);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}
.scan-stage__hint > span:first-child {
  background: var(--forest);
}
.scan-stage.has-photo .scan-stage__hint {
  color: var(--forest);
}

/* ---------- селекты приёмов пищи, вода, таббар ---------- */

.meal-type {
  color: var(--sage-muted);
}
.meal-type:hover {
  border-color: rgba(14, 53, 40, 0.3);
  color: var(--forest);
}
.meal-type.is-active {
  border-color: rgba(14, 53, 40, 0.26);
  background: var(--sage-surface);
  color: var(--forest);
}
.water-plus {
  background: var(--sage-surface);
  color: var(--forest);
}
.water-plus:hover {
  background: var(--sage-surface-soft);
}
.app-tab--scan .tab-orb {
  background: var(--sage-surface);
  color: var(--forest);
}
.app-tab--scan:hover .tab-orb {
  background: var(--sage-surface-soft);
}
.app-tab--scan.is-active .tab-orb {
  color: var(--forest);
}

/* ---------- бейджи ---------- */

.daily-badge,
.balance-badge {
  border-color: rgba(14, 53, 40, 0.18);
  background: rgba(255, 254, 250, 0.52);
  color: var(--forest);
}
.daily-badge .icon,
.balance-badge .icon {
  color: var(--forest);
}
.privacy-node__icon {
  background: rgba(255, 254, 250, 0.55);
  color: var(--forest);
}
.privacy-node__icon .icon {
  color: var(--forest);
}

/* ---------- экран авторизации ---------- */

.auth-shell .auth-visual {
  background: var(--sage-surface);
}
.auth-shell .auth-visual__image {
  filter: saturate(0.68) brightness(1.06);
}
.auth-shell .auth-visual__shade {
  background:
    linear-gradient(to bottom, rgba(179, 198, 151, 0.64) 0%, rgba(179, 198, 151, 0.38) 24%, rgba(179, 198, 151, 0.78) 52%, rgba(179, 198, 151, 0.97) 100%),
    linear-gradient(to right, rgba(179, 198, 151, 0.74), rgba(179, 198, 151, 0.14) 72%);
}
.auth-shell .auth-visual__shade::after {
  background: radial-gradient(circle at 76% 20%, rgba(255, 255, 255, 0.3), transparent 44%);
  mix-blend-mode: normal;
}
.auth-shell .auth-visual__content {
  color: var(--forest);
}
.auth-shell .auth-visual .brand--light,
.auth-shell .auth-visual__center h2 {
  color: var(--forest);
}
.auth-shell .auth-visual__center h2 em {
  color: var(--forest-2);
}
.auth-shell .auth-visual__center p {
  color: rgba(9, 42, 30, 0.82);
}
.auth-shell .auth-visual__badge {
  border-color: rgba(14, 53, 40, 0.22);
  background: rgba(255, 254, 250, 0.48);
  color: var(--forest);
}
.auth-shell .auth-visual__badge .icon {
  color: var(--forest);
}
.auth-shell .auth-fact {
  border-color: rgba(14, 53, 40, 0.16);
  background: rgba(255, 254, 250, 0.44);
}
.auth-shell .auth-fact__icon {
  background: rgba(14, 53, 40, 0.1);
  color: var(--forest);
}
.auth-shell .auth-fact__icon .icon {
  color: var(--forest);
}
.auth-shell .auth-fact strong {
  color: var(--forest);
}
.auth-shell .auth-fact div > span {
  color: rgba(9, 42, 30, 0.82);
}
.auth-shell .auth-visual__orb {
  border-color: rgba(14, 53, 40, 0.18);
}
.auth-shell .auth-visual__orb::after {
  border-color: rgba(14, 53, 40, 0.1);
}
.auth-shell .auth-visual__leaf {
  color: rgba(14, 53, 40, 0.44);
}
.auth-shell .auth-visual .brand svg rect {
  fill: var(--cream);
}
.auth-shell .auth-visual .brand svg path[fill="#c9f36d"] {
  fill: var(--forest);
}
.auth-shell .auth-visual .brand svg path[stroke="#0e3528"] {
  stroke: var(--cream);
}
.auth-submit {
  border-color: rgba(14, 53, 40, 0.24);
}

/* ---------- нижняя навигация и телефонные кнопки ---------- */

.app-tab--scan .tab-orb {
  border-color: rgba(255, 254, 250, 0.95);
}

