/* ---------- Личный кабинет участника (lk.html) — дизайн-система раздела ----------
   Токены сайта (styles.css) + свои правила для 55+:
   • пять размеров текста и не больше: 14 (подписи) · 16 (второстепенное) · 18 (основной) · 22 (заголовок карточки) · h1;
   • один радиус карточек (20px), один — полей (12px), кнопки — таблетки сайта; сетка 8px;
   • кнопки от 48px, основные — 56px; каждое действие названо словами;
   • цвет направления — только акцентом (полоска сверху карточки и точка), фон — белый;
   • движение мягкое и короткое: появление блоков, подъём карточки, шторки панелей; «✦» и prefers-reduced-motion всё выключают. */
.lk {
  --lk-fs-xs: 14px; --lk-fs-s: 16px; --lk-fs: 18px; --lk-fs-l: 22px;
  --lk-r: 20px; --lk-r-s: 12px;
  --lk-line: var(--line); --lk-soft: #F6F4EE; --lk-shadow: 0 14px 34px rgba(34,32,43,.10);
  --lk-ease: var(--ease, cubic-bezier(.22,1,.36,1));
  font-size: var(--lk-fs); line-height: 1.45;
  padding-top: clamp(24px, 4vw, 48px); padding-bottom: clamp(64px, 8vw, 120px); min-height: 60vh;
}
.lk [hidden], .lk-panel[hidden], .lk-toast[hidden] { display: none !important; }
.lk-narrow { max-width: 720px; }
.lk-h1 { font-size: clamp(32px, 4.6vw, 46px); margin: 6px 0 10px; letter-spacing: -.015em; text-wrap: balance; }
.lk-lead { font-size: var(--lk-fs); color: var(--ink-soft); max-width: 58ch; margin: 0 0 24px; }
.lk-meta { color: var(--muted); font-size: var(--lk-fs-s); margin: 2px 0 0; }
.lk-note { font-size: var(--lk-fs-s); color: var(--ink-soft); margin: 4px 0 0; }
.lk-note.is-bad { color: var(--c-paint-d); font-weight: 600; }
.lk .crumb { font-size: var(--lk-fs-xs); }
.lk h2, .lk h3 { letter-spacing: -.01em; }

/* ---------- кнопки внутри кабинета: единые высоты ---------- */
.lk .btn { min-height: 48px; padding: 0 20px; font-size: var(--lk-fs-s); font-weight: 700; gap: 8px; transition: transform .2s var(--lk-ease), background .2s, color .2s, box-shadow .2s; }
.lk .btn:active { transform: scale(.97); }
.lk .btn--accent { box-shadow: 0 8px 20px rgba(34,32,43,.16); }
.lk .btn--accent:hover { box-shadow: 0 12px 26px rgba(34,32,43,.22); }
.lk .lk-big, .lk .btn--main { min-height: 56px; font-size: var(--lk-fs); padding-inline: 26px; }
.btn.is-busy { opacity: .6; pointer-events: none; }
.lk-linkbtn { background: none; border: 0; padding: 6px 0; font: inherit; font-size: var(--lk-fs-s); font-weight: 700; color: var(--c-active-d); cursor: pointer; text-decoration: underline; text-decoration-color: var(--c-active-t); text-underline-offset: 4px; transition: text-decoration-color .2s; }
.lk-linkbtn:hover { text-decoration-color: var(--c-active-d); }

/* ---------- загрузка: скелет ---------- */
.lk-skel { display: grid; gap: 16px; margin-top: 8px; }
.lk-skel i { display: block; border-radius: var(--lk-r); background: linear-gradient(90deg, var(--lk-soft) 25%, #fff 50%, var(--lk-soft) 75%); background-size: 200% 100%; animation: lk-shimmer 1.4s linear infinite; }
.lk-skel i:nth-child(1) { height: 150px; } .lk-skel i:nth-child(2) { height: 96px; } .lk-skel i:nth-child(3) { height: 96px; width: 70%; }
@keyframes lk-shimmer { to { background-position: -200% 0; } }

/* ---------- формы ---------- */
.lk-form { display: grid; gap: 16px; max-width: 560px; }
.lk-field { display: grid; gap: 6px; font-weight: 700; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-field input, .lk-field textarea, .lk-review textarea, .lk-ask textarea { width: 100%; font: inherit; font-size: var(--lk-fs); font-weight: 500; color: var(--ink); background: var(--lk-soft); border: 1.5px solid var(--lk-line); border-radius: var(--lk-r-s); transition: border-color .2s, background .2s, box-shadow .2s; }
.lk-field input { height: 56px; padding: 0 16px; }
.lk-field textarea, .lk-review textarea, .lk-ask textarea { min-height: 96px; padding: 12px 16px; resize: vertical; }
.lk-field input:focus, .lk-field textarea:focus, .lk-review textarea:focus, .lk-ask textarea:focus { outline: none; border-color: var(--c-active); background: var(--paper); box-shadow: 0 0 0 4px var(--c-active-t); }
.lk-field.is-bad input { border-color: var(--c-paint); }
.lk-field__hint { font-weight: 500; font-size: var(--lk-fs-xs); color: var(--muted); line-height: 1.45; }
.lk-field__err { font-weight: 600; font-size: var(--lk-fs-s); color: var(--c-paint-d); }
.lk-field small { font-weight: 500; color: var(--muted); }
.lk-form__row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.lk-check { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-check input { width: 24px; height: 24px; margin-top: 2px; accent-color: var(--ink); }
.lk-check a { color: var(--ink); }
.lk-confirm { background: var(--c-active-t); border: 1.5px solid var(--c-active); border-radius: var(--lk-r-s); padding: 14px 16px; }
.lk-confirm p { margin: 0 0 10px; font-size: var(--lk-fs); }
.lk-confirm__row { display: flex; gap: 10px; flex-wrap: wrap; }
.lk-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .lk-two { grid-template-columns: 1fr; } }

/* ---------- вход ---------- */
.lk-login { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 32px; align-items: start; }
.lk-login__card { background: var(--paper); border: 1.5px solid var(--lk-line); border-radius: var(--lk-r); padding: 24px; box-shadow: var(--lk-shadow); }
.lk-login__card h2 { font-size: var(--lk-fs-l); margin: 0 0 14px; }
.lk-ways { display: grid; gap: 12px; }
.lk-way { display: grid; grid-template-columns: 56px 1fr 24px; gap: 14px; align-items: center; text-align: left; padding: 14px 16px; min-height: 80px; background: var(--paper); color: var(--ink); border: 1.5px solid var(--lk-line); border-radius: var(--lk-r-s); font: inherit; cursor: pointer; transition: transform .25s var(--lk-ease), box-shadow .25s, border-color .25s; }
.lk-way::after { content: "→"; font-size: 22px; color: var(--muted); transition: transform .25s var(--lk-ease); }
.lk-way:hover { transform: translateY(-2px); box-shadow: var(--lk-shadow); border-color: var(--ink); }
.lk-way:hover::after { transform: translateX(4px); color: var(--ink); }
.lk-way:disabled { opacity: .55; cursor: default; transform: none; box-shadow: none; }
.lk-way b { display: block; font-size: var(--lk-fs); }
.lk-way small { display: block; font-size: var(--lk-fs-xs); color: var(--muted); margin-top: 2px; }
.lk-way__ico { display: grid; place-items: center; width: 56px; height: 56px; border-radius: var(--lk-r-s); font-weight: 800; font-size: 24px; color: #fff; }
.lk-way--max .lk-way__ico { background: #5B3DF5; }
.lk-way--tg .lk-way__ico { background: #2AABEE; }
.lk-first { font-size: var(--lk-fs-s); color: var(--ink-soft); margin: 16px 0 0; }
.lk-first b { color: var(--ink); }
.lk-howto { margin-top: 16px; padding: 18px 20px; background: var(--lk-soft); border-radius: var(--lk-r-s); }
.lk-howto h4 { margin: 0 0 8px; font-size: var(--lk-fs-l); }
.lk-howto p, .lk-howto li { font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-howto ol { padding-left: 22px; margin: 8px 0; }
.lk-howto .btn { margin-top: 12px; }
.lk-howto__code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 28px; letter-spacing: .14em; color: var(--ink); }
.lk-howto__status { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: var(--lk-fs-xs); margin-top: 12px; }
.lk-howto__status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c-active); animation: lk-pulse 1.6s ease-in-out infinite; }
@keyframes lk-pulse { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
.lk-login__aside { display: grid; gap: 12px; }
.lk-fact { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; padding: 16px 18px; border-radius: var(--lk-r); background: var(--lk-soft); font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-fact b { display: block; color: var(--ink); font-size: var(--lk-fs); margin-bottom: 2px; }
.lk-fact__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--lk-r-s); background: var(--paper); font-size: 20px; }
.lk-faq { margin-top: 20px; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-faq summary { cursor: pointer; font-weight: 700; color: var(--ink); font-size: var(--lk-fs); padding: 8px 0; }
.lk-faq p { margin: 8px 0; }
@media (max-width: 860px) { .lk-login { grid-template-columns: 1fr; } }

/* ---------- шапка кабинета ---------- */
.lk-hello { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1.5px solid var(--lk-line); }
.lk-hello .lk-h1 { margin-bottom: 4px; }
.lk-hello__actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.lk-tog { min-width: 48px; height: 48px; border-radius: 999px; border: 1.5px solid var(--lk-line); background: var(--paper); font: inherit; font-weight: 800; font-size: var(--lk-fs); color: var(--ink); cursor: pointer; padding: 0 14px; transition: background .2s, color .2s, border-color .2s; }
.lk-tog span { font-size: 12px; vertical-align: super; }
.lk-tog[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.lk.is-zoom .container { zoom: 1.15; }

/* ---------- сетка кабинета: основная колонка + боковая ---------- */
.lk-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px 32px; align-items: start; }
.lk-main { min-width: 0; display: grid; gap: 32px; }
.lk-side { display: grid; gap: 16px; position: sticky; top: calc(var(--header-h, 78px) + 16px); }
.lk-sec { display: grid; gap: 14px; }
.lk-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.lk-sec__head h2 { font-size: var(--lk-fs-l); margin: 0; }
.lk-sec__head .eyebrow { margin: 0; }
.lk-count { color: var(--muted); font-size: var(--lk-fs-s); }
@media (max-width: 980px) { .lk-grid { grid-template-columns: 1fr; } .lk-side { position: static; } }

/* ---------- предупреждения ---------- */
.lk-warnings { display: grid; gap: 10px; }
.lk-warnings:empty { display: none; }
.lk-warn { display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; background: var(--c-food-t); color: #6E4B0C; border-radius: var(--lk-r-s); padding: 14px 16px; font-size: var(--lk-fs-s); }
.lk-warn b { display: block; font-size: var(--lk-fs); margin-bottom: 2px; color: inherit; }
.lk-warn.is-info { background: var(--c-active-t); color: var(--c-active-d); }
.lk-warn__ico { font-size: 22px; line-height: 1; }
.lk-ovl { background: var(--c-food-t); }
.lk-ovl.is-done { background: var(--c-active-t); color: var(--c-active-d); }
.lk-ovl__body { display: grid; gap: 6px; }
.lk-ovl__dates { color: inherit; opacity: .85; font-size: var(--lk-fs-xs); }
.lk-ovl__q { margin-top: 4px; font-weight: 700; color: var(--ink); }
.lk-ovl.is-done .lk-ovl__q { display: none; }
.lk-ovl__row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.lk-ovl__row .btn { min-height: 48px; }
.lk-ovl.is-busy .btn { opacity: .6; pointer-events: none; }
.lk-ovl__done { color: inherit; }
.lk-ovl__done .lk-linkbtn { margin-left: 4px; color: inherit; text-decoration-color: currentColor; }

/* ---------- подсказка: календарь телефона ---------- */
.lk-nudge { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; background: var(--c-active-t); border-radius: var(--lk-r); padding: 18px 20px; }
.lk-nudge__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--lk-r-s); background: var(--paper); font-size: 22px; }
.lk-nudge__body { display: grid; gap: 6px; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-nudge__body b { font-size: var(--lk-fs); color: var(--ink); }
.lk-nudge__row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.lk-nudge__later { background: none; border: 0; font: inherit; font-size: var(--lk-fs-s); color: var(--muted); text-decoration: underline; cursor: pointer; padding: 8px 4px; }
.lk-aside__h { margin: 4px 0 -2px; font-weight: 800; font-size: var(--lk-fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lk-next__desc { display: block; margin-top: 8px; color: rgba(255,255,255,.8); font-size: var(--lk-fs-s); white-space: pre-line; }
.lk-next__desc + .lk-next__desc { margin-top: 6px; }

/* ---------- ближайшее занятие ---------- */
.lk-next { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr); gap: 24px; background: var(--ink); color: #fff; border-radius: var(--lk-r); padding: clamp(22px, 3vw, 32px); box-shadow: 0 24px 60px rgba(34,32,43,.22); }
.lk-next::before { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, var(--gc, var(--c-active)) 0%, transparent 70%); opacity: .55; pointer-events: none; }
.lk-next > * { position: relative; }
.lk-next .eyebrow { color: rgba(255,255,255,.7); }
.lk-next .eyebrow::before { background: rgba(255,255,255,.6); }
.lk-next h2 { color: #fff; font-size: var(--lk-fs-l); margin: 8px 0 2px; }
.lk-next__time { font-size: clamp(40px, 5vw, 56px); font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.05; margin: 4px 0 8px; }
.lk-next__facts { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.lk-next__fact { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.9); font-size: var(--lk-fs-xs); font-weight: 600; }
.lk-next__fact.is-soon { background: var(--c-active); color: #fff; }
.lk-next__fact.is-moved { background: var(--c-food); color: #3A2A05; }
.lk-next__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.lk-next .btn--join { background: var(--c-active); color: #fff; min-height: 56px; font-size: var(--lk-fs); padding-inline: 26px; box-shadow: none; }
.lk-next .btn--join:hover { background: #3AA3A3; }
.lk-next .btn--join.is-pulse { animation: lk-join 8s ease-in-out infinite; }
@keyframes lk-join { 0%, 92%, 100% { box-shadow: 0 0 0 0 rgba(46,139,139,0); } 95% { box-shadow: 0 0 0 12px rgba(46,139,139,.35); } }
.lk-next--offline .btn--join { background: var(--c-paint); }
.lk-next--offline .btn--join:hover { background: #D66E4C; }
.lk-next .btn--ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.lk-next .btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }
.lk-next__sub { color: rgba(255,255,255,.75); font-size: var(--lk-fs-s); }
.lk-next__topic { align-self: stretch; background: rgba(255,255,255,.07); border-radius: var(--lk-r-s); padding: 16px 18px; font-size: var(--lk-fs-s); color: rgba(255,255,255,.85); }
.lk-next__topic b { display: block; color: #fff; font-size: var(--lk-fs); margin-bottom: 6px; }
.lk-next__topic i { font-style: normal; color: rgba(255,255,255,.6); }

/* ---------- карточки групп ---------- */
.lk-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.lk-g { position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: 14px; background: var(--paper); border: 1.5px solid var(--lk-line); border-radius: var(--lk-r); padding: 20px; transition: transform .3s var(--lk-ease), box-shadow .3s; }
.lk-g::before { content: ""; position: absolute; left: 20px; right: 20px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--gc, var(--ink)); }
.lk-g:hover { transform: translateY(-3px); box-shadow: var(--lk-shadow); }
.lk-g__head { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: start; }
.lk-g h3 { font-size: var(--lk-fs-l); margin: 0; text-wrap: balance; }
.lk-g__code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--lk-fs-xs); color: var(--muted); padding-top: 4px; white-space: nowrap; }
.lk-g__dir { display: inline-flex; align-items: center; gap: 6px; font-size: var(--lk-fs-xs); font-weight: 700; color: var(--gc, var(--ink)); margin-bottom: 4px; }
.lk-g__dir::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gc, var(--ink)); }
.lk-g__facts { display: grid; gap: 6px; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-g__facts div { display: grid; grid-template-columns: 24px 1fr; gap: 6px; align-items: start; }
.lk-g__facts span:first-child { font-size: 16px; line-height: 1.5; }
.lk-g__next { display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 8px 12px; border-radius: 999px; background: var(--lk-soft); color: var(--ink); font-size: var(--lk-fs-xs); font-weight: 700; }
.lk-g__next.is-soon { background: var(--c-active-t); color: var(--c-active-d); }
.lk-g__next.is-moved { background: var(--c-food-t); color: #6E4B0C; }
.lk-g__next.is-none { color: var(--muted); font-weight: 600; }
.lk-g__foot { display: grid; gap: 10px; }
.lk-g__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.lk-g__actions .btn { min-height: 46px; padding: 0 16px; font-size: var(--lk-fs-s); }
.lk-g__more::after { content: "→"; transition: transform .25s var(--lk-ease); }
.lk-g__more:hover::after { transform: translateX(4px); }
.lk-g__note { font-size: var(--lk-fs-xs); color: var(--muted); }
.lk-g[data-slug="painting"] { --gc: var(--c-paint); } .lk-g[data-slug="art"] { --gc: var(--c-art); }
.lk-g[data-slug="hpt"] { --gc: var(--c-craft); } .lk-g[data-slug="kulinaria"] { --gc: var(--c-food-d); }
.lk-g[data-slug="style"] { --gc: var(--c-style); } .lk-g[data-slug="activity"] { --gc: var(--c-active); }
.lk-groups--free .lk-g::before { opacity: .5; }

.lk-empty { background: var(--paper); border: 1.5px dashed #CFC6B6; border-radius: var(--lk-r); padding: 24px; display: grid; gap: 10px; }
.lk-empty h3 { margin: 0; font-size: var(--lk-fs-l); }
.lk-empty p { font-size: var(--lk-fs-s); color: var(--ink-soft); margin: 0; }
.lk-empty__row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.lk-refresh { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.lk-refresh__note { font-size: var(--lk-fs-xs); color: var(--muted); }

/* ---------- боковые блоки ---------- */
.lk-box { background: var(--paper); border: 1.5px solid var(--lk-line); border-radius: var(--lk-r); padding: 20px; display: grid; gap: 12px; }
.lk-box h2 { font-size: var(--lk-fs-l); margin: 0; }
.lk-box p { margin: 0; font-size: var(--lk-fs-s); color: var(--ink-soft); }
.lk-box .btn { justify-content: center; }
.lk-box--tint { background: linear-gradient(160deg, var(--c-active-t), #fff 65%); }
.lk-box__row { display: grid; gap: 8px; }
.lk-week { display: grid; gap: 2px; }
.lk-day { display: grid; grid-template-columns: 92px 1fr; gap: 10px; padding: 10px 8px; border-radius: var(--lk-r-s); font-size: var(--lk-fs-s); }
.lk-day.is-today { background: var(--c-active-t); }
.lk-day__d { font-weight: 700; line-height: 1.3; }
.lk-day__d small { display: block; font-weight: 500; color: var(--muted); font-size: var(--lk-fs-xs); }
.lk-day__l { display: grid; gap: 4px; }
.lk-day__l span { display: block; font-variant-numeric: tabular-nums; }
.lk-day__l span b { font-weight: 700; margin-right: 6px; }
.lk-day__l span.is-clash { color: #6E4B0C; }
.lk-day__l span.is-moved::after { content: " · перенос"; font-weight: 600; color: #6E4B0C; font-size: var(--lk-fs-xs); }
.lk-day__l i { font-style: normal; color: var(--muted); }

/* ---------- отзыв после занятия ---------- */
.lk-review { background: var(--paper); border: 1.5px solid var(--c-food); border-radius: var(--lk-r); padding: 20px; display: grid; gap: 10px; }
.lk-review h3 { margin: 0; font-size: var(--lk-fs-l); }
.lk-review p { margin: 0; color: var(--ink-soft); font-size: var(--lk-fs-s); }
.lk-stars { display: flex; gap: 4px; }
.lk-stars button { width: 48px; height: 48px; border: 0; background: none; font-size: 32px; line-height: 1; color: #D9D2C3; cursor: pointer; padding: 0; transition: transform .2s var(--lk-ease), color .2s; }
.lk-stars button:hover { transform: scale(1.12); }
.lk-stars button.is-on { color: #E0A02F; }
.lk-review__row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lk-review__later { background: none; border: 0; font: inherit; font-size: var(--lk-fs-s); color: var(--muted); text-decoration: underline; cursor: pointer; padding: 8px; }

/* ---------- панели (шторки): профиль и группа ---------- */
.lk-panel { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 16px; background: rgba(34,32,43,.45); backdrop-filter: blur(4px); opacity: 0; transition: opacity .25s; }
.lk-panel.is-open { opacity: 1; }
.lk-panel__card { position: relative; width: min(560px, 100%); max-height: 92vh; overflow: auto; background: var(--paper); border-radius: var(--lk-r); padding: 28px; box-shadow: 0 30px 80px rgba(0,0,0,.3); transform: translateY(18px) scale(.98); transition: transform .3s var(--lk-ease); }
.lk-panel.is-open .lk-panel__card { transform: none; }
.lk-panel__card--wide { width: min(680px, 100%); }
.lk-panel__card h2 { margin: 0 0 16px; font-size: clamp(24px, 3vw, 30px); padding-right: 52px; }
.lk-panel__x { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--lk-soft); font-size: 26px; line-height: 1; cursor: pointer; transition: background .2s, transform .25s var(--lk-ease); }
.lk-panel__x:hover { background: var(--lk-line); transform: rotate(90deg); }
.lk-panel__danger { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 24px; padding-top: 18px; border-top: 1.5px solid var(--lk-line); }
.lk-link-danger { background: none; border: 0; color: var(--c-paint-d); font: inherit; font-size: var(--lk-fs-s); text-decoration: underline; cursor: pointer; padding: 8px 4px; }
.lk-gpanel__meta { color: var(--ink-soft); font-size: var(--lk-fs-s); margin: 0 0 14px; }
.lk-gpanel__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.lk-gpanel__share { margin: 0 0 16px; }
.lk-gpanel__topic { background: var(--c-active-t); border-radius: var(--lk-r-s); padding: 14px 16px; margin-bottom: 18px; font-size: var(--lk-fs-s); }
.lk-gpanel__topic b { display: block; margin-bottom: 4px; font-size: var(--lk-fs); }
.lk-gpanel__h3 { font-size: var(--lk-fs-l); margin: 0 0 10px; }
.lk-gpanel__h3--gap { margin-top: 26px; }
.lk-cal { border-top: 1.5px solid var(--lk-line); }
.lk-cal__row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 11px 0; border-bottom: 1.5px solid var(--lk-line); font-size: var(--lk-fs-s); }
.lk-cal__row.is-today { font-weight: 700; }
.lk-cal__row.is-cancelled { color: var(--muted); text-decoration: line-through; }
.lk-cal__row.is-approx { color: var(--ink-soft); }
.lk-cal__t { font-variant-numeric: tabular-nums; white-space: nowrap; }
.lk-cal__tag { display: inline-block; margin-left: 8px; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--c-food-t); color: #6E4B0C; vertical-align: middle; }
.lk-cal__tag--soft { background: var(--lk-soft); color: var(--muted); }
.lk-hist { display: grid; gap: 10px; }
.lk-hist__row { padding: 12px 14px; border-radius: var(--lk-r-s); background: var(--lk-soft); font-size: var(--lk-fs-s); }
.lk-hist__d { font-size: var(--lk-fs-xs); color: var(--muted); font-weight: 600; }
.lk-hist__t { font-weight: 700; margin-top: 2px; }
.lk-hist__m { color: var(--ink-soft); margin-top: 4px; white-space: pre-line; }
.lk-hist__link { color: var(--c-active-d); font-weight: 700; }
.lk-ask__lead { font-size: var(--lk-fs-s); color: var(--ink-soft); margin: 0 0 12px; }
.lk-ask__done { padding: 14px 16px; border-radius: var(--lk-r-s); background: var(--c-active-t); font-size: var(--lk-fs-s); }
.u-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* напоминания */
.lk-remind { margin-top: 22px; padding-top: 18px; border-top: 1.5px solid var(--lk-line); }
.lk-switch { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; cursor: pointer; }
.lk-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lk-switch__track { position: relative; width: 56px; height: 32px; border-radius: 16px; background: var(--lk-line); transition: background .25s; margin-top: 2px; }
.lk-switch__track::after { content: ''; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(34,32,43,.25); transition: transform .25s var(--lk-ease); }
.lk-switch input:checked + .lk-switch__track { background: var(--c-active); }
.lk-switch input:checked + .lk-switch__track::after { transform: translateX(24px); }
.lk-switch input:focus-visible + .lk-switch__track { outline: 3px solid var(--c-active-t); outline-offset: 2px; }
.lk-switch__text b { display: block; font-size: var(--lk-fs); }
.lk-switch__text i { display: block; font-style: normal; color: var(--muted); font-size: var(--lk-fs-xs); margin-top: 2px; }
.lk-remind__note { margin-top: 10px; color: var(--c-paint-d); font-weight: 600; }
.lk-remind__note.is-ok { color: var(--c-active-d); }
.lk-remind__btn { display: inline-flex; margin-top: 10px; }

/* ---------- тост ---------- */
.lk-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 95; width: max-content; background: var(--ink); color: #fff; padding: 14px 20px; border-radius: 999px; font-size: var(--lk-fs-s); max-width: min(92vw, 520px); box-shadow: 0 16px 40px rgba(0,0,0,.25); animation: lk-toast .35s var(--lk-ease) both; }
.lk-toast.is-bad { background: var(--c-paint-d); }
@keyframes lk-toast { from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ---------- движение ---------- */
.lk [data-in] { opacity: 1; transform: none; }
.lk.is-anim [data-in] { animation: lk-in .5s var(--lk-ease) both; animation-delay: calc(var(--i, 0) * 50ms); }
@keyframes lk-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.lk.is-quiet [data-in], .lk.is-quiet .lk-next .btn--join.is-pulse, .lk.is-quiet .lk-howto__status::before, .lk.is-quiet .lk-skel i { animation: none !important; }
.lk.is-quiet .lk-g:hover, .lk.is-quiet .lk-way:hover, .lk.is-quiet .btn:active { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .lk.is-anim [data-in], .lk-howto__status::before, .lk-next .btn--join.is-pulse, .lk-skel i, .lk-toast { animation: none !important; }
  .lk-panel, .lk-panel__card, .lk .btn, .lk-g, .lk-way { transition: none !important; }
}

/* ---------- адаптив ---------- */
@media (max-width: 760px) {
  .lk-next { grid-template-columns: 1fr; }
  .lk-hello { align-items: flex-start; flex-direction: column; }
  .lk-panel { place-items: end center; padding: 0; }
  .lk-panel__card { border-radius: var(--lk-r) var(--lk-r) 0 0; max-height: 94vh; transform: translateY(40px); }
  .lk-groups { grid-template-columns: 1fr; }
}
/* на странице кабинета баннер «Подбор с ИИ» лишний */
.lk-page .aibanner { display: none !important; }
/* внутри мини-приложения МАКСа */
.lk-in-max .header, .lk-in-max .footer, .lk-in-max .lk-way--tg, .lk-in-max .cookie, .lk-in-max .mascot { display: none !important; }
.lk-in-max .lk { padding-top: 16px; }
