/* Manrope локально — без fonts.googleapis.com / fonts.gstatic.com */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/manrope-cyrillic-variable.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/manrope-latin-variable.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Диетолог — своя шкала (не navy/коралл/небо Voway) */
  --ink: #1c2b24;
  --muted: #5a6b62;
  --bg: #e4ebe6;
  --phone: #fffbf7;
  --card: #ffffff;
  --line: rgba(28, 43, 36, 0.22);
  --accent: #3f8a5c;
  --accent-press: #2f6f49;
  --accent-soft: #e8f0ea;
  --accent-alt: #2f8fd0;
  --accent-alt-press: #2176b3;
  --accent-alt-soft: #e8f4fc;
  --warm: #c4a07a;
  --warm-soft: rgba(196, 160, 122, 0.18);
  /* Выделение плашек — лосось */
  --select: #e07a5f;
  --select-mid: #ec9178;
  --select-press: #c9654c;
  --select-soft: #fff1ec;
  --select-ink: #7a3a2c;
  --danger: #b42318;
  --danger-soft: rgba(180, 35, 24, 0.1);
  --ok: #2f9e54;
  --shadow: 0 22px 60px rgba(28, 43, 36, 0.16);
  --cta-shadow: 0 10px 24px rgba(63, 122, 90, 0.28);
  /* Как у галочек на юр. шаге: белая плитка + тень */
  --field-border: 1.5px solid rgba(28, 43, 36, 0.26);
  --field-shadow:
    0 10px 26px rgba(63, 122, 90, 0.2),
    0 4px 12px rgba(196, 160, 122, 0.28);
  --font: "Manrope", system-ui, sans-serif;
  --fw-heavy: 600;
  --fw-semibold: 500;
  --radius: 22px;
  --radius-tile: 28px;
  --radius-pill: 999px;
  --wash-top: #f2e6d4;
  --wash-mid: #f8f2ea;
  --wash-bottom: #c5ddd0;
  --app-wash: linear-gradient(180deg, var(--wash-top) 0%, var(--wash-mid) 42%, var(--wash-bottom) 100%);
  /* Фон «небо суток» — общий для стекла, веба и оболочки (насыщеннее пятен и базы) */
  --sky-bg:
    radial-gradient(ellipse 90% 48% at 10% 6%, rgba(255, 200, 145, 0.82), transparent 58%),
    radial-gradient(ellipse 70% 42% at 92% 8%, rgba(145, 190, 255, 0.75), transparent 55%),
    radial-gradient(ellipse 95% 55% at 50% 42%, rgba(175, 220, 195, 0.85), transparent 62%),
    radial-gradient(ellipse 70% 48% at 18% 48%, rgba(255, 200, 165, 0.72), transparent 58%),
    radial-gradient(ellipse 65% 45% at 88% 52%, rgba(180, 165, 235, 0.7), transparent 55%),
    radial-gradient(ellipse 75% 42% at 12% 88%, rgba(120, 195, 155, 0.62), transparent 55%),
    radial-gradient(ellipse 70% 40% at 85% 90%, rgba(170, 150, 225, 0.6), transparent 52%),
    linear-gradient(180deg, #e5d4c0 0%, #d0e3d6 38%, #d5d0ea 72%, #d8d2eb 100%);
  /* Нижний/верхний inset: на Android WebView env() часто 0 сначала — фиксируем заранее */
  --safe-top: 18px;
  --safe-bottom: 12px;
}

* { box-sizing: border-box; }
html, body {
  margin: 0;
  height: 100%;
  -webkit-tap-highlight-color: transparent;
}
body {
  font-family: var(--font);
  color: var(--ink);
  /* Внешняя сцена (как у Voway на десктопе) — колонка читается как телефон */
  background:
    radial-gradient(900px 480px at 20% 0%, rgba(190, 220, 200, 0.9), transparent 55%),
    radial-gradient(700px 420px at 100% 10%, rgba(245, 220, 185, 0.92), transparent 50%),
    linear-gradient(180deg, #c5d4c8, #ddd2c4 55%, #cfc6bc);
  min-height: 100%;
  min-height: 100dvh;
}

.stage {
  min-height: 100%;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 16px 12px;
  box-sizing: border-box;
}

/* Колонка-формат телефона: без «шторки» iPhone, с мягкой рамкой как у Voway */
.phone {
  width: min(402px, 100%);
  height: min(844px, calc(100dvh - 32px));
  background: var(--app-wash);
  border-radius: 28px;
  box-shadow: 0 18px 50px rgba(28, 43, 36, 0.18);
  border: 1px solid rgba(28, 43, 36, 0.08);
  position: relative;
  overflow: hidden;
}

.notch {
  display: none;
}

.screen {
  height: 100%;
  position: relative;
  padding-top: 0;
}

.view {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  /* Без CSS-animation на .view: снятие boot-quiet перезапускало fade → моргание после заставки */
  padding-top: max(var(--safe-top, 18px), env(safe-area-inset-top, 0px));
}
.view.hidden { display: none; }
.view.view-enter {
  animation: viewEnter .18s ease;
}
@keyframes viewEnter {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Заставка внутри .phone — на ПК совпадает с рамкой стола */
.boot-cover {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 100000;
  margin: 0;
  padding: 24px 20px 40px;
  border: 0;
  border-radius: inherit;
  background: var(--sky-bg);
  pointer-events: none;
  place-items: center;
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity;
}
html.boot-hold .boot-cover {
  display: grid;
}
.boot-cover.is-leaving {
  opacity: 0;
}
.boot-splash-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 280px;
}
.boot-splash-logo {
  width: 120px;
  height: 120px;
  border-radius: 0;
  object-fit: contain;
  filter: drop-shadow(0 12px 26px rgba(28, 43, 36, 0.14));
  box-shadow: none;
  opacity: 0;
  transform: translateY(8px) scale(0.94);
}
html.boot-splash-play .boot-splash-logo {
  animation: bootLogoIn 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.08s forwards;
}
.boot-splash-brand {
  margin: 22px 0 0;
  font: 750 26px/1.15 var(--font);
  letter-spacing: -0.03em;
  color: var(--ink);
  opacity: 0;
  transform: translateY(6px);
}
html.boot-splash-play .boot-splash-brand {
  animation: bootTextIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.38s forwards;
}
.boot-splash-brand .tm {
  font-size: 0.55em;
  vertical-align: super;
  margin-left: 1px;
  opacity: 0.55;
  font-weight: 650;
}
.boot-splash-tagline {
  margin: 12px 0 0;
  font: 600 15px/1.35 var(--font);
  letter-spacing: 0.01em;
  color: var(--muted);
  opacity: 0;
  transform: translateY(4px);
  background-image: linear-gradient(
    105deg,
    var(--muted) 0%,
    var(--muted) 38%,
    #e8d5b0 46%,
    #f4ecd8 50%,
    #c9a978 54%,
    var(--muted) 62%,
    var(--muted) 100%
  );
  background-size: 220% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
html.boot-splash-play .boot-splash-tagline {
  animation:
    bootTextIn 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.72s forwards,
    bootSoftSheen 1.45s cubic-bezier(0.4, 0, 0.2, 1) 1.15s forwards;
}
.boot-splash-tagline.is-settled {
  color: var(--muted);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}
.boot-splash-breath {
  position: absolute;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.45) 0%, transparent 68%);
  pointer-events: none;
  opacity: 0;
  transform: scale(0.85);
}
html.boot-splash-play .boot-splash-breath {
  animation: bootBreath 2.6s ease-in-out 0.2s both;
}
@keyframes bootLogoIn {
  to { opacity: 1; transform: none; }
}
@keyframes bootTextIn {
  to { opacity: 1; transform: none; }
}
@keyframes bootSoftSheen {
  0% { background-position: 100% 0; }
  100% { background-position: -40% 0; }
}
@keyframes bootBreath {
  0% { opacity: 0; transform: scale(0.85); }
  35% { opacity: 0.7; }
  100% { opacity: 0; transform: scale(1.15); }
}
@media (prefers-reduced-motion: reduce) {
  html.boot-splash-play .boot-splash-logo,
  html.boot-splash-play .boot-splash-brand,
  html.boot-splash-play .boot-splash-tagline,
  html.boot-splash-play .boot-splash-breath {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .boot-splash-tagline {
    color: var(--muted);
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
  }
  .boot-cover {
    transition-duration: 0.01ms !important;
  }
}

/* Оболочка телефона: на весь экран; под стеклом — тот же «небо», не кремовый wash */
html.is-native-shell {
  --safe-top: 30px;
  --safe-bottom: 14px;
}
html.is-native-shell body {
  background: var(--sky-bg);
}
html.is-native-shell .stage {
  padding: 0;
  min-height: 100%;
  min-height: 100dvh;
  min-height: 100svh;
  display: block;
}
html.is-native-shell .phone {
  width: 100%;
  height: 100%;
  height: 100dvh;
  height: 100svh;
  max-height: none;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

/* Веб на телефоне (Safari / Android-браузер / с иконки «Домой»): кадр на весь экран, без гонки visualViewport */
html.is-mobile-web {
  --safe-top: 18px;
  --safe-bottom: 12px;
  background: var(--sky-bg);
  /* 100lvh = «большой» кадр (как после схлопа панели). Не ужимаем под первый кадр Safari. */
  min-height: 100%;
  min-height: -webkit-fill-available;
  min-height: 100lvh;
  height: 100%;
  height: -webkit-fill-available;
  height: 100lvh;
  overflow-x: hidden;
  overflow-y: auto;
}
html.is-standalone {
  --safe-top: max(44px, env(safe-area-inset-top, 0px));
  --safe-bottom: max(34px, env(safe-area-inset-bottom, 0px));
}
html.is-mobile-web body {
  background: var(--sky-bg);
  min-height: 100%;
  min-height: -webkit-fill-available;
  min-height: 100lvh;
  height: 100%;
  height: -webkit-fill-available;
  height: 100lvh;
  overflow-x: hidden;
  overflow-y: auto;
}
html.is-mobile-web .phone {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  min-height: -webkit-fill-available;
  min-height: 100lvh;
  max-height: none;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background: var(--sky-bg);
}
html.is-mobile-web .stage {
  padding: 0;
  height: 100%;
  min-height: 100%;
  display: block;
}
html.is-mobile-web .screen {
  height: 100%;
  min-height: 100%;
}
/* Табы к низу экрана */
html.is-mobile-web .float-tabs {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
}

/* Safari / Chrome вкладка (не иконка «Домой»): видимая высота + один scroll в .view-scroll */
html.is-mobile-web:not(.is-standalone) {
  overflow: hidden;
  overscroll-behavior: none;
  height: var(--browser-frame-height, 100svh);
  max-height: var(--browser-frame-height, 100svh);
  min-height: 0;
}
html.is-mobile-web:not(.is-standalone) body {
  overflow: hidden;
  overscroll-behavior: none;
  height: var(--browser-frame-height, 100svh);
  max-height: var(--browser-frame-height, 100svh);
  min-height: 0;
}
html.is-mobile-web:not(.is-standalone) .stage {
  overflow: hidden;
  height: var(--browser-frame-height, 100svh);
  max-height: var(--browser-frame-height, 100svh);
  min-height: 0;
}
html.is-mobile-web:not(.is-standalone) .phone {
  overflow: hidden;
  height: var(--browser-frame-height, 100svh);
  max-height: var(--browser-frame-height, 100svh);
  min-height: 0;
}
html.is-mobile-web:not(.is-standalone) .screen {
  overflow: hidden;
  height: 100%;
  max-height: 100%;
  min-height: 0;
}
html.is-mobile-web:not(.is-standalone) .view {
  min-height: 0;
  max-height: 100%;
}
html.is-mobile-web:not(.is-standalone) .view-scroll {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

/* Канон ширины длинных ответов: кромка ленты = кромка поля ввода */
:root {
  --report-gutter: 16px;
}

.view-scroll {
  flex: 1;
  overflow: auto;
  padding: 12px 22px 20px;
  -webkit-overflow-scrolling: touch;
}

.scroll-jump-btn {
  position: absolute;
  right: 18px;
  bottom: calc(118px + env(safe-area-inset-bottom, 0px));
  z-index: 16;
  box-sizing: border-box;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1.5px solid rgba(63, 122, 90, 0.5);
  background: #ffffff;
  background-clip: padding-box;
  color: var(--ink);
  box-shadow: 0 5px 14px rgba(28, 43, 36, 0.14);
  display: grid;
  place-items: center;
  cursor: pointer;
  opacity: 1;
  transform: translateY(0) scale(1);
  /* bottom без transition — иначе у конца ленты «плывёт» рывками */
  transition: opacity 0.22s ease, transform 0.22s ease;
  -webkit-tap-highlight-color: transparent;
  appearance: none;
  -webkit-appearance: none;
  overflow: hidden;
}
.scroll-jump-btn.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px) scale(0.9);
}
.scroll-jump-btn:active {
  transform: scale(0.96);
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 4px 14px 8px;
}
.topbar h1 {
  margin: 0;
  font-family: var(--font);
  font-size: 1.35rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.03em;
  text-align: center;
}
.topbar > div h1 { text-align: left; font-size: 1.55rem; }
.spacer { width: 64px; }

.eyebrow {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.onboard-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 2px 0 4px;
}
.nav-back {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1.5px solid rgba(28, 43, 36, 0.16);
  border-radius: 50%;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(63, 122, 90, 0.12);
  cursor: pointer;
}
.nav-back:active {
  background: #f3f6f4;
  transform: translateY(1px);
}
/* Онбординг: сцена шага — как плитка мастера Voway */
.onboard-stage {
  position: relative;
  min-height: 280px;
}
.onboard-panel {
  display: none;
  opacity: 0;
  transform: translateX(28px);
}
.onboard-panel.is-active {
  display: block;
  animation: onboardPanelIn 0.18s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.onboard-panel.is-active.from-left {
  animation-name: onboardPanelInLeft;
}
@keyframes onboardPanelIn {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes onboardPanelInLeft {
  from { opacity: 0; transform: translateX(-28px); }
  to { opacity: 1; transform: translateX(0); }
}
.onboard-summary {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 14px 16px;
  border-radius: 22px;
  border: var(--field-border);
  background: #fff;
  box-shadow: var(--field-shadow);
  /* Фиксированная высота: длинный текст не раздувает карточку — листаем внутри */
  height: 330px;
  max-height: 330px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.onboard-summary::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.onboard-summary .sum-row {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.onboard-summary .sum-label {
  font-size: 11px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.onboard-summary .sum-value {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.35;
  color: var(--ink);
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}
/* Знак зонтика Voway™ Баланс — одна строка, крупно */
.welcome-voway {
  margin: 0;
  font-weight: 800;
  font-size: clamp(2rem, 8.2vw, 2.45rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--ink);
  opacity: 1;
}
.welcome-voway .tm {
  display: inline;
  margin-left: 0.02em;
  font-size: 0.38em;
  font-weight: 700;
  letter-spacing: 0;
  vertical-align: super;
  line-height: 0;
  opacity: 0.55;
}
.welcome-voway .welcome-balance,
#welcomeEyebrow {
  margin-left: 0.22em;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: none;
  color: inherit;
  opacity: 1;
  max-width: none;
}
/* Подпись — 10px под брендом */
.welcome-tagline,
#welcomeTagline {
  margin: 10px 0 18px;
  font-size: clamp(0.98rem, 3.8vw, 1.08rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--ink);
  opacity: 0.72;
  max-width: none;
  white-space: nowrap;
}
.hero {
  margin: 10px 0 10px;
  font-family: var(--font);
  font-size: 1.75rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.035em;
  line-height: 1.15;
  color: var(--ink);
}
/* На welcome заголовок — смысл под брендом, не конкурирует */
.welcome-scroll .hero {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  margin: 6px 0 14px;
}
.section-title {
  margin: 16px 0 8px;
  font-size: 12px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.voice-dump {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin-bottom: 16px;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.voice-dump .section-title {
  margin: 0 0 8px;
}
.voice-dump textarea {
  width: 100%;
  border: 0;
  border-radius: 0;
  padding: 12px;
  font: inherit;
  font-size: 15px;
  background: #ffffff !important;
  background-color: #ffffff !important;
  resize: none;
  overflow: hidden;
  margin-top: 0;
  flex: 0 0 auto;
  min-height: 220px;
  height: 220px;
  max-height: 220px;
  box-shadow: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.voice-dump .input-mic {
  margin-top: 0;
  /* единственная белая ячейка — без внешней карточки */
  border: var(--field-border);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
  min-height: 220px;
}
.voice-dump .input-mic > textarea {
  margin-top: 0;
  min-height: 220px;
  height: 220px;
  max-height: 220px;
  border: 0 !important;
  box-shadow: none !important;
  background: #ffffff !important;
}
.voice-dump textarea.mic-live,
.voice-box textarea.mic-live,
textarea.mic-live {
  border-color: #c47a4a;
  box-shadow: 0 0 0 3px rgba(196, 122, 74, 0.22);
}
.field.field-hit input,
.field.field-hit textarea,
.field.field-hit select,
.chip-grid.field-hit {
  outline: 2px solid var(--select);
  outline-offset: 2px;
  border-radius: 12px;
}
.field.field-miss input,
.field.field-miss textarea,
.field.field-miss select {
  outline: 2px solid var(--danger);
  outline-offset: 2px;
  border-color: var(--danger);
  background: #fff5f5;
}
@keyframes micPulse {
  /* только тень — transform ломает центрирование микрофона в однострочных полях */
  0%, 100% { box-shadow: 0 0 0 0 rgba(63, 122, 90, 0.35); }
  50% { box-shadow: 0 0 0 8px rgba(63, 122, 90, 0); }
}
.pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.chip-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px;
}
.chip-toggle {
  border: var(--field-border);
  background: #fff;
  border-radius: 16px;
  padding: 11px 10px;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  color: var(--ink);
  box-shadow:
    0 6px 16px rgba(63, 122, 90, 0.14),
    0 2px 8px rgba(196, 160, 122, 0.2);
  cursor: pointer;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.chip-toggle:active {
  transform: scale(0.98);
}
.chip-toggle.on {
  background: linear-gradient(165deg, var(--select-mid) 0%, var(--select) 48%, var(--select-press) 100%);
  color: #fffaf7;
  border-color: transparent;
  font-weight: var(--fw-semibold);
  box-shadow:
    0 0 0 2px rgba(255, 251, 247, 0.95),
    0 0 0 4px rgba(224, 122, 95, 0.42),
    0 10px 22px rgba(224, 122, 95, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
/* Таблетки: тот же чип, выбранный — синий */
.chip-toggle.chip-med {
  padding: 7px 8px;
  min-height: 36px;
  height: 36px;
  font-size: 12px;
  line-height: 1.15;
  border-radius: 14px;
}
.chip-toggle.chip-med.on {
  background: linear-gradient(165deg, #6aadcf 0%, #3f8fbb 48%, #357aa3 100%);
  color: #fff;
  border-color: transparent;
  font-weight: var(--fw-semibold);
  box-shadow:
    0 0 0 2px rgba(255, 251, 247, 0.95),
    0 0 0 4px rgba(47, 143, 208, 0.42),
    0 10px 22px rgba(47, 143, 208, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.meds-dose-field {
  margin: 4px 0 0;
}
.meds-cat-foot {
  display: flex;
  justify-content: center;
  margin-top: 18px;
  padding: 4px 0 8px;
}
.meds-cat-foot .weight-actions {
  width: min(320px, 100%);
}
.food-meal-field {
  margin: 4px 0 0;
}
/* Подсказки под полем еды — обычный текст, не uppercase от .field */
.food-notices {
  margin: -4px 0 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid rgba(28, 43, 36, 0.12);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 4px 14px rgba(28, 43, 36, 0.06);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  color: var(--ink);
}
.food-notices[hidden] {
  display: none !important;
}
.food-notices-title {
  margin: 0 0 8px;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  color: var(--muted);
}
.food-notices-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.food-notices-list li {
  font-size: 0.82rem;
  line-height: 1.45;
  padding: 8px 10px;
  border-radius: 10px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.food-notices-list li.food-notice-action {
  background: var(--select-soft);
  border: 1px solid rgba(224, 122, 95, 0.28);
  color: var(--select-ink);
}
.food-notices-list li.food-notice-removed {
  background: rgba(200, 60, 60, 0.1);
  border: 1px solid rgba(200, 60, 60, 0.32);
  color: #9b2c2c;
}
.food-notices-list li.food-notice-added {
  background: rgba(47, 158, 84, 0.1);
  border: 1px solid rgba(47, 158, 84, 0.28);
  color: #1f6b3a;
}
.food-notices-list li.food-notice-manual {
  background: var(--accent-soft);
  border: 1px solid rgba(63, 122, 90, 0.22);
  color: var(--accent-press);
}
.food-notices-list li.food-notice-ok {
  background: rgba(47, 158, 84, 0.1);
  border: 1px solid rgba(47, 158, 84, 0.25);
  color: #1f6b3a;
}
.food-notice-kcal {
  font-weight: 600;
}
.food-notice-from-to {
  display: inline;
  font-weight: 700;
}
.food-notice-hint {
  display: block;
  margin-top: 4px;
  font-size: 0.78rem;
  font-weight: 600;
}
.mic-tidy.is-pulse {
  animation: foodCalcPulse 1s ease-in-out infinite;
  border-color: var(--select);
  background: var(--select-soft);
  color: var(--select-ink);
}
@keyframes foodCalcPulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(224, 122, 95, 0.15); }
  50% { box-shadow: 0 0 0 5px rgba(224, 122, 95, 0.28); }
}
.food-notices-list strong {
  font-weight: 700;
}
.food-meal-field .input-mic.has-tidy > textarea,
.food-meal-field .input-mic.has-tidy > #foodInput {
  padding: 12px 14px 48px 12px !important;
}
.food-meal-field > textarea,
.food-meal-field .input-mic > textarea,
#foodInput,
.voice-free-field > textarea,
.voice-free-field .input-mic > textarea,
#freeVoiceInput {
  min-height: 140px !important;
  height: 140px !important;
  max-height: 140px !important;
  overflow: auto !important;
  resize: none !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.food-meal-field > textarea::-webkit-scrollbar,
.food-meal-field .input-mic > textarea::-webkit-scrollbar,
#foodInput::-webkit-scrollbar,
.voice-free-field > textarea::-webkit-scrollbar,
.voice-free-field .input-mic > textarea::-webkit-scrollbar,
#freeVoiceInput::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.voice-free-field {
  margin: 4px 0 0;
}
.voice-free-field .input-mic > textarea,
#freeVoiceInput {
  padding: 12px 48px 48px 12px !important;
}
.meal-wheel-card {
  margin-top: 14px;
  background: #fff;
  border: var(--field-border);
  border-radius: 18px;
  padding: 12px 10px 10px;
  box-shadow:
    0 6px 16px rgba(63, 122, 90, 0.12),
    0 2px 8px rgba(196, 160, 122, 0.16);
}
.meal-wheel-card .weight-wheel-label {
  margin: 0 0 8px 4px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.meal-wheel-card .meal-wheel {
  height: 154px;
  min-height: 154px;
}
.food-meal-time-row {
  margin-top: 14px;
}
.food-meal-time-row .food-meal-card,
.food-meal-time-row .food-time-card {
  min-width: 0;
}
.food-meal-time-row .food-meal-wheel {
  height: 120px;
  min-height: 120px;
}
.food-meal-time-row .meal-opt {
  font-size: 1.02rem;
}
.weight-opt.meal-opt {
  font-size: 1.12rem;
  letter-spacing: -0.02em;
}
.legal-links {
  display: grid;
  gap: 0;
  margin: 0 0 12px;
  border-radius: 22px;
  border: 2px solid rgba(28, 43, 36, 0.3);
  background: #fff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
}
/* display:grid иначе перебивает [hidden] — пустой блок даёт тонкую «полоску» */
.legal-links[hidden],
.legal-links:empty {
  display: none !important;
  margin: 0;
  border: 0;
  box-shadow: none;
  padding: 0;
  min-height: 0;
}
.legal-doc-link {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 13px 14px;
  min-height: 48px;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(28, 43, 36, 0.14);
  background: #fff;
  box-shadow: none;
  font: inherit;
  font-size: 14px;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.01em;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}
.legal-doc-link:last-child {
  border-bottom: 0;
}
@media (hover: hover) {
  .legal-doc-link:hover {
    background: #d7ebe0;
    color: var(--accent-press);
    transform: none;
    box-shadow: none;
    border-color: rgba(28, 43, 36, 0.14);
  }
}
.legal-doc-link:active {
  background: #c5dfd1;
  color: var(--accent-press);
}
.nudge {
  margin: 0 14px 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #f1e7d8;
  border: 1px solid rgba(138, 90, 43, 0.2);
  font-size: 13px;
  font-weight: 600;
}
.nudge button {
  display: inline;
  margin-left: 6px;
  border: 0;
  background: none;
  color: var(--accent);
  font: inherit;
  font-weight: var(--fw-heavy);
  cursor: pointer;
  text-decoration: underline;
}

.lead, .tiny { color: var(--muted); }
.lead { margin: 0 0 16px; font-size: 14px; line-height: 1.45; }
.tiny { font-size: 14px; line-height: 1.4; }

.field {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.field-in-acc {
  margin-bottom: 0;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  color: var(--ink);
}
.prof-acc {
  margin: 0 0 8px;
  border-radius: 16px;
  background: #ffffff;
  border: var(--field-border);
  box-shadow: var(--field-shadow);
  overflow: hidden;
}
.prof-acc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 8px 12px 4px;
  border: 0;
  background: #ffffff;
  color: var(--muted);
  font: inherit;
  font-size: 11px;
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.prof-acc-head:active {
  background: rgba(28, 43, 36, 0.03);
}
.prof-acc-title {
  flex: 1;
}
.prof-acc-action {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--accent, #3f7a5a);
}
.prof-acc.open .prof-acc-action {
  color: rgba(28, 43, 36, 0.55);
}
.prof-acc-chev {
  display: none !important;
}
.prof-acc-preview {
  margin: 0;
  padding: 4px 12px 8px;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.25;
  color: var(--ink);
  white-space: pre-wrap;
  word-break: break-word;
  border-top: 1px solid rgba(28, 43, 36, 0.08);
}
.prof-acc-preview:empty,
.prof-acc.open .prof-acc-preview {
  display: none;
}
.prof-acc-preview.is-empty {
  color: rgba(28, 43, 36, 0.4);
  font-weight: 500;
  padding-top: 6px;
  padding-bottom: 8px;
}
.prof-acc-body {
  padding: 8px 10px 10px;
  border-top: 1px solid rgba(28, 43, 36, 0.1);
  background: #fafcfb;
}
.prof-acc-body[hidden] {
  display: none !important;
}
.prof-acc.open .prof-acc-body {
  display: block;
}
.prof-acc.open {
  border-color: rgba(63, 122, 90, 0.35);
  box-shadow:
    0 0 0 1px rgba(63, 122, 90, 0.12),
    var(--field-shadow);
}
#viewProfile .chip-grid {
  margin-bottom: 12px;
  padding: 10px;
  border-radius: 18px;
  background: #ffffff;
  border: var(--field-border);
  box-shadow: var(--field-shadow);
}
#viewProfile .section-title {
  margin-top: 4px;
}
#viewProfile .field > input,
#viewProfile .pair .field > input,
#viewProfile .metrics-row .field > input {
  background: #ffffff !important;
}
.field-in-acc > textarea {
  min-height: 72px;
  padding-top: 10px;
  padding-bottom: 10px;
}
#viewProfile .field .input-mic > textarea,
#viewProfile .field-in-acc .input-mic > textarea {
  overflow: hidden !important;
  resize: none !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#viewProfile .field .input-mic > textarea::-webkit-scrollbar,
#viewProfile .field-in-acc .input-mic > textarea::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.field > input,
.field > textarea,
.field > select {
  border: var(--field-border);
  border-radius: 18px;
  padding: 13px 15px;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink);
  background: #ffffff !important;
  background-color: #ffffff !important;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  resize: vertical;
  box-shadow: var(--field-shadow);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field > input:focus,
.field > textarea:focus,
.field > select:focus,
.voice-dump textarea:focus {
  outline: none;
  border-color: rgba(63, 122, 90, 0.55);
  box-shadow:
    0 0 0 3px rgba(63, 122, 90, 0.16),
    var(--field-shadow);
}
/* Одна ячейка: белая рамка + микрофон строго внутри (как «Расскажите») */
.field .input-mic,
.voice-dump .input-mic {
  position: relative;
  width: 100%;
  display: block;
  box-sizing: border-box;
  border: var(--field-border);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field .input-mic:focus-within,
.voice-dump .input-mic:focus-within {
  border-color: rgba(63, 122, 90, 0.55);
  box-shadow:
    0 0 0 3px rgba(63, 122, 90, 0.16),
    var(--field-shadow);
}
.field .input-mic > input,
.field .input-mic > textarea,
.voice-dump .input-mic > input,
.voice-dump .input-mic > textarea {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink);
  -webkit-appearance: none;
  appearance: none;
}
.field .input-mic > input {
  padding: 13px 48px 13px 15px;
  min-height: 52px;
}
.field .input-mic > textarea,
.voice-dump .input-mic > textarea {
  padding: 12px 48px 48px 12px;
  resize: none;
}
.input-mic {
  position: relative;
  width: 100%;
  display: block;
}
/* Все поля ввода данных — белые */
.view input[type="text"],
.view input[type="number"],
.view input[type="search"],
.view input[type="email"],
.view input:not([type]),
.view textarea {
  background: #ffffff !important;
  background-color: #ffffff !important;
}
.input-mic > textarea {
  min-height: 220px;
  height: 220px;
  max-height: 220px;
  overflow: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.input-mic > textarea::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#pVoiceDump,
.voice-dump .input-mic > textarea {
  flex: 0 0 auto;
  min-height: 220px;
  height: 220px;
  max-height: 220px;
  resize: none;
  overflow: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.voice-dump .input-mic {
  flex: 0 0 auto;
  min-height: 220px;
}
.input-mic input[inputmode="decimal"],
.input-mic input[inputmode="numeric"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.input-mic input[type="number"]::-webkit-outer-spin-button,
.input-mic input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Микрофон внутри ячейки — как в «Расскажите» */
.mic-infield,
.input-mic > input ~ .mic-infield,
.input-mic > textarea ~ .mic-infield,
.field .mic-infield {
  position: absolute;
  right: 8px;
  z-index: 2;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border-radius: 11px;
  border: 1.5px solid rgba(63, 122, 90, 0.32);
  background: #e8f0ea;
  color: var(--accent-press);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(63, 122, 90, 0.1);
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
  -webkit-appearance: none;
  appearance: none;
  overflow: visible;
  /* центрирование БЕЗ transform — иначе micPulse/active сбрасывают позицию */
  top: 0;
  bottom: 0;
  margin-top: auto;
  margin-bottom: auto;
  transform: none;
}
.input-mic > textarea ~ .mic-infield {
  top: auto;
  bottom: 10px;
  right: 8px;
  margin-top: 0;
  margin-bottom: 0;
  transform: none;
}
/* М/Ж слева от микрофона (не наезжать) */
.input-mic.has-sex-toggle > input,
.input-mic.has-sex-toggle > textarea {
  padding-top: 10px;
  padding-right: 118px;
}
.sex-toggle {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 48px;
  margin-top: auto;
  margin-bottom: auto;
  height: 34px;
  box-sizing: border-box;
  z-index: 3;
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  border-radius: 11px;
  overflow: hidden;
  border: 1.5px solid rgba(63, 122, 90, 0.32);
  background: #e8f0ea;
  box-shadow: 0 2px 8px rgba(63, 122, 90, 0.1);
}
.sex-btn {
  width: 30px;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--accent-press);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}
.sex-btn + .sex-btn {
  border-left: 1px solid rgba(63, 122, 90, 0.28);
}
.sex-btn.is-on {
  background: linear-gradient(165deg, var(--accent-mid, #4f8f6a) 0%, var(--accent) 48%, var(--accent-press) 100%);
  color: #fff;
  box-shadow: none;
}
.sex-btn:active {
  transform: none;
  opacity: 0.92;
}
.onboard-activity-block {
  margin-top: 4px;
}
.onboard-activity-block .section-title {
  margin-bottom: 8px;
}
.onboard-activity-card {
  margin: 0;
  background: #ffffff;
  border: 1.5px solid rgba(28, 43, 36, 0.1);
}
.onboard-activity-card .activity-drum,
.profile-activity-block .activity-drum {
  height: 186px;
  min-height: 186px;
  position: relative;
}
/* «Я»: барабан крутится только после «Изменить» под ним */
.profile-activity-block.is-drum-locked .weight-col {
  overflow: hidden;
  touch-action: none;
  pointer-events: none;
  cursor: default;
}
.activity-drum-toggle {
  display: block;
  width: auto;
  max-width: 100%;
  margin: 8px auto 18px;
  padding: 8px 16px;
  border: 1.5px solid rgba(63, 122, 90, 0.55);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--accent-press);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 1px 0 rgba(63, 122, 90, 0.12);
}
.activity-drum-toggle:active {
  background: rgba(63, 138, 92, 0.12);
  border-color: rgba(47, 100, 70, 0.7);
}
.onboard-activity-card .weight-wheel-cols-single,
.profile-activity-block .weight-wheel-cols-single {
  max-width: none;
  width: 100%;
}
.onboard-activity-card .weight-wheel-line,
.profile-activity-block .weight-wheel-line {
  left: 10px;
  right: 10px;
  height: 58px;
  margin-top: -29px;
}
/* Две строки: крупное наше имя + мелкая расшифровка без переноса */
.weight-opt.activity-opt {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 1.12rem;
  letter-spacing: -0.02em;
  padding: 0 14px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  line-height: 1.1;
  color: rgba(28, 43, 36, 0.42);
}
.weight-opt.activity-opt.weight-opt-dual {
  height: 58px;
  white-space: normal;
  text-overflow: clip;
  gap: 3px;
}
.weight-opt.activity-opt.weight-opt-dual strong {
  font-size: 1.08rem;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  color: inherit;
}
.weight-opt.activity-opt.weight-opt-dual span {
  font-size: 0.7rem;
  font-weight: 550;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  color: rgba(28, 43, 36, 0.38);
}
.weight-opt.activity-opt.is-on {
  color: var(--ink);
}
.weight-opt.activity-opt.weight-opt-dual.is-on strong {
  font-weight: var(--fw-heavy);
  color: var(--ink);
}
.weight-opt.activity-opt.weight-opt-dual.is-on span {
  color: rgba(28, 43, 36, 0.55);
}
.onboard-activity-block.field-miss .onboard-activity-card {
  outline: 2px solid var(--danger);
  outline-offset: 2px;
}
.onboard-why-hint {
  margin: 12px 2px 4px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--ink);
}
.food-note-hint {
  margin: 6px 2px 14px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--muted);
}
.metrics-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
/* Рост/вес/возраст: одна линия полей, высота ~2 строки; цифры сверху слева, «Слушаю…» снизу */
.metrics-row .field.field-compact .input-mic {
  min-height: 56px;
  height: 56px;
}
.metrics-row .field.field-compact .input-mic > input,
.metrics-row .field.field-compact .input-mic > textarea {
  width: 100%;
  min-height: 56px !important;
  height: 56px !important;
  max-height: 56px !important;
  box-sizing: border-box;
  padding: 8px 44px 22px 12px !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  resize: none !important;
  overflow: hidden !important;
  white-space: nowrap;
  text-align: left;
  vertical-align: top;
}
.metrics-row .field.field-compact .input-mic > input ~ .mic-status,
.metrics-row .field.field-compact .input-mic > textarea ~ .mic-status,
.metrics-row .field.field-compact .mic-status {
  top: auto;
  bottom: 5px;
  left: 10px;
  right: 6px;
  margin: 0;
  max-width: none;
  font-size: 10px;
  line-height: 1.1;
  text-align: left;
  z-index: 1; /* за микрофоном */
}
.metrics-row .field.field-compact .input-mic > input ~ .mic-infield,
.metrics-row .field.field-compact .input-mic > textarea ~ .mic-infield,
.metrics-row .field.field-compact .mic-infield {
  top: 0;
  bottom: 0;
  right: 6px;
  margin-top: auto;
  margin-bottom: auto;
  width: 34px;
  height: 34px;
  z-index: 4; /* поверх статуса */
}
.metrics-row .field.field-compact .mic-infield svg {
  width: 17px;
  height: 17px;
}

/* Возраст: та же ячейка input-mic, что у роста/веса; справа кнопка как mic-infield */
.field-age-pick .age-pick-shell {
  min-height: 56px;
  height: 56px;
}
.field-age-pick .age-pick-value-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  min-height: 56px !important;
  height: 56px !important;
  max-height: 56px !important;
  padding: 8px 44px 22px 12px !important;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--ink);
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.field-age-pick .age-pick-value {
  display: block;
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.field-age-pick .age-pick-value.is-placeholder {
  color: rgba(28, 43, 36, 0.38);
  font-weight: 500;
}
/* Файл ico-age-users: картинка + зелёный фильтр (маска PNG в WebView часто пустая) */
.field-age-pick .age-pick-users-ico {
  display: block;
  width: 17px;
  height: 17px;
  object-fit: contain;
  pointer-events: none;
  filter: brightness(0) saturate(100%) invert(35%) sepia(28%) saturate(900%) hue-rotate(95deg) brightness(90%) contrast(90%);
}
#viewOnboard #onboardPanel0 .field-age-pick .age-pick-shell,
#viewProfile .field-age-pick .age-pick-shell {
  min-height: 56px;
  height: 56px;
}
#viewOnboard #onboardPanel0 .field-age-pick .age-pick-value-btn,
#viewProfile .field-age-pick .age-pick-value-btn {
  min-height: 56px !important;
  height: 56px !important;
  max-height: 56px !important;
  padding: 8px 44px 22px 12px !important;
}
.age-wheel .weight-opt-dual strong {
  font-variant-numeric: tabular-nums;
}
/* Имя: высота как была (~2 строки + запас); пример слева сверху; М/Ж и микрофон не наезжают */
#viewOnboard #onboardPanel0 .field-name-with-sex .input-mic {
  min-height: 99px;
  height: 99px;
}
#viewOnboard #onboardPanel0 .field-name-with-sex .input-mic > textarea,
#viewOnboard #pName {
  min-height: 99px !important;
  height: 99px !important;
  max-height: 99px !important;
  padding: 10px 80px 40px 12px !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  resize: none !important;
  overflow: hidden !important;
  text-align: left;
}
#viewOnboard #onboardPanel0 .field.field-compact .input-mic {
  min-height: 56px;
  height: 56px;
}
#viewOnboard #onboardPanel0 .field.field-compact .input-mic > textarea,
#viewOnboard #pHeight,
#viewOnboard #pWeight,
#viewOnboard #pAge {
  width: 100%;
  min-height: 56px !important;
  height: 56px !important;
  max-height: 56px !important;
  box-sizing: border-box;
  padding: 8px 44px 22px 12px !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  resize: none !important;
  overflow: hidden !important;
  white-space: nowrap;
  text-align: left;
}
#viewOnboard #onboardPanel0 .field.field-compact .input-mic > textarea ~ .mic-infield,
#viewOnboard #onboardPanel0 .field.field-compact .mic-infield {
  top: 0;
  bottom: 0;
  right: 6px;
  margin-top: auto;
  margin-bottom: auto;
  width: 34px;
  height: 34px;
  z-index: 4;
}
#viewOnboard #onboardPanel0 .field.field-compact .mic-status {
  top: auto;
  bottom: 5px;
  left: 10px;
  right: 6px;
  max-width: none;
  z-index: 1;
}
.mic-tidy {
  position: absolute;
  right: 48px;
  bottom: 10px;
  z-index: 2;
  height: 34px;
  margin: 0;
  padding: 0 10px;
  max-width: calc(100% - 64px);
  border-radius: 11px;
  border: 1.5px solid rgba(63, 122, 90, 0.32);
  background: #e8f0ea;
  color: var(--accent-press);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(63, 122, 90, 0.1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -webkit-appearance: none;
  appearance: none;
}
.mic-tidy.mic-tidy--priced {
  gap: 7px;
  padding: 0 8px 0 10px;
  justify-content: flex-start;
  text-overflow: clip;
  max-width: calc(100% - 56px);
}
.mic-tidy .action-btn-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mic-tidy .action-btn-charge {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  flex: 0 0 auto;
  font-weight: 800;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}
.mic-tidy .action-btn-bolt {
  font-size: 12px;
  line-height: 1;
  transform: translateY(-0.5px);
}
.mic-tidy .action-btn-n {
  min-width: 1.35ch;
  text-align: left;
  font-variant-numeric: tabular-nums;
}
.mic-tidy .action-btn-n.is-wide {
  min-width: 2.15ch;
}
.mic-tidy:hover {
  background: #dce8e1;
  border-color: rgba(63, 122, 90, 0.5);
}
.mic-tidy:active {
  transform: translateY(2px) scale(0.97);
}
.input-mic.has-tidy > textarea {
  /* Текст на всю ширину; место под кнопки — только снизу, не колонка справа */
  padding: 12px 14px 48px 12px !important;
}
.input-mic.has-tidy > textarea ~ .mic-status {
  max-width: calc(100% - 180px);
}
.mic-infield:hover,
.input-mic > input ~ .mic-infield:hover,
.input-mic > textarea ~ .mic-infield:hover {
  background: #dce8e1;
  border-color: rgba(63, 122, 90, 0.5);
}
.mic-infield:active,
.input-mic > input ~ .mic-infield:active {
  transform: translateY(2px) scale(0.97);
}
.input-mic > textarea ~ .mic-infield:active {
  transform: translateY(2px) scale(0.97);
}
.mic-infield.listening,
.input-mic > input ~ .mic-infield.listening,
.input-mic > textarea ~ .mic-infield.listening {
  background: #d4e5db;
  border-color: var(--accent);
  color: var(--accent-press);
  border-radius: 11px;
  animation: micPulse 1.1s ease-in-out infinite;
  transform: none;
}
.input-mic > input ~ .mic-infield.listening:active,
.field .mic-infield.listening:active {
  transform: translateY(2px) scale(0.97);
}
.mic-infield svg {
  display: block;
  width: 17px;
  height: 17px;
  overflow: visible;
}
.mic-status {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 3;
  margin: 0;
  max-width: calc(100% - 64px);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--accent);
  pointer-events: none;
}
.input-mic > input ~ .mic-status {
  left: 15px;
  top: 0;
  bottom: 0;
  height: fit-content;
  margin-top: auto;
  margin-bottom: auto;
  max-width: calc(100% - 56px);
}
.input-mic > textarea ~ .mic-status {
  left: 12px;
  bottom: 14px;
  top: auto;
  max-width: calc(100% - 56px);
}
.mic-status[data-state="listen"] {
  color: var(--accent-press);
}
.mic-status[data-state="stopped"] {
  color: var(--muted);
}
.mic-status[hidden] {
  display: none !important;
}
.mic-fab,
.mic-fab-ico {
  display: none !important;
}
.mic-field-bar {
  display: none !important;
}
.voice-parse {
  width: 100%;
  margin-top: 12px;
  min-height: 54px;
  height: 54px;
  padding: 14px 20px;
  border-radius: var(--radius-pill);
  border: 0 !important;
  background:
    linear-gradient(180deg, #6aadcf 0%, #3f8fbb 55%, #357aa3 100%) !important;
  color: #ffffff !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: 1.05rem;
  line-height: 1.2;
  white-space: nowrap;
  /* та же «глубина», что у .btn.primary («Далее»), только в синем */
  box-shadow:
    0 12px 28px rgba(47, 143, 208, 0.36),
    0 4px 10px rgba(47, 143, 208, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
#viewOnboard .voice-dump {
  display: flex;
  flex-direction: column;
}
#viewOnboard .voice-dump > .mic-tidy {
  /* до монтирования микрофона кнопка в разметке — прячем, потом JS кладёт её в .input-mic */
  display: none;
}
#viewOnboard .voice-dump .input-mic > .mic-tidy {
  display: inline-flex;
}
@media (hover: hover) {
  .voice-parse:hover {
    background:
      linear-gradient(180deg, #74b5d6 0%, #4698c4 55%, #357aa3 100%) !important;
    filter: none;
    transform: translateY(-1px);
    box-shadow:
      0 14px 30px rgba(47, 143, 208, 0.4),
      0 6px 12px rgba(47, 143, 208, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.48) !important;
  }
}
.voice-parse:active {
  background:
    linear-gradient(180deg, #3f8fbb 0%, #357aa3 100%) !important;
  transform: translateY(1px);
  box-shadow:
    0 6px 14px rgba(47, 143, 208, 0.28),
    0 2px 6px rgba(47, 143, 208, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
  filter: none;
}
.voice-actions .btn {
  min-height: 48px;
  font-size: 13px;
  line-height: 1.25;
  white-space: normal;
  padding: 10px 8px;
}
.voice-actions .btn.listening {
  background: #d8ebe0;
  animation: micPulse 1.1s ease-in-out infinite;
}
.voice-actions[hidden] {
  display: none !important;
}

.dock {
  padding: 12px 18px 22px;
  border-top: 1px solid var(--line);
  background: rgba(255, 251, 247, 0.88);
  backdrop-filter: blur(10px);
}

.btn {
  border: 0;
  border-radius: var(--radius-pill);
  padding: 14px 18px;
  min-height: 52px;
  font: inherit;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease, border-color 0.15s ease, filter 0.15s ease;
  position: relative;
  overflow: hidden;
  /* Android WebView: синий прямоугольник при удержании пальца */
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  outline: none;
  -webkit-touch-callout: none;
}
.btn:focus,
.btn:focus-visible {
  outline: none;
}
.btn.block { width: 100%; margin-bottom: 10px; }
.btn.primary {
  background: linear-gradient(180deg, #55a574 0%, var(--accent) 48%, var(--accent-press) 100%);
  color: #ffffff;
  border: 0;
  box-shadow:
    0 12px 28px rgba(47, 122, 80, 0.36),
    0 4px 10px rgba(47, 122, 80, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
@media (hover: hover) {
  .btn.primary:hover:not(:disabled) {
    background: linear-gradient(180deg, #5fb07e 0%, #459866 48%, var(--accent-press) 100%);
    transform: translateY(-1px);
    box-shadow:
      0 14px 30px rgba(47, 122, 80, 0.4),
      0 6px 12px rgba(47, 122, 80, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.48);
  }
  .btn.secondary:hover:not(:disabled) {
    background: #ffffff;
    border-color: rgba(63, 122, 90, 0.28);
    transform: translateY(-1px);
    box-shadow:
      0 12px 26px rgba(63, 122, 90, 0.16),
      inset 0 1px 0 #fff;
  }
  .btn.ghost:hover:not(:disabled) {
    background: #fff;
    border-color: rgba(28, 43, 36, 0.22);
    transform: translateY(-1px);
  }
}
.btn.primary:active:not(:disabled) {
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-press) 100%);
  transform: translateY(1px);
  box-shadow:
    0 6px 14px rgba(47, 122, 80, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.btn.primary:disabled {
  opacity: 1;
  background: linear-gradient(180deg, #d8ded9 0%, #c9d1cb 100%);
  color: #6a746e;
  border: 0;
  box-shadow: none;
  cursor: default;
  filter: none;
  backdrop-filter: none;
}
/* Скрыть полосы прокрутки — скролл пальцем остаётся */
.view-scroll,
.sheet-body,
.phone {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.view-scroll::-webkit-scrollbar,
.sheet-body::-webkit-scrollbar,
.phone::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.btn.secondary {
  background: #ffffff;
  color: var(--ink);
  border: 1.5px solid rgba(28, 43, 36, 0.12);
  box-shadow:
    0 10px 24px rgba(63, 122, 90, 0.14),
    0 3px 8px rgba(196, 160, 122, 0.12),
    inset 0 1px 0 #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.btn.secondary:active:not(:disabled) {
  background: #f5f8f6;
  transform: translateY(1px);
}
.btn.ghost {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
  box-shadow: none;
}
.btn.ghost:active:not(:disabled) {
  background: var(--accent-soft);
  transform: translateY(0);
}
.btn.danger { color: var(--danger); background: var(--danger-soft); }
.wipe-danger {
  margin-top: 22px;
  background: var(--danger-soft);
  color: var(--danger);
  border: 1px solid rgba(180, 35, 24, 0.35);
  box-shadow: none;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.01em;
}
.wipe-danger:active {
  background: rgba(180, 35, 24, 0.16);
}
.ghost {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 12px;
  padding: 8px 12px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--card);
  font-weight: var(--fw-heavy);
  cursor: pointer;
}
.link {
  border: 0;
  background: none;
  color: var(--accent);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.day-nav {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 0 14px 10px;
}

/* Колёсико дат — без отдельной «панели», на фоне дома */
.date-wheel {
  padding: 4px 0 2px;
  flex-shrink: 0;
  background: transparent;
  box-shadow: none;
  border: 0;
}
.date-wheel-head {
  position: relative;
  display: block;
  margin: 0 14px 2px;
  min-height: 22px;
}
.date-wheel-month {
  margin: 0;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.38);
  pointer-events: none;
}
.date-wheel-today {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 34px;
  padding: 0 12px;
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.94);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 6px 16px rgba(28, 43, 36, 0.1);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  white-space: nowrap;
}
.date-wheel-today:active {
  transform: translateY(-50%) scale(0.97);
}
.date-wheel-today-ico {
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  opacity: 0.75;
}
.date-wheel-today[hidden] {
  display: none !important;
}
.date-wheel-viewport {
  position: relative;
  overflow: hidden;
  touch-action: pan-x;
  min-height: 54px;
}
.date-wheel-slot {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1.5px solid rgba(63, 122, 90, 0.22);
  background: rgba(63, 138, 92, 0.07);
  box-shadow: none;
  pointer-events: none;
  z-index: 0;
}
.date-wheel-viewport::before,
.date-wheel-viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22px;
  z-index: 2;
  pointer-events: none;
}
.date-wheel-viewport::before {
  left: 0;
  background: linear-gradient(90deg, var(--wash-mid), transparent);
}
.date-wheel-viewport::after {
  right: 0;
  background: linear-gradient(270deg, var(--wash-mid), transparent);
}
.date-wheel-track {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0;
  overflow-x: auto;
  scroll-snap-type: none;
  scroll-padding-inline: 50%;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 4px 0 6px;
  outline: none;
  cursor: default;
  touch-action: none;
  user-select: none;
}
.date-wheel-track.is-dragging {
  cursor: grabbing;
}
.date-wheel-track::-webkit-scrollbar {
  display: none;
}
.date-chip {
  flex: 0 0 44px;
  width: 44px;
  scroll-snap-align: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  min-height: 44px;
  height: 44px;
  padding: 2px 0;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
  transform-origin: center center;
  position: relative;
  z-index: 1;
  -webkit-font-smoothing: antialiased;
}
.date-chip-wd {
  font-size: 11px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.02em;
  text-transform: lowercase;
  line-height: 1;
  color: var(--muted);
}
.date-chip-num {
  font-family: var(--font);
  font-size: 1.4rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--ink);
}
.date-chip.is-on {
  z-index: 2;
}
.date-chip.is-on .date-chip-num {
  color: var(--accent-press);
  font-size: 1.38rem;
  font-weight: var(--fw-heavy);
}
.date-chip.is-on .date-chip-wd {
  color: rgba(47, 100, 70, 0.72);
  font-size: 10px;
  font-weight: 700;
}
.date-chip.is-today:not(.is-on) .date-chip-num {
  color: var(--accent);
}
/* Сегодня в центре — тот же мягкий акцент, без «зелёной кнопки» */
.date-chip.is-today.is-on {
  background: transparent;
  box-shadow: none;
  height: 44px;
  min-height: 44px;
  padding: 2px 0;
  margin-bottom: 0;
}
.date-chip.is-today.is-on:active {
  transform: scale(0.98);
  box-shadow: none;
}
.date-chip.is-today.is-on .date-chip-num,
.date-chip.is-today.is-on .date-chip-wd {
  color: var(--accent-press);
}

.stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 0 14px 12px;
}
.stat {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  text-align: center;
}
.stat b { display: block; font-size: 1rem; }
.stat span { font-size: 11px; color: var(--muted); }

#viewHome .home-scroll,
#viewDay #dayBody {
  padding-bottom: calc(84px + var(--safe-bottom)) !important;
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  /* вертикаль — прокрутка; горизонталь отдаём свайпу дня */
  touch-action: pan-y;
}
#viewHome .home-scroll {
  padding-top: 0;
  padding-left: 12px;
  padding-right: 12px;
}
#viewDay.glass-sky .view-scroll {
  padding-left: 12px;
  padding-right: 12px;
}
#viewHome .date-wheel,
#viewDay .date-wheel,
#viewDayCouncil .date-wheel {
  touch-action: pan-y;
}
.day-slide-pane.day-slide-exit-left {
  transition: transform 0.22s ease, opacity 0.22s ease;
  transform: translate3d(-14%, 0, 0);
  opacity: 0.38;
  pointer-events: none;
}
.day-slide-pane.day-slide-exit-right {
  transition: transform 0.22s ease, opacity 0.22s ease;
  transform: translate3d(14%, 0, 0);
  opacity: 0.38;
  pointer-events: none;
}
.day-slide-pane.day-slide-from-right {
  transition: none;
  transform: translate3d(14%, 0, 0);
  opacity: 0.38;
  pointer-events: none;
}
.day-slide-pane.day-slide-from-left {
  transition: none;
  transform: translate3d(-14%, 0, 0);
  opacity: 0.38;
  pointer-events: none;
}
.day-slide-pane.day-slide-in {
  transition: transform 0.24s ease, opacity 0.24s ease;
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .day-slide-pane.day-slide-exit-left,
  .day-slide-pane.day-slide-exit-right,
  .day-slide-pane.day-slide-from-left,
  .day-slide-pane.day-slide-from-right,
  .day-slide-pane.day-slide-in {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
#viewHome .home-dock-space {
  height: 8px;
  width: 100%;
  flex-shrink: 0;
  pointer-events: none;
}#viewMore .view-scroll,
#viewConsult .view-scroll,
#viewSupport .view-scroll,
#viewProfile .view-scroll,
#viewRefund .view-scroll {
  padding-bottom: calc(84px + var(--safe-bottom)) !important;
  min-height: 0;
}
/* Анализ периода: лента + фиксированное поле снизу (как консультация) */
#viewMore.is-period-review #moreBody {
  flex: 1 1 auto;
  min-height: 0;
  padding-left: var(--report-gutter);
  padding-right: var(--report-gutter);
  padding-bottom: calc(28px + var(--safe-bottom)) !important;
  box-sizing: border-box;
}
#viewMore.is-period-review #periodAskComposer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 12;
  flex: 0 0 auto;
  margin-top: auto;
  padding: 8px var(--report-gutter) calc(86px + max(12px, var(--safe-bottom)));
  background: linear-gradient(
    180deg,
    rgba(255, 251, 247, 0) 0%,
    rgba(255, 251, 247, 0.88) 22%,
    var(--wash-mid, #fffbf7) 55%,
    var(--wash-bottom, #d8e8de) 100%
  );
  pointer-events: none;
}
#viewMore.is-period-review #periodAskComposer > * {
  pointer-events: auto;
}
#periodAskComposer[hidden] {
  display: none !important;
}
.period-ask-target {
  display: none !important;
  margin: 0 2px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: rgba(28, 43, 36, 0.55);
}
.period-ask-field {
  margin: 0;
}#viewConsult .consult-chat-scroll,
#viewSupport .consult-chat-scroll,
#viewRefund .consult-chat-scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  padding-left: var(--report-gutter);
  padding-right: var(--report-gutter);
  padding-bottom: calc(28px + var(--safe-bottom)) !important;
  box-sizing: border-box;
  overflow-x: hidden;
}
#viewConsult .consult-composer,
#viewRefund .consult-composer,
#viewSupport .consult-composer {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 12;
  flex: 0 0 auto;
  margin-top: auto;
  padding: 8px var(--report-gutter) calc(86px + max(12px, var(--safe-bottom)));
  background: linear-gradient(
    180deg,
    rgba(255, 251, 247, 0) 0%,
    rgba(255, 251, 247, 0.88) 22%,
    var(--wash-mid, #fffbf7) 55%,
    var(--wash-bottom, #d8e8de) 100%
  );
  pointer-events: none;
}
#viewMore > .thumb-dock,
#viewConsult > .thumb-dock {
  display: none;
}

/* —— Плавающий док: стекло + капсула + «Я» —— */
.float-tabs {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  /* Только --safe-bottom: сырой env() на Android приходит поздно и дёргает панель */
  padding: 10px 16px calc(22px + max(14px, var(--safe-bottom)));
  pointer-events: none;
  background: transparent;
}
.float-tabs[hidden] {
  display: none !important;
}
/* Клавиатура на экранах дневника: таббар не мешает вводу */
html.app-kb-open #appTabBar:not([hidden]) {
  display: none !important;
}/* Composer (консультация / день / период / «сейчас»): без запаса под таббар — ~10px к клавиатуре */
html.app-kb-open #viewConsult .consult-composer,
html.app-kb-open #viewSupport .consult-composer,
html.app-kb-open #viewDayCouncil .day-council-composer,
html.app-kb-open #viewSymptomNow .symptom-now-composer,
html.app-kb-open #viewMore.is-period-review #periodAskComposer,
html.app-kb-open #viewRefund .consult-composer {
  padding: 8px 16px 10px;
}
.float-tabs-row {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
  pointer-events: auto;
}
.float-capsule,
.float-capsule-me {
  display: flex;
  align-items: center;
  min-height: 52px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.48);
  -webkit-backdrop-filter: blur(18px) saturate(1.35);
  backdrop-filter: blur(18px) saturate(1.35);
  border: 1px solid rgba(255, 255, 255, 0.62);
  box-shadow:
    0 10px 28px rgba(28, 43, 36, 0.14),
    0 2px 8px rgba(28, 43, 36, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.75);
  overflow: hidden;
}
.float-capsule {
  flex: 0 0 auto;
  justify-content: center;
  gap: 0;
  padding: 2px 3px;
  width: auto;
}
.float-capsule-me {
  width: 52px;
  flex: 0 0 52px;
  padding: 2px;
  justify-content: center;
}
.float-tab {
  flex: 0 0 auto;
  width: 58px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: 46px;
  padding: 3px 2px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(44, 51, 56, 0.52);
  cursor: pointer;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}
.float-capsule-me .float-tab {
  width: 100%;
  flex: 1 1 auto;
}
.float-tab.is-on {
  background: #ffffff;
  color: #1f2529;
  box-shadow: none;
}
.float-tab.is-on .float-ico svg {
  color: #1f2529;
  opacity: 1;
}
.float-tab.is-on .float-label {
  color: #1f2529;
  font-weight: var(--fw-semibold);
}
.float-tab:not(.is-on) {
  color: rgba(44, 51, 56, 0.5);
}
.float-tab:not(.is-on) .float-ico svg {
  opacity: 1;
}
.float-ico {
  display: grid;
  place-items: center;
  line-height: 0;
  width: 26px;
  height: 26px;
}
.float-ico svg {
  display: block;
  width: 26px;
  height: 26px;
}
.float-label {
  font-family: var(--font);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.profile-chip {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 999px;
  padding: 8px 12px;
  font: inherit;
  font-size: 12px;
  font-weight: var(--fw-heavy);
  cursor: pointer;
  white-space: nowrap;
}
.topbar-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.add-open-btn {
  margin-top: 4px;
  min-height: 64px;
  font-size: 1.05rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  line-height: 1.25;
  padding: 12px 14px;
}
.add-open-btn strong {
  font-family: var(--font); font-weight: var(--fw-heavy); letter-spacing: -0.02em;
  font-size: 1.15rem;
}
.add-open-btn span {
  font-size: 11px;
  font-weight: 600;
  opacity: 0.85;
  text-align: center;
}
.time-card-panel {
  margin-bottom: 12px;
}
.time-card-panel .slot-row {
  margin-bottom: 8px;
}
/* Кнопки слотов участвуют в сетке родителя; «Добавить» — левая ячейка 3-го ряда */
.slot-slots-host {
  display: contents;
}
/* «Добавить» — левая ячейка 3-го ряда; «Как прошёл день» — правая */
.time-card-panel .slot-btn.art-add {
  width: auto;
  margin: 0;
  text-align: left;
  align-items: flex-start;
  grid-column: 1;
}
.time-card-panel .slot-btn.art-council {
  width: auto;
  margin: 0;
  text-align: left;
  align-items: flex-start;
  grid-column: 2;
}
.time-card-title {
  margin: 2px 4px 10px;
  padding: 0;
  border: none;
  background: none;
  color: var(--ink);
  font-family: var(--font);
  font-weight: 550;
  letter-spacing: -0.01em;
  font-size: 1.05rem;
  line-height: 1.25;
  text-transform: none;
  cursor: default;
  user-select: none;
}
.time-card-title strong {
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
}
.day-card-panel.time-card-panel {
  background: linear-gradient(165deg, #fffdf9, #e7f0e8);
}
.chart-bars {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  align-items: end;
  min-height: 0;
  padding: 8px 4px 4px;
  margin-bottom: 4px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
}

.chart-line {
  padding: 8px 4px 4px;
  margin-bottom: 4px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
}

.chart-line-svg {
  width: 100%;
  height: 168px;
  display: block;
}

.chart-line-labels {
  display: grid;
  gap: 0;
  align-items: end;
  justify-items: center;
  padding: 0 0 2px;
}

.chart-line-labels .chart-lab.is-gap {
  color: #a8b3ac;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
}

.chart-line-unit {
  margin: 2px 0 0;
}

.chart-line-hint {
  margin: 2px 0 0;
  font-size: 12px;
  line-height: 1.25;
  color: var(--muted);
}
.chart-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  min-height: 0;
  height: auto;
}
.chart-plot {
  flex: 0 0 auto;
  width: 100%;
  height: 110px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.chart-bar {
  width: 100%;
  max-width: 36px;
  min-height: 4px;
  border-radius: 10px 10px 6px 6px;
  background: linear-gradient(180deg, #5a9a78, var(--accent-press));
  align-self: flex-end;
}
.charts-story-card .chart-bars:not(.chart-bars--dense) .chart-bar {
  max-width: 48px;
}
.chart-bars--wide {
  gap: 6px;
}
.chart-bars--wide .chart-plot {
  height: 110px;
}
.chart-bars--wide .chart-bar {
  max-width: none;
  width: 78%;
}
.chart-val--spacer {
  display: block;
  min-height: 12px;
  visibility: hidden;
}
.chart-bar-water {
  background: linear-gradient(180deg, #6eb3e0, #2176b3);
}
.chart-bar-steps {
  background: linear-gradient(180deg, #5a9a78, #2f6f49);
}
.chart-bar-kcal {
  background: linear-gradient(180deg, #e0a86a, #b36a2f);
}
.chart-bar-weight {
  background: linear-gradient(180deg, #9a8ec4, #5a4f8a);
}
.chart-bar-sleep {
  background: linear-gradient(180deg, #8aa0d4, #4a5f9a);
}
.chart-bar-sleep-q {
  background: linear-gradient(180deg, #b89ad4, #6a4f8a);
}
.chart-val {
  font-size: 10px;
  font-weight: var(--fw-heavy);
  color: var(--ink);
  line-height: 1;
  min-height: 12px;
}
.chart-lab {
  font-size: 10px;
  color: var(--muted);
  font-weight: 700;
}
.hint-line.hidden,
.btn.hidden {
  display: none !important;
}

.welcome-scroll .hero {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  margin: 6px 0 14px;
}
.welcome-scroll .legal-body {
  font-size: 16px;
  line-height: 1.5;
}
.welcome-notice {
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--danger);
  white-space: pre-wrap;
}
#safariEntryIconHint[hidden],
#safariEntryIconHint.hidden {
  display: none;
}
#safariEntryIconHint.is-revealed {
  display: block;
  animation: safari-entry-hint-in 0.35s ease;
}
@keyframes safari-entry-hint-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.welcome-local-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(28, 43, 36, 0.14);
  background: rgba(255, 255, 255, 0.55);
}
.welcome-local-alert[hidden],
#legalStepAlert[hidden] {
  display: none !important;
}
.welcome-local-alert-icon {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  border-radius: 50%;
  border: 1.5px solid rgba(28, 43, 36, 0.55);
  color: rgba(28, 43, 36, 0.85);
  font-size: 15px;
  font-weight: var(--fw-heavy);
  line-height: 23px;
  text-align: center;
}
.welcome-local-alert-text {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  color: rgba(28, 43, 36, 0.82);
  white-space: pre-wrap;
}
.safari-entry-steps {
  margin: 0 0 14px;
  padding-left: 1.15em;
}
#viewSafariEntry .section-title {
  margin: 16px 0 8px;
}
#viewSafariEntry .safari-entry-scroll {
  padding-bottom: 108px;
  overscroll-behavior: none;
}
#viewSafariEntry > .thumb-dock.wizard-dock.safari-entry-dock {
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
#viewSafariEntry .safari-entry-dock-hint {
  margin: 0;
  width: min(360px, 100%);
  text-align: center;
  font-size: 13px;
  line-height: 1.35;
}
#viewSafariEntry > .thumb-dock.wizard-dock #btnSafariEntryOk {
  flex: 0 0 168px;
  width: 168px;
  min-width: 168px;
  max-width: 168px;
  margin: 0 auto;
  min-height: 54px;
  padding-left: 20px;
  padding-right: 20px;
  font-size: 1.05rem;
  font-weight: var(--fw-heavy, 800);
  letter-spacing: -0.02em;
  color: #1f4f34;
  background: rgba(63, 138, 92, 0.22);
  border: 1.5px solid rgba(255, 255, 255, 0.82);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.45) inset,
    0 10px 28px rgba(28, 43, 36, 0.1);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
}
#viewSafariEntry > .thumb-dock.wizard-dock #btnSafariEntryOk:active {
  background: rgba(63, 138, 92, 0.3);
}
.legal-body {
  margin: 0 0 14px;
  font-size: 15px;
  line-height: 1.45;
  color: var(--ink);
  white-space: pre-wrap;
}
.legal-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 4px 0 10px;
}
.legal-title-row .hero {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1.45rem;
  font-weight: var(--fw-heavy);
}
.step-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: var(--accent-soft);
  border: 1px solid rgba(63, 122, 90, 0.28);
  color: var(--accent-press);
  font-size: 12px;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.01em;
  white-space: nowrap;
  line-height: 1.2;
  text-transform: none;
}
.legal-checks {
  display: grid;
  gap: 8px;
  margin: 0 0 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.legal-check {
  position: relative;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  padding: 10px 12px;
  border-radius: 22px;
  border: 2px solid rgba(28, 43, 36, 0.28);
  background: #fff;
  box-shadow: var(--field-shadow);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.legal-checks .legal-check {
  margin: 0;
}
.legal-check:last-child {
  border-bottom: 2px solid rgba(28, 43, 36, 0.28);
}
.legal-check:has(.legal-check-input:checked) {
  border-color: rgba(63, 122, 90, 0.6);
  background: #eef6f1;
  box-shadow:
    0 10px 28px rgba(63, 122, 90, 0.24),
    0 4px 12px rgba(196, 160, 122, 0.24);
}
.legal-check-input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.legal-check-mark {
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  border-radius: 50%;
  border: 2px solid rgba(28, 43, 36, 0.28);
  background: #fff;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 1px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.legal-check-mark::after {
  content: "";
  display: block;
  width: 6px;
  height: 10px;
  margin-top: -1px;
  border: solid transparent;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
  opacity: 0;
}
.legal-check-input:checked + .legal-check-mark {
  background: var(--accent);
  border-color: var(--accent);
}
.legal-check-input:checked + .legal-check-mark::after {
  border-color: #fff;
  opacity: 1;
}
.legal-check-text {
  flex: 1;
  min-width: 0;
  color: var(--ink);
  line-height: 1.32;
}
.home-tip-card,
.home-tip-card.home-day-pulse {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 6px;
  margin-bottom: 14px;
  padding: 15px 16px 13px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.62) 45%, rgba(255, 255, 255, 0.7) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    inset 1px 0 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(28, 43, 36, 0.04),
    0 10px 28px rgba(28, 43, 36, 0.08),
    0 2px 8px rgba(255, 255, 255, 0.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  backdrop-filter: blur(22px) saturate(1.35);
  position: relative;
  overflow: hidden;
}
.home-tip-card.hidden { display: none; }
/* Ярлык — как «ДНЕВНИК» */
.home-pulse-label {
  display: block;
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.5);
  line-height: 1.2;
}
/* Мета — как «Еда и самочувствие за день» */
.home-pulse-meta {
  display: block;
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.55);
  letter-spacing: 0;
}
.home-pulse-meta b {
  font-weight: 550;
  color: inherit;
}
.home-tip-card .home-pulse-title,
.home-tip-card strong.home-pulse-title {
  font-family: var(--font);
  font-weight: 750;
  letter-spacing: -0.02em;
  font-size: 17px;
  color: var(--ink);
  line-height: 1.28;
  overflow-wrap: break-word;
}
.home-tip-card .home-pulse-body,
.home-tip-card #homeTipBody {
  margin-top: 8px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.48;
  color: rgba(28, 43, 36, 0.7);
}
.home-pulse-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 10px;
}
.home-pulse-cta {
  border: 1px solid rgba(255, 255, 255, 0.95);
  margin: 0;
  padding: 9px 16px;
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.72) 100%);
  color: rgba(28, 43, 36, 0.88);
  font: 650 12.5px/1 var(--font);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 4px 12px rgba(28, 43, 36, 0.08);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.home-pulse-cta:active {
  transform: translateY(1px);
}
.day-pill-stat {
  cursor: default;
  pointer-events: none;
}
.day-pill-stat:active,
.day-pill-stat:hover {
  border-color: var(--line);
  background: rgba(255,255,255,0.9);
}
.consult-chat-lead {
  margin-bottom: 12px;
}
.consult-chat-lead.is-hidden {
  display: none;
}
.consult-composer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.consult-composer > * {
  pointer-events: auto;
}
.consult-draft-field {
  text-transform: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
  gap: 0;
  margin: 0;
}
.consult-draft-field .input-mic.has-tidy {
  min-height: 115px;
}
.consult-draft-field textarea,
.consult-draft-field .input-mic > textarea {
  resize: none;
  min-height: 115px;
  height: 115px;
  max-height: 148px;
  overflow-y: auto;
  scrollbar-width: thin;
  margin: 0;
  padding: 12px 14px 48px 12px !important;
  font-size: 14px;
  line-height: 1.35;
  background: #ffffff !important;
}
.consult-draft-field .mic-tidy:disabled {
  opacity: 0.45;
  cursor: default;
}
.consult-answer-sheet {
  z-index: 46;
}
.consult-answer-panel {
  height: 88%;
  max-height: 88%;
  min-height: 0;
}
.consult-answer-body {
  padding: 4px 18px calc(72px + env(safe-area-inset-bottom, 0px));
  overflow: auto;
  flex: 1 1 auto;
  -webkit-overflow-scrolling: touch;
}
.consult-answer-text {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font: inherit;
  font-size: 15px;
  line-height: 1.45;
  color: var(--ink);
}
.legal-link { margin-bottom: 8px; } /* устаревший класс; ссылки — .legal-doc-link */
.legal-doc-card textarea {
  width: 100%;
  min-height: 280px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
}
.day-card-panel {
  border: 1.5px solid rgba(28, 43, 36, 0.12);
  background: linear-gradient(165deg, #fffdf9 0%, #f3f0ea 42%, #e8f1eb 100%);
  border-radius: 22px;
  padding: 10px;
  margin-bottom: 12px;
  box-shadow: var(--field-shadow);
}
/* Красная полоса «Сейчас беспокоит» между блоками на Доме */
.symptom-now-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin: 4px 0 14px;
  padding: 12px 14px;
  border: 0;
  border-radius: 18px;
  background: linear-gradient(165deg, #e87a6a 0%, #d4534a 48%, #c0433c 100%);
  color: #fffaf8;
  box-shadow:
    0 0 0 2px rgba(255, 251, 247, 0.85),
    0 0 0 4px rgba(212, 83, 74, 0.28),
    0 10px 22px rgba(196, 67, 60, 0.28);
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.12s ease, filter 0.15s ease;
}
.symptom-now-bar:active {
  transform: scale(0.98);
  filter: brightness(0.96);
}
.symptom-now-bar-mark {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.22);
  font-size: 1.15rem;
  font-weight: var(--fw-heavy);
  line-height: 1;
}
.symptom-now-bar-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 2px;
}
.symptom-now-bar-copy strong {
  font-size: 1rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.symptom-now-bar-copy small {
  font-size: 12px;
  font-weight: 550;
  opacity: 0.92;
  line-height: 1.25;
}
.symptom-now-bar-go {
  flex: 0 0 auto;
  font-size: 1.15rem;
  font-weight: 700;
  opacity: 0.9;
}

.wipe-data-bar {
  margin: 10px 0 20px;
  border: 1.5px solid rgba(255, 220, 210, 0.85);
  background: rgba(224, 122, 95, 0.22);
  color: var(--ink);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 10px 28px rgba(28, 43, 36, 0.07);
}
.backup-data-bar {
  margin: 10px 0 0;
  border: 1.5px solid rgba(210, 228, 218, 0.9);
  background: rgba(63, 138, 92, 0.16);
  color: var(--ink);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 10px 28px rgba(28, 43, 36, 0.07);
}
.backup-data-bar .symptom-now-bar-mark {
  background: rgba(47, 111, 73, 0.88);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
.backup-data-bar .symptom-now-bar-copy strong {
  color: var(--ink);
}
.backup-data-bar .symptom-now-bar-copy small {
  color: rgba(28, 43, 36, 0.65);
  opacity: 1;
}
#btnBackupRestore.backup-data-bar {
  margin-bottom: 4px;
  border-color: rgba(255, 228, 180, 0.95);
  background: rgba(232, 188, 90, 0.28);
}
#btnBackupRestore.backup-data-bar .symptom-now-bar-mark {
  background: rgba(196, 146, 48, 0.92);
  color: #fff;
}
.profile-backup-file-link {
  display: block;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(28, 43, 36, 0.55);
  font: inherit;
  font-size: 13px;
  line-height: 1.35;
  text-align: center;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.backup-nudge-card {
  margin: 6px 0 14px;
  padding: 16px 52px 14px 16px;
  border-radius: 22px;
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(255, 210, 200, 0.7) 0%, transparent 55%),
    radial-gradient(110% 100% at 0% 100%, rgba(255, 228, 214, 0.75) 0%, transparent 58%),
    linear-gradient(165deg, #fff6f2 0%, #f8f0ee 100%);
  box-shadow:
    0 12px 28px rgba(150, 90, 80, 0.12),
    0 4px 12px rgba(196, 100, 80, 0.1);
  display: grid;
  gap: 12px;
  position: relative;
  overflow: hidden;
}
.home-icon-nudge-card {
  margin: 6px 0 14px;
  padding: 16px 16px 14px;
  border-radius: 22px;
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(186, 220, 255, 0.7) 0%, transparent 55%),
    radial-gradient(110% 100% at 0% 100%, rgba(220, 236, 255, 0.75) 0%, transparent 58%),
    linear-gradient(165deg, #f4f8ff 0%, #eef4fb 100%);
  box-shadow:
    0 12px 28px rgba(90, 120, 160, 0.12),
    0 4px 12px rgba(100, 140, 190, 0.1);
  display: grid;
  gap: 12px;
  position: relative;
  overflow: hidden;
}
.home-icon-nudge-card.hidden { display: none; }
.home-icon-nudge-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.home-icon-nudge-mark {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(47, 111, 160, 0.9);
  color: #f7fbff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
.home-icon-nudge-mark svg { display: block; }
.home-icon-nudge-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 6px;
}
.home-icon-nudge-copy strong {
  font-family: var(--font);
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  font-size: 1.2rem;
  color: var(--ink);
  line-height: 1.25;
}
.home-icon-nudge-copy > span {
  font-size: 14px;
  line-height: 1.45;
  color: rgba(40, 52, 62, 0.82);
}
.home-icon-nudge-steps {
  margin: 0;
  padding: 0 0 0 1.15em;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(40, 52, 62, 0.78);
}
.home-icon-nudge-steps li { margin: 0 0 4px; }
.home-icon-nudge-actions {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 48px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 8px 20px rgba(28, 43, 36, 0.06);
  overflow: hidden;
}
.home-icon-nudge-btn {
  flex: 1;
  margin: 0;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.home-icon-nudge-btn:active {
  background: rgba(28, 43, 36, 0.04);
}
.home-icon-nudge-split {
  width: 1px;
  align-self: stretch;
  margin: 12px 0;
  background: rgba(28, 43, 36, 0.14);
  flex: 0 0 1px;
}
.backup-nudge-card.hidden { display: none; }
.backup-nudge-main {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.backup-nudge-mark {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(212, 83, 74, 0.92);
  color: #fffaf8;
  font-size: 1.15rem;
  font-weight: var(--fw-heavy);
  line-height: 1;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
  pointer-events: none;
}
.backup-nudge-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.backup-nudge-copy strong {
  font-family: var(--font);
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  font-size: 1.2rem;
  color: var(--ink);
  line-height: 1.25;
}
.backup-nudge-copy > span {
  font-size: 14px;
  line-height: 1.45;
  color: rgba(40, 52, 62, 0.82);
}
.backup-nudge-actions {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 48px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 8px 20px rgba(28, 43, 36, 0.06);
  overflow: hidden;
}
.backup-nudge-btn {
  flex: 1;
  margin: 0;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.backup-nudge-btn:active {
  background: rgba(28, 43, 36, 0.04);
}
.backup-nudge-split {
  width: 1px;
  align-self: stretch;
  margin: 12px 0;
  background: rgba(28, 43, 36, 0.14);
  flex: 0 0 1px;
}
.wipe-data-bar .symptom-now-bar-mark {
  background: rgba(224, 122, 95, 0.85);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
.wipe-data-bar .symptom-now-bar-copy strong {
  color: var(--ink);
}
.wipe-data-bar .symptom-now-bar-copy small {
  color: rgba(28, 43, 36, 0.65);
  opacity: 1;
}
.wipe-sheet-warn {
  text-align: left;
  line-height: 1.45;
}
.wipe-sheet-title {
  color: #e53935 !important;
}
.wipe-action-keep {
  color: #fff !important;
  background: #2f9e54 !important;
}
.wipe-action-keep:active {
  background: #278a48 !important;
  filter: brightness(0.96);
}

#viewSymptomNow > .topbar {
  flex-shrink: 0;
  position: relative;
  z-index: 7;
  background: var(--wash-top) !important;
  box-shadow: none;
  padding-bottom: 8px;
}
#viewSymptomNow .symptom-now-scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  padding-top: 8px;
  padding-left: var(--report-gutter);
  padding-right: var(--report-gutter);
  padding-bottom: calc(28px + var(--safe-bottom)) !important;
  box-sizing: border-box;
  overflow-x: hidden;
}
#viewSymptomNow .symptom-now-composer {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 12;
  flex: 0 0 auto;
  margin-top: auto;
  padding: 8px var(--report-gutter) calc(86px + max(12px, var(--safe-bottom)));
  background: linear-gradient(
    180deg,
    rgba(255, 251, 247, 0) 0%,
    rgba(255, 251, 247, 0.88) 22%,
    var(--wash-mid, #fffbf7) 55%,
    var(--wash-bottom, #d8e8de) 100%
  );
  pointer-events: none;
}
#viewSymptomNow .symptom-now-composer > * {
  pointer-events: auto;
}
#viewSymptomNow .symptom-now-field {
  margin: 0;
  text-transform: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
  gap: 0;
}
#viewSymptomNow .symptom-now-field .input-mic.has-tidy {
  min-height: 115px;
}
#viewSymptomNow .symptom-now-field .input-mic.has-tidy > textarea,
#viewSymptomNow #symptomNowInput {
  min-height: 115px !important;
  height: 115px !important;
  max-height: 148px !important;
  padding: 12px 14px 48px 12px !important;
  resize: none !important;
  overflow-y: auto !important;
  font-size: 14px;
  line-height: 1.35;
  background: #ffffff !important;
  margin: 0;
}
#viewSymptomNow .mic-tidy-save {
  right: 48px;
  bottom: 10px;
}
#viewSymptomNow .mic-tidy-ask {
  right: 128px;
  bottom: 10px;
}
#viewSymptomNow .mic-tidy-ask.mic-tidy--priced {
  right: 136px;
}
#viewSymptomNow .mic-tidy-ask:disabled,
#viewSymptomNow .mic-tidy-save:disabled {
  opacity: 0.45;
  cursor: default;
}
#viewSymptomNow .symptom-now-lead {
  margin: 0 0 12px;
}
#viewSymptomNow .symptom-now-lead.is-hidden {
  display: none;
}
.feel-follow-sheet .feel-follow-panel {
  max-height: none;
}
.feel-follow-sheet .sheet-soft-hint {
  margin: 0 4px 16px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--muted);
}
.feel-follow-sheet .weight-sheet-foot {
  margin-top: 0;
}
.day-card-panel .day-card-grid {
  margin: 0;
}
/* Главная: «Мои показатели» — плитки с каёмкой и полоской */
#viewHome .day-card-panel:not(.time-card-panel) .day-stat {
  min-height: 118px;
  padding: 12px 12px 11px;
}
.day-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 8px;
}
.day-card-head .time-card-title {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.day-card-go {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.92);
  color: rgba(40, 52, 62, 0.65);
  box-shadow: 0 2px 8px rgba(28, 43, 36, 0.1);
  cursor: pointer;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s ease, color 0.12s ease;
}
.day-card-go:active {
  background: rgba(255, 255, 255, 1);
  color: rgba(40, 52, 62, 0.85);
  transform: none;
  box-shadow: 0 2px 8px rgba(28, 43, 36, 0.1);
}
.day-card-go svg {
  width: 16px;
  height: 16px;
  display: block;
  margin-right: -1px;
}
.day-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.day-pill {
  background: rgba(255,255,255,0.9);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  text-align: left;
  font: inherit;
  color: var(--ink);
  cursor: pointer;
  width: 100%;
}
.day-pill:active, .day-pill:hover { border-color: var(--accent); background: #fff; }
.day-pill b { display: block; font-size: 0.95rem; }
.day-pill span { font-size: 11px; color: var(--muted); }
.day-stat {
  position: relative;
  overflow: hidden;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  border-radius: 22px;
  padding: 12px 12px 11px;
  text-align: left;
  min-height: 118px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 2px;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 8px 18px rgba(28, 43, 36, 0.07);
}
.day-stat-title {
  position: relative;
  z-index: 1;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.01em;
  color: inherit;
  line-height: 1.2;
}
.day-stat b {
  position: relative;
  z-index: 1;
  font-family: var(--font);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: 1.55rem;
  line-height: 1.05;
  margin-top: 6px;
  color: inherit;
  align-self: end;
}
.day-stat-status {
  position: relative;
  z-index: 1;
  justify-self: start;
  align-self: flex-start;
  margin-top: 2px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
  color: var(--muted);
}
.day-stat-status.st-warn {
  background: transparent;
  color: #b36a2f;
}
.day-stat-status.st-void {
  background: transparent;
  color: var(--muted);
}
.day-stat-status.st-ok {
  background: transparent;
  color: #2f6f49;
}
.day-stat.tone-water .day-stat-status.st-ok {
  color: #1e5f8a;
}
.day-stat.tone-steps .day-stat-status.st-ok,
.day-stat.tone-weight .day-stat-status.st-ok {
  color: #2f6f49;
}
.day-stat-status.st-mid {
  background: transparent;
  color: #8a6a12;
}
.day-stat-bar {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 8px;
  height: 7px;
  border-radius: 999px;
  background: rgba(28, 43, 36, 0.1);
  overflow: hidden;
}
.day-stat-bar > i {
  display: block;
  height: 100%;
  border-radius: inherit;
  width: 0;
  transition: width 0.25s ease;
}
.day-stat-bar--ghost {
  visibility: hidden;
  pointer-events: none;
}
.day-stat.is-empty b {
  opacity: 0.4;
  font-weight: 800;
  font-size: 1.35rem;
}
.day-stat.tone-water {
  color: #154a6e;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(110, 179, 224, 0.35), transparent 58%),
    linear-gradient(155deg, #f0f8fd 0%, #c4e2f5 100%);
}
.day-stat.tone-water .day-stat-bar > i {
  background: linear-gradient(90deg, #9ed0ec, #2176b3);
}
.day-stat.tone-food {
  background: linear-gradient(160deg, #eef6ea, #d8ebcf);
}
.day-stat.tone-kcal {
  color: #6a3d0e;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(224, 168, 106, 0.35), transparent 58%),
    linear-gradient(155deg, #fff8f0 0%, #f3d4ae 100%);
}
.day-stat.tone-kcal .day-stat-bar > i {
  background: linear-gradient(90deg, #efc08a, #b36a2f);
}
.day-stat.tone-meds { background: linear-gradient(160deg, #f3eef8, #e0d4f0); }
.day-stat.tone-feel { background: linear-gradient(160deg, #fff6ec, #ffe2c4); }
.day-stat.tone-mood { background: linear-gradient(160deg, #fff0f2, #ffd6de); }
.day-stat.tone-steps {
  color: #1f4d32;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(90, 154, 120, 0.32), transparent 58%),
    linear-gradient(155deg, #f0faf3 0%, #c8ebc8 100%);
}
.day-stat.tone-steps .day-stat-bar > i {
  background: linear-gradient(90deg, #8ed2a8, #2f6f49);
}
.day-stat.tone-stool { background: linear-gradient(160deg, #f7f0e8, #ead9c6); }
.day-stat.tone-weight {
  color: #3f3568;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(154, 142, 196, 0.35), transparent 58%),
    linear-gradient(155deg, #f6f1fc 0%, #e4d6f6 100%);
}
.day-stat.tone-weight .day-stat-bar > i {
  background: linear-gradient(90deg, #c4b4e8, #5a4f8a);
}
.slot-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
  align-items: start; /* не растягивать соседа по высоте */
}
.slot-btn {
  position: relative;
  overflow: hidden;
  border: var(--field-border);
  background: #fff;
  border-radius: 18px;
  padding: 32px 12px 12px; /* было 14px сверху — вниз на ~1 строку заголовка */
  font: inherit;
  font-weight: var(--fw-heavy);
  color: var(--ink); /* как у .tile — иначе Safari красит текст кнопки системным синим */
  cursor: pointer;
  text-align: left;
  /* высота = .tile.tile-with-art («Вес» на экране «Утро»), НЕ ширина */
  min-height: 108px !important;
  height: 108px !important;
  max-height: 108px !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-shadow: var(--field-shadow);
  box-sizing: border-box;
}
.time-card-panel .slot-btn,
.time-card-panel .slot-btn.art-morning,
.time-card-panel .slot-btn.art-lunch,
.time-card-panel .slot-btn.art-snack,
.time-card-panel .slot-btn.art-evening,
.time-card-panel .slot-btn.art-add,
.time-card-panel .slot-btn.art-council {
  min-height: 108px !important;
  height: 108px !important;
  max-height: 108px !important;
}
.slot-btn b {
  /* 1 в 1 с .tile.tile-with-art strong («Сон») */
  position: relative;
  z-index: 2;
  font-family: var(--font);
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  font-size: 1.15rem;
  line-height: 1.15;
  color: var(--ink);
}
.slot-btn small,
.slot-btn small.slot-hint {
  position: relative;
  z-index: 2;
  display: block;
  margin-top: 4px;
  font-weight: 600;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.3;
  padding-right: 4px; /* текст может заходить на картинку до правого края */
  white-space: normal;
  overflow: visible;
  max-width: none;
}
/* Ровно ряды подсказки: каждая строка без переноса внутри */
.slot-btn .slot-hint-line {
  display: block;
  white-space: nowrap;
  overflow: visible;
}
.slot-art {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 1;
}
.slot-btn.art-add .slot-art,
.slot-btn.art-council .slot-art {
  inset: auto;
  top: 3px;
  right: -32px;
  width: 100px;
  height: 100px;
  z-index: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; /* масштаб, без растягивания */
  filter: drop-shadow(0 4px 10px rgba(28, 43, 36, 0.12));
}
.slot-btn.art-morning {
  background: linear-gradient(165deg, #fff6e8 0%, #ffe2b8 45%, #f7d9a8 100%);
}
.slot-btn.art-lunch {
  background: linear-gradient(165deg, #eef6ea 0%, #d8ebcf 55%, #c9e0bc 100%);
}
.slot-btn.art-snack {
  background: linear-gradient(165deg, #eef3f8 0%, #d9e6f2 55%, #c8daf0 100%);
}
.slot-btn.art-snack b {
  line-height: 1.12;
}
.slot-btn.art-evening {
  background: linear-gradient(165deg, #e8e4f2 0%, #cfc6e4 50%, #b7a8d4 100%);
}
.slot-btn.art-add {
  background: linear-gradient(165deg, #fff8f2 0%, #f0e6dc 48%, #e4efe8 100%);
}
.slot-btn.art-council {
  /* итог дня — тёплый янтарь (не сирень вечера), дневная картинка */
  background: linear-gradient(165deg, #ffe9d2 0%, #f6c89a 48%, #e8a86a 100%);
  border: var(--field-border);
  box-shadow: var(--field-shadow);
  padding: 16px 12px 20px; /* текст выше нижней кромки */
  justify-content: flex-start;
}
.slot-btn.art-council small.slot-hint {
  margin-top: 2px;
  line-height: 1.15;
  color: rgba(110, 60, 20, 0.78);
}
.slot-btn.art-council b {
  line-height: 1.12;
}
.council-packet {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 11px;
  line-height: 1.35;
  max-height: 220px;
  overflow: auto;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  margin: 0 0 10px;
}
.council-packet-details {
  margin: 8px 0 12px;
}
.council-packet-details summary {
  cursor: pointer;
  font-size: 13px;
  margin-bottom: 8px;
}
/* Разбор дня: лента сверху, поле уточнения снизу над доком — как консультация */
#viewDayCouncil {
  overflow-x: hidden;
  min-width: 0;
}
#viewDayCouncil > .topbar {
  flex-shrink: 0;
  position: relative;
  z-index: 7;
  background: var(--wash-top) !important;
  box-shadow: none;
  padding-bottom: 8px;
}
#viewDayCouncil .day-council-scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding-top: 8px;
  padding-left: var(--report-gutter);
  padding-right: var(--report-gutter);
  padding-bottom: calc(28px + var(--safe-bottom)) !important;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}
#viewDayCouncil #dayCouncilReport,
#viewDayCouncil .council-report,
#viewDayCouncil .council-section,
#viewDayCouncil .council-p,
#viewDayCouncil .council-list,
#viewDayCouncil .council-list li,
#viewDayCouncil .day-council-has-report-hint,
#viewDayCouncil #dayCouncilThread {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
}
#viewDayCouncil .day-council-composer {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 12;
  flex: 0 0 auto;
  margin-top: auto;
  padding: 8px var(--report-gutter) calc(86px + max(12px, var(--safe-bottom)));
  background: linear-gradient(
    180deg,
    rgba(255, 251, 247, 0) 0%,
    rgba(255, 251, 247, 0.88) 22%,
    var(--wash-mid, #fffbf7) 55%,
    var(--wash-bottom, #d8e8de) 100%
  );
  pointer-events: none;
}
#viewDayCouncil .day-council-composer > * {
  pointer-events: auto;
}
#viewDayCouncil .day-council-draft {
  position: relative;
  margin: 0;
  text-transform: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
  gap: 0;
}
#viewDayCouncil .day-council-draft .input-mic.has-tidy {
  min-height: 115px;
}
#viewDayCouncil #dayCouncilQuestion,
#viewDayCouncil .day-council-draft > textarea,
#viewDayCouncil .day-council-draft .input-mic > textarea {
  min-height: 115px !important;
  height: 115px !important;
  max-height: 148px !important;
  font-size: 14px;
  line-height: 1.35;
  resize: none !important;
  overflow-y: auto;
  scrollbar-width: thin;
  opacity: 1 !important;
  background: #ffffff !important;
  padding: 12px 14px 48px 12px !important;
  margin: 0;
}
#viewDayCouncil .day-council-draft .mic-tidy:disabled {
  opacity: 0.45;
  cursor: default;
}
.council-day-label {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  color: var(--muted);
}
.council-day-label strong {
  color: var(--ink);
  font-weight: var(--fw-heavy);
}
.service-refresh-round {
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #3f7a5a;
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(63, 122, 90, 0.28);
  -webkit-tap-highlight-color: transparent;
}
.topbar-with-back .service-refresh-round {
  grid-column: 3;
  justify-self: end;
}
.service-refresh-round:active {
  filter: brightness(0.96);
}
.service-refresh-round:disabled {
  opacity: 0.45;
  cursor: default;
}
.service-refresh-round[hidden] {
  display: none !important;
}
.council-thread {
  margin-top: 8px;
}
.council-thread-head {
  margin: 20px 0 12px;
  font-size: 12px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}
.council-thread-list {
  display: grid;
  gap: 14px;
}
.council-chat {
  display: grid;
  gap: 6px;
}
.council-chat-who {
  margin: 0;
  font-size: 11px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.council-chat--user .council-chat-who {
  color: var(--accent-press);
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.council-chat-when {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
}
.council-chat-text {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.council-chat--system {
  display: grid;
  justify-items: center;
  margin: 10px 0 4px;
  padding: 0 4px;
}
.council-chat--system .council-chat-who {
  justify-content: center;
  text-align: center;
  color: rgba(28, 43, 36, 0.45);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
}
.council-chat--system .council-chat-body {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid rgba(154, 52, 18, 0.18);
  background: rgba(255, 247, 237, 0.88);
  box-shadow: none;
  text-align: center;
}
.council-chat--system .council-chat-text,
.council-chat--system .council-p {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 550;
  color: rgba(120, 53, 15, 0.92);
  text-align: center;
}
.refund-closed-note {
  display: none !important;
}
#viewRefund.is-refund-closed .consult-composer {
  display: none !important;
}
#viewRefund .refund-closed-foot {
  position: relative;
  z-index: 12;
  flex: 0 0 auto;
  margin-top: auto;
  padding: 8px var(--report-gutter) calc(86px + max(12px, var(--safe-bottom)));
  display: flex;
  justify-content: center;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 251, 247, 0) 0%,
    rgba(255, 251, 247, 0.88) 22%,
    var(--wash-mid, #fffbf7) 55%,
    var(--wash-bottom, #d8e8de) 100%
  );
}
#viewRefund .refund-closed-foot[hidden] {
  display: none !important;
}
#viewRefund .refund-closed-foot .weight-actions {
  pointer-events: auto;
}
#viewRefund.glass-sky .refund-closed-foot {
  background: linear-gradient(
    180deg,
    rgba(235, 228, 216, 0) 0%,
    rgba(235, 228, 216, 0.55) 28%,
    rgba(228, 235, 230, 0.92) 100%
  );
}
html.app-kb-open #viewRefund .refund-closed-foot {
  padding: 8px 16px 10px;
}
.topbar-title-stack {
  grid-column: 2;
  display: grid;
  gap: 2px;
  justify-items: center;
  min-width: 0;
}
.topbar-title-stack h1 {
  grid-column: auto;
}
.topbar-sub {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--muted);
  line-height: 1.2;
}

/* Облако «Вы»: тело + хвостик — один силуэт, обводка без разрыва */
.council-speech {
  --speech-fill: #fffef9;
  --speech-line: rgba(63, 122, 90, 0.34);
  position: relative;
  margin: 2px 0 18px 2px;
  width: fit-content;
  max-width: 100%;
  /* обводка по контуру целиком (облако + хвостик), без стыка линий */
  filter:
    drop-shadow(0 0 0.55px var(--speech-line))
    drop-shadow(0 0 0.55px var(--speech-line))
    drop-shadow(0 0 0.55px var(--speech-line))
    drop-shadow(0 6px 12px rgba(63, 122, 90, 0.12));
}
.council-speech-body {
  position: relative;
  z-index: 1;
  padding: 12px 14px;
  border-radius: 18px;
  background: var(--speech-fill);
  border: 0;
  box-shadow: none;
}
.council-speech-body::after {
  display: none;
}
.council-speech-tail {
  position: absolute;
  left: 18px;
  bottom: -9px;
  width: 16px;
  height: 11px;
  background: var(--speech-fill);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  z-index: 2;
  pointer-events: none;
  /* чуть заходит в тело — без щели у основания */
  margin: 0;
  transform: translateY(-1px);
}
.council-chat--user .council-chat-text {
  position: relative;
  z-index: 1;
}
.council-chat--ai .council-chat-body {
  display: grid;
  gap: 12px;
}
.council-chat--ai .council-chat-body .council-report {
  gap: 14px;
}
/* Мессенджер: «Вы» справа, ответ консилиума слева на всю колонку */
.council-chat--out {
  justify-items: start;
}
.council-chat--out .council-chat-who {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  text-align: left;
  color: var(--accent-alt-press);
}
.council-chat--out .council-chat-body {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}
.council-chat-pending {
  margin: 0;
  font-size: 14px;
  color: var(--muted);
  font-style: italic;
  min-height: 1.55em;
}
.council-loading.js-wait-line {
  min-height: 1.55em;
}
.council-report {
  display: grid;
  gap: 22px;
}
.council-section {
  display: grid;
  gap: 12px;
}
.council-section-title {
  margin: 0;
  font-family: var(--font);
  font-size: 1.08rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink);
}
.council-subtitle {
  margin: 4px 0 0;
  font-family: var(--font);
  font-size: 0.98rem;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--accent-press);
}
.council-p {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
  overflow-wrap: anywhere;
  word-break: break-word;
}
.council-list {
  margin: 0;
  padding: 0 0 0 1.15rem;
  display: grid;
  gap: 10px;
  list-style: disc;
}
.council-list li {
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
}
.council-table {
  display: grid;
  gap: 0;
  margin: 4px 0 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.council-table-row {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 0;
  border-top: 1px solid rgba(28, 43, 36, 0.08);
}
.council-table-row:first-child {
  border-top: 0;
}
.council-table-row.is-head {
  background: rgba(63, 122, 90, 0.08);
}
.council-table-row.is-head .council-table-cell {
  font-weight: var(--fw-heavy);
  color: var(--ink);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.council-table-cell {
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 650;
  color: var(--ink);
  word-break: break-word;
}
.council-table-cell + .council-table-cell {
  border-left: 1px solid rgba(28, 43, 36, 0.08);
}
.council-loading,
.council-error,
.council-empty {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}
.council-error {
  color: #8b2e2e;
}
.council-ai {
  margin: 0 0 12px;
}
.council-ai-text {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 13px;
  line-height: 1.45;
  max-height: min(70vh, 640px);
  overflow: auto;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  margin: 0;
  font-family: inherit;
}
.chart-bar-kcal {
  background: linear-gradient(180deg, #e0a86a, #b36a2f);
}
.metric-table {
  display: grid;
  gap: 8px;
  margin: 0 0 10px;
}
.metric-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--card);
}
.metric-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.metric-main strong {
  font-size: 14px;
  font-weight: var(--fw-heavy);
}
.metric-fact {
  font-size: 12px;
  color: var(--muted);
  font-weight: 650;
}
.traffic {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.traffic.tl-ok {
  background: #c9edd6;
  color: #17633a;
}
.traffic.tl-edge {
  background: #ffe2a8;
  color: #8a5208;
}
.traffic.tl-rare {
  background: #fff0cc;
  color: #9a6b10;
}
.traffic.tl-low {
  background: #ffd4c8;
  color: #9a3d22;
}
.traffic.tl-unk {
  background: #e8ebe9;
  color: #5a6b62;
}

.charts-screen {
  display: grid;
  gap: 12px;
  padding-bottom: 28px;
}
.charts-period-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 0 2px;
}
.charts-period-head strong {
  flex: 1;
  text-align: center;
  font-size: 1.12rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  color: var(--ink);
}
.charts-period-head .back-round {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border: var(--field-border);
  background: #fff;
  box-shadow: var(--field-shadow);
  color: var(--ink);
  opacity: 1;
}
.charts-period-head .back-round:disabled {
  opacity: 1;
  pointer-events: auto;
}
.charts-scale-pills {
  display: flex;
  gap: 6px;
  /* Не overflow-x: auto — на Android обрезает box-shadow кнопок → серая «полоска» с подрезкой по бокам */
  overflow: visible;
  padding: 2px 1px 6px;
}
.charts-scale-btn {
  flex: 1 1 0;
  min-width: 0;
  border: var(--field-border);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 11px;
  font-weight: var(--fw-semibold);
  padding: 8px 4px;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: var(--field-shadow);
}
.charts-scale-btn.is-on {
  background: #2c3338;
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 18px rgba(28, 43, 36, 0.22);
}
.charts-story-card {
  background: #fff;
  border: var(--field-border);
  border-radius: 22px;
  padding: 14px;
  display: grid;
  gap: 10px;
  box-shadow: var(--field-shadow);
}
.charts-story-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
}
.charts-story-avg {
  margin: 0;
  font-size: 13px;
  font-weight: 650;
  color: var(--muted);
}
.charts-story-card--food .charts-food {
  margin-top: 0;
}
.charts-story-card--food .section-title {
  margin-top: 0;
}
.energy-corridor-card {
  gap: 10px;
}
.energy-gauge {
  display: grid;
  gap: 12px;
  margin-top: 4px;
}
.energy-gauge-track {
  position: relative;
  height: 28px;
  border-radius: 999px;
  background: #eef3ef;
  border: 1px solid rgba(28, 43, 36, 0.08);
  overflow: visible;
}
.energy-gauge-band {
  position: absolute;
  top: 5px;
  bottom: 5px;
  border-radius: 999px;
  background: rgba(63, 122, 90, 0.22);
}
.energy-gauge-pin {
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-left: -5px;
  border-radius: 50%;
  transform: translateY(-50%);
  z-index: 2;
  box-sizing: border-box;
  border: 2px solid #fff;
}
.energy-gauge-pin-lose {
  background: #c4a07a;
}
.energy-gauge-pin-mid {
  width: 12px;
  height: 12px;
  margin-left: -6px;
  background: var(--accent);
}
.energy-gauge-pin-gain {
  background: #7a9e8a;
}
.energy-gauge-marker {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}
.energy-gauge-marker-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #e07a5f;
  border: 2.5px solid #fff;
  box-shadow: 0 2px 8px rgba(28, 43, 36, 0.22);
}
.energy-gauge-marker.is-in .energy-gauge-marker-dot {
  background: var(--accent-press);
}
.energy-gauge-marker.is-below .energy-gauge-marker-dot,
.energy-gauge-marker.is-above .energy-gauge-marker-dot {
  background: #e07a5f;
}
.energy-gauge-marker-label {
  position: absolute;
  top: -20px;
  font-size: 11px;
  font-weight: var(--fw-semibold);
  color: var(--ink);
  white-space: nowrap;
  letter-spacing: -0.02em;
  padding: 1px 6px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
}
.energy-gauge-tri {
  position: relative;
  min-height: 38px;
  margin-top: 2px;
}
.energy-gauge-tri-item {
  position: absolute;
  top: 0;
  display: grid;
  gap: 2px;
  width: max-content;
  max-width: 36%;
  text-align: center;
  transform: translateX(-50%);
  box-sizing: border-box;
}
.energy-gauge-tri-item.is-mid {
  text-align: center;
  z-index: 1;
}
.energy-gauge-tri-item.is-start {
  text-align: center;
}
.energy-gauge-tri-item.is-end {
  text-align: center;
}
.energy-gauge-tri-item strong {
  font-size: 15px;
  font-weight: var(--fw-heavy);
  color: var(--ink);
  letter-spacing: -0.02em;
}
.energy-gauge-tri-item span {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.energy-corridor-summary {
  margin: 2px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
}
.energy-corridor-avg,
.energy-corridor-note {
  margin: 0;
}
.energy-corridor-note {
  line-height: 1.4;
}
.bmi-corridor-card .energy-gauge-track {
  background: #eef2f6;
  border-color: rgba(40, 62, 84, 0.1);
}
.bmi-corridor-card .energy-gauge-band {
  background: rgba(90, 122, 150, 0.3);
}
.bmi-corridor-card .energy-gauge-pin-lose {
  background: #9aa8b8;
}
.bmi-corridor-card .energy-gauge-pin-mid {
  background: #5a7a96;
}
.bmi-corridor-card .energy-gauge-pin-gain {
  background: #7a8fa3;
}
.bmi-corridor-card .energy-gauge-marker.is-in .energy-gauge-marker-dot {
  background: #4a6a82;
}
.charts-story-card .chart-bars {
  background: transparent;
  border: none;
  padding: 2px 0 0;
  margin: 0;
  border-radius: 0;
  min-height: 0;
  box-shadow: none;
}
.charts-story-card .chart-line {
  background: transparent;
  border: none;
  padding: 2px 0 0;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}
.charts-metric-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  width: 100%;
  margin: 0;
}
.charts-metric-tab {
  width: 100%;
  margin: 0;
  border: 1.5px solid rgba(28, 43, 36, 0.16);
  border-radius: 999px;
  padding: 8px 4px;
  font: inherit;
  font-size: 12px;
  font-weight: var(--fw-heavy);
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(63, 122, 90, 0.1);
}
.charts-metric-tab.tone-water {
  background: linear-gradient(160deg, #e8f4fc, #cfe6f7);
  color: #1e5f8a;
}
.charts-metric-tab.tone-steps {
  background: linear-gradient(160deg, #e8f5ec, #cfe8d8);
  color: #2f6f49;
}
.charts-metric-tab.tone-kcal {
  background: linear-gradient(160deg, #fff4e8, #f5d9b8);
  color: #8a5a12;
}
.charts-metric-tab.tone-weight {
  background: linear-gradient(160deg, #eee8f6, #e0d4f0);
  color: #5a4f8a;
}
.charts-metric-tab.tone-sleep {
  background: linear-gradient(160deg, #e8eef8, #d0dced);
  color: #3a4f7a;
}
.charts-metric-tab.tone-sleep-q {
  background: linear-gradient(160deg, #f3e8f6, #e4d4ee);
  color: #6a4f8a;
}
.charts-metric-tab.is-on {
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 18px rgba(28, 43, 36, 0.18);
}
.charts-metric-tab.tone-water.is-on {
  background: linear-gradient(160deg, #3f8fd0, #2176b3);
}
.charts-metric-tab.tone-steps.is-on {
  background: linear-gradient(160deg, #3f8a5c, #2f6f49);
}
.charts-metric-tab.tone-kcal.is-on {
  background: linear-gradient(160deg, #d4894a, #b36a2f);
}
.charts-metric-tab.tone-weight.is-on {
  background: linear-gradient(160deg, #7a6eb0, #5a4f8a);
}
.charts-metric-tab.tone-sleep.is-on {
  background: linear-gradient(160deg, #5a70a8, #3a4f7a);
}
.charts-metric-tab.tone-sleep-q.is-on {
  background: linear-gradient(160deg, #8a6eb0, #6a4f8a);
}
.charts-how {
  margin: 0 0 2px;
  font-size: 14px;
}
.charts-range-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
}
.charts-range-nav {
  display: grid;
  grid-template-columns: 40px 1fr 40px;
  gap: 8px;
  align-items: center;
}
.charts-range-mid {
  display: grid;
  gap: 8px;
}
.charts-date-field {
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: var(--fw-semibold);
  color: var(--muted);
}
.charts-date-field input[type="date"] {
  width: 100%;
  min-height: 42px;
  border: var(--field-border);
  border-radius: 12px;
  padding: 8px 10px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  background: #fff;
}

.site-cal-pop {
  position: fixed;
  z-index: 9999;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(28, 43, 36, 0.16);
  width: 320px;
  max-width: calc(100vw - 24px);
  overflow: hidden;
}
.site-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 10px;
  background: rgba(255, 255, 255, 0.8);
  border-bottom: 1px solid rgba(28, 43, 36, 0.08);
}
.site-cal-title {
  font-weight: var(--fw-heavy);
  font-size: 14px;
  color: var(--ink);
}
.site-cal-nav {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-weight: var(--fw-heavy);
  cursor: pointer;
}
.site-cal-dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
  padding: 10px 12px 6px;
  color: var(--muted);
  font-weight: 800;
  font-size: 10px;
}
.site-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  padding: 8px 12px 14px;
}
.site-cal-day {
  height: 34px;
  min-height: 34px;
  border-radius: 12px;
  border: 0;
  background: rgba(28, 43, 36, 0.04);
  color: var(--ink);
  font: inherit;
  font-weight: var(--fw-heavy);
  cursor: pointer;
}
.site-cal-day.is-other {
  opacity: 0.35;
}
.site-cal-day.is-selected {
  background: var(--accent-press);
  color: #fff;
}
.site-cal-day:disabled {
  cursor: default;
  opacity: 0.25;
  background: transparent;
}
.charts-range-caption {
  margin: 0;
  text-align: center;
  font-weight: var(--fw-semibold);
  color: var(--ink);
}
.charts-presets {
  justify-content: center;
}
.charts-shift:disabled {
  opacity: 1;
  pointer-events: auto;
}
.charts-period-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.charts-period-label {
  font-size: 13px;
  font-weight: var(--fw-semibold);
  color: var(--muted);
}
.charts-seg-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.charts-seg {
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  font-weight: var(--fw-semibold);
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.charts-seg.is-on {
  background: var(--accent-press);
  color: #fff;
  border-color: transparent;
}
.charts-complete {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
}
.charts-complete-text {
  font-size: 13px;
  font-weight: 650;
}
.charts-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.charts-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: rgba(28, 43, 36, 0.12);
}
.charts-dot.is-on {
  background: var(--accent-press);
}
.charts-metric-val {
  flex-shrink: 0;
  font-size: 15px;
  font-weight: var(--fw-heavy);
  color: var(--ink);
}
.charts-dyn-head {
  display: grid;
  gap: 8px;
}
.charts-dyn-head .section-title {
  margin-bottom: 0;
}
.charts-sparse-card {
  padding: 16px 14px;
  border-radius: 16px;
  border: 1px dashed rgba(28, 43, 36, 0.22);
  background: #fff;
}
.charts-sparse-title {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: var(--fw-semibold);
}
.chart-bars--dense {
  gap: 4px;
  min-height: 0;
}
.chart-bars--dense .chart-plot {
  height: 96px;
}
.chart-bars--dense .chart-bar {
  max-width: 18px;
  min-height: 2px;
}
.chart-bars--dense .chart-val {
  font-size: 8px;
}
.chart-col.is-gap .chart-bar,
.chart-bar.is-empty-stub {
  background: #e4ebe6;
  box-shadow: none;
  min-height: 8px;
  opacity: 1;
}
.charts-food {
  display: grid;
  gap: 8px;
  margin-top: 4px;
}
.charts-food-lead {
  margin: -4px 0 0;
}
.charts-food-table {
  gap: 6px;
  margin: 0;
}
.charts-food-group {
  padding: 8px 10px;
  border: 1.5px solid rgba(28, 43, 36, 0.12);
  box-shadow: 0 4px 12px rgba(63, 122, 90, 0.1);
  width: 100%;
  box-sizing: border-box;
}
.charts-food-group .metric-main strong {
  font-size: 13px;
  font-weight: var(--fw-heavy);
}
.charts-food-group .traffic {
  padding: 3px 8px;
  font-size: 10px;
}
.charts-food-item {
  padding: 7px 10px;
}
.charts-food-item .metric-main {
  gap: 1px;
}
.charts-food-item .metric-fact {
  font-size: 11px;
  line-height: 1.25;
}
.charts-food-group.tone-fat {
  background: linear-gradient(160deg, #fff4e8, #f5d9b8);
}
.charts-food-group.tone-b {
  background: linear-gradient(160deg, #f3eef8, #e0d4f0);
}
.charts-food-group.tone-min {
  background: linear-gradient(160deg, #e8f4fc, #cfe6f7);
}
.charts-food-group.tone-omega {
  background: linear-gradient(160deg, #e8f5ec, #cfe8d8);
}
.charts-food-all {
  width: 100%;
  margin-top: 2px;
  box-shadow: var(--field-shadow);
}
button.metric-row.charts-food-item {
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
button.metric-row.charts-food-item:active {
  transform: scale(0.99);
  filter: brightness(0.98);
}
.nutrient-hits-sheet {
  z-index: 46;
}
.nutrient-hits-body {
  padding: 12px 18px calc(22px + env(safe-area-inset-bottom, 0px));
  overflow: auto;
  flex: 0 1 auto;
  -webkit-overflow-scrolling: touch;
}
.nutrient-hits-status {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f3f6f3;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  box-shadow: 0 4px 12px rgba(28, 43, 36, 0.08);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  color: var(--ink);
}
.nutrient-hits-blurb {
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.45;
  color: var(--ink);
}
.nutrient-hits-label {
  margin: 14px 0 8px;
  font-size: 12px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}
.nutrient-hits-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.nutrient-hit-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  background: linear-gradient(165deg, #fffdf9, #f4efe6);
  box-shadow: 0 4px 12px rgba(28, 43, 36, 0.1);
}
.nutrient-hit-item--med {
  background: linear-gradient(165deg, #f3f8f4, #e4efe8);
  border-color: rgba(63, 122, 90, 0.28);
}
.nutrient-hit-text {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  color: var(--ink);
  min-width: 0;
}
.nutrient-hit-dim {
  color: #9aa39c;
  font-weight: 550;
}
.nutrient-hit-mark {
  display: inline;
  margin: 0;
  padding: 0 1px;
  border-radius: 4px;
  background: rgba(63, 122, 90, 0.16);
  color: var(--ink);
  font-weight: var(--fw-heavy);
  font-style: normal;
}
.nutrient-hit-day {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 650;
  color: var(--muted);
  padding-top: 2px;
}
.charts-disclaimer {
  margin: 4px 0 8px;
}
#moreThumbDock.hidden {
  display: none !important;
}
.steps-adjust {
  /* Вариант А: одна полоса − · число · mic · + */
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 52px;
  margin: 0;
  padding: 6px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1.5px solid var(--glass-border, rgba(255, 255, 255, 0.78));
  box-shadow: var(--glass-shadow, 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 10px 28px rgba(28, 43, 36, 0.07));
  box-sizing: border-box;
}
.phone-steps-card[hidden],
.phone-steps-fill[hidden] {
  display: none !important;
}
.phone-steps-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.phone-steps-copy {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  line-height: 1.35;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.phone-steps-pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.95);
  border: 1.5px solid rgba(28, 43, 36, 0.1);
  box-shadow: 0 4px 14px rgba(28, 43, 36, 0.06);
  color: var(--ink);
  font-weight: var(--fw-semibold);
  font-variant-numeric: tabular-nums;
  font-size: 15px;
  letter-spacing: -0.02em;
}
.phone-steps-fill {
  flex: 0 0 auto;
  margin: 0;
  padding: 6px 12px;
  min-height: 32px;
  border: 0;
  border-radius: 999px;
  background: #3f7a5a;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.phone-steps-fill:active {
  transform: scale(0.97);
  filter: brightness(0.96);
}
.day-stat.tone-steps.is-phone-preview b {
  color: #7a8a82;
  font-weight: 700;
  opacity: 0.9;
}
.steps-nudge {
  margin: 0;
  flex: 0 0 auto;
  width: 44px;
  height: 40px;
  min-height: 40px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #2f6f49;
  font: inherit;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.steps-nudge:active {
  transform: scale(0.97);
  background: rgba(63, 122, 90, 0.1);
}
.steps-adjust .btn { min-height: 44px; margin: 0; padding: 0; font-size: 1.25rem; }
/* После mountMicsIn микрофон выносится в ряд (layoutStepsAdjustA) */
.steps-adjust > .mic-infield {
  position: static;
  top: auto;
  bottom: auto;
  right: auto;
  margin: 0 2px 0 0;
  flex: 0 0 auto;
  transform: none;
}
.steps-adjust > .mic-status {
  left: 52px;
  right: 52px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  height: fit-content;
  max-width: none;
  text-align: center;
  pointer-events: none;
}
.steps-adjust > input,
.steps-adjust .input-mic {
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
  display: block;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible;
}
.steps-adjust .input-mic:focus-within {
  border: 0;
  box-shadow: none;
}
.steps-adjust > input,
.steps-adjust .input-mic > input {
  width: 100%;
  min-height: 40px;
  text-align: center;
  font: inherit;
  font-size: 1.15rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 8px 4px;
  background: transparent !important;
  color: var(--ink);
  box-sizing: border-box;
  box-shadow: none !important;
}
.steps-adjust > input:focus,
.steps-adjust .input-mic > input:focus {
  outline: none;
}
.weight-opt.steps-opt {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}
.weight-opt.steps-opt.is-on {
  font-weight: 600;
  transform: none;
}
.act-type-card {
  margin-top: 12px;
  padding-bottom: 12px;
}
.act-type-card .act-type-actions.weight-actions {
  display: flex;
  width: 100%;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
  border: var(--field-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
}
.act-type-actions .weight-action-split {
  width: 1.5px;
  margin: 12px 0;
  background: rgba(28, 43, 36, 0.22);
  flex: 0 0 1.5px;
}
.act-type-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex: 1 1 0;
  min-width: 0;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 0 10px;
  transition: background 0.15s ease, color 0.15s ease;
}
.act-type-btn.is-on {
  background: linear-gradient(180deg, #55a574 0%, var(--accent) 48%, var(--accent-press) 100%);
  color: #fff;
}
.act-type-btn.is-on:active {
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-press) 100%);
}
.day-section { margin-bottom: 16px; }
.day-section h3 {
  margin: 0 0 8px;
  font-size: 0.95rem;
}
.day-section ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.day-section li {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 13px;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 8px;
}
.day-section time { color: var(--muted); }

.tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 0 14px;
}
.tile {
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: 22px;
  min-height: 108px;
  padding: 16px;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 8px 20px rgba(26, 38, 32, 0.06);
  color: var(--ink);
  font: inherit;
  gap: 6px;
}
.tile.static-tile { cursor: default; }
.tile.tile-with-art {
  border: var(--field-border);
  border-radius: 18px;
  padding: 14px 12px 12px;
  justify-content: flex-end;
  gap: 4px;
  box-shadow: var(--field-shadow);
  /* та же высота, что у кнопок «По времени» на главной */
  min-height: 108px;
  height: 108px;
  max-height: 108px;
  box-sizing: border-box;
}
.tile.tile-with-art strong {
  position: relative;
  z-index: 1;
  font-family: var(--font);
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  font-size: 1.15rem;
}
.tile.tile-with-art > span:not(.tile-art):not(.tile-done) {
  position: relative;
  z-index: 1;
  font-weight: 600;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
}
.tile-done {
  position: absolute !important;
  top: 6px;
  left: 6px;
  z-index: 3;
  width: 26px;
  height: 26px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--accent-press);
  background: rgba(255, 255, 255, 0.95);
  box-shadow:
    0 0 0 1.5px rgba(63, 138, 92, 0.4),
    0 3px 8px rgba(28, 43, 36, 0.1);
  pointer-events: none;
  font-size: 0;
  line-height: 0;
  font-weight: 400;
}
.tile-done svg {
  display: block;
  width: 14px;
  height: 14px;
}
.tile-art {
  position: absolute;
  top: -23px;
  right: -35px;
  width: 108px;
  height: 108px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(28, 43, 36, 0.08));
}
/* Как у остальных плиток с арт-ом: картинка с мягкими углами, клип карточкой */
.tile.c-voice .tile-art {
  top: -23px;
  right: -35px;
  width: 108px;
  height: 108px;
  background-position: center;
}
.tile-ico {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: block;
  position: relative;
  margin-bottom: 4px;
  background: rgba(255,255,255,0.45);
  flex-shrink: 0;
}
.tile-ico::before, .tile-ico::after {
  content: "";
  position: absolute;
}
.ico-food::before {
  left: 8px; top: 10px; width: 20px; height: 14px;
  border-radius: 4px 4px 6px 6px;
  background: linear-gradient(180deg, #c9a06a, #a67c45);
}
.ico-food::after {
  left: 14px; top: 6px; width: 8px; height: 6px;
  border-radius: 3px;
  background: #8f6a3d;
}
.ico-water::before {
  left: 11px; top: 6px; width: 14px; height: 22px;
  border-radius: 3px 3px 6px 6px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8), #6fa8d8);
}
.ico-meds::before {
  left: 8px; top: 12px; width: 20px; height: 10px;
  border-radius: 5px;
  background: #9b7bb8;
}
.ico-meds::after {
  left: 16px; top: 8px; width: 4px; height: 18px;
  border-radius: 2px;
  background: #9b7bb8;
}
.ico-stool::before {
  left: 10px; top: 10px; width: 16px; height: 16px;
  border-radius: 50%;
  background: #c4a882;
}
.ico-feel::before {
  left: 9px; top: 9px; width: 18px; height: 18px;
  border-radius: 50%;
  border: 3px solid #c98878;
  box-sizing: border-box;
}
.ico-mood::before {
  left: 9px; top: 9px; width: 18px; height: 18px;
  border-radius: 50%;
  background: #8fbf8a;
}
.ico-mood::after {
  left: 13px; top: 16px; width: 10px; height: 5px;
  border: 2px solid #2f5a3a;
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: transparent;
}
.ico-steps::before {
  left: 8px; top: 8px; width: 8px; height: 20px;
  border-radius: 4px;
  background: #6f8f6a;
  box-shadow: 12px 0 0 #6f8f6a;
}
.ico-voice::before {
  left: 14px; top: 7px; width: 8px; height: 14px;
  border-radius: 6px;
  background: #7a6aa8;
}
.ico-voice::after {
  left: 11px; top: 20px; width: 14px; height: 8px;
  border: 2px solid #7a6aa8;
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: transparent;
}
.ico-weight::before {
  left: 10px; top: 8px; width: 16px; height: 20px;
  border-radius: 3px;
  background: linear-gradient(180deg, #bbb, #888);
}
.ico-sleep::before {
  left: 11px; top: 8px; width: 14px; height: 18px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-30deg);
  background: #9a8ec4;
}
.ico-habits::before {
  left: 10px; top: 8px; width: 16px; height: 16px;
  border-radius: 4px;
  border: 3px solid #6f9b6a;
  box-sizing: border-box;
}
.ico-habits::after {
  left: 15px; top: 12px; width: 6px; height: 10px;
  border-right: 3px solid #6f9b6a;
  border-bottom: 3px solid #6f9b6a;
  transform: rotate(40deg);
  background: transparent;
}
.ico-memory::before {
  left: 9px; top: 8px; width: 18px; height: 20px;
  border-radius: 3px;
  background: #7aa0c4;
}
.ico-memory::after {
  left: 12px; top: 12px; width: 12px; height: 2px;
  background: rgba(255,255,255,0.8);
  box-shadow: 0 4px 0 rgba(255,255,255,0.8), 0 8px 0 rgba(255,255,255,0.8);
}
.ico-day::before {
  left: 10px; top: 8px; width: 16px; height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #ffe9a8, #f0a35a);
}
.tile strong {
  font-family: var(--font); font-weight: var(--fw-heavy); letter-spacing: -0.02em;
  font-size: 1.2rem;
}
.tile span { font-size: 12px; color: rgba(26,38,32,0.7); font-weight: 600; }
.tile.c-food { background: linear-gradient(165deg, #eef6ea 0%, #d8ebcf 55%, #c9e0bc 100%); }
.tile.c-water { background: linear-gradient(165deg, #eef3f8 0%, #d9e6f2 55%, #c8daf0 100%); }
.tile.c-meds { background: linear-gradient(165deg, #f0ebf6 0%, #e0d5ea 55%, #d0c2e0 100%); }
.tile.c-stool { background: linear-gradient(165deg, #f4eee6 0%, #e8dccb 55%, #dcc9b2 100%); }
.tile.c-feel { background: linear-gradient(165deg, #f7ebe6 0%, #f0d5cc 55%, #e8c4b8 100%); }
.tile.c-mood { background: linear-gradient(165deg, #eaf3e8 0%, #d7e8d4 55%, #c5dcc0 100%); }
.tile.c-activity { background: linear-gradient(165deg, #eaf0e6 0%, #d8e2d0 55%, #c6d4bc 100%); }
.tile.c-exercise { background: linear-gradient(165deg, #e8f3ec 0%, #d2e8da 55%, #bcdcc8 100%); }
.tile.c-voice { background: linear-gradient(165deg, #efeaf5 0%, #ddd3e8 55%, #cbc0db 100%); }
.tile.c-weight { background: linear-gradient(165deg, #f0ebe4 0%, #e0d6c8 55%, #d0c4b2 100%); }
.tile.c-sleep { background: linear-gradient(165deg, #eeeaf6 0%, #ddd4ea 55%, #cbbfde 100%); }

.home-log {
  padding: 0 14px 20px;
  flex: 1;
  overflow: auto;
}
.home-log h2 { margin: 0; font-size: 0.95rem; }
.row-between { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.mini-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.mini-list li {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 8px;
  font-size: 13px;
}
.mini-list time { color: var(--muted); font-variant-numeric: tabular-nums; }
.empty { color: var(--muted); }

.choice-grid { display: grid; gap: 10px; }
.choice {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 18px;
  padding: 18px 16px;
  font: inherit;
  font-weight: 700;
  font-size: 1.05rem;
  text-align: left;
  cursor: pointer;
}
.choice:active, .choice:hover { background: var(--accent-soft); }
.choice small { display: block; margin-top: 4px; color: var(--muted); font-weight: 500; font-size: 12px; }

.water-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.water-grid .choice {
  text-align: center;
  font-size: 1.25rem;
  padding: 28px 12px;
}

.voice-box {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 14px;
  margin-bottom: 12px;
}
.voice-box textarea {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 15px;
  resize: vertical;
  min-height: 90px;
  outline: none;
}
.voice-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.voice-actions.voice-actions-single { grid-template-columns: 1fr; }
.voice-actions .btn[hidden] { display: none !important; }
.voice-commit-wide {
  width: 100%;
  min-height: 52px;
}
.voice-actions .btn.listening {
  background: #e8c9b0;
  animation: micPulse 1.1s ease-in-out infinite;
}

.med-list { display: grid; gap: 8px; margin-bottom: 14px; }
.hint-line { color: var(--muted); font-size: 15px; line-height: 1.4; margin: 0 0 12px; }

.topbar-simple {
  display: block;
  text-align: center;
  padding: 6px 16px 4px;
}
.topbar-simple h1 {
  text-align: center;
  font-size: 1.25rem;
}
.topbar-with-back {
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 4px;
  padding: 4px 12px 6px;
  text-align: center;
}
.topbar-with-back h1 {
  margin: 0;
  grid-column: 2;
  text-align: center;
}
.back-round {
  grid-column: 1;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  background: rgba(255, 255, 255, 0.88);
  color: var(--ink);
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow:
    0 6px 16px rgba(28, 43, 36, 0.1),
    0 1px 0 rgba(255, 255, 255, 0.8) inset;
  -webkit-tap-highlight-color: transparent;
}
.back-round.hidden {
  display: none !important;
}
.back-round svg {
  display: block;
  margin-left: -1px;
}
.back-round:active {
  transform: scale(0.96);
}
#viewCat .view-scroll,
#viewAdd .view-scroll,
#viewDay .view-scroll {
  padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important;
  min-height: 0;
}
.day-log {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 5px;
}
.day-log-hint {
  margin: 0 0 6px;
}
.day-log-item {
  display: grid;
  grid-template-columns: 62px 1fr 34px;
  gap: 8px;
  align-items: center;
  background: #fff;
  border: var(--field-border);
  border-radius: 14px;
  padding: 6px 6px 6px 12px;
  box-shadow: var(--field-shadow);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  min-height: 0;
}
.day-log-item.has-kcal {
  grid-template-columns: 62px 1fr auto 34px;
}
.day-log-time {
  justify-self: start;
  margin: 0;
  padding: 4px 9px;
  border: 1.5px solid rgba(63, 122, 90, 0.28);
  border-radius: 999px;
  background: rgba(232, 240, 234, 0.95);
  color: var(--accent-press);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.day-log-time:hover {
  background: #dce8e1;
  border-color: rgba(63, 122, 90, 0.45);
}
.day-log-time:active {
  transform: scale(0.96);
}
.day-log-item time {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 12px;
}
.day-log-text {
  min-width: 0;
  line-height: 1.25;
  word-break: break-word;
}
.day-log-kcal {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: rgba(140, 90, 30, 0.92);
  white-space: nowrap;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(245, 217, 184, 0.55);
}
.day-log-kcal-stack {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  margin: 0;
  padding: 4px 8px;
  border: 1px solid rgba(200, 150, 80, 0.35);
  border-radius: 12px;
  background: rgba(245, 217, 184, 0.55);
  color: rgba(140, 90, 30, 0.92);
  font: inherit;
  line-height: 1.1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
  transition: background 0.12s ease, transform 0.12s ease;
}
.day-log-kcal-stack:active {
  transform: scale(0.96);
  background: rgba(240, 200, 150, 0.72);
}
.day-log-kcal-n {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.day-log-kcal-recalc {
  font-size: 9px;
  font-weight: 650;
  letter-spacing: 0.01em;
  opacity: 0.78;
  white-space: nowrap;
}
.day-log-kcal.is-empty {
  display: none;
}
.day-log-item:not(.has-kcal) .day-log-kcal {
  display: none;
}
.day-log-del {
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border-radius: 11px;
  border: 1.5px solid rgba(63, 122, 90, 0.32);
  background: #e8f0ea;
  color: var(--accent-press);
  font: inherit;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(63, 122, 90, 0.1);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  appearance: none;
}
.day-log-del:hover {
  background: #dce8e1;
  border-color: rgba(63, 122, 90, 0.5);
}
.day-log-del:active {
  transform: scale(0.96);
  background: rgba(180, 35, 24, 0.12);
  border-color: rgba(180, 35, 24, 0.35);
  color: var(--danger);
}
.home-head {
  text-align: left;
  padding-left: 18px;
}
.home-head h1 { text-align: left; font-size: 1.45rem; }

.thumb-dock {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  padding: 12px 16px calc(16px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: rgba(255, 251, 247, 0.9);
  backdrop-filter: blur(12px);
}
/* Как у Voway: плавающая пилюля по центру (не на всю ширину), без нижней «полосы» */
.thumb-dock.float {
  justify-content: center;
  align-items: center;
  gap: 10px;
  border-top: none;
  background: transparent;
  backdrop-filter: none;
  box-shadow: none;
  /* выше — зона большого пальца на десктоп-рамке; на телефоне переопределяется ниже */
  padding: 12px 28px calc(60px + var(--safe-bottom));
}
.thumb-dock.float .thumb-wide {
  width: auto;
  min-width: 168px;
  max-width: min(260px, 72vw);
  margin: 0 auto;
  min-height: 54px;
  padding-left: 36px;
  padding-right: 36px;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  box-shadow: var(--cta-shadow);
}
/* Приветствие / юр. / онбординг: кнопки поверх ленты, без полосы-фона */
#viewWelcome > .thumb-dock.wizard-dock,
#viewSafariEntry > .thumb-dock.wizard-dock,
#viewLegal > .thumb-dock.wizard-dock,
#viewOnboard > .thumb-dock.wizard-dock {
  position: absolute;
  flex: 0 0 auto;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  justify-content: center;
  align-items: center;
  gap: 10px;
  border-top: none;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  padding: 10px 16px calc(23px + var(--safe-bottom));
}
/* Клавиатура: кнопки почти у панели (≤10px), без «задратого» safe-bottom */
html.wizard-kb-open #viewWelcome > .thumb-dock.wizard-dock,
html.wizard-kb-open #viewSafariEntry > .thumb-dock.wizard-dock,
html.wizard-kb-open #viewLegal > .thumb-dock.wizard-dock,
html.wizard-kb-open #viewOnboard > .thumb-dock.wizard-dock,
html.wizard-kb-open #viewLegal > .thumb-dock.wizard-dock.twin,
html.wizard-kb-open #viewOnboard > .thumb-dock.wizard-dock.twin {
  padding: 8px 16px 10px;
}
#viewWelcome > .thumb-dock.wizard-dock .thumb-wide,
#viewWelcome > .thumb-dock.wizard-dock #btnWelcomeNext {
  /* та же «Далее», что в пилюле шагов — мягкое зелёное стекло; ширина как раньше */
  flex: 0 0 168px;
  width: 168px;
  min-width: 168px;
  max-width: 168px;
  margin: 0 auto;
  min-height: 54px;
  padding-left: 20px;
  padding-right: 20px;
  font-size: 1.05rem;
  font-weight: var(--fw-heavy, 800);
  letter-spacing: -0.02em;
  color: #1f4f34;
  background: rgba(63, 138, 92, 0.22);
  border: 1.5px solid rgba(255, 255, 255, 0.82);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.45) inset,
    0 10px 28px rgba(28, 43, 36, 0.1);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
}
#viewWelcome > .thumb-dock.wizard-dock #btnWelcomeNext:active {
  background: rgba(63, 138, 92, 0.3);
}
#viewWelcome > .thumb-dock.wizard-dock #btnWelcomeNext:disabled {
  background: rgba(255, 255, 255, 0.2);
  color: rgba(28, 43, 36, 0.28);
  box-shadow: none;
  cursor: default;
}
#viewLegal .legal-scroll,
#viewOnboard .onboard-scroll,
#viewWelcome .welcome-scroll {
  padding-bottom: 80px;
  overscroll-behavior: none;
}
#viewOnboard .onboard-scroll {
  padding-top: 12px;
  padding-left: 18px;
  padding-right: 18px;
  position: relative;
  z-index: 3;
}
#viewOnboard .legal-title-row {
  margin: 4px 0 10px;
}
#viewOnboard .lead {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.35;
}
#viewOnboard .tiny {
  margin: 0 0 6px;
  font-size: 12px;
  line-height: 1.3;
}
#viewOnboard .chip-grid {
  gap: 6px;
  margin-bottom: 8px;
}
#viewOnboard .chip-toggle {
  padding: 7px 8px;
  min-height: 36px;
  height: 36px;
  font-size: 12px;
  border-radius: 14px;
  box-shadow:
    0 3px 10px rgba(63, 122, 90, 0.1),
    0 1px 4px rgba(196, 160, 122, 0.14);
}
#viewOnboard .chip-toggle.on {
  box-shadow:
    0 0 0 2px rgba(255, 251, 247, 0.95),
    0 0 0 3.5px rgba(224, 122, 95, 0.4),
    0 6px 14px rgba(224, 122, 95, 0.26),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
}
#viewOnboard .field {
  margin-bottom: 6px;
  gap: 4px;
  position: relative;
  z-index: 3;
  font-size: 11px;
}
#viewOnboard .field > input,
#viewOnboard .field > textarea,
#viewOnboard .field .input-mic > input,
#viewOnboard .field .input-mic > textarea {
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 14px;
  min-height: 42px;
}
#viewOnboard .field > textarea,
#viewOnboard .field .input-mic > textarea {
  min-height: 42px;
  max-height: 64px;
  resize: none;
}
/* Шаг 2: диагнозы / ограничения — без внутренней прокрутки */
#viewOnboard .field.field-wide > textarea,
#viewOnboard .field.field-wide .input-mic > textarea {
  width: 100%;
  height: 156px;
  min-height: 156px;
  max-height: 156px;
  padding: 12px 14px 48px 12px;
  resize: none !important;
  overflow: hidden !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#viewOnboard .field.field-wide .input-mic > textarea::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#viewOnboard .field.field-wide .input-mic.has-tidy > textarea {
  padding: 12px 14px 48px 12px !important;
}
#viewOnboard .field.field-wide .input-mic {
  min-height: 156px;
}
/* Шаг 3: цель и таблетки — ×3 от компактной высоты, без внутренней прокрутки */
#viewOnboard .field.field-tall > textarea,
#viewOnboard .field.field-tall .input-mic > textarea {
  width: 100%;
  height: 192px;
  min-height: 192px;
  max-height: 192px;
  padding: 12px 14px 48px 12px;
  resize: none !important;
  overflow: hidden !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#viewOnboard .field.field-tall .input-mic > textarea::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#viewOnboard .field.field-tall .input-mic {
  min-height: 192px;
}
/* Шаг 4: «Что ещё важно» — без внутренней прокрутки */
#viewOnboard .field.field-notes > textarea,
#viewOnboard .field.field-notes .input-mic > textarea {
  width: 100%;
  height: 96px;
  min-height: 96px;
  max-height: 96px;
  padding: 12px 48px 48px 12px;
  resize: none !important;
  overflow: hidden !important;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#viewOnboard .field.field-notes .input-mic > textarea::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#viewOnboard .field.field-notes .input-mic {
  min-height: 96px;
}
#viewOnboard .voice-dump,
#viewOnboard .pair,
#viewOnboard .metrics-row {
  position: relative;
  z-index: 3;
}
/* Шаг 1: имя — высота прежняя; пример слева сверху */
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .input-mic {
  min-height: 99px;
  height: 99px;
}
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .input-mic > textarea,
#viewOnboard #pName {
  width: 100%;
  min-height: 99px !important;
  height: 99px !important;
  max-height: 99px !important;
  box-sizing: border-box;
  padding: 10px 80px 40px 12px !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  resize: none !important;
  overflow: hidden !important;
  text-align: left;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .input-mic > textarea::-webkit-scrollbar,
#viewOnboard #pName::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#viewOnboard #pName::placeholder,
#viewOnboard #pHeight::placeholder,
#viewOnboard #pWeight::placeholder,
#viewOnboard #pAge::placeholder,
#viewProfile #eName::placeholder,
#viewProfile #eHeight::placeholder,
#viewProfile #eWeight::placeholder,
#viewProfile #eAge::placeholder {
  text-align: left;
  opacity: 0.55;
}
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .input-mic > textarea ~ .mic-infield,
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .mic-infield {
  top: auto;
  bottom: 8px;
  right: 8px;
  margin-top: 0;
  margin-bottom: 0;
  transform: none;
  z-index: 2;
}
/* На высоком поле имени: М/Ж у правого края сверху; микрофон снизу справа */
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .sex-toggle {
  top: 6px;
  bottom: auto;
  right: 8px;
  margin-top: 0;
  margin-bottom: 0;
  height: 34px;
  z-index: 3;
}
#viewOnboard #onboardPanel0 .field.field-basics.field-name-with-sex .input-mic > textarea ~ .mic-status {
  top: auto;
  bottom: 12px;
  left: 12px;
  margin-top: 0;
  margin-bottom: 0;
  height: auto;
}
#viewLegal > .thumb-dock.wizard-dock.twin,
#viewOnboard > .thumb-dock.wizard-dock.twin {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 10px 16px calc(23px + var(--safe-bottom));
}
/* Пилюля «Назад | Далее» — форма как у шторки, мягкое стекло */
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-pill,
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-pill {
  display: flex;
  align-items: stretch;
  width: min(360px, 100%);
  min-height: 54px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid rgba(255, 255, 255, 0.82);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 10px 28px rgba(28, 43, 36, 0.1);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-btn,
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-btn {
  flex: 1;
  margin: 0;
  padding: 0 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  font-weight: var(--fw-heavy, 800);
  letter-spacing: -0.02em;
  cursor: pointer;
  min-height: 54px;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-back:active:not(:disabled),
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-back:active:not(:disabled) {
  background: rgba(28, 43, 36, 0.04);
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next,
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next {
  background: rgba(63, 138, 92, 0.22);
  color: #1f4f34;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next:active:not(:disabled),
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next:active:not(:disabled) {
  background: rgba(63, 138, 92, 0.3);
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next:disabled,
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-btn.is-next:disabled {
  background: rgba(255, 255, 255, 0.2);
  color: rgba(28, 43, 36, 0.28);
  box-shadow: none;
  cursor: default;
}
#viewLegal > .thumb-dock.wizard-dock.twin .wizard-nav-split,
#viewOnboard > .thumb-dock.wizard-dock.twin .wizard-nav-split {
  width: 1px;
  align-self: stretch;
  margin: 12px 0;
  flex: 0 0 1px;
  background: rgba(28, 43, 36, 0.12);
}
#viewOnboard .field textarea,
#viewOnboard .field input,
#viewOnboard .voice-dump textarea {
  scroll-margin-bottom: 28px;
}
.thumb-dock.float.twin {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 16px calc(60px + var(--safe-bottom));
}
.thumb-dock.float.twin .btn {
  flex: 0 0 168px;
  width: 168px;
  min-width: 168px;
  max-width: 168px;
  margin: 0;
  min-height: 54px;
  height: auto;
  padding-left: 20px;
  padding-right: 20px;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.thumb-dock.float.twin .btn.primary {
  opacity: 1;
}
.thumb-dock.float.twin .btn.primary:disabled {
  opacity: 1;
  background: linear-gradient(180deg, #d5dcd7 0%, #c8d0cb 100%);
  color: #5e6862;
  border-color: rgba(28, 43, 36, 0.08);
  box-shadow: none;
  cursor: default;
  backdrop-filter: none;
}
.thumb-dock.float.twin .btn.secondary {
  background: rgba(255, 251, 247, 0.96);
  border: 1.5px solid rgba(28, 43, 36, 0.18);
  box-shadow:
    0 6px 16px rgba(28, 43, 36, 0.12),
    inset 0 1px 0 #fff;
}
.thumb-dock.float .thumb-wide {
  box-shadow: var(--cta-shadow);
}
.thumb-dock .thumb-wide {
  width: 100%;
  margin: 0;
  min-height: 54px;
  font-size: 1.08rem;
}
.thumb-dock.twin { justify-content: stretch; gap: 8px; }
.thumb-dock.twin .btn { flex: 1; margin: 0; min-height: 48px; font-size: 0.95rem; }
.thumb-dock.twin #btnMore { flex: 0.85; }
.thumb-dock.twin #btnConsult { flex: 1.15; }
.review-panel {
  margin-top: 4px;
}
.review-panel.hidden { display: none; }
.review-tiles { margin-bottom: 8px; gap: 8px; }
.review-tiles.hidden { display: none; }
.review-tiles .review-tile {
  position: relative;
  min-height: 72px;
  height: auto;
  max-height: none;
  border-radius: 20px;
  border: 1.5px solid rgba(28, 43, 36, 0.12);
  box-shadow: 0 8px 20px rgba(26, 38, 32, 0.06);
  padding: 12px 32px 12px 14px;
  justify-content: center;
  gap: 3px;
  overflow: hidden;
}
.review-tiles .review-tile::after {
  content: "›";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-52%);
  font-size: 20px;
  font-weight: 400;
  color: rgba(28, 43, 36, 0.28);
  pointer-events: none;
}
.review-tiles .review-tile strong {
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.15;
  max-width: 100%;
}
.review-tiles .review-tile > span {
  font-size: 11.5px;
  font-weight: 550;
  color: rgba(28, 43, 36, 0.58);
  line-height: 1.25;
  max-width: 100%;
}
.review-tile-metrics {
  background: rgba(160, 220, 175, 0.48) !important;
}
.review-tile-period {
  background: rgba(63, 138, 92, 0.28) !important;
}
.review-panel .council-period-report {
  margin-top: 4px;
}
.period-analysis-screen {
  display: grid;
  gap: 12px;
  padding-bottom: 24px;
}
.period-status {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
}
.period-status-text {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
  color: var(--ink);
}
.period-status-row {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 8px;
  align-items: baseline;
}
.period-status-k {
  font-size: 12px;
  font-weight: var(--fw-semibold);
  color: var(--muted);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.period-status-v {
  font-size: 14px;
  font-weight: 650;
  color: var(--ink);
  line-height: 1.35;
}
.period-hist-list {
  display: grid;
  gap: 10px;
}
.period-hist-card {
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
  overflow: hidden;
}
.period-hist-toggle {
  display: grid;
  grid-template-columns: 22px 1fr;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  font-weight: var(--fw-semibold);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.period-hist-chevron-svg {
  flex-shrink: 0;
  color: var(--muted);
  transition: transform 0.18s ease;
  transform: rotate(0deg);
}
.period-hist-chevron-svg.is-open {
  transform: rotate(90deg);
}
.period-hist-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  min-width: 0;
}
.period-hist-title {
  line-height: 1.35;
  min-width: 0;
  font-weight: var(--fw-semibold);
}
.period-hist-status {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: var(--fw-heavy);
  letter-spacing: 0.02em;
  padding: 4px 10px;
  border-radius: 999px;
  line-height: 1.2;
}
.period-hist-status.is-current {
  background: #d8f0e0;
  color: #1f6b3f;
}
.period-hist-status.is-archive {
  background: #eceae4;
  color: #5c5752;
}
.period-hist-body {
  /* Боковой отступ уже у #moreBody (--report-gutter); секции в одну кромку с полем ввода */
  padding: 0 0 14px;
}
.period-hist-body.hidden {
  display: none !important;
}
.period-hist-report {
  text-align: left;
}
.period-hist-chat {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(28, 43, 36, 0.08);
  display: grid;
  gap: 10px;
}
.period-hist-thread {
  margin: 0;
}
.period-hist-thread:empty {
  display: none;
}
.period-hist-draft {
  margin: 0;
  text-transform: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
  gap: 0;
}
.period-hist-draft .input-mic.has-tidy {
  min-height: 115px;
}
.period-hist-draft textarea,
.period-hist-draft .input-mic > textarea {
  min-height: 115px !important;
  height: 115px !important;
  max-height: 148px !important;
  font-size: 14px;
  line-height: 1.35;
  resize: none !important;
  overflow-y: auto;
  background: #ffffff !important;
  padding: 12px 14px 48px 12px !important;
  margin: 0;
}
.period-hist-draft .mic-tidy:disabled {
  opacity: 0.45;
  cursor: default;
}
.period-hist-card.is-open .period-hist-toggle {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(28, 43, 36, 0.06);
  margin-bottom: 10px;
}
.thumb-spacer { flex: 1; }
.thumb-back {
  min-width: 44%;
  min-height: 52px;
  font-size: 1.05rem;
}
.toast {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: calc(118px + env(safe-area-inset-bottom, 0px));
  margin: 0;
  padding: 12px 16px;
  border-radius: var(--radius-pill);
  border: 1.5px solid rgba(63, 122, 90, 0.28);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(232, 240, 234, 0.94) 100%);
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-align: center;
  line-height: 1.35;
  box-shadow:
    0 12px 28px rgba(63, 122, 90, 0.18),
    0 4px 12px rgba(196, 160, 122, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(12px) saturate(1.1);
  -webkit-backdrop-filter: blur(12px) saturate(1.1);
  /* выше шторок (≈45), чтобы «Скопировано» не пряталось под заголовком истории */
  z-index: 80;
  pointer-events: none;
  animation: toastIn 0.22s ease;
}
.toast[hidden] {
  display: none !important;
}
@keyframes toastIn {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* не сжимать padding-bottom лент — запас под плавающий док задаётся в .home-scroll / #viewMore… */

.review {
  margin-top: 12px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  white-space: pre-wrap;
  font-size: 13px;
}
.review.hidden { display: none; }

dialog {
  border: 0;
  border-radius: 20px;
  padding: 0;
  max-width: min(420px, calc(100vw - 24px));
  background: transparent;
}
dialog::backdrop { background: rgba(18, 24, 20, 0.45); }

/* Лист правил внутри рамки .phone — выезд снизу, обрезается рамкой */
.inphone-sheet {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
}
.inphone-sheet[hidden] {
  display: none !important;
}
.inphone-sheet.open {
  pointer-events: auto;
}
.sheet-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(28, 43, 36, 0.42);
  opacity: 0;
  transition: opacity 0.28s ease;
  cursor: pointer;
}
.inphone-sheet.open .sheet-scrim {
  opacity: 1;
}
.sheet-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  /* почти на весь телефон — не «до середины» */
  height: 92%;
  max-height: 92%;
  background: #fff;
  border-radius: 28px 28px 0 0;
  box-shadow: 0 -10px 36px rgba(28, 43, 36, 0.18);
  transform: translateY(105%);
  transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
}
.inphone-sheet.open .sheet-panel {
  transform: translateY(0);
}
.sheet-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding: 12px 14px 10px;
  border-bottom: 1px solid rgba(28, 43, 36, 0.1);
  background: #fff;
}
.sheet-close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--ink);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}
.sheet-title {
  flex: 1;
  margin: 0;
  text-align: center;
  font-size: 1.05rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  color: var(--ink);
}
.sheet-head-spacer {
  width: 40px;
  flex-shrink: 0;
}
.sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overflow-y: scroll;
  padding: 12px 16px 148px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  outline: none;
}
/* Оферта/политика: запас под плавающую «Прочитал» + safe-area (иначе хвост текста под кнопкой) */
#legalDocSheet .sheet-body {
  padding-bottom: calc(220px + env(safe-area-inset-bottom, 0px));
}
.sheet-doc {
  margin: 0;
  white-space: pre-wrap;
  font-family: var(--font);
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink);
}
.sheet-foot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  /* кнопка выше нижнего края — зона большого пальца */
  padding: 12px 16px calc(72px + env(safe-area-inset-bottom, 0px));
  border: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 36%);
  pointer-events: none;
}
/* На компьютере — тонкая полоса, иначе колесо «теряется» без ориентира */
@media (hover: hover) and (pointer: fine) {
  #legalDocSheet .sheet-body {
    scrollbar-width: thin;
    scrollbar-color: rgba(28, 43, 36, 0.35) transparent;
  }
  #legalDocSheet .sheet-body::-webkit-scrollbar {
    width: 6px;
    height: 6px;
    display: block;
  }
  #legalDocSheet .sheet-body::-webkit-scrollbar-thumb {
    background: rgba(28, 43, 36, 0.28);
    border-radius: 99px;
  }
  #legalDocSheet .sheet-body::-webkit-scrollbar-track {
    background: transparent;
  }
}
.sheet-read-btn {
  pointer-events: auto;
  min-width: 168px;
  max-width: min(260px, 72vw);
  padding-left: 36px;
  padding-right: 36px;
  box-shadow: var(--cta-shadow);
}
.btn.primary.sheet-read-btn:disabled,
.btn.primary.sheet-read-btn:disabled:hover {
  opacity: 1;
  background: #c8d0cb;
  color: #5e6862;
  box-shadow: none;
  cursor: default;
  filter: none;
  transform: none;
}

/* —— Панель веса —— */
.weight-sheet {
  z-index: 45;
}
.weight-sheet-panel {
  height: auto;
  max-height: 58%;
  min-height: 0;
}
/* после .sheet-panel — иначе height: 92% перебивает */
.sheet-panel.nutrient-hits-panel {
  height: 72%;
  max-height: 72%;
  min-height: 0;
}
.weight-sheet-body {
  padding: 4px 18px 18px;
  overflow: visible;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.weight-wheel-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  flex: 0 0 auto;
  display: block;
  min-height: 0;
}
.weight-wheel {
  position: relative;
  height: 168px;
  flex: none;
  min-height: 168px;
  overflow: hidden;
  border-radius: 14px;
  background: transparent;
}
.weight-sheet-foot {
  position: static;
  display: flex;
  justify-content: center;
  gap: 0;
  /* выше системных кнопок / жестовой полосы */
  padding: 4px 8px calc(56px + env(safe-area-inset-bottom, 0px));
  background: transparent;
  pointer-events: auto;
  border-top: 0;
}
.weight-actions {
  display: flex;
  align-items: stretch;
  width: min(320px, 100%);
  min-height: 52px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(28, 43, 36, 0.1);
  box-shadow:
    0 10px 28px rgba(28, 43, 36, 0.12),
    0 2px 8px rgba(28, 43, 36, 0.06);
  overflow: hidden;
}
.weight-action {
  flex: 1;
  margin: 0;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.weight-action:active {
  background: rgba(28, 43, 36, 0.04);
}
.weight-action-split {
  width: 1px;
  align-self: stretch;
  margin: 12px 0;
  background: rgba(28, 43, 36, 0.14);
  flex: 0 0 1px;
}
.weight-actions-triple {
  width: min(360px, 100%);
}
.weight-actions-triple .weight-action {
  font-size: 0.92rem;
  padding: 0 8px;
}

/* (пилюля консультации снята — поле + микрофон + «Спросить» в углу) */
.weight-wheel-label {
  margin: 0 0 6px 4px;
  font-size: 13px;
  font-weight: var(--fw-semibold);
  color: var(--ink);
}
.weight-wheel-cols {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto 0.72fr;
  align-items: stretch;
  height: 100%;
  max-width: 220px;
  margin: 0 auto;
}
.weight-col {
  height: 100%;
  overflow-y: auto;
  scroll-snap-type: none;
  -webkit-overflow-scrolling: touch;
  touch-action: none;
  overscroll-behavior: contain;
  scrollbar-width: none;
  text-align: center;
  outline: none;
  cursor: grab;
  user-select: none;
}
.weight-col.is-dragging {
  cursor: grabbing;
}
.weight-col::-webkit-scrollbar {
  display: none;
}
.weight-col-dec {
  text-align: center;
}
.weight-opt {
  height: 44px;
  scroll-snap-align: none;
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  font-weight: 650;
  color: rgba(28, 43, 36, 0.28);
  transition: color 0.12s ease, font-weight 0.12s ease, transform 0.12s ease;
}
.weight-opt-pad {
  visibility: hidden;
  pointer-events: none;
}
.weight-opt.is-on {
  color: var(--ink);
  font-weight: var(--fw-heavy);
  transform: scale(1.06);
}
.weight-comma {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 1.35rem;
  font-weight: var(--fw-heavy);
  color: var(--ink);
  line-height: 1;
  padding: 0;
  z-index: 2;
}
.weight-wheel-line {
  position: absolute;
  left: 12px;
  right: 12px;
  top: 50%;
  height: 44px;
  margin-top: -22px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1.5px solid rgba(28, 43, 36, 0.1);
  box-shadow: 0 4px 14px rgba(28, 43, 36, 0.06);
  pointer-events: none;
  z-index: 0;
}
.weight-wheel-fade {
  position: absolute;
  left: 0;
  right: 0;
  height: 56px;
  z-index: 2;
  pointer-events: none;
}
.weight-wheel-fade-top {
  top: 0;
  background: linear-gradient(180deg, #fff, transparent);
}
.weight-wheel-cols-single {
  grid-template-columns: 1fr;
  max-width: 160px;
}
.water-sheet-panel {
  max-height: 68%;
}
.mood-sheet-panel {
  max-height: 72%;
}
.weight-wheel-cols-mood {
  max-width: 220px;
}
.sheet-soft-hint {
  margin: 0 4px 2px;
  font-size: 0.82rem;
  line-height: 1.35;
  font-weight: 550;
  color: rgba(28, 43, 36, 0.55);
  text-align: center;
}
.stool-sheet-panel {
  max-height: 72%;
}
.sleep-sheet-panel {
  max-height: 88%;
}
.exercise-sheet .sleep-sheet-panel {
  max-height: 94%;
}
.exercise-detail-field {
  margin: 2px 0 0;
  display: block;
}
.phone .exercise-detail-field .input-mic {
  border: 1.5px solid var(--glass-border, rgba(255, 255, 255, 0.78));
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.48) !important;
  box-shadow: var(--glass-shadow, 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 10px 28px rgba(28, 43, 36, 0.07));
  -webkit-backdrop-filter: var(--glass-blur, blur(18px) saturate(1.3));
  backdrop-filter: var(--glass-blur, blur(18px) saturate(1.3));
  overflow: hidden;
  min-height: 115px;
  height: 115px;
  box-sizing: border-box;
}
.phone .exercise-detail-field .input-mic > textarea,
.phone .exercise-detail-field #exerciseDetailInput {
  min-height: 115px !important;
  height: 115px !important;
  max-height: 115px !important;
  resize: none !important;
  overflow: hidden !important;
  padding: 12px 14px 48px 12px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}
.sleep-sheet-body {
  gap: 8px;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
}
.sleep-duration-hint {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--ink);
  font-size: 0.95rem;
}
.sleep-time-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: start;
  min-width: 0;
}
.sleep-time-row .sleep-time-card {
  min-width: 0;
}
.sleep-time-wheel {
  height: 120px;
  min-height: 120px;
}
/* час : минуты — одна ось, по центру плашки */
.sleep-time-wheel .weight-wheel-cols {
  grid-template-columns: 1fr auto 1fr;
  max-width: 132px;
  width: 100%;
  margin: 0 auto;
  column-gap: 2px;
}
.sleep-time-wheel .weight-comma {
  width: 10px;
  font-size: 1.2rem;
  padding: 0;
}
.sleep-time-wheel .weight-opt {
  font-size: 1.2rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: 0;
}
.sleep-time-wheel .weight-opt.is-on {
  transform: none;
}
.sleep-time-wheel .weight-wheel-line {
  left: 50%;
  right: auto;
  width: min(132px, calc(100% - 12px));
  transform: translateX(-50%);
  margin-left: 0;
}
.sleep-quality-wheel {
  height: 174px;
  min-height: 174px;
}
.weight-wheel-cols-sleep {
  max-width: 260px;
}
.sleep-quality-line {
  height: 58px;
  margin-top: -29px;
}
.sleep-time-card .weight-wheel-label {
  margin-bottom: 2px;
}
.stool-wheel {
  height: 200px;
  min-height: 200px;
}
.weight-wheel-cols-stool {
  max-width: 260px;
}
.stool-wheel-line {
  height: 58px;
  margin-top: -29px;
}
.weight-opt-dual {
  height: 58px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0 8px;
  box-sizing: border-box;
}
.weight-opt-dual strong {
  font-size: 1.05rem;
  font-weight: var(--fw-semibold);
  line-height: 1.15;
  color: inherit;
}
.weight-opt-dual span {
  font-size: 0.72rem;
  font-weight: 550;
  line-height: 1.15;
  color: rgba(28, 43, 36, 0.42);
  white-space: nowrap;
}
.weight-opt-dual.is-on strong {
  font-weight: var(--fw-heavy);
}
.weight-opt-dual.is-on span {
  color: rgba(28, 43, 36, 0.58);
}
.weight-wheel-fade-bot {
  bottom: 0;
  background: linear-gradient(0deg, #fff, transparent);
}

.modal-card {
  background: var(--card);
  border-radius: 20px;
  padding: 16px;
}
.modal-card textarea {
  width: 100%;
  min-height: 240px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  font: inherit;
  font-size: 12px;
}
.modal-actions { display: flex; gap: 8px; margin-top: 10px; }

@media (max-width: 430px) {
  .stage { padding: 0; }
  .phone {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    border-radius: 0;
    border: 0;
    box-shadow: none;
  }
  .notch { display: none; }
  .screen { padding-top: 0; }
  .view {
    inset: 0;
    /* Тот же --safe-top, что на нативе (30px) — иначе прыжок 16→~30 при появлении env() */
    padding-top: max(var(--safe-top, 18px), env(safe-area-inset-top, 0px));
  }
  /* На реальном телефоне не поднимаем плавающий док на 60px «под большой палец рамки» */
  .thumb-dock.float,
  .thumb-dock.float.twin {
    padding: 10px 16px calc(12px + var(--safe-bottom));
  }
  #viewWelcome > .thumb-dock.wizard-dock,
  #viewSafariEntry > .thumb-dock.wizard-dock,
  #viewLegal > .thumb-dock.wizard-dock,
  #viewOnboard > .thumb-dock.wizard-dock,
  #viewLegal > .thumb-dock.wizard-dock.twin,
  #viewOnboard > .thumb-dock.wizard-dock.twin {
    padding: 8px 16px calc(21px + var(--safe-bottom));
  }
  html.wizard-kb-open #viewWelcome > .thumb-dock.wizard-dock,
  html.wizard-kb-open #viewSafariEntry > .thumb-dock.wizard-dock,
  html.wizard-kb-open #viewLegal > .thumb-dock.wizard-dock,
  html.wizard-kb-open #viewOnboard > .thumb-dock.wizard-dock,
  html.wizard-kb-open #viewLegal > .thumb-dock.wizard-dock.twin,
  html.wizard-kb-open #viewOnboard > .thumb-dock.wizard-dock.twin {
    padding: 8px 16px 10px;
  }
  #viewLegal .legal-scroll,
  #viewOnboard .onboard-scroll,
  #viewWelcome .welcome-scroll {
    padding-bottom: 76px;
  }
  #viewSafariEntry .safari-entry-scroll {
    padding-bottom: 104px;
  }
}

/* —— Проводник (обучение подсветкой) —— */
.topbar-profile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.topbar-profile-title {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.topbar-profile-title h1 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
  max-width: 100%;
}
.profile-device-key {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  max-width: 100%;
  margin: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: rgba(28, 43, 36, 0.55);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.profile-device-key[hidden] {
  display: none !important;
}
.profile-device-key:active {
  color: rgba(28, 43, 36, 0.82);
}
.profile-device-key-label {
  flex: 0 0 auto;
  text-transform: lowercase;
  opacity: 0.75;
}
.profile-device-key-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(28, 43, 36, 0.72);
}
.topbar-profile-side {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  max-width: min(62%, 240px);
}
.wallet-pill-profile-anchor {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.profile-app-meta {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  line-height: 1.15;
  min-width: 0;
}
.profile-app-line {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.profile-app-version,
.profile-app-build,
.profile-app-service,
.profile-wallet {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: var(--muted);
  line-height: 1.2;
  white-space: nowrap;
}
.profile-app-service {
  color: var(--accent-press);
  font-size: 11px;
}
.profile-app-build {
  font-size: 11px;
  font-weight: 600;
  opacity: 0.85;
}
.profile-wallet {
  font-size: 11px;
  font-weight: 650;
  color: var(--accent-press);
}

/* Одно окно «С чего начать» вместо многошагового тура */
.welcome-value-overlay {
  position: absolute;
  inset: 0;
  z-index: 55;
  pointer-events: auto;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 14px 14px max(88px, calc(var(--safe-bottom) + 72px));
}
.welcome-value-overlay[hidden] {
  display: none !important;
}
.welcome-value-scrim {
  position: absolute;
  inset: 0;
  background: rgba(28, 43, 36, 0.28);
  backdrop-filter: blur(1.5px);
  -webkit-backdrop-filter: blur(1.5px);
}
.welcome-value-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  max-height: min(72vh, 560px);
  overflow: auto;
  padding: 22px 20px 18px;
  border-radius: 26px;
  display: grid;
  gap: 12px;
  background:
    linear-gradient(155deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.82) 100%);
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 18px 40px rgba(28, 43, 36, 0.18);
  -webkit-backdrop-filter: blur(22px) saturate(1.25);
  backdrop-filter: blur(22px) saturate(1.25);
  animation: welcome-value-rise 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes welcome-value-rise {
  from { opacity: 0; transform: translateY(18px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.welcome-value-eyebrow {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.45);
}
.welcome-value-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.03em;
  line-height: 1.28;
  color: var(--ink);
}
.welcome-value-body {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  color: rgba(28, 43, 36, 0.72);
}
.welcome-value-body strong {
  font-weight: 750;
  color: var(--ink);
}
.welcome-value-card .btn.primary {
  margin-top: 4px;
}

.tour-profile-backup,
.profile-data-block {
  display: grid;
  gap: 0;
  margin: 14px 0 0;
}
/* display:grid иначе перебивает [hidden] — кнопки копии остаются на экране */
.tour-profile-backup[hidden],
.tour-profile-backup.hidden,
.profile-data-block[hidden],
.profile-data-block.hidden {
  display: none !important;
}
.profile-data-hint {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.55);
}
.profile-data-split.weight-actions {
  width: 100%;
  margin: 0 0 10px;
  min-height: 48px;
  background: rgba(255, 255, 255, 0.94);
  border: 2px solid rgba(255, 255, 255, 0.98);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 10px 28px rgba(28, 43, 36, 0.1),
    0 2px 8px rgba(28, 43, 36, 0.05);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.profile-data-split .profile-data-action {
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
}
.profile-data-split .profile-data-action:active {
  background: rgba(28, 43, 36, 0.06);
}
.phone .profile-data-split.weight-actions,
#viewProfile.glass-sky .profile-data-split.weight-actions {
  background: rgba(255, 255, 255, 0.94);
  border: 2px solid rgba(255, 255, 255, 0.98);
}
.profile-data-block .wipe-data-bar {
  margin-top: 0;
}
.profile-wipe-pill {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.98);
  background: rgba(255, 248, 246, 0.96);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 10px 28px rgba(28, 43, 36, 0.1),
    0 2px 8px rgba(28, 43, 36, 0.05);
  color: #d4534a;
  font: inherit;
  font-size: 0.95rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
  text-align: center;
  -webkit-appearance: none;
  appearance: none;
}
.profile-wipe-pill:active {
  background: rgba(255, 236, 230, 0.98);
}
#viewProfile.glass-sky .profile-wipe-pill {
  background: rgba(255, 248, 246, 0.96);
  border: 2px solid rgba(255, 255, 255, 0.98);
  color: #d4534a;
}

html.app-access-blocked,
html.app-access-blocked body {
  overflow: hidden;
}
.app-access-gate {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: #e4ebe6;
}
.app-access-gate-card {
  width: min(92vw, 380px);
  background: #fff;
  border-radius: 16px;
  padding: 28px 22px 24px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
  text-align: center;
}
.app-access-gate-card h1 {
  font-size: 1.25rem;
  margin: 0 0 10px;
  font-weight: var(--fw-heavy);
}
.app-access-gate-card p {
  margin: 0;
  line-height: 1.5;
  color: #444;
}
.ai-off-notice {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 40;
  background: #fff;
  border-radius: 16px;
  padding: 36px 22px 22px;
  text-align: center;
  border: 1.5px solid rgba(28, 43, 36, 0.28);
  box-shadow:
    0 16px 40px rgba(28, 43, 36, 0.2),
    0 4px 14px rgba(196, 160, 122, 0.22);
}
.ai-off-notice[hidden] { display: none !important; }
.ai-off-notice h2 {
  font-size: 1.2rem;
  margin: 0 0 10px;
  font-weight: var(--fw-heavy);
}
.ai-off-notice p {
  margin: 0;
  line-height: 1.5;
  color: #444;
}
.ai-off-notice-close {
  position: absolute;
  top: 10px;
  right: 10px;
  border: 1.5px solid rgba(28, 43, 36, 0.38);
  background: #fff;
  color: var(--ink);
}

/* ========== Общий фон «небо суток» (дом, добавить, слоты) ========== */
.glass-sky {
  --glass: rgba(255, 255, 255, 0.42);
  --glass-border: rgba(255, 255, 255, 0.78);
  --glass-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 10px 28px rgba(28, 43, 36, 0.07);
  --glass-blur: blur(18px) saturate(1.3);
  background: var(--sky-bg);
}

/* ========== Дом: стекло-редизайн (утверждённый предпоказ) ========== */
/* фон и переменные — от .glass-sky на том же элементе */

#viewHome.home-glass .date-wheel {
  margin: 0 12px 6px;
  padding: 6px 0 5px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.55);
  border: 0;
  box-shadow: none;
  overflow: hidden;
}
#viewHome.home-glass .date-wheel-track {
  padding-top: 2px;
  padding-bottom: 0;
}
#viewHome.home-glass .date-wheel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  min-height: 34px;
  margin: 0 8px 4px;
}
#viewHome.home-glass .date-wheel-today {
  position: static;
  top: auto;
  left: auto;
  transform: none;
  justify-self: start;
  grid-column: 1;
  grid-row: 1;
  max-width: 100%;
}
#viewHome.home-glass .date-wheel-today:active {
  transform: scale(0.97);
}
#viewHome.home-glass .date-wheel-month {
  grid-column: 2;
  grid-row: 1;
  text-align: center;
  color: rgba(28, 43, 36, 0.5);
  font-weight: 800;
}
#viewHome.home-glass .wallet-pill-home-anchor {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}
/* убрать «белую полосу» по краям — градиенты были под кремовый фон */
#viewHome.home-glass .date-wheel-viewport::before,
#viewHome.home-glass .date-wheel-viewport::after {
  display: none;
}

#viewHome.home-glass .home-tip-card {
  margin-left: 0;
  margin-right: 0;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.62) 45%, rgba(255, 255, 255, 0.7) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    inset 1px 0 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(28, 43, 36, 0.04),
    0 10px 28px rgba(28, 43, 36, 0.08),
    0 2px 8px rgba(255, 255, 255, 0.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  backdrop-filter: blur(22px) saturate(1.35);
}
#viewHome.home-glass .backup-nudge-card {
  margin-left: 0;
  margin-right: 0;
  border: 1.5px solid var(--glass-border);
  background:
    linear-gradient(135deg, rgba(255, 220, 208, 0.62), rgba(255, 236, 228, 0.52));
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewHome.home-glass .backup-nudge-mark {
  top: 10px;
  right: 10px;
}
#viewHome.home-glass .home-icon-nudge-card {
  margin-left: 0;
  margin-right: 0;
  border: 1.5px solid var(--glass-border);
  background:
    linear-gradient(135deg, rgba(210, 228, 255, 0.62), rgba(236, 244, 255, 0.52));
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewHome.home-glass .backup-nudge-actions,
#viewHome.home-glass .home-icon-nudge-actions {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
#viewHome.home-glass .time-card-panel {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 2px 0 0;
  margin-bottom: 8px;
}
#viewHome.home-glass .time-card-panel.diary-hybrid {
  border: 1.5px solid var(--glass-border);
  background: rgba(255, 255, 255, 0.38);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 14px 12px 12px;
  border-radius: 24px;
  margin-bottom: 10px;
}
#viewHome.home-glass .time-card-title {
  margin: 2px 2px 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}
#viewHome.home-glass .diary-hybrid-title {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.55);
  letter-spacing: 0;
  text-transform: none;
}
#viewHome.home-glass .time-card-title strong {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.5);
}
/* Показатели — как дневник: мелкий ярлык сверху, подпись серенькая */
#viewHome.home-glass #tourHomeMetrics .time-card-title {
  margin: 0;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.55);
}
#viewHome.home-glass #tourHomeMetrics .time-card-title strong {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.5);
}
#viewHome.home-glass .slot-row {
  margin-bottom: 0;
  gap: 8px;
}

#viewHome.home-glass .slot-btn,
#viewHome.home-glass .time-card-panel .slot-btn,
#viewHome.home-glass .time-card-panel .slot-btn.art-morning,
#viewHome.home-glass .time-card-panel .slot-btn.art-lunch,
#viewHome.home-glass .time-card-panel .slot-btn.art-snack,
#viewHome.home-glass .time-card-panel .slot-btn.art-evening,
#viewHome.home-glass .time-card-panel .slot-btn.art-add,
#viewHome.home-glass .time-card-panel .slot-btn.art-council {
  height: 76px !important;
  min-height: 76px !important;
  max-height: 76px !important;
  border-radius: 18px;
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 10px 28px rgba(28, 43, 36, 0.07);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  /* текст может заходить на картинку справа — без обрезки «воды» */
  padding: 12px 12px 12px 12px;
  justify-content: center;
  align-items: flex-start;
  overflow: hidden;
}
#viewHome.home-glass .slot-btn.has-line-art .slot-art {
  display: block !important;
  inset: auto;
  top: 50%;
  right: 4px;
  width: 48px;
  height: 48px;
  transform: translateY(-50%);
  z-index: 0;
  opacity: 0.55;
  background-image: var(--slot-art);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  filter: none;
}
#viewHome.home-glass .slot-btn::after {
  content: none;
}
#viewHome.home-glass .slot-btn.art-add::after,
#viewHome.home-glass .slot-btn.art-council::after {
  content: none;
}
#viewHome.home-glass .slot-btn b {
  display: block;
  position: relative;
  z-index: 2;
  height: 18px;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 18px;
  color: var(--ink);
}
#viewHome.home-glass .slot-btn small.slot-hint {
  display: block;
  position: relative;
  z-index: 2;
  margin-top: 6px;
  width: auto;
  max-width: none;
  height: auto;
  overflow: visible;
  font-size: 11.5px;
  font-weight: 550;
  line-height: 16px;
  color: rgba(28, 43, 36, 0.55);
  padding-right: 0;
}
#viewHome.home-glass .slot-btn .slot-hint-line {
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
#viewHome.home-glass .slot-btn.art-morning,
#viewHome.home-glass .slot-btn.art-lunch,
#viewHome.home-glass .slot-btn.art-snack,
#viewHome.home-glass .slot-btn.art-evening {
  background:
    radial-gradient(ellipse 72% 85% at 88% 70%, color-mix(in srgb, var(--tone, #5a6b62) 12%, transparent), transparent 68%),
    rgba(255, 255, 255, 0.52) !important;
}
#viewHome.home-glass .slot-btn.is-filled {
  background:
    radial-gradient(ellipse 72% 85% at 88% 70%, color-mix(in srgb, var(--tone, #5a6b62) 14%, transparent), transparent 68%),
    rgba(255, 255, 255, 0.62) !important;
}
#viewHome.home-glass .slot-btn:not(.is-filled) small.slot-hint {
  color: rgba(28, 43, 36, 0.42);
}

/* «Вне времени» — широкая пилюля под слотами */
#viewHome.home-glass .diary-out-of-time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 100%;
  margin-top: 10px;
  padding: 11px 12px 10px;
  border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.62);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  font: inherit;
  color: var(--ink);
  cursor: pointer;
  text-align: center;
}
#viewHome.home-glass .diary-out-of-time strong {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
#viewHome.home-glass .diary-out-of-time span {
  font-size: 11px;
  font-weight: 550;
  line-height: 1.2;
  color: rgba(28, 43, 36, 0.48);
}

/* «Итог дня» — строка под пилюлей */
#viewHome.home-glass .diary-day-итог {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  padding: 12px 2px 2px;
  border: 0;
  border-top: 1px solid rgba(28, 43, 36, 0.1);
  background: transparent;
  font: inherit;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  position: relative;
  isolation: isolate;
}
#viewHome.home-glass .diary-day-итог-copy {
  min-width: 0;
  flex: 1;
}
/* Заголовок «Итог дня» — как «Утро» / «День» (подписи не трогаем) */
#viewHome.home-glass .diary-day-итог-copy strong {
  display: block;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 18px;
  color: var(--ink);
}
#viewHome.home-glass .diary-day-итог-status {
  display: block;
  margin-top: 3px;
  font-size: 12.5px;
  font-weight: 550;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.55);
}
#viewHome.home-glass .diary-day-итог-go-wrap {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  position: relative;
  display: grid;
  place-items: center;
}
#viewHome.home-glass .diary-day-итог-go {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
  position: relative;
  z-index: 1;
}
#viewHome.home-glass .diary-day-итог-go svg {
  width: 16px;
  height: 16px;
  display: block;
  margin: 0;
}
#viewHome.home-glass .diary-day-итог.is-wait {
  opacity: 0.88;
}
#viewHome.home-glass .diary-day-итог.is-wait .diary-day-итог-copy strong {
  color: rgba(28, 43, 36, 0.72);
}
#viewHome.home-glass .diary-day-итог.is-wait .diary-day-итог-status {
  color: rgba(28, 43, 36, 0.48);
}
#viewHome.home-glass .diary-day-итог.is-wait .diary-day-итог-go {
  opacity: 0.7;
  background: rgba(255, 255, 255, 0.28);
  color: rgba(28, 43, 36, 0.32);
}
/* Разбор уже есть — спокойно, без золота */
#viewHome.home-glass .diary-day-итог.is-ready .diary-day-итог-copy strong {
  color: var(--ink);
}
#viewHome.home-glass .diary-day-итог.is-ready .diary-day-итог-status {
  color: rgba(28, 43, 36, 0.62);
  font-weight: 600;
}
#viewHome.home-glass .diary-day-итог.is-ready .diary-day-итог-go {
  background: rgba(63, 138, 92, 0.18);
  border-color: rgba(255, 255, 255, 0.85);
  color: rgba(28, 43, 36, 0.72);
  opacity: 1;
}
/* Можно получить — встроено + золото + бесшовный перелив */
#viewHome.home-glass .diary-day-итог.is-glow {
  margin-top: 10px;
  padding: 12px 12px 12px 16px;
  border-top-color: transparent;
  border-radius: 999px;
  overflow: hidden;
  background: transparent;
}
#viewHome.home-glass .diary-day-итог.is-glow::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  border-radius: 999px;
  background: linear-gradient(
    105deg,
    rgba(255, 248, 220, 0.78) 0%,
    rgba(255, 236, 170, 0.95) 12%,
    rgba(255, 250, 230, 0.72) 25%,
    rgba(255, 226, 150, 0.92) 38%,
    rgba(255, 248, 220, 0.78) 50%,
    rgba(255, 236, 170, 0.95) 62%,
    rgba(255, 250, 230, 0.72) 75%,
    rgba(255, 226, 150, 0.92) 88%,
    rgba(255, 248, 220, 0.78) 100%
  );
  background-size: 200% 100%;
  background-position: 0% 50%;
  border: 1.5px solid rgba(232, 196, 80, 0.55);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 6px 16px rgba(180, 130, 20, 0.1);
  animation: diary-day-итог-shimmer 4s linear infinite;
}
#viewHome.home-glass .diary-day-итог.is-glow::after {
  content: "";
  position: absolute;
  inset: -20% -55%;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(
    105deg,
    transparent 38%,
    rgba(255, 255, 255, 0.5) 50%,
    transparent 62%
  );
  transform: translateX(-130%) rotate(8deg);
  opacity: 0;
  pointer-events: none;
  animation: diary-day-итог-shine 4.8s ease-in-out infinite;
}
#viewHome.home-glass .diary-day-итог.is-glow .diary-day-итог-status {
  color: #8a6a18;
  font-weight: 650;
  font-style: normal;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#viewHome.home-glass .diary-day-итог.is-glow .diary-day-итог-go {
  background: rgba(232, 196, 80, 0.42);
  border-color: rgba(255, 255, 255, 0.92);
  color: #5a4508;
}
#viewHome.home-glass .diary-day-итог.is-glow .diary-day-итог-go-wrap::before {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  background: rgba(232, 196, 80, 0.32);
  z-index: 0;
  pointer-events: none;
  animation: diary-day-итог-glow 2.6s ease-in-out infinite;
}
@keyframes diary-day-итог-shimmer {
  from {
    background-position: 0% 50%;
  }
  to {
    background-position: 100% 50%;
  }
}
@keyframes diary-day-итог-shine {
  0% {
    transform: translateX(-130%) rotate(8deg);
    opacity: 0;
  }
  12% {
    opacity: 0.85;
  }
  38% {
    transform: translateX(130%) rotate(8deg);
    opacity: 0;
  }
  38.01%,
  100% {
    transform: translateX(-130%) rotate(8deg);
    opacity: 0;
  }
}
@keyframes diary-day-итог-glow {
  0%,
  100% {
    opacity: 0.3;
    transform: scale(0.92);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  #viewHome.home-glass .diary-day-итог.is-glow::before,
  #viewHome.home-glass .diary-day-итог.is-glow::after,
  #viewHome.home-glass .diary-day-итог.is-glow .diary-day-итог-go-wrap::before {
    animation: none !important;
  }
  #viewHome.home-glass .diary-day-итог.is-glow::after {
    display: none;
  }
  #viewHome.home-glass .diary-day-итог.is-glow .diary-day-итог-go-wrap::before {
    opacity: 0.55;
    transform: none;
  }
}

#viewHome.home-glass .slot-btn.art-add,
#viewHome.home-glass .slot-btn.art-council {
  display: none;
}

#viewHome.home-glass #btnSymptomNow.symptom-now-bar {
  margin: 10px 0 12px;
  border-radius: 20px;
  border: 1.5px solid rgba(255, 220, 210, 0.85);
  background: rgba(224, 122, 95, 0.22);
  color: var(--ink);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewHome.home-glass #btnSymptomNow .symptom-now-bar-mark {
  background: rgba(224, 122, 95, 0.85);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
#viewHome.home-glass #btnSymptomNow .symptom-now-bar-copy small {
  color: rgba(28, 43, 36, 0.65);
  opacity: 1;
}

#viewHome.home-glass #tourHomeMetrics.day-card-panel {
  border: 1.5px solid var(--glass-border);
  background: var(--glass);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 12px;
  border-radius: 22px;
}
#viewHome.home-glass #tourHomeMetrics .day-card-go {
  width: 34px;
  height: 34px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#viewHome.home-glass #tourHomeMetrics .day-card-go svg {
  width: 16px;
  height: 16px;
  margin: 0;
}
#viewHome.home-glass #tourHomeMetrics .day-stat {
  border-radius: 22px;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 8px 18px rgba(28, 43, 36, 0.07);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  min-height: 118px;
  padding: 12px 12px 11px;
}
#viewHome.home-glass #tourHomeMetrics .day-stat-title {
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.01em;
  text-transform: none;
  color: inherit;
  line-height: 1.2;
}
#viewHome.home-glass #tourHomeMetrics .day-stat.is-empty b {
  display: block;
  opacity: 0.4;
}
#viewHome.home-glass #tourHomeMetrics .day-stat-status {
  margin-top: 2px;
  padding: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  color: rgba(28, 43, 36, 0.55);
}
#viewHome.home-glass #tourHomeMetrics .day-stat.tone-weight {
  color: #3f3568;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(154, 142, 196, 0.28), transparent 58%),
    rgba(198, 185, 230, 0.42);
}
#viewHome.home-glass #tourHomeMetrics .day-stat.tone-steps {
  color: #1f4d32;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(90, 154, 120, 0.28), transparent 58%),
    rgba(170, 210, 185, 0.45);
}
#viewHome.home-glass #tourHomeMetrics .day-stat.tone-water {
  color: #154a6e;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(110, 179, 224, 0.28), transparent 58%),
    rgba(170, 205, 230, 0.45);
}
#viewHome.home-glass #tourHomeMetrics .day-stat.tone-kcal,
#viewHome.home-glass #tourHomeMetrics .day-stat.tone-food {
  color: #6a3d0e;
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(224, 168, 106, 0.28), transparent 58%),
    rgba(230, 195, 165, 0.45);
}

/* ========== Добавить + слоты (утро/день/после полудня/вечер): стекло-плитки ========== */
#viewAdd.glass-sky > .topbar,
#viewCat.glass-sky > .topbar {
  background: transparent;
  border: 0;
  box-shadow: none;
}
#viewAdd.glass-sky .back-round,
#viewCat.glass-sky .back-round {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
#viewAdd.glass-sky .hint-line,
#viewCat.glass-sky .hint-line {
  color: rgba(28, 43, 36, 0.62);
}

#viewAdd.glass-sky .tile.tile-with-art,
#viewCat.glass-sky .tile.tile-with-art {
  height: 88px;
  min-height: 88px;
  max-height: 88px;
  border-radius: 20px;
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  /* Размытие не на кнопке: иначе Safari не клипует .tile-art по скруглению */
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  isolation: isolate;
  padding: 10px 12px 10px 14px;
  justify-content: center;
  gap: 3px;
  overflow: hidden;
}
#viewAdd.glass-sky .tile.tile-with-art::before,
#viewCat.glass-sky .tile.tile-with-art::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewAdd.glass-sky .tile.tile-with-art strong,
#viewCat.glass-sky .tile.tile-with-art strong {
  position: relative;
  z-index: 2;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.02em;
  max-width: 52%;
  line-height: 1.15;
}
#viewAdd.glass-sky .tile.tile-with-art > span:not(.tile-art):not(.tile-done),
#viewCat.glass-sky .tile.tile-with-art > span:not(.tile-art):not(.tile-done) {
  position: relative;
  z-index: 2;
  font-size: 11.5px;
  font-weight: 550;
  color: rgba(28, 43, 36, 0.58);
  max-width: 52%;
  line-height: 1.25;
}
#viewAdd.glass-sky .tile-art,
#viewCat.glass-sky .tile-art,
#viewAdd.glass-sky .tile.c-voice .tile-art,
#viewCat.glass-sky .tile.c-voice .tile-art {
  top: 0;
  bottom: 0;
  right: -18px;
  width: 88px;
  height: auto;
  background-size: auto 100%;
  background-position: center right;
  /* drop-shadow на арте тоже ломает клип в Safari — тень уже на кнопке */
  filter: none;
  border-radius: 0;
  overflow: visible;
  -webkit-mask-image: none;
  mask-image: none;
  opacity: 1;
  z-index: 1;
}

/* «Вне времени» + окна слотов: группы + линейный водяной знак */
#viewAdd #addTiles,
#viewCat #slotChecks {
  padding: 0 0 18px;
}
#viewAdd .add-group,
#viewCat .add-group {
  margin: 0;
}
#viewAdd .add-group + .add-group,
#viewCat .add-group + .add-group {
  margin-top: 14px;
}
#viewAdd .add-group-lab,
#viewCat .add-group-lab {
  margin: 0 0 4px;
  font: 800 11px/1.2 var(--font);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.5);
}
#viewAdd .add-group-lead,
#viewCat .add-group-lead {
  margin: 0 0 8px;
  font: 550 13px/1.3 var(--font);
  color: rgba(28, 43, 36, 0.55);
}
#viewAdd .add-group .tiles,
#viewCat .add-group .tiles {
  gap: 8px;
  padding: 0;
}
#viewAdd.glass-sky .tile.tile-with-art,
#viewCat.glass-sky .tile.tile-with-art {
  min-height: 76px;
  height: auto;
  max-height: none;
  justify-content: center;
  padding: 12px 56px 12px 12px;
  background:
    radial-gradient(ellipse 72% 85% at 88% 70%, color-mix(in srgb, var(--tone, #5a6b62) 12%, transparent), transparent 68%),
    rgba(255, 255, 255, 0.58) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 10px 28px rgba(28, 43, 36, 0.07);
}
#viewAdd.glass-sky .tile.tile-with-art strong,
#viewAdd.glass-sky .tile.tile-with-art > span:not(.tile-art):not(.tile-done),
#viewCat.glass-sky .tile.tile-with-art strong,
#viewCat.glass-sky .tile.tile-with-art > span:not(.tile-art):not(.tile-done) {
  max-width: 100%;
}
#viewAdd.glass-sky .tile-art,
#viewAdd.glass-sky .tile.c-voice .tile-art,
#viewCat.glass-sky .tile-art,
#viewCat.glass-sky .tile.c-voice .tile-art {
  top: 50%;
  bottom: auto;
  right: 8px;
  width: 48px;
  height: 48px;
  transform: translateY(-50%);
  background-size: contain;
  background-position: center;
  opacity: 0.85;
}

#viewAdd.glass-sky .tile.c-sleep,
#viewCat.glass-sky .tile.c-sleep { background: rgba(210, 195, 235, 0.42); }
#viewAdd.glass-sky .tile.c-food,
#viewCat.glass-sky .tile.c-food { background: rgba(180, 215, 185, 0.45); }
#viewAdd.glass-sky .tile.c-water,
#viewCat.glass-sky .tile.c-water { background: rgba(170, 205, 230, 0.45); }
#viewAdd.glass-sky .tile.c-meds,
#viewCat.glass-sky .tile.c-meds { background: rgba(200, 190, 220, 0.42); }
#viewAdd.glass-sky .tile.c-stool,
#viewCat.glass-sky .tile.c-stool { background: rgba(220, 200, 175, 0.45); }
#viewAdd.glass-sky .tile.c-feel,
#viewCat.glass-sky .tile.c-feel { background: rgba(240, 180, 165, 0.4); }
#viewAdd.glass-sky .tile.c-mood,
#viewCat.glass-sky .tile.c-mood { background: rgba(185, 215, 185, 0.45); }
#viewAdd.glass-sky .tile.c-activity,
#viewCat.glass-sky .tile.c-activity { background: rgba(175, 200, 165, 0.45); }
#viewAdd.glass-sky .tile.c-exercise,
#viewCat.glass-sky .tile.c-exercise { background: rgba(160, 205, 175, 0.48); }
#viewAdd.glass-sky .tile.c-voice,
#viewCat.glass-sky .tile.c-voice { background: rgba(205, 190, 230, 0.42); }
#viewAdd.glass-sky .tile.c-weight,
#viewCat.glass-sky .tile.c-weight { background: rgba(210, 195, 175, 0.45); }

#viewAdd.glass-sky .tile-done,
#viewCat.glass-sky .tile-done {
  top: 6px;
  left: auto;
  right: 6px;
  z-index: 3;
  background: rgba(255, 255, 255, 0.88);
  box-shadow:
    0 0 0 1.5px rgba(63, 138, 92, 0.35),
    0 2px 6px rgba(28, 43, 36, 0.08);
}

/* ========== История вашего дня: стекло ========== */
#viewDay.glass-sky > .topbar {
  background: transparent;
  border: 0;
  box-shadow: none;
}
#viewDay.glass-sky .back-round {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
#viewDay.glass-sky .hint-line,
#viewDay.glass-sky .empty {
  color: rgba(28, 43, 36, 0.62);
}

#viewDay.glass-sky .date-wheel {
  margin: 0 12px 6px;
  padding: 6px 0 5px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.55);
  border: 0;
  box-shadow: none;
  overflow: hidden;
}
#viewDayCouncil.glass-sky .date-wheel {
  margin: 0 12px 6px;
  padding: 6px 0 5px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.55);
  border: 0;
  box-shadow: none;
  overflow: hidden;
  flex: 0 0 auto;
}
#viewDay.glass-sky .date-wheel-head,
#viewDayCouncil.glass-sky .date-wheel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  min-height: 34px;
  margin: 0 8px 4px;
}
#viewDay.glass-sky .date-wheel-today,
#viewDayCouncil.glass-sky .date-wheel-today {
  position: static;
  top: auto;
  left: auto;
  transform: none;
  justify-self: start;
  grid-column: 1;
  grid-row: 1;
  max-width: 100%;
}
#viewDay.glass-sky .date-wheel-today:active,
#viewDayCouncil.glass-sky .date-wheel-today:active {
  transform: scale(0.97);
}
#viewDay.glass-sky .date-wheel-month,
#viewDayCouncil.glass-sky .date-wheel-month {
  grid-column: 2;
  grid-row: 1;
  text-align: center;
  color: rgba(28, 43, 36, 0.5);
  font-weight: 800;
}
#viewDay.glass-sky .wallet-pill-home-anchor,
#viewDayCouncil.glass-sky .wallet-pill-home-anchor {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}
#viewDay.glass-sky .date-wheel-track {
  padding-top: 2px;
  padding-bottom: 0;
}
#viewDayCouncil.glass-sky .date-wheel-track {
  padding-top: 2px;
  padding-bottom: 0;
}
#viewDay.glass-sky .date-wheel-viewport::before,
#viewDay.glass-sky .date-wheel-viewport::after {
  display: none;
}
#viewDayCouncil.glass-sky .date-wheel-viewport::before,
#viewDayCouncil.glass-sky .date-wheel-viewport::after {
  display: none;
}

#viewDay.glass-sky .day-log {
  gap: 8px;
}
#viewDay.glass-sky .day-log-item {
  grid-template-columns: 62px 1fr 36px;
  gap: 8px;
  border-radius: 18px;
  border: 1.5px solid var(--glass-border);
  background:
    linear-gradient(135deg, rgba(255, 248, 240, 0.72), rgba(236, 244, 255, 0.68));
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 10px 8px 10px 14px;
  font-weight: 550;
}
#viewDay.glass-sky .day-log-item.has-kcal {
  grid-template-columns: 62px 1fr auto 36px;
}
#viewDay.glass-sky .day-log-time {
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  background: rgba(255, 255, 255, 0.72);
  color: rgba(28, 43, 36, 0.72);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.95) inset, 0 2px 8px rgba(28, 43, 36, 0.06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
#viewDay.glass-sky .day-log-time:hover {
  background: rgba(255, 255, 255, 0.88);
  color: rgba(28, 43, 36, 0.85);
}
#viewDay.glass-sky .day-log-item time {
  color: rgba(28, 43, 36, 0.58);
  font-weight: 650;
}
#viewDay.glass-sky .day-log-kcal {
  background: rgba(245, 217, 184, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.65);
}
#viewDay.glass-sky .day-log-kcal-stack {
  background: rgba(245, 217, 184, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
}
#viewDay.glass-sky .day-log-del {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  background: #fff;
  color: rgba(28, 43, 36, 0.55);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, 0 2px 8px rgba(28, 43, 36, 0.08);
  font-size: 0;
  line-height: 0;
}
#viewDay.glass-sky .day-log-del svg {
  display: block;
  width: 14px;
  height: 14px;
}
#viewDay.glass-sky .day-log-del:hover {
  background: #fff;
  border-color: rgba(255, 255, 255, 0.95);
  color: rgba(28, 43, 36, 0.7);
}
#viewDay.glass-sky .day-log-del:active {
  background: rgba(255, 255, 255, 0.92);
  color: rgba(180, 35, 24, 0.85);
  border-color: rgba(255, 255, 255, 0.95);
  transform: scale(0.96);
}
#viewDay.glass-sky .empty {
  margin: 12px 0 0;
  padding: 18px 16px;
  border-radius: 18px;
  text-align: center;
  background:
    linear-gradient(135deg, rgba(255, 248, 240, 0.72), rgba(236, 244, 255, 0.68));
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}

/* ========== Рекомендации (меню): стекло ========== */
#viewMore.glass-sky > .topbar {
  background: transparent;
  border: 0;
  box-shadow: none;
}
#viewMore.glass-sky .back-round,
#viewMore.glass-sky .service-refresh-round {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
#viewMore.glass-sky .hint-line {
  color: rgba(28, 43, 36, 0.62);
}
#viewMore.glass-sky .review-tiles .review-tile {
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewMore.glass-sky .review-tile-metrics {
  background: rgba(160, 220, 175, 0.48) !important;
}
#viewMore.glass-sky .review-tiles .review-tile > span {
  color: rgba(28, 43, 36, 0.58);
}
#viewMore.glass-sky .review-tile-period {
  background: rgba(63, 138, 92, 0.28) !important;
}
#viewMore.glass-sky .review-tile-period > span {
  color: rgba(28, 43, 36, 0.58);
}

/* ========== Мои показатели: небо уже на #viewMore; стекло + цвета дома + обводка ========== */
#viewMore.glass-sky .charts-period-head .back-round {
  border: 1.5px solid var(--glass-border);
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
  color: rgba(28, 43, 36, 0.62);
}
#viewMore.glass-sky .charts-scale-btn:not(.is-on) {
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewMore.glass-sky .charts-story-card {
  background: rgba(255, 255, 255, 0.48);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewMore.glass-sky .charts-story-avg,
#viewMore.glass-sky .charts-disclaimer {
  color: rgba(28, 43, 36, 0.62);
}
#viewMore.glass-sky .charts-metric-tab {
  box-shadow: none;
  border: 1.5px solid var(--glass-border);
  color: var(--ink);
}
#viewMore.glass-sky .charts-metric-tab.tone-water {
  background: rgba(170, 205, 230, 0.45);
}
#viewMore.glass-sky .charts-metric-tab.tone-steps {
  background: rgba(170, 210, 185, 0.45);
}
#viewMore.glass-sky .charts-metric-tab.tone-kcal {
  background: rgba(230, 195, 165, 0.45);
}
#viewMore.glass-sky .charts-metric-tab.tone-weight {
  background: rgba(198, 185, 230, 0.42);
}
#viewMore.glass-sky .charts-metric-tab.tone-sleep {
  background: rgba(210, 195, 235, 0.42);
}
#viewMore.glass-sky .charts-metric-tab.tone-sleep-q {
  background: rgba(210, 195, 235, 0.42);
}
#viewMore.glass-sky .charts-metric-tab.is-on {
  color: var(--ink);
  border-color: rgba(255, 255, 255, 0.9);
  outline: 2px solid rgba(63, 138, 92, 0.65);
  outline-offset: 1px;
  box-shadow: none;
}
#viewMore.glass-sky .charts-metric-tab.tone-water.is-on {
  background: rgba(170, 205, 230, 0.62);
}
#viewMore.glass-sky .charts-metric-tab.tone-steps.is-on {
  background: rgba(170, 210, 185, 0.62);
}
#viewMore.glass-sky .charts-metric-tab.tone-kcal.is-on {
  background: rgba(230, 195, 165, 0.62);
}
#viewMore.glass-sky .charts-metric-tab.tone-weight.is-on {
  background: rgba(198, 185, 230, 0.58);
}
#viewMore.glass-sky .charts-metric-tab.tone-sleep.is-on {
  background: rgba(210, 195, 235, 0.58);
}
#viewMore.glass-sky .charts-metric-tab.tone-sleep-q.is-on {
  background: rgba(210, 195, 235, 0.58);
}
#viewMore.glass-sky .charts-food-group {
  border: 1.5px solid var(--glass-border);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
}
#viewMore.glass-sky .charts-food-group.tone-fat {
  background: rgba(230, 200, 170, 0.42);
}
#viewMore.glass-sky .charts-food-group.tone-b {
  background: rgba(200, 190, 230, 0.4);
}
#viewMore.glass-sky .charts-food-group.tone-min {
  background: rgba(185, 215, 200, 0.45);
}
#viewMore.glass-sky .charts-food-group.tone-omega {
  background: rgba(170, 205, 230, 0.42);
}
#viewMore.glass-sky .charts-food-all {
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}

/* ========== Профиль «Я»: небо + стекло (вёрстку не трогаем) ========== */
#viewProfile.glass-sky > .topbar {
  background: transparent;
  border: 0;
  box-shadow: none;
}
#viewProfile.glass-sky .profile-app-version,
#viewProfile.glass-sky .profile-app-build,
#viewProfile.glass-sky .profile-app-service,
#viewProfile.glass-sky .section-title {
  color: rgba(28, 43, 36, 0.55);
}
#viewProfile.glass-sky .field .input-mic,
#viewProfile.glass-sky .field-age-pick .age-pick-shell {
  background: rgba(255, 255, 255, 0.48) !important;
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewProfile.glass-sky .chip-grid {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  padding: 0;
}
/* Активность: плотная белая карточка, без «грязных» краёв стекла */
#viewProfile.glass-sky .onboard-activity-card {
  background: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  box-shadow: var(--glass-shadow);
  border-radius: 18px;
  overflow: hidden;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
#viewProfile.glass-sky .profile-activity-block .activity-drum {
  border-radius: 16px;
  overflow: hidden;
}
#viewProfile.glass-sky .profile-activity-block .weight-wheel-line {
  border-radius: 14px;
  background: #ffffff;
  border: 1.5px solid rgba(28, 43, 36, 0.08);
  box-shadow: 0 2px 10px rgba(28, 43, 36, 0.06);
}
#viewProfile.glass-sky .profile-activity-block .weight-wheel-fade-top {
  background: linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
}
#viewProfile.glass-sky .profile-activity-block .weight-wheel-fade-bot {
  background: linear-gradient(0deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
}
/* Раскрывашки: верх белый, низ серый — как раньше, не всё стекло */
#viewProfile.glass-sky .prof-acc {
  background: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  overflow: hidden;
}
#viewProfile.glass-sky .prof-acc-head {
  background: #ffffff;
}
#viewProfile.glass-sky .prof-acc-preview {
  background: #f2f0ec;
  border-top: 1px solid rgba(28, 43, 36, 0.08);
}
#viewProfile.glass-sky .prof-acc-body {
  background: #f7f5f1;
}
#viewProfile.glass-sky .field > input,
#viewProfile.glass-sky .pair .field > input,
#viewProfile.glass-sky .metrics-row .field > input,
#viewProfile.glass-sky .field-age-pick .age-pick-value-btn {
  background: transparent !important;
}
#viewProfile.glass-sky .chip-toggle {
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
}
#viewProfile.glass-sky .chip-toggle.on {
  background: linear-gradient(165deg, var(--select-mid) 0%, var(--select) 48%, var(--select-press) 100%);
  color: #fffaf7;
  border-color: transparent;
  box-shadow:
    0 0 0 2px rgba(255, 251, 247, 0.95),
    0 0 0 4px rgba(224, 122, 95, 0.42),
    0 10px 22px rgba(224, 122, 95, 0.3);
}
#viewProfile.glass-sky .activity-drum-toggle {
  background: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  box-shadow: var(--glass-shadow);
  color: var(--ink);
}

#viewProfile.glass-sky .wipe-data-bar,
#viewProfile.glass-sky .backup-data-bar {
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}/* ========== Чат-экраны: разбор дня / беспокоит / вопрос + период ========== */
#viewDayCouncil.glass-sky > .topbar,
#viewSymptomNow.glass-sky > .topbar,
#viewConsult.glass-sky > .topbar,
#viewSupport.glass-sky > .topbar,
#viewRefund.glass-sky > .topbar {
  background: transparent !important;
  border: 0;
  border-bottom: 0;
  box-shadow: none;
}#viewDayCouncil.glass-sky .back-round,
#viewDayCouncil.glass-sky .service-refresh-round,
#viewSymptomNow.glass-sky .back-round,
#viewConsult.glass-sky .back-round,
#viewSupport.glass-sky .back-round,
#viewRefund.glass-sky .back-round {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}#viewDayCouncil.glass-sky .scroll-jump-btn,
#viewSymptomNow.glass-sky .scroll-jump-btn,
#viewConsult.glass-sky .scroll-jump-btn,
#viewSupport.glass-sky .scroll-jump-btn,
#viewMore.glass-sky.is-period-review .scroll-jump-btn,
#viewRefund.glass-sky .scroll-jump-btn {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}#viewDayCouncil.glass-sky .scroll-jump-btn svg,
#viewSymptomNow.glass-sky .scroll-jump-btn svg,
#viewConsult.glass-sky .scroll-jump-btn svg,
#viewSupport.glass-sky .scroll-jump-btn svg,
#viewMore.glass-sky.is-period-review .scroll-jump-btn svg,
#viewRefund.glass-sky .scroll-jump-btn svg {
  display: block;
  width: 18px;
  height: 18px;
}#viewDayCouncil.glass-sky .hint-line,
#viewSymptomNow.glass-sky .hint-line,
#viewConsult.glass-sky .hint-line,
#viewSupport.glass-sky .hint-line,
#viewMore.glass-sky.is-period-review .hint-line,
#viewRefund.glass-sky .hint-line {
  color: rgba(28, 43, 36, 0.62);
}#viewDayCouncil.glass-sky .day-council-composer,
#viewSymptomNow.glass-sky .symptom-now-composer,
#viewConsult.glass-sky .consult-composer,
#viewSupport.glass-sky .consult-composer,
#viewMore.glass-sky.is-period-review #periodAskComposer,
#viewRefund.glass-sky .consult-composer {
  background: linear-gradient(
    180deg,
    rgba(235, 228, 216, 0) 0%,
    rgba(235, 228, 216, 0.55) 28%,
    rgba(228, 235, 230, 0.92) 100%
  );
}/* Поля чатов с ИИ — тот же стиль стекла, что у «Что съели» (фон+каёмка; размеры как были). */
#viewDayCouncil.glass-sky .day-council-draft .input-mic,
#viewDayCouncil.glass-sky .day-council-draft .input-mic.has-tidy,
#viewSymptomNow.glass-sky .symptom-now-field .input-mic,
#viewSymptomNow.glass-sky .symptom-now-field .input-mic.has-tidy,
#viewConsult.glass-sky .consult-draft-field .input-mic,
#viewConsult.glass-sky .consult-draft-field .input-mic.has-tidy,
#viewSupport.glass-sky .consult-draft-field .input-mic,
#viewSupport.glass-sky .consult-draft-field .input-mic.has-tidy,
#viewMore.glass-sky.is-period-review .period-ask-field .input-mic,
#viewMore.glass-sky.is-period-review .period-ask-field .input-mic.has-tidy,
#viewRefund.glass-sky .consult-draft-field .input-mic,
#viewRefund.glass-sky .consult-draft-field .input-mic.has-tidy {
  border: 1.5px solid var(--glass-border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.48) !important;
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  overflow: hidden;
  box-sizing: border-box;
  min-height: 115px !important;
  height: 115px !important;
}#viewDayCouncil.glass-sky .day-council-draft .input-mic > textarea,
#viewDayCouncil.glass-sky #dayCouncilQuestion,
#viewSymptomNow.glass-sky .symptom-now-field .input-mic > textarea,
#viewSymptomNow.glass-sky #symptomNowInput,
#viewConsult.glass-sky .consult-draft-field .input-mic > textarea,
#viewConsult.glass-sky #consultInput,
#viewSupport.glass-sky .consult-draft-field .input-mic > textarea,
#viewSupport.glass-sky #supportInput,
#viewMore.glass-sky.is-period-review .period-ask-field .input-mic > textarea,
#viewMore.glass-sky.is-period-review #periodAskInput,
#viewRefund.glass-sky .consult-draft-field .input-mic > textarea,
#viewRefund.glass-sky #supportInput {
  box-sizing: border-box;
  min-height: 115px !important;
  height: 115px !important;
  max-height: 148px !important;
  padding: 12px 14px 48px 12px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  background: transparent !important;
  background-color: transparent !important;
  overflow-y: auto;
  scrollbar-width: thin;
}
#viewMore.glass-sky.is-period-review .period-ask-field .input-mic > textarea:disabled,
#viewMore.glass-sky.is-period-review #periodAskInput:disabled {
  overflow: hidden !important;
  overflow-y: hidden !important;
  overscroll-behavior: none;
}#viewConsult.glass-sky .consult-draft-field .input-mic.has-tidy,
#viewConsult.glass-sky .consult-draft-field .input-mic,
#viewSupport.glass-sky .consult-draft-field .input-mic.has-tidy,
#viewSupport.glass-sky .consult-draft-field .input-mic,
#viewRefund.glass-sky .consult-draft-field .input-mic.has-tidy,
#viewRefund.glass-sky .consult-draft-field .input-mic {
  min-height: 128px !important;
  height: 128px !important;
}#viewConsult.glass-sky .consult-draft-field .input-mic > textarea,
#viewConsult.glass-sky #consultInput,
#viewSupport.glass-sky .consult-draft-field .input-mic > textarea,
#viewSupport.glass-sky #supportInput,
#viewRefund.glass-sky .consult-draft-field .input-mic > textarea,
#viewRefund.glass-sky #supportInput {
  padding: 12px 14px 48px 12px !important;
  min-height: 128px !important;
  height: 128px !important;
  max-height: 128px !important;
  overflow: hidden !important;
  overflow-y: hidden !important;
  overscroll-behavior: none;
  touch-action: manipulation;
}#viewDayCouncil.glass-sky .council-section,
#viewSymptomNow.glass-sky .council-section,
#viewConsult.glass-sky .council-section,
#viewSupport.glass-sky .council-section,
#viewMore.glass-sky.is-period-review .council-section,
#viewMore.glass-sky.is-period-review .period-hist-report .council-section,
#viewRefund.glass-sky .council-section {
  border-radius: 20px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.52);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
}#viewDayCouncil.glass-sky .council-chat--ai .council-chat-body,
#viewSymptomNow.glass-sky .council-chat--ai .council-chat-body,
#viewConsult.glass-sky .council-chat--ai .council-chat-body,
#viewSupport.glass-sky .council-chat--ai .council-chat-body,
#viewMore.glass-sky.is-period-review .council-chat--ai .council-chat-body,
#viewRefund.glass-sky .council-chat--ai .council-chat-body {
  border-radius: 18px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}/* Облако «Вы» — 1:1 с предпоказом: плашка без хвостика */
#viewDayCouncil.glass-sky .council-chat--user,
#viewSymptomNow.glass-sky .council-chat--user,
#viewConsult.glass-sky .council-chat--user,
#viewSupport.glass-sky .council-chat--user,
#viewMore.glass-sky.is-period-review .council-chat--user,
#viewRefund.glass-sky .council-chat--user {
  justify-items: end;
}#viewDayCouncil.glass-sky .council-chat--user .council-chat-who,
#viewSymptomNow.glass-sky .council-chat--user .council-chat-who,
#viewConsult.glass-sky .council-chat--user .council-chat-who,
#viewSupport.glass-sky .council-chat--user .council-chat-who,
#viewMore.glass-sky.is-period-review .council-chat--user .council-chat-who,
#viewRefund.glass-sky .council-chat--user .council-chat-who {
  justify-content: flex-end;
  text-align: right;
  color: rgba(28, 43, 36, 0.45);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 700;
}#viewDayCouncil.glass-sky .council-speech,
#viewSymptomNow.glass-sky .council-speech,
#viewConsult.glass-sky .council-speech,
#viewSupport.glass-sky .council-speech,
#viewMore.glass-sky.is-period-review .council-speech,
#viewRefund.glass-sky .council-speech {
  margin: 0;
  filter: none;
  max-width: 88%;
}#viewDayCouncil.glass-sky .council-speech-tail,
#viewSymptomNow.glass-sky .council-speech-tail,
#viewConsult.glass-sky .council-speech-tail,
#viewSupport.glass-sky .council-speech-tail,
#viewMore.glass-sky.is-period-review .council-speech-tail,
#viewRefund.glass-sky .council-speech-tail {
  display: none !important;
}#viewDayCouncil.glass-sky .council-speech-body,
#viewSymptomNow.glass-sky .council-speech-body,
#viewConsult.glass-sky .council-speech-body,
#viewSupport.glass-sky .council-speech-body,
#viewMore.glass-sky.is-period-review .council-speech-body,
#viewRefund.glass-sky .council-speech-body {
  border-radius: 18px 18px 6px 18px;
  padding: 10px 12px;
  background: rgba(63, 138, 92, 0.22);
  border: 1.5px solid rgba(200, 230, 210, 0.85);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}#viewDayCouncil.glass-sky .council-chat--user .council-chat-text,
#viewSymptomNow.glass-sky .council-chat--user .council-chat-text,
#viewConsult.glass-sky .council-chat--user .council-chat-text,
#viewSupport.glass-sky .council-chat--user .council-chat-text,
#viewMore.glass-sky.is-period-review .council-chat--user .council-chat-text,
#viewRefund.glass-sky .council-chat--user .council-chat-text {
  font-size: 14px;
  line-height: 1.35;
}

/* Недели периода — горизонтальные чипы */
#viewMore.glass-sky.is-period-review .week-field {
  margin: 2px 0 4px;
  padding: 10px 0 10px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  overflow: hidden;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
#viewMore.glass-sky.is-period-review .week-field-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0 14px 8px;
}
#viewMore.glass-sky.is-period-review .week-field-label {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(28, 43, 36, 0.45);
}
#viewMore.glass-sky.is-period-review .week-field-year {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: rgba(28, 43, 36, 0.5);
}
#viewMore.glass-sky.is-period-review .week-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 14px 2px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  touch-action: pan-x;
  overscroll-behavior-x: contain;
}
#viewMore.glass-sky.is-period-review .week-row::-webkit-scrollbar {
  display: none;
}
#viewMore.glass-sky.is-period-review .week-chip {
  flex: 0 0 auto;
  margin: 0;
  padding: 8px 12px;
  border-radius: 999px;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: -0.01em;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  scroll-snap-align: start;
  white-space: nowrap;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
#viewMore.glass-sky.is-period-review .week-chip.on {
  background: rgba(63, 138, 92, 0.16);
  border: 1.5px solid rgba(63, 122, 90, 0.28);
  color: #2f6f49;
  box-shadow: none;
}
#viewMore.glass-sky.is-period-review .period-week-body {
  display: grid;
  gap: 10px;
  min-width: 0;
}
#viewMore.glass-sky.is-period-review #moreBody {
  overflow-x: hidden;
}
#viewMore.glass-sky.is-period-review #moreBody > * {
  min-width: 0;
  max-width: 100%;
}

/* ========== Старт / юр. / онбординг: небо + стекло ========== */
#viewWelcome.glass-sky .welcome-local-alert,
#viewLegal.glass-sky .welcome-local-alert {
  background: rgba(255, 255, 255, 0.52);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border-radius: 18px;
}
.welcome-local-alert.is-safe {
  border-color: rgba(63, 138, 92, 0.35);
  background: rgba(232, 248, 238, 0.75);
}
.welcome-local-alert.is-safe .welcome-local-alert-icon {
  border-color: rgba(63, 138, 92, 0.55);
  background: rgba(63, 138, 92, 0.12);
  color: rgba(38, 104, 68, 0.95);
}
#viewWelcome.glass-sky .welcome-local-alert.is-safe {
  background: rgba(232, 248, 238, 0.62);
  border-color: rgba(63, 138, 92, 0.28);
}
#viewWelcome.glass-sky .welcome-local-alert.is-safe .welcome-local-alert-icon {
  background: rgba(63, 138, 92, 0.88);
  color: #fff;
}
#viewWelcome.glass-sky .welcome-local-alert-icon,
#viewLegal.glass-sky .welcome-local-alert-icon {
  border: 0;
  background: rgba(63, 138, 92, 0.85);
  color: #fff;
  line-height: 26px;
}
#viewLegal.glass-sky .step-badge,
#viewOnboard.glass-sky .step-badge {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  color: rgba(28, 43, 36, 0.62);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
/* блок ссылок на документы — одна «коробка», строки разделены линией */
#viewLegal.glass-sky .legal-links {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border-radius: 16px;
  gap: 0;
  overflow: hidden;
  margin: 0 0 12px;
}
#viewLegal.glass-sky .legal-doc-link {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 1px solid rgba(28, 43, 36, 0.14);
  padding: 11px 13px;
  font-size: 13px;
  line-height: 1.3;
  margin: 0;
}
#viewLegal.glass-sky .legal-doc-link:last-child {
  border-bottom: 0;
}
#viewLegal.glass-sky .legal-check {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border-radius: 16px;
  padding: 9px 11px;
  gap: 9px;
  font-size: 13px;
  line-height: 1.3;
}
#viewLegal.glass-sky #legalStepAlert:not([hidden]) {
  margin: 12px 0 14px;
}
#viewLegal.glass-sky .legal-checks {
  margin-top: 0;
}
#viewLegal.glass-sky .legal-doc-link:active {
  background: rgba(238, 246, 241, 0.82);
}
@media (hover: hover) {
  #viewLegal.glass-sky .legal-doc-link:hover {
    background: rgba(238, 246, 241, 0.65);
    color: var(--accent-press);
  }
}
#viewLegal.glass-sky .legal-check:last-child {
  border-bottom: 1.5px solid var(--glass-border);
}
#viewLegal.glass-sky .legal-check:has(.legal-check-input:checked) {
  background: rgba(238, 246, 241, 0.82);
  border-color: rgba(63, 122, 90, 0.45);
}
#viewLegal.glass-sky .legal-check-mark {
  background: #e8f0ea;
  border: 1.5px solid rgba(63, 122, 90, 0.4);
  border-radius: 7px;
  width: 22px;
  height: 22px;
  min-width: 22px;
  min-height: 22px;
}
#viewLegal.glass-sky .legal-check-input:checked + .legal-check-mark {
  background: linear-gradient(165deg, #4f8f6a, #2f6f49);
  border-color: transparent;
}
#viewOnboard.glass-sky .field .input-mic,
#viewOnboard.glass-sky .field-age-pick .age-pick-shell,
#viewOnboard.glass-sky .field-name-with-sex .input-mic {
  background: rgba(255, 255, 255, 0.48) !important;
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
/* сетка чипов без общей «коробки» — стекло только на кнопках */
#viewOnboard.glass-sky .chip-grid {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  padding: 0;
}
#viewOnboard.glass-sky .field > textarea,
#viewOnboard.glass-sky .field .input-mic > textarea,
#viewOnboard.glass-sky .field-age-pick .age-pick-value-btn {
  background: transparent !important;
}
#viewOnboard.glass-sky .chip-toggle {
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
}
#viewOnboard.glass-sky .chip-toggle.on {
  background: linear-gradient(165deg, var(--select-mid) 0%, var(--select) 48%, var(--select-press) 100%);
  color: #fffaf7;
  border-color: transparent;
}
#viewOnboard.glass-sky .onboard-activity-card,
#viewOnboard.glass-sky .onboard-summary {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  border-radius: 18px;
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewWelcome.glass-sky .btn.secondary {
  background: rgba(255, 255, 255, 0.62);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  color: var(--ink);
}

/* ========== Шторки: стекло поверх неба ========== */
.phone .sheet-scrim {
  background: rgba(28, 43, 36, 0.28);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.phone .sheet-panel {
  background: rgba(255, 255, 255, 0.72);
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  border-bottom: 0;
  box-shadow: 0 -12px 40px rgba(28, 43, 36, 0.16);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
}
.phone .sheet-head {
  background: transparent;
  border-bottom: 1px solid rgba(28, 43, 36, 0.08);
}
.phone .weight-actions {
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 8px 20px rgba(28, 43, 36, 0.06);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  backdrop-filter: blur(12px) saturate(1.2);
}
.phone .weight-wheel-line,
.phone .stool-wheel-line,
.phone .age-wheel-line,
.phone .sleep-quality-line {
  background: rgba(255, 255, 255, 0.82);
  border: 1.5px solid rgba(255, 255, 255, 0.78);
  box-shadow: 0 4px 14px rgba(28, 43, 36, 0.1);
}
.phone .sheet-close {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(255, 255, 255, 0.88);
}
.phone #legalDocSheet .back-round {
  background: rgba(255, 255, 255, 0.55);
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
  color: rgba(28, 43, 36, 0.62);
}
#legalDocSheet .back-round svg {
  margin-left: 0;
}
.phone #legalDocSheet .sheet-foot {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.55) 42%,
    rgba(255, 255, 255, 0.82) 100%
  );
}

/* ========== Категории записи (еда / добавки / …): стекло карточек ========== */
#viewCat.glass-sky .weight-wheel-card.meal-wheel-card,
#viewCat.glass-sky .phone-steps-card,
#viewCat.glass-sky .steps-manual-card {
  background: rgba(255, 255, 255, 0.48);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  border-radius: 18px;
  padding: 10px 12px 12px;
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewCat.glass-sky .field .input-mic {
  background: rgba(255, 255, 255, 0.48) !important;
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewCat.glass-sky .chip-grid {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  padding: 0;
}
#viewCat.glass-sky .chip-grid[hidden],
#viewCat.glass-sky .chip-grid:empty {
  display: none !important;
}
#viewCat.glass-sky .meds-empty-hint {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
#viewCat.glass-sky .field .input-mic > textarea,
#viewCat.glass-sky .field > textarea {
  background: transparent !important;
}
#viewCat.glass-sky .chip-toggle {
  background: rgba(255, 255, 255, 0.42);
  border: 1.5px solid var(--glass-border);
}
#viewCat.glass-sky .chip-toggle.on {
  background: linear-gradient(165deg, var(--select-mid) 0%, var(--select) 48%, var(--select-press) 100%);
  color: #fffaf7;
  border-color: transparent;
}
#viewCat.glass-sky .meds-cat-foot .weight-actions {
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewCat.glass-sky #btnSymptomNowInFeel.symptom-now-bar {
  margin: 4px 0 10px;
  border-radius: 20px;
  border: 1.5px solid rgba(255, 220, 210, 0.85);
  background: rgba(224, 122, 95, 0.22);
  color: var(--ink);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewCat.glass-sky #btnSymptomNowInFeel .symptom-now-bar-mark {
  background: rgba(224, 122, 95, 0.85);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
#viewCat.glass-sky #btnSymptomNowInFeel .symptom-now-bar-copy small {
  color: rgba(28, 43, 36, 0.65);
  opacity: 1;
}
/* Вариант А: полоса сама — стекло; без отдельной «коробки» у поля */
#viewCat.glass-sky .steps-manual-card .steps-adjust {
  background: rgba(255, 255, 255, 0.72);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
#viewCat.glass-sky .steps-manual-card .steps-adjust > input,
#viewCat.glass-sky .steps-manual-card .steps-adjust .input-mic,
#viewCat.glass-sky .steps-manual-card .steps-adjust .input-mic > input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.phone-steps-pill.is-empty {
  color: rgba(28, 43, 36, 0.52);
  font-weight: 600;
}
.steps-summary-row {
  margin-top: 14px;
}
.steps-summary-row .steps-day-total-card,
.steps-summary-row .phone-steps-card {
  min-width: 0;
  margin-top: 0;
}
.steps-summary-row:has(#phoneStepsCard[hidden]) {
  grid-template-columns: 1fr;
}
.steps-summary-row .phone-steps-copy {
  font-size: 13px;
}
.steps-summary-row .phone-steps-pill {
  font-size: 14px;
  padding: 5px 10px;
}
.steps-add-row {
  margin-top: 14px;
}
.steps-add-row-paired {
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.steps-add-row .steps-thousand-card,
.steps-add-row .steps-hundred-card {
  min-width: 0;
  margin-top: 0;
}
.steps-add-preview {
  margin: 8px 0 0;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ink);
}
.steps-add-preview.is-empty {
  color: rgba(28, 43, 36, 0.52);
  font-weight: 500;
}
#viewCat.glass-sky .steps-add-preview {
  color: rgba(28, 43, 36, 0.88);
}
.steps-add-row .steps-add-wheel {
  height: 120px;
  min-height: 120px;
}
.steps-add-row .steps-add-wheel .weight-wheel-cols,
.steps-add-row .steps-add-wheel .weight-wheel-cols-single {
  grid-template-columns: 1fr;
  max-width: 132px;
  width: 100%;
  margin: 0 auto;
  justify-items: stretch;
}
.steps-add-row .steps-add-wheel .weight-col {
  width: 100%;
  text-align: center;
}
.steps-add-row .steps-add-wheel .weight-opt.steps-opt {
  width: 100%;
  text-align: center;
  padding: 0 4px;
  box-sizing: border-box;
}
.steps-add-row .steps-add-wheel .weight-wheel-line {
  left: 50%;
  right: auto;
  width: min(132px, calc(100% - 12px));
  transform: translateX(-50%);
  margin-left: 0;
}

.steps-reset-block {
  margin: 4px 0 0;
  text-align: center;
}
.steps-reset-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 8px 4px 2px;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  color: rgba(224, 122, 95, 0.95);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.steps-reset-link:active {
  opacity: 0.72;
}
.steps-reset-hint {
  margin: 2px 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.62);
}
#viewCat.glass-sky .steps-reset-hint {
  color: rgba(28, 43, 36, 0.68);
}

.day-stat[data-stat="food"] {
  cursor: pointer;
}

.food-journal {
  display: grid;
  gap: 0;
  margin-top: 8px;
  border-radius: 22px;
  border: 2px solid rgba(28, 43, 36, 0.16);
  background: #fff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
}

.food-journal-row {
  display: grid;
  grid-template-columns: 72px 1fr 32px;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid rgba(28, 43, 36, 0.1);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.food-journal-row:last-child {
  border-bottom: 0;
}

.food-journal-row:active {
  background: rgba(255, 107, 53, 0.06);
}

.food-journal-kcal {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(28, 43, 36, 0.06);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
  color: var(--muted);
  text-align: center;
}

.food-journal-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}

.food-journal-add {
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  color: rgba(28, 43, 36, 0.35);
  text-align: center;
}

.food-journal-total {
  margin-top: 10px;
  text-align: center;
}

/* Пилюля зарядов и экран кошелька — Android и веб */

.wallet-pill {
  position: absolute;
  top: calc(var(--safe-top, 18px) + 6px);
  right: 12px;
  z-index: 45;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 34px;
  min-width: 58px;
  padding: 0 12px 0 10px;
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 6px 16px rgba(28, 43, 36, 0.1);
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  white-space: nowrap;
}

.wallet-pill[hidden] {
  display: none !important;
}

.wallet-pill:active {
  transform: scale(0.97);
}

.wallet-pill.wallet-pill--in-head {
  position: relative;
  top: auto;
  right: auto;
  z-index: 1;
  flex-shrink: 0;
}

.wallet-pill.wallet-pill--in-head:active {
  transform: scale(0.97);
}

.wallet-pill-ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: #d4a017;
  line-height: 1;
}

.wallet-pill-ico svg {
  display: block;
  width: 18px;
  height: 18px;
}

.wallet-pill-n {
  flex: 0 1 auto;
  min-width: 2.05em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* база — под 3 цифры; 4+ — чуть шире и меньше шрифт */
.wallet-pill.is-4d {
  min-width: 64px;
  padding: 0 10px 0 8px;
}

.wallet-pill-n.is-4d {
  font-size: 13px;
  letter-spacing: -0.04em;
}

.wallet-scroll {
  padding: 6px 16px calc(108px + max(14px, var(--safe-bottom, 0px)));
}

.wallet-history-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 16px 12px;
}

.wallet-history-empty {
  margin: 12px 0 0;
  text-align: center;
  color: rgba(28, 43, 36, 0.55);
  font-size: 0.9rem;
}

.wallet-history-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
  align-items: start;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(28, 43, 36, 0.08);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  text-align: left;
  width: 100%;
  font: inherit;
  color: inherit;
}

.wallet-history-item:active {
  transform: scale(0.99);
  background: rgba(232, 244, 236, 0.85);
}

.wallet-history-item-title {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
}

.wallet-history-item-meta {
  margin: 0;
  grid-column: 1 / -1;
  font-size: 0.72rem;
  line-height: 1.3;
  color: rgba(28, 43, 36, 0.58);
}

.wallet-history-item-delta {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  line-height: 1.25;
}

.wallet-history-item-delta.is-plus {
  color: #1f5b3a;
}

.wallet-history-item-delta.is-minus {
  color: #8a3b2b;
}

.wallet-balance-card {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 2px 0 12px;
  padding: 12px 12px 12px 14px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.22) 42%, rgba(232, 244, 236, 0.55) 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 12px 28px rgba(47, 111, 73, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.wallet-balance-glow {
  position: absolute;
  right: -28px;
  top: -36px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(63, 138, 92, 0.24) 0%, transparent 68%);
  pointer-events: none;
}

.wallet-balance-copy {
  position: relative;
  min-width: 0;
  flex: 1 1 auto;
}

.wallet-balance-kicker {
  position: relative;
  margin: 0 0 4px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(47, 111, 73, 0.78);
}

.wallet-balance-main {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}

.wallet-balance-ico {
  font-size: 1.25rem;
  line-height: 1;
}

.wallet-balance-total {
  margin: 0;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #1f5b3a;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.wallet-balance-unit {
  font-size: 0.95rem;
  font-weight: 700;
  color: rgba(31, 91, 58, 0.72);
}

.wallet-balance-detail {
  position: relative;
  margin: 4px 0 0;
  font-size: 0.78rem;
  line-height: 1.3;
  color: rgba(28, 43, 36, 0.62);
}

.wallet-balance-detail[hidden] {
  display: none !important;
}

.wallet-history-btn {
  position: relative;
  flex: 0 0 auto;
  align-self: center;
  margin: 0;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid rgba(47, 111, 73, 0.22);
  background: rgba(255, 255, 255, 0.78);
  color: #1f5b3a;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.wallet-history-btn:active {
  transform: scale(0.98);
}

.wallet-section-title {
  margin: 12px 0 8px;
}

.wallet-pack-lead {
  margin: -2px 0 8px;
  font-size: 0.82rem;
}

.wallet-tariff-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.wallet-tariff-chip {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-height: 54px;
  padding: 11px 12px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  background: rgba(255, 255, 255, 0.4);
  font-size: 0.84rem;
  line-height: 1.28;
  color: var(--ink);
}

.wallet-tariff-chip span {
  flex: 1 1 auto;
  min-width: 0;
}

.wallet-tariff-chip strong {
  flex: 0 0 auto;
  font-size: 1.02rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--accent-press);
}

.wallet-pack-grid {
  padding-bottom: 0;
}

#viewWallet.glass-sky > .topbar {
  background: transparent !important;
  border: 0;
  box-shadow: none;
}

#viewWallet.glass-sky .back-round {
  width: 36px;
  height: 36px;
  border: 1.5px solid rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(28, 43, 36, 0.62);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}

#viewWallet.glass-sky .hint-line {
  color: rgba(28, 43, 36, 0.62);
}

#viewWallet.glass-sky .wallet-pack-panel {
  border: 1.5px solid var(--glass-border);
  background: var(--glass);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 12px;
  border-radius: 22px;
  margin-bottom: 8px;
}

.wallet-pack-tile {
  min-height: 108px;
  height: auto;
  max-height: none;
  padding: 12px 13px 11px;
  border: 1.5px solid rgba(255, 255, 255, 0.96);
  border-radius: 22px;
  text-align: left;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.88) inset,
    0 10px 24px rgba(28, 43, 36, 0.11);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  cursor: pointer;
  transition: transform 0.14s ease, box-shadow 0.14s ease;
  -webkit-tap-highlight-color: transparent;
}

.wallet-pack-tile:active:not(:disabled) {
  transform: scale(0.97);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.88) inset,
    0 4px 12px rgba(28, 43, 36, 0.1);
}

.wallet-pack-tile:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.wallet-pack-tile-top {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
}

.wallet-pack-tile-top strong {
  font-size: 1.04rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.wallet-pack-badge {
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 210, 120, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.65);
  color: #5a3f08;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.wallet-pack-tile-per {
  display: block;
  width: 100%;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.25;
  color: rgba(28, 43, 36, 0.62);
  margin-top: 1px;
}

.wallet-pack-tile-meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  width: 100%;
  margin-top: auto;
}

.wallet-pack-tile-meta-sep {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(28, 43, 36, 0.34);
}

.wallet-pack-tile-charges {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.wallet-pack-tile-price {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--accent-press);
  font-variant-numeric: tabular-nums;
}

.wallet-pack-tile--micro {
  background:
    radial-gradient(ellipse 80% 70% at 100% 0%, rgba(72, 148, 102, 0.42), transparent 60%),
    linear-gradient(165deg, rgba(188, 228, 202, 0.92) 0%, rgba(142, 196, 162, 0.82) 100%);
}

.wallet-pack-tile--start {
  background:
    radial-gradient(ellipse 80% 70% at 100% 0%, rgba(230, 160, 72, 0.4), transparent 60%),
    linear-gradient(165deg, rgba(255, 236, 188, 0.95) 0%, rgba(244, 196, 108, 0.88) 100%);
  border-color: rgba(255, 255, 255, 0.96);
}

.wallet-pack-tile--optimum {
  background:
    radial-gradient(ellipse 80% 70% at 100% 0%, rgba(88, 158, 214, 0.42), transparent 60%),
    linear-gradient(165deg, rgba(186, 220, 245, 0.92) 0%, rgba(132, 186, 228, 0.84) 100%);
}

.wallet-pack-tile--course {
  background:
    radial-gradient(ellipse 80% 70% at 100% 0%, rgba(142, 124, 196, 0.4), transparent 60%),
    linear-gradient(165deg, rgba(210, 196, 242, 0.92) 0%, rgba(172, 152, 218, 0.84) 100%);
}

.wallet-custom-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 10px;
  min-height: 40px;
  padding: 0 16px 0 14px;
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 6px 16px rgba(28, 43, 36, 0.1);
  color: var(--ink);
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.14s ease;
  -webkit-tap-highlight-color: transparent;
}

.wallet-custom-pill[hidden] {
  display: none !important;
}

.wallet-custom-pill:active {
  transform: scale(0.97);
}

.wallet-custom-pill .wallet-pill-ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: #d4a017;
  line-height: 1;
}

.wallet-custom-pill .wallet-pill-ico svg {
  display: block;
  width: 18px;
  height: 18px;
}

.wallet-custom-pill-text {
  color: var(--ink);
}

.wallet-sheet-body {
  /* как weight-sheet-body — flex, не grid */
}

.wallet-custom-card {
  margin: 0;
}

.wallet-custom-field-label {
  margin: 0 0 8px;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

.wallet-custom-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 14px;
  border: var(--field-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--field-shadow);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.wallet-custom-input:focus {
  outline: none;
  border-color: rgba(47, 111, 73, 0.45);
}

.wallet-pack-sheet-hero {
  display: flex;
  justify-content: center;
  margin: 2px 0 6px;
}

.wallet-pack-sheet-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid rgba(255, 236, 190, 0.95);
  border-radius: 999px;
  background: linear-gradient(165deg, rgba(255, 244, 210, 0.96) 0%, rgba(240, 196, 108, 0.92) 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.65) inset,
    0 8px 22px rgba(120, 86, 20, 0.18);
  color: #5a3f08;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}

.wallet-pack-sheet-pill-text {
  font-variant-numeric: tabular-nums;
}

.wallet-pack-sheet-pill-text.is-wide {
  font-size: 1.15rem;
  letter-spacing: -0.04em;
}

.wallet-pack-sheet-rub {
  margin: 0;
  text-align: center;
  font-size: 1rem;
  font-weight: 650;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.wallet-pack-sheet-summary {
  margin: 0;
  text-align: center;
  line-height: 1.4;
  font-size: 0.95rem;
  color: var(--ink);
}

#walletCustomSummary {
  color: rgba(28, 43, 36, 0.72);
  font-weight: 550;
}

.wallet-pack-sheet-summary-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.35em;
  row-gap: 0.1em;
  width: fit-content;
  max-width: min(320px, 100%);
  margin: 0 auto;
  text-align: left;
}

.wallet-pack-sheet-summary-grid--solo {
  grid-template-columns: 1fr;
  text-align: center;
}

.wallet-pack-sheet-summary-grid--solo .wallet-pack-sheet-summary-note {
  display: block;
}

.wallet-pack-sheet-summary-price {
  grid-column: 1;
  grid-row: 1;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--ink);
}

.wallet-pack-sheet-summary-grid > :nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}

.wallet-pack-sheet-summary-grid > :nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}

.wallet-pack-sheet-summary-grid > :nth-child(3) {
  grid-column: 1;
  grid-row: 2;
}

.wallet-pack-sheet-summary-grid > :nth-child(4) {
  grid-column: 2;
  grid-row: 2;
}

.wallet-pack-sheet-summary-grid--solo > :nth-child(1),
.wallet-pack-sheet-summary-grid--solo > :nth-child(2) {
  grid-column: 1;
}

.wallet-pack-sheet-summary-grid--solo > :nth-child(2) {
  grid-row: 2;
}

.wallet-pack-sheet-summary-note {
  color: rgba(28, 43, 36, 0.62);
  font-weight: 550;
}

.wallet-pack-sheet-summary-sep {
  color: rgba(28, 43, 36, 0.28);
}

.wallet-custom-input-inline {
  max-width: 220px;
  margin: 0 auto;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 1rem;
}

.wallet-legal-hint {
  margin: 0;
  font-size: 0.82rem;
}

.wallet-credit-hint {
  text-align: center;
  color: rgba(28, 43, 36, 0.72);
}

.wallet-credit-summary {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}

.wallet-credit-summary-line {
  margin: 0;
  line-height: 1.35;
  color: rgba(28, 43, 36, 0.72);
  font-weight: 550;
}

.wallet-credit-summary-line--muted {
  color: rgba(28, 43, 36, 0.55);
  font-size: 0.9rem;
}

.wallet-credit-summary-line--total {
  color: var(--ink);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.weight-actions--solo {
  justify-content: center;
}

.weight-actions--solo .weight-action {
  flex: 1 1 auto;
  max-width: 100%;
}

.wallet-low-hint {
  text-align: center;
  color: rgba(28, 43, 36, 0.72);
}

/* Полноэкранное ожидание ответа модели (вопросы / разборы; не еда, не подсказка дома) */
.ai-hold-overlay {
  position: absolute;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(18px + var(--safe-top, 0px)) 22px calc(22px + var(--safe-bottom, 0px));
  box-sizing: border-box;
  /* Как .phone .sheet-scrim — без тёмной виньетки */
  background: rgba(28, 43, 36, 0.28);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.38s ease;
}
.ai-hold-overlay[hidden] {
  display: none !important;
}
.ai-hold-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}
.ai-hold-card {
  width: min(100%, 312px);
  text-align: center;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.62);
  border: 1.5px solid rgba(255, 255, 255, 0.82);
  border-radius: 26px;
  padding: 28px 22px 24px;
  box-shadow: 0 10px 36px rgba(28, 43, 36, 0.1);
  opacity: 0;
  transform: scale(0.96) translateY(10px);
  transition:
    opacity 0.36s ease,
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.ai-hold-overlay.is-open .ai-hold-card {
  opacity: 1;
  transform: scale(1) translateY(0);
}
.ai-hold-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 0 22px;
}
.ai-hold-brand-row {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.ai-hold-brand-name {
  font-size: 1.55rem;
  font-weight: 750;
  letter-spacing: -0.025em;
  line-height: 1.05;
  background: linear-gradient(105deg, #c89200 0%, #e8b020 40%, #d4a018 70%, #f0c040 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: ai-hold-brand-shimmer 4.5s ease-in-out infinite;
}
.ai-hold-brand-tm {
  font-size: 0.58em;
  font-weight: 600;
  vertical-align: super;
  -webkit-text-fill-color: rgba(180, 130, 20, 0.88);
  color: rgba(180, 130, 20, 0.88);
}
@keyframes ai-hold-brand-shimmer {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}
.ai-hold-stars {
  width: 58px;
  height: 58px;
  position: relative;
  flex-shrink: 0;
}
.ai-hold-star {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  will-change: transform, opacity, filter;
}
.ai-hold-star svg {
  width: 32px;
  height: 32px;
  display: block;
  filter: drop-shadow(0 0 8px rgba(220, 170, 60, 0.45));
}
.ai-hold-star-a {
  animation: ai-hold-star-cycle 4.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.ai-hold-star-b {
  animation: ai-hold-star-cycle 4.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  animation-delay: -2.1s;
}
@keyframes ai-hold-star-cycle {
  0% {
    transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
    opacity: 1;
    filter: blur(0);
  }
  38% {
    transform: translate3d(12px, 16px, 0) scale(0.48) rotate(26deg);
    opacity: 0;
    filter: blur(2px);
  }
  39% {
    transform: translate3d(-13px, -15px, 0) scale(0.4) rotate(-26deg);
    opacity: 0;
    filter: blur(2.5px);
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
    opacity: 1;
    filter: blur(0);
  }
}
.ai-hold-title {
  margin: 0 0 12px;
  font-size: 1.42rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--ink);
}
.ai-hold-sub[hidden] {
  display: none !important;
}
.ai-hold-line {
  margin: 0 0 16px;
  min-height: 2.4em;
  font-size: 1.04rem;
  font-weight: 550;
  font-style: italic;
  line-height: 1.4;
  background: linear-gradient(
    90deg,
    #6f5820 0%,
    #c89410 12%,
    #f0c850 25%,
    #c89410 38%,
    #6f5820 50%,
    #c89410 62%,
    #f0c850 75%,
    #c89410 88%,
    #6f5820 100%
  );
  background-size: 200% 100%;
  background-position: 0% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  will-change: background-position;
  transform: translateZ(0);
  animation: ai-hold-line-shimmer 4s linear infinite;
}
@keyframes ai-hold-line-shimmer {
  from {
    background-position: 0% 50%;
  }
  to {
    background-position: 100% 50%;
  }
}
.ai-hold-hint {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 550;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.62);
}
.report-ready-card {
  min-height: 392px;
  display: flex;
  flex-direction: column;
  padding-bottom: 22px;
}
.report-ready-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.report-ready-body .ai-hold-hint {
  min-height: 2.9em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.report-ready-foot {
  margin-top: auto;
  padding-top: 14px;
  display: flex;
  justify-content: center;
}
.report-ready-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--ink);
  font-weight: 800;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.92);
  background: transparent;
  box-shadow: none;
}
.report-ready-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(
    135deg,
    rgba(255, 248, 220, 0.55) 0%,
    rgba(255, 236, 170, 0.72) 50%,
    rgba(255, 248, 220, 0.55) 100%
  );
  background-size: 200% 200%;
  animation: report-ready-cta-glow 2.6s ease-in-out infinite;
  box-shadow: inset 0 0 0 1px rgba(200, 146, 0, 0.18);
  pointer-events: none;
}
.report-ready-cta::after {
  content: "";
  position: absolute;
  inset: -20% -60%;
  z-index: -1;
  background: linear-gradient(
    105deg,
    transparent 38%,
    rgba(255, 255, 255, 0.55) 50%,
    transparent 62%
  );
  transform: translateX(-120%) rotate(8deg);
  animation: report-ready-cta-shine 3.2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes report-ready-cta-glow {
  0%,
  100% {
    background-position: 0% 50%;
    box-shadow: inset 0 0 0 1px rgba(200, 146, 0, 0.16), 0 0 0 rgba(200, 146, 0, 0);
  }
  50% {
    background-position: 100% 50%;
    box-shadow: inset 0 0 0 1px rgba(200, 146, 0, 0.28), 0 0 18px rgba(232, 176, 32, 0.22);
  }
}
@keyframes report-ready-cta-shine {
  0%,
  72% {
    transform: translateX(-120%) rotate(8deg);
    opacity: 0;
  }
  78% {
    opacity: 1;
  }
  100% {
    transform: translateX(120%) rotate(8deg);
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ai-hold-brand-name,
  .ai-hold-star-a,
  .ai-hold-star-b,
  .ai-hold-line {
    animation: none !important;
  }
  .report-ready-cta::before,
  .report-ready-cta::after {
    animation: none !important;
  }
  .report-ready-cta::after {
    display: none;
  }
  .ai-hold-brand-name {
    -webkit-text-fill-color: #c89200;
    color: #c89200;
    background: none;
  }
  .ai-hold-line {
    color: #6f5820;
    background: none;
    -webkit-text-fill-color: #6f5820;
  }
  .ai-hold-star-b {
    display: none;
  }
  .ai-hold-overlay,
  .ai-hold-card {
    transition: none;
  }
}

.wallet-support-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin: 12px 0 0;
  min-height: 48px;
  padding: 12px 16px;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 6px 18px rgba(28, 43, 36, 0.06);
  color: var(--ink);
  font: inherit;
  font-size: 0.98rem;
  font-weight: 700;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.wallet-support-btn:active {
  transform: scale(0.98);
}
.wallet-support-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 5px;
  border-radius: 999px;
  background: #c0453a;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}
.wallet-support-badge[hidden] {
  display: none !important;
}

.profile-refund-support-btn {
  margin: 0 0 16px;
}

.sheet-panel.refund-support-sheet-panel {
  height: 88%;
  max-height: 88%;
}
.refund-support-scroll.sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px 18px 16px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
}
.refund-support-sheet-panel > .weight-sheet-foot {
  flex-shrink: 0;
  padding-top: 8px;
}
.refund-support-block + .refund-support-block {
  margin-top: 14px;
}
.refund-support-block-title {
  margin: 0 0 6px;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.refund-support-block-text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.78);
}
.refund-support-list {
  margin: 0;
  padding: 0 0 0 1.1em;
}
.refund-support-list li {
  margin: 0 0 6px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.78);
}
.refund-support-list li:last-child {
  margin-bottom: 0;
}


/* Шторка возврата: форма + календарь */
.profile-refund-support-btn {
  margin: 0 0 16px;
}

.refund-split-actions {
  width: 100%;
  margin: 12px 0 0;
}
.profile-refund-support-btn.refund-split-actions {
  margin: 0 0 16px;
}
.refund-split-support {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.refund-foot-half {
  width: 50%;
  max-width: 160px;
}

.sheet-panel.refund-support-sheet-panel {
  height: 88%;
  max-height: 88%;
}
.refund-support-sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  gap: 0;
}
.refund-sheet-step {
  display: none;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}
.refund-sheet-step.on {
  display: flex;
}
.refund-form-scroll,
.refund-support-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  /* запас — тени полей не режет overflow */
  padding: 14px 16px 28px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
}
/* Форма заявки: без «резины», меньше пустого запаса снизу */
#refundSupportSheet [data-refund-step="form"] .refund-form-scroll {
  padding: 10px 16px 10px;
  overscroll-behavior: none;
  -webkit-overflow-scrolling: auto;
}
#refundSupportSheet [data-refund-step="form"] .field {
  margin-bottom: 12px;
}
#refundSupportSheet [data-refund-step="form"] .field:last-of-type {
  margin-bottom: 4px;
}
.refund-support-sheet-panel > .weight-sheet-foot,
.refund-sheet-step > .weight-sheet-foot {
  flex-shrink: 0;
  padding-top: 8px;
  display: flex;
  justify-content: center;
}
.refund-form-hint {
  margin: 0 0 12px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.refund-form-error {
  color: var(--danger, #b42318);
  font-weight: 600;
  margin: 0 0 8px;
}
.refund-support-sheet .field {
  margin-bottom: 16px;
}
.refund-support-sheet .field-static {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 14px;
  border: var(--field-border);
  border-radius: 16px;
  background: rgba(28, 43, 36, 0.04);
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}
.refund-support-sheet .date-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: var(--field-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--field-shadow);
  color: var(--ink);
  font: inherit;
  font-size: 15px;
  font-weight: 550;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
}
.refund-support-sheet .date-trigger-label.is-placeholder {
  color: rgba(28, 43, 36, 0.42);
  font-weight: 500;
}
.refund-support-sheet .sum-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  border: var(--field-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--field-shadow);
  overflow: hidden;
}
.refund-support-sheet .sum-wrap input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 12px 44px 12px 14px;
  border-radius: 16px;
  font: inherit;
  font-size: 15px;
  font-weight: 550;
  color: var(--ink);
  outline: none;
}
.refund-support-sheet .sum-wrap:focus-within {
  border-color: rgba(47, 111, 73, 0.45);
}
.refund-support-sheet .sum-rub {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  pointer-events: none;
  line-height: 1;
}
.refund-support-sheet .field > input,
.refund-support-sheet .field > textarea {
  box-shadow: var(--field-shadow);
}

.refund-cal-modal {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.refund-cal-modal:not([hidden]) {
  display: flex;
}
.refund-cal-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(28, 43, 36, 0.38);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  cursor: pointer;
}
.refund-cal-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 300px;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 18px 48px rgba(28, 43, 36, 0.22);
  padding: 14px 14px 12px;
  border: 1px solid rgba(28, 43, 36, 0.08);
}
.refund-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.refund-cal-month {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.refund-cal-head .cal-nav {
  width: 36px;
  height: 36px;
  font-size: 1.2rem;
  line-height: 1;
}
.refund-cal-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 4px;
}
.refund-cal-week span {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  padding: 4px 0;
}
.refund-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.refund-cal-day {
  aspect-ratio: 1;
  border: 0;
  border-radius: 12px;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  color: var(--ink);
  cursor: pointer;
  padding: 0;
}
.refund-cal-day.is-muted {
  color: rgba(28, 43, 36, 0.28);
}
.refund-cal-day.is-today {
  box-shadow: inset 0 0 0 1.5px rgba(63, 138, 92, 0.55);
}
.refund-cal-day.is-on {
  background: var(--accent);
  color: #fff;
}
.refund-cal-day:disabled {
  opacity: 0.25;
  cursor: default;
}
.refund-cal-foot {
  width: 100%;
  margin-top: 12px;
  min-height: 44px;
}

.refund-support-block + .refund-support-block {
  margin-top: 14px;
}
.refund-support-block-title {
  margin: 0 0 6px;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.refund-support-block-text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.78);
}
.refund-support-list {
  margin: 0;
  padding: 0 0 0 1.1em;
}
.refund-support-list li {
  margin: 0 0 6px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.78);
}
.refund-support-list li:last-child {
  margin-bottom: 0;
}

#refundSupportSheet .sheet-head,
#walletHistorySheet .sheet-head {
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 4px;
}
#refundSupportSheet .sheet-head > .back-round,
#walletHistorySheet .sheet-head > .back-round {
  grid-column: 1;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1.5px solid rgba(28, 43, 36, 0.14);
  background: rgba(255, 255, 255, 0.88);
  color: var(--ink);
  display: grid;
  place-items: center;
  cursor: pointer;
}
#refundSupportSheet .sheet-title,
#walletHistorySheet .sheet-title {
  grid-column: 2;
  margin: 0;
  text-align: center;
}
.refund-form-scroll,
.refund-support-scroll {
  scrollbar-width: none;
}
.refund-form-scroll::-webkit-scrollbar,
.refund-support-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#refundSupportSheet .field .input-mic.refund-reason-mic,
#refundSupportSheet .field .input-mic.refund-reason-mic.has-tidy {
  min-height: 118px !important;
  height: 118px !important;
  max-height: 118px !important;
  overflow: hidden;
}
#refundSupportSheet .field .input-mic.refund-reason-mic > textarea,
#refundSupportSheet #refundPayReason {
  min-height: 118px !important;
  height: 118px !important;
  max-height: 118px !important;
  padding: 10px 14px 48px 14px !important;
  line-height: 1.3 !important;
  overflow: hidden !important;
  overflow-y: hidden !important;
  resize: none !important;
  scrollbar-width: none;
  overscroll-behavior: none;
  touch-action: manipulation;
}
#refundSupportSheet #refundPayReason::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#refundSupportSheet .refund-reason-mic > textarea ~ .mic-infield {
  top: auto;
  bottom: 10px;
  right: 8px;
  transform: none;
  margin-top: 0;
  margin-bottom: 0;
}
#refundSupportSheet .refund-reason-mic > textarea ~ .mic-status {
  top: auto;
  bottom: 14px;
  transform: none;
}

#viewRefund.glass-sky .refund-status-banner,
#viewRefund .refund-status-banner {
  flex: 0 0 auto;
  margin: 0;
  padding: 0 16px 8px;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 650;
  color: rgba(28, 43, 36, 0.55);
  line-height: 1.2;
}
#viewRefund .refund-status-banner[hidden] {
  display: none !important;
}


/* Подпись под выводами ИИ (канон Дениса §11) — внутри пузыря/карточки ответа */
.ai-hint-footer {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid rgba(28, 43, 36, 0.08);
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(28, 43, 36, 0.62);
  white-space: normal;
}
.council-chat-body .ai-hint-footer,
.council-section .ai-hint-footer,
.council-report > .ai-hint-footer {
  margin-top: 10px;
}
/* Разбор дня/периода без секций: весь отчёт + подпись — одна карточка, как пузырь в консультации */
#viewDayCouncil #dayCouncilReport > .council-report:not(:has(.council-section)),
#viewMore.glass-sky.is-period-review .period-hist-report > .council-report:not(:has(.council-section)) {
  border-radius: 20px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.52);
  border: 1.5px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
}

.profile-invite-btn.weight-actions {
  width: 100%;
  margin: 0 0 8px;
  min-height: 52px;
  background: #4d94c9;
  border: 2px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 10px 28px rgba(28, 43, 36, 0.12),
    0 2px 8px rgba(28, 43, 36, 0.06);
}
.profile-invite-btn .profile-invite-action {
  color: #fff;
  font-size: 1rem;
  font-weight: var(--fw-heavy);
  letter-spacing: -0.02em;
}
.profile-invite-btn .profile-invite-action:active {
  background: rgba(0, 0, 0, 0.1);
}
.phone .profile-invite-btn.weight-actions,
#viewProfile.glass-sky .profile-invite-btn.weight-actions {
  background: #4d94c9;
  border: 2px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 10px 28px rgba(28, 43, 36, 0.12),
    0 2px 8px rgba(28, 43, 36, 0.06);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

#viewProfile .profile-refund-support-btn.weight-actions {
  border: 2px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 10px 28px rgba(28, 43, 36, 0.12),
    0 2px 8px rgba(28, 43, 36, 0.06);
}

.profile-invite-hint {
  margin: -4px 4px 10px;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(40, 52, 62, 0.58);
}
.profile-invite-stats {
  margin: -2px 4px 12px;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 600;
  color: rgba(40, 52, 62, 0.62);
}
.profile-invite-stats[hidden] {
  display: none !important;
}
