/* «Идём!» — слой экранов поверх bundle.css. Только то, чего нет в дизайн-системе; классы с префиксом ix-.
   Каждое правило читает смысловые токены. Кандидаты в систему помечены в docs/design/handoff. */

.ix-page { background: var(--bg); color: var(--text); font-family: var(--font-text); font-size: var(--fs-body); line-height: var(--lh-body); }
.ix-page *, .ix-page *::before, .ix-page *::after { box-sizing: border-box; }
.ix-page h1, .ix-page h2, .ix-page h3, .ix-page p { margin: 0; }
.ix-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.ix-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ix-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ix-stack { display: flex; flex-direction: column; gap: 12px; }
.ix-muted { color: var(--text-2); }
.ix-caps { font: 700 var(--fs-caption)/1.3 var(--font-text); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--text-2); }
.ix-hand { font: 600 22px/1.2 var(--font-hand); color: var(--accent-dark); transform: rotate(-2deg); display: inline-block; }

/* карточка: строка «когда» и цена без значения */
.ix-when { display: flex; align-items: center; gap: 5px; color: var(--text-2); font: 600 var(--fs-small)/1.3 var(--font-text); min-width: 0; }
.ix-when .idem-icon { font-size: 14px; }
.ix-when > span:first-of-type { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-when.is-accent { color: var(--accent-dark); }
.ix-more { flex: none; padding: 1px 6px; border-radius: var(--r-pill); background: var(--surface-2); color: var(--text-2); font: 700 10.5px/1.4 var(--font-text); }
.idem-card__price.is-unknown { color: var(--text-2); font-weight: 600; }
.idem-card--row .idem-card__top, .idem-card--row .idem-card__bot { display: none; }
.idem-card--row .ix-when { margin-top: 1px; }
/* подпись источника в правом нижнем углу постера: полупрозрачная, только для факта */
.ix-src { position: absolute; z-index: 2; right: 8px; bottom: 8px; max-width: 46%; padding: 2px 7px; border-radius: var(--r-pill); background: rgba(20, 20, 24, .34); color: rgba(255, 255, 255, .88); font: 600 10px/1.5 var(--font-text); letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.idem-card--row .ix-src { display: none; }
.idem-card--row .idem-card__meta { gap: 6px; justify-content: flex-start; }
.idem-card--row .idem-card__price { margin-left: auto; }

/* герой ленты */
.ix-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.ix-hero__main { display: flex; flex-direction: column; gap: 16px; padding: 32px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-hero__main h1 { font: 800 var(--fs-display)/var(--lh-tight) var(--font-display); letter-spacing: var(--ls-display); max-width: 15ch; }
.ix-hero__main p { color: var(--text-2); font-size: 15px; max-width: 48ch; }
.ix-fresh { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); font-size: var(--fs-small); }
.ix-fresh i { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); flex: none; }
.ix-now { display: flex; flex-direction: column; gap: 10px; padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-now__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ix-now__head h2 { font: 700 var(--fs-h3)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-now__head a { color: var(--accent-dark); font-weight: 600; font-size: var(--fs-small); }

/* фильтры */
.ix-filters { position: sticky; top: 0; z-index: 5; display: flex; flex-direction: column; gap: 10px; padding: 14px 0 12px; background: var(--bg); }
.ix-filters__row { display: flex; align-items: center; gap: 8px; }
.ix-filters__row .idem-strip { flex: 1; min-width: 0; }
.ix-active { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--text-2); font-size: var(--fs-small); }
.ix-pill-x { display: inline-flex; align-items: center; gap: 4px; min-height: 28px; padding: 0 6px 0 10px; border: 1px solid var(--border-control); border-radius: var(--r-pill); background: var(--surface); color: var(--text); font: 600 12px/1 var(--font-text); cursor: pointer; }
.ix-pill-x .idem-icon { font-size: 14px; }
.ix-pill-x:focus-visible, .ix-link-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-link-btn { padding: 0 4px; border: 0; background: none; color: var(--accent-dark); font: 600 var(--fs-small)/1.2 var(--font-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 28px; }
.ix-result-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 8px 0 12px; }
.ix-result-h h2 { font: 700 var(--fs-h2)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-result-h span { color: var(--text-2); font-size: var(--fs-small); }
.ix-more-row { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 22px 0 8px; color: var(--text-2); font-size: var(--fs-small); }
.ix-section { margin-top: 36px; }
.ix-section__h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ix-section__h h2 { font: 700 var(--fs-h2)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-section__h p { color: var(--text-2); font-size: var(--fs-small); margin-top: 2px; }
.ix-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.ix-grid--2 { grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); }
.ix-tray-wrap { position: sticky; bottom: 16px; z-index: 6; display: flex; justify-content: center; margin-top: 24px; pointer-events: none; }
.ix-tray-wrap .idem-tray { pointer-events: auto; }
.ix-footnote { display: flex; gap: 10px; align-items: flex-start; margin: 36px 0 0; padding: 14px 16px; border-radius: var(--r-md); background: var(--surface-2); color: var(--text-2); font-size: var(--fs-small); }
.ix-footnote .idem-icon { margin-top: 2px; font-size: 16px; }
.ix-footer { margin-top: 40px; padding: 28px 0 40px; border-top: 1px solid var(--border); color: var(--text-2); font-size: var(--fs-small); }
.ix-footer a { color: var(--text-2); }

/* событие: подложка с модалкой, источники, карта-заглушка */
.ix-stage { position: relative; overflow: hidden; border-radius: var(--r-xl); border: 1px solid var(--border); background: var(--bg); }
.ix-stage__bg { filter: blur(5px) saturate(1.05); pointer-events: none; user-select: none; transform: scale(1.01); padding: 24px; }
.ix-stage__fg { position: absolute; inset: 0; display: flex; justify-content: center; align-items: flex-start; padding: 32px 24px; background: var(--overlay); overflow: hidden; }
.ix-modal-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ix-modal-title { margin: 10px 0 6px; font: 700 var(--fs-h2)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-sub { color: var(--text-2); font-size: var(--fs-small); }
.ix-fact small .idem-icon { font-size: 12px; vertical-align: -0.15em; margin-right: 3px; }
.ix-fact-sub { display: block; margin-top: 3px; color: var(--text-2); font-size: 11.5px; line-height: 1.35; font-weight: 400; }
.ix-dates { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 0; }
.ix-dates span { padding: 5px 10px; border-radius: var(--r-pill); background: var(--surface-2); color: var(--text); font: 600 12px/1 var(--font-text); }
.ix-dates span.is-now { background: var(--ink); color: var(--on-ink); }
.ix-desc { color: var(--text); font-size: 14.5px; line-height: 1.6; }
.ix-desc p + p { margin-top: 10px; }
.ix-srclist { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.ix-srclist li { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: var(--r-md); background: var(--surface-2); font-size: var(--fs-small); color: var(--text-2); }
.ix-srclist b { color: var(--text); font-size: 13px; }
.ix-srclist a { display: inline-flex; align-items: center; gap: 6px; color: var(--accent-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ix-srclist .grow { flex: 1; min-width: 0; }
.ix-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.ix-actions .idem-btn--primary { flex: 1 1 220px; }
.ix-report { display: inline-flex; align-items: center; gap: 6px; color: var(--text-2); font-size: var(--fs-small); text-decoration: underline; text-underline-offset: 3px; }
.ix-modal-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); color: var(--text-2); font-size: var(--fs-small); }
.ix-map { position: relative; height: 150px; overflow: hidden; border-radius: var(--r-md); border: 1px solid var(--border); background-color: var(--surface-2); background-image: linear-gradient(90deg, var(--border) 1px, transparent 1px), linear-gradient(0deg, var(--border) 1px, transparent 1px), linear-gradient(115deg, transparent 46%, var(--border-strong) 46%, var(--border-strong) 48%, transparent 48%); background-size: 38px 38px, 38px 38px, 100% 100%; }
.ix-map__pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%); display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50% 50% 50% 0; rotate: -45deg; background: var(--accent); color: var(--on-accent); }
.ix-map__pin .idem-icon { rotate: 45deg; }
.ix-map__cap { position: absolute; left: 8px; bottom: 8px; padding: 3px 8px; border-radius: var(--r-pill); background: var(--surface); color: var(--text-2); font: 600 10.5px/1.4 var(--font-text); box-shadow: var(--shadow-sm); }
.ix-crumbs { display: flex; align-items: center; gap: 6px; color: var(--text-2); font-size: var(--fs-small); flex-wrap: wrap; }
.ix-crumbs a { color: var(--text-2); }
.ix-pagehero { position: relative; aspect-ratio: 16 / 7; border-radius: var(--r-xl); overflow: hidden; }
.ix-pagehero .idem-card__ph .idem-icon { width: 72px; height: 72px; stroke-width: 1.4; }
.ix-pagehero .idem-card__ph { background: linear-gradient(135deg, var(--c-bg), color-mix(in srgb, var(--c) 42%, var(--c-bg))); }
.ix-panel { padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); display: grid; gap: 12px; }
.ix-price { font: 800 28px/1.1 var(--font-display); letter-spacing: -0.02em; }

/* площадка */
.ix-venue-hero { display: flex; gap: 20px; align-items: flex-start; padding: 28px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-venue-ic { display: grid; place-items: center; width: 64px; height: 64px; flex: none; border-radius: var(--r-lg); background: var(--accent-tint); color: var(--accent-dark); }
.ix-venue-ic .idem-icon { width: 30px; height: 30px; }
.ix-venue-hero h1 { font: 800 34px/1.1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-stats { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 10px; color: var(--text-2); font-size: var(--fs-small); }
.ix-stats b { color: var(--text); }
.ix-month { display: flex; align-items: baseline; gap: 8px; margin: 22px 0 10px; font: 700 var(--fs-h3)/1.2 var(--font-display); }
.ix-month span { color: var(--text-2); font: 500 var(--fs-small)/1 var(--font-text); }
.ix-grid--list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ix-vcard { display: flex; gap: 12px; align-items: flex-start; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); color: var(--text); text-decoration: none; }
.ix-vcard:hover { border-color: var(--border-control); }
.ix-vcard .ix-venue-ic { width: 44px; height: 44px; border-radius: var(--r-md); }
.ix-vcard .ix-venue-ic .idem-icon { width: 22px; height: 22px; }
.ix-vcard b { display: block; font-size: 14px; line-height: 1.3; }
.ix-vcard span { color: var(--text-2); font-size: var(--fs-small); }
.ix-kv { display: grid; gap: 8px; margin: 0; }
.ix-kv div { display: grid; grid-template-columns: 104px 1fr; gap: 8px; font-size: var(--fs-small); }
.ix-kv dt { color: var(--text-2); }
.ix-kv dd { margin: 0; }

/* календарь */
.ix-cal-layout { display: grid; grid-template-columns: minmax(340px, 460px) minmax(0, 1fr); gap: 32px; align-items: start; }
.ix-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; color: var(--text-2); font-size: var(--fs-small); }
.ix-legend li { display: inline-flex; align-items: center; gap: 6px; }
.ix-legend .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-dark); }
.ix-legend .ring { width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--border-control); }
.ix-legend .rng { width: 18px; height: 12px; border-radius: 6px; background: var(--accent-tint); box-shadow: inset 0 0 0 1px var(--border); }

/* «Сейчас в городе»: правило, ось времени */
.ix-rule { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--border); color: var(--text-2); font-size: var(--fs-small); }
.ix-rule .idem-icon { margin-top: 1px; font-size: 18px; color: var(--accent-dark); }
.ix-rule b { color: var(--text); }
.ix-gantt { position: relative; padding: 18px 20px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-gantt ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ix-gantt__row { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; align-items: center; min-height: 32px; }
.ix-gantt__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 13px/1.2 var(--font-text); }
.ix-gantt__label small { display: block; color: var(--text-2); font: 500 11.5px/1.3 var(--font-text); overflow: hidden; text-overflow: ellipsis; }
.ix-gantt__track { position: relative; height: 28px; border-radius: var(--r-sm); background: var(--surface-2); }
.ix-gantt__bar { position: absolute; top: 3px; bottom: 3px; display: flex; align-items: center; padding: 0 8px; border-radius: 6px; background: var(--c-bg); color: var(--c-text); box-shadow: inset 0 0 0 1px var(--c); font: 700 11px/1 var(--font-text); font-style: normal; white-space: nowrap; overflow: hidden; }
.ix-gantt__bar.is-live { background: var(--c-bg); box-shadow: inset 0 0 0 2px var(--c); }
.ix-gantt__bar.is-est { border-right: 3px dashed var(--c); }
.ix-gantt__axis { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; margin-top: 8px; }
.ix-gantt__ticks { display: flex; justify-content: space-between; color: var(--text-2); font: 600 11px/1 var(--font-text); }
.ix-gantt__now { position: absolute; top: 12px; bottom: 34px; width: 2px; background: var(--accent); border-radius: 1px; }
.ix-gantt__now span { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); padding: 2px 7px; border-radius: var(--r-pill); background: var(--accent); color: var(--on-accent); font: 700 10.5px/1.3 var(--font-text); white-space: nowrap; }
.ix-tabs { display: inline-flex; padding: 3px; gap: 2px; border-radius: var(--r-pill); background: var(--surface-2); }
.ix-tabs button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 0; border-radius: var(--r-pill); background: transparent; color: var(--text-2); font: 600 13px/1 var(--font-text); cursor: pointer; }
.ix-tabs button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); }
.ix-tabs button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-tabs .n { opacity: .75; font-weight: 500; }

/* «Куда сегодня?» */
.ix-ask { display: grid; gap: 18px; padding: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-ask__q { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; align-items: center; }
.ix-ask__q h2 { font: 700 var(--fs-h3)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-ask__q h2 span { display: block; margin-top: 2px; color: var(--text-2); font: 500 var(--fs-small)/1.3 var(--font-text); letter-spacing: 0; }
.ix-posters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ix-posters .idem-card--poster { color: #fff; }
.ix-posters .idem-card__meta { display: block; }
.ix-route { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 24px; align-items: start; }

/* состояния */
.ix-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 16px; align-items: start; }
.ix-spec { display: grid; gap: 8px; align-content: start; }
.ix-spec__tag { display: inline-flex; align-self: start; padding: 3px 9px; border-radius: var(--r-pill); background: var(--ink); color: var(--on-ink); font: 700 10.5px/1.4 var(--font-text); letter-spacing: var(--ls-caps); text-transform: uppercase; justify-self: start; }
.ix-spec__rule { color: var(--text-2); font-size: var(--fs-small); line-height: 1.4; min-height: 52px; }
.ix-states { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ix-states .idem-empty { max-width: none; border: 1px solid var(--border); }
.ix-covers { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.ix-cover { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; border-radius: var(--r-md); background: linear-gradient(135deg, var(--c-bg), color-mix(in srgb, var(--c) 42%, var(--c-bg))); color: var(--c-text); }
.ix-cover .idem-icon { width: 34px; height: 34px; stroke-width: 1.6; }
.ix-cover span { position: absolute; left: 8px; bottom: 6px; padding: 3px 8px; border-radius: var(--r-pill); background: var(--c-bg); font: 700 11px/1.2 var(--font-text); }
.ix-bars { display: grid; gap: 10px; }
.ix-bar { display: grid; grid-template-columns: 220px minmax(0, 1fr) 56px; gap: 12px; align-items: center; font-size: var(--fs-small); }
.ix-bar__track { height: 12px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.ix-bar__fill { display: block; height: 100%; border-radius: var(--r-pill); background: var(--accent); }
.ix-bar b { text-align: right; font-variant-numeric: tabular-nums; }
.ix-dark { padding: 24px; border-radius: var(--r-xl); background: var(--bg); color: var(--text); border: 1px solid var(--border); }

@media (max-width: 900px) {
  .ix-specs, .ix-states { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ix-covers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ix-ask__q { grid-template-columns: 1fr; }
  .ix-posters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ix-route { grid-template-columns: 1fr; }
  .ix-gantt__row, .ix-gantt__axis { grid-template-columns: 120px minmax(0, 1fr); }
  .ix-cal-layout { grid-template-columns: 1fr; }
  .ix-hero { grid-template-columns: 1fr; }
  .ix-grid--list { grid-template-columns: 1fr; }
  .ix-wrap { padding: 0 16px; }
  .ix-grid--2 { grid-template-columns: 1fr; }
}

/* ===== этап 2: формы, «Вечер с друзьями», «Организатор» ===== */
.ix-field { display: grid; gap: 6px; }
.ix-label { font: 700 var(--fs-body)/1.3 var(--font-text); }
.ix-label small { font-weight: 500; color: var(--text-2); font-size: var(--fs-small); }
.ix-input, .ix-textarea { width: 100%; min-height: var(--tap-min); padding: 10px 14px; border: 1.5px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); color: var(--text); font: 500 var(--fs-title)/1.35 var(--font-text); }
.ix-textarea { min-height: 112px; resize: vertical; }
.ix-input::placeholder, .ix-textarea::placeholder { color: var(--text-3); }
.ix-input:focus-visible, .ix-textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-field.is-bad .ix-input, .ix-field.is-bad .ix-textarea { border-color: var(--danger); }
.ix-help { color: var(--text-2); font-size: var(--fs-small); }
.ix-error { display: flex; gap: 6px; align-items: center; color: var(--danger-text); font: 600 var(--fs-small)/1.3 var(--font-text); }
.ix-error .idem-icon { width: 15px; height: 15px; flex: none; }
.ix-counter { justify-self: end; color: var(--text-2); font-size: var(--fs-caption); font-variant-numeric: tabular-nums; }

.ix-share { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; align-items: start; }
.ix-rsvp { position: sticky; top: 16px; padding: 22px; display: grid; gap: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-rsvp h2 { font: 800 var(--fs-h2)/1.15 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-answer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ix-answer button { display: grid; justify-items: center; gap: 4px; min-height: 64px; padding: 10px 6px; border: 1.5px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); color: var(--text); font: 700 var(--fs-small)/1.2 var(--font-text); cursor: pointer; }
.ix-answer button .idem-icon { width: 20px; height: 20px; }
.ix-answer button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
.ix-answer button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-done { display: grid; gap: 10px; padding: 14px; border-radius: var(--r-md); background: var(--ok-bg); color: var(--ok-text); }
.ix-done b { font-size: var(--fs-title); }
.ix-people { display: grid; gap: 2px; }
.ix-person { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 4px 0; border-top: 1px solid var(--border); }
.ix-person:first-child { border-top: 0; }
.ix-av { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-bg); color: var(--c-text); font: 800 14px/1 var(--font-text); }
.ix-person__n { flex: 1; min-width: 0; font-weight: 600; }
.ix-person__n small { display: block; color: var(--text-2); font-weight: 500; font-size: var(--fs-caption); }
.ix-st { flex: none; padding: 3px 10px; border-radius: var(--r-pill); font: 700 var(--fs-small)/1.3 var(--font-text); }
.ix-st--yes { background: var(--accent-tint); color: var(--accent-dark); }
.ix-st--maybe { background: var(--warn-bg); color: var(--warn-text); }
.ix-st--no { background: var(--surface-3); color: var(--text-2); }
.ix-st--wait { background: transparent; color: var(--text-2); border: 1px dashed var(--border-strong); }
.ix-tally { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--text-2); font-size: var(--fs-small); }
.ix-tally b { color: var(--text); }
.ix-stopmeta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 2px; color: var(--text-2); font-size: var(--fs-small); }
.ix-linkbox { display: flex; gap: 8px; align-items: center; padding: 6px 6px 6px 14px; border: 1.5px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); font: 600 var(--fs-small)/1.2 var(--font-mono); }
.ix-linkbox span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-og { display: grid; max-width: 360px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.ix-og__img { position: relative; aspect-ratio: 1.91 / 1; display: grid; place-items: center; background: linear-gradient(135deg, var(--c-bg), color-mix(in srgb, var(--c) 42%, var(--c-bg))); color: var(--c-text); }
.ix-og__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ix-og__txt { display: grid; gap: 2px; padding: 10px 14px 12px; }
.ix-og__txt small { color: var(--text-2); font-size: var(--fs-caption); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.ix-og__txt b { font: 700 var(--fs-title)/1.25 var(--font-text); }
.ix-og__txt span { color: var(--text-2); font-size: var(--fs-small); }
.ix-fstates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ix-fstate { display: grid; gap: 8px; align-content: start; padding: 16px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.ix-fstate h3 { font: 700 var(--fs-title)/1.25 var(--font-text); }
.ix-fstate p { color: var(--text-2); font-size: var(--fs-small); }
.ix-points { display: grid; gap: 10px; }
.ix-points li { display: flex; gap: 10px; align-items: flex-start; list-style: none; }
.ix-points .idem-icon { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--accent-dark); }
.ix-points { margin: 0; padding: 0; }
.ix-m { display: grid; gap: 14px; padding: 16px 16px 24px; }
.ix-m h1 { font: 800 26px/1.1 var(--font-display); letter-spacing: var(--ls-display); }

/* организатор */
.ix-org { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; align-items: start; }
.ix-form { display: grid; gap: 22px; }
.ix-fs { display: grid; gap: 14px; padding: 22px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); }
.ix-fs > h2 { display: flex; align-items: center; gap: 10px; font: 700 var(--fs-h3)/1.2 var(--font-display); letter-spacing: var(--ls-heading); }
.ix-fs > h2 i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--on-ink); font: 800 13px/1 var(--font-text); font-style: normal; }
.ix-row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ix-suggest { display: grid; margin: 0; padding: 4px; list-style: none; border: 1px solid var(--border-strong); border-radius: var(--r-md); background: var(--surface); }
.ix-suggest button { display: flex; justify-content: space-between; gap: 10px; width: 100%; min-height: var(--tap-min); padding: 8px 12px; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text); font: 600 var(--fs-body)/1.3 var(--font-text); text-align: left; cursor: pointer; }
.ix-suggest button:hover, .ix-suggest button:focus-visible { background: var(--surface-2); }
.ix-suggest small { color: var(--text-2); font-weight: 500; }
.ix-check { display: flex; gap: 12px; align-items: flex-start; min-height: var(--tap-min); padding: 10px 12px; border: 1.5px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); text-align: left; font: 500 var(--fs-body)/1.4 var(--font-text); color: var(--text); cursor: pointer; width: 100%; }
.ix-check i { flex: none; display: grid; place-items: center; width: 22px; height: 22px; margin-top: 1px; border: 1.5px solid var(--border-control); border-radius: 6px; background: var(--surface); color: transparent; }
.ix-check i .idem-icon { width: 16px; height: 16px; stroke-width: 3; }
.ix-check[aria-pressed="true"] i { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
.ix-check:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-drop { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1.5px dashed var(--border-strong); border-radius: var(--r-md); color: var(--text-2); font-size: var(--fs-small); }
.ix-drop .idem-icon { flex: none; width: 24px; height: 24px; }
.ix-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.ix-step { display: grid; gap: 6px; padding-top: 10px; border-top: 4px solid var(--surface-3); font-size: var(--fs-small); color: var(--text-2); }
.ix-step b { color: var(--text); font-size: var(--fs-body); }
.ix-step.is-done { border-top-color: var(--accent); }
.ix-step.is-cur { border-top-color: var(--ink); }
.ix-success { display: grid; gap: 16px; padding: 28px; border-radius: var(--r-xl); background: var(--ok-bg); color: var(--ok-text); }
.ix-success h2 { font: 800 var(--fs-h1)/1.15 var(--font-display); letter-spacing: var(--ls-heading); color: var(--text); }
.ix-success p { color: var(--text); }
.ix-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ix-kpi { display: grid; gap: 4px; padding: 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); }
.ix-kpi span { color: var(--text-2); font-size: var(--fs-small); }
.ix-kpi b { font: 800 30px/1.1 var(--font-display); letter-spacing: var(--ls-display); font-variant-numeric: tabular-nums; }
.ix-kpi small { color: var(--text-2); font-size: var(--fs-caption); }
.ix-sample { display: inline-flex; align-self: start; padding: 2px 8px; border-radius: var(--r-pill); background: var(--warn-bg); color: var(--warn-text); font: 700 var(--fs-caption)/1.4 var(--font-text); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.ix-table { display: grid; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; }
.ix-tr { display: grid; grid-template-columns: minmax(0, 2.6fr) 90px 80px 80px 72px minmax(0, 1.3fr); gap: 12px; align-items: center; min-height: 52px; padding: 8px 16px; border-top: 1px solid var(--border); font-size: var(--fs-body); }
.ix-tr--h { min-height: 40px; border-top: 0; background: var(--surface-2); color: var(--text-2); font: 700 var(--fs-caption)/1.2 var(--font-text); letter-spacing: var(--ls-caps); text-transform: uppercase; }
.ix-tr b { font-variant-numeric: tabular-nums; }
.ix-tr__t { min-width: 0; }
.ix-tr__t a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-weight: 600; text-decoration: none; }
.ix-tr__t small { color: var(--text-2); font-size: var(--fs-small); }
.ix-gaps { display: flex; flex-wrap: wrap; gap: 4px; }
.ix-gap { padding: 2px 8px; border-radius: var(--r-pill); background: var(--warn-bg); color: var(--warn-text); font: 700 var(--fs-caption)/1.5 var(--font-text); }
.ix-gap--ok { background: var(--ok-bg); color: var(--ok-text); }
.ix-spark { display: flex; align-items: flex-end; gap: 4px; height: 96px; padding: 8px 0 0; }
.ix-spark i { flex: 1; min-width: 6px; border-radius: 4px 4px 0 0; background: var(--accent); opacity: .85; }
.ix-spark i:last-child { opacity: 1; }
.ix-spark-x { display: flex; justify-content: space-between; color: var(--text-2); font-size: var(--fs-caption); }
.ix-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ix-card-prev { max-width: 300px; }

@media (max-width: 900px) {
  .ix-share, .ix-org, .ix-2col { grid-template-columns: 1fr; }
  .ix-rsvp { position: static; }
  .ix-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ix-row2, .ix-fstates { grid-template-columns: 1fr; }
  .ix-tr { grid-template-columns: minmax(0, 1fr) 64px; }
  .ix-tr > :nth-child(2), .ix-tr > :nth-child(4), .ix-tr > :nth-child(5) { display: none; }
  .ix-tr > :nth-child(6) { grid-column: 1 / -1; }
}

/* карточки одного размера: заголовок всегда в две строки, лишнее обрезается многоточием */
.idem-card__title { -webkit-line-clamp: 2; min-height: 2.6em; text-overflow: ellipsis; }
.idem-card--wide .idem-card__title { -webkit-line-clamp: 2; min-height: 2.6em; }
.idem-card--row .idem-card__title { -webkit-line-clamp: 2; min-height: 2.6em; }
.idem-card--poster .idem-card__title { -webkit-line-clamp: 2; min-height: 2.3em; }
.idem-card--wide .idem-card__desc { min-height: 2.9em; }
.idem-card__body .ix-sub { min-height: 1.45em; }
.ix-grid, .ix-grid--list, .ix-posters { grid-auto-rows: 1fr; }

/* CTA в левом блоке шапки ленты: «Вечер с друзьями» */
.ix-cta { margin-top: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 20px; align-items: center; padding: 16px 18px; border-radius: var(--r-xl); background: var(--surface-2); border: 1px solid var(--border); color: var(--text); text-decoration: none; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.ix-cta:hover { border-color: var(--accent); box-shadow: var(--shadow-sm); }
.ix-cta:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-cta__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ix-cta__txt b { font: 700 16px/1.25 var(--font-text); }
.ix-cta__txt span { color: var(--text-2); font-size: var(--fs-small); }
.ix-cta__stops { grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ix-cta__stops li { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 8px 10px; border-radius: 10px; background: var(--surface); border: 1px solid var(--border); }
.ix-cta__stops time { font: 700 13px/1.2 var(--font-mono); color: var(--text-2); }
.ix-cta__stops span { font-size: 13px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.ix-cta__btn { white-space: nowrap; }
@media (max-width: 640px) {
  .ix-cta { grid-template-columns: 1fr; }
  .ix-cta__stops { grid-template-columns: 1fr; }
  .ix-cta__stops span { min-height: 0; -webkit-line-clamp: 1; }
}

/* Бегущая строка «Сегодня» перед фильтрами */
.ix-ticker { margin-top: 16px; display: flex; align-items: stretch; height: 44px; border-radius: 999px; overflow: hidden; background: var(--surface-2); color: var(--text); }
.ix-ticker__lbl { flex: none; display: flex; align-items: center; margin: 5px 0 5px 5px; padding: 0 14px; border-radius: 999px; background: var(--surface); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); font: 800 11px/1 var(--font-text); letter-spacing: .1em; text-transform: uppercase; }
.ix-ticker__lbl::before { content: ""; flex: none; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--accent); animation: ix-pulse 1.6s ease-in-out infinite; }
.ix-ticker__vp { flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center; }
.ix-ticker__track { display: flex; flex: none; white-space: nowrap; font-size: 13px; animation: ix-ticker 60s linear infinite; }
.ix-ticker:hover .ix-ticker__track, .ix-ticker:focus-within .ix-ticker__track { animation-play-state: paused; }
.ix-ticker__it { display: inline-flex; align-items: center; gap: 8px; padding: 0 20px 0 20px; color: inherit; text-decoration: none; }
.ix-ticker__it:hover span { text-decoration: underline; }
.ix-ticker__it:focus-visible { outline: 2px solid var(--focus); outline-offset: -4px; border-radius: 999px; }
.ix-ticker__it .idem-icon { width: 16px; height: 16px; color: var(--text-2); flex: none; }
.ix-ticker__it em { font-style: normal; color: var(--accent-dark); font-weight: 600; }
.ix-ticker__it span { font-weight: 500; }
/* premium-элемент: золотая таблетка во всю высоту строки (как закреплённый элемент) */
.ix-star { display: none; flex: none; width: 14px; height: 14px; background: var(--gold); -webkit-mask: var(--ix-star) center / contain no-repeat; mask: var(--ix-star) center / contain no-repeat; }
.ix-ticker__it.is-prem { height: calc(var(--ix-pin-h, 60px) - 26px); margin: 0 4px; padding: 0 14px 0 10px; border-radius: 999px; background: var(--gold-tint); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 55%, transparent); }
.ix-ticker__it.is-prem .ix-star { display: inline-block; }
.ix-ticker__it.is-prem .idem-icon, .ix-ticker__it.is-prem em { color: var(--gold-dark); }
.ix-ticker__it.is-prem span { font-weight: 700; }
:root, [data-theme="light"] { --gold: #B8860B; --gold-2: #E9C46A; --gold-tint: #FBF1D2; --gold-dark: #7A5800; --ix-star: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.7-5.2 4.7 1.5 6.8L12 17l-6.1 3.5 1.5-6.8L2.2 9l6.9-.7z'/%3E%3C/svg%3E"); }
[data-theme="dark"] { --gold: #E3B84A; --gold-2: #F2D27A; --gold-tint: #2E2610; --gold-dark: #F0CF74; }
@keyframes ix-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.55); opacity: .5; } }
@keyframes ix-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ix-ticker__track { animation: none; }
  .ix-ticker__lbl::before { animation: none; }
  .ix-ticker__vp { overflow-x: auto; }
}

/* Фильтры: все чипы видны сразу, без горизонтальной прокрутки */
.ix-filters .idem-strip { flex-wrap: wrap; overflow: visible; row-gap: 8px; }
.ix-filters__row { align-items: flex-start; }
@media (max-width: 1099px) { .ix-filters { position: static; } }

/* Адаптив героя ленты: без выхода за экран на любой ширине */
.ix-hero { display: flex; flex-wrap: wrap; gap: 16px; align-items: stretch; }
.ix-hero__main { flex: 1.55 1 440px; min-width: 0; }
.ix-now { flex: 1 1 300px; min-width: 0; }
.ix-hero__main h1 { overflow-wrap: anywhere; }
.ix-hero__search { flex: 1 1 200px; min-width: 0; max-width: 460px; }
.ix-hero__main .ix-row > .idem-btn { flex: 0 1 auto; max-width: 100%; }
.ix-hero__main > *, .ix-now > * { min-width: 0; max-width: 100%; }
.ix-now dc-import, .ix-grid dc-import, .ix-hero dc-import { display: block; min-width: 0; max-width: 100%; }
.ix-now .idem-card, .ix-now .idem-card__body { min-width: 0; max-width: 100%; }
.ix-now .idem-card__meta { flex-wrap: wrap; }
.ix-fresh { flex-wrap: wrap; }
@media (max-width: 640px) {
  .ix-hero__main { padding: 20px; gap: 14px; flex-basis: 100%; }
  .ix-now { padding: 14px; flex-basis: 100%; }
  .ix-hero__main h1 { font-size: clamp(28px, 9vw, 40px); }
  .ix-cta { padding: 14px; }
  .ix-cta__btn { justify-self: stretch; justify-content: center; }
}

/* Адаптив: сетки и секции без выхода за экран (не зависят от media-запросов) */
.ix-page { overflow-x: clip; }
.ix-wrap { min-width: 0; }
.ix-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.ix-grid--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); container-type: inline-size; }
.ix-grid--list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.ix-posters { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.ix-grid > *, .ix-grid--list > *, .ix-posters > * { min-width: 0; }
@container (max-width: 560px) {
  .idem-card--wide { flex-direction: column; }
  .idem-card--wide .idem-card__media { width: 100%; min-height: 0; aspect-ratio: 4 / 3; }
}
.idem-card--wide, .idem-card--wide .idem-card__body { min-width: 0; max-width: 100%; }
.ix-section__h, .ix-result-h { flex-wrap: wrap; }
.ix-section__h > *, .ix-result-h > * { min-width: 0; }
.ix-more-row { text-align: center; }
.ix-footnote > span, .idem-banner > span { min-width: 0; overflow-wrap: anywhere; }
.ix-footer .ix-row { gap: 8px 16px; }
.ix-tray-wrap { padding: 0 4px; }
.ix-tray-wrap .idem-tray { max-width: 100%; flex-wrap: wrap; justify-content: center; border-radius: 28px; }
.idem-tray__txt { white-space: normal; min-width: 0; }
.ix-ticker__lbl { padding: 0 14px; }

/* Закреплённая бегущая строка и сворачиваемая панель фильтров */
.ix-page { --ix-pin-h: 60px; --ix-compact-h: 52px; }
.ix-pin { position: sticky; top: var(--ix-hd-h, 0px); z-index: 8; margin-top: 8px; padding: 8px 0; background: var(--bg); }
.ix-pin .ix-ticker { margin-top: 0; height: calc(var(--ix-pin-h) - 16px); }
.ix-filters { position: static; }
.ix-compact-slot { position: sticky; top: calc(var(--ix-hd-h, 0px) + var(--ix-pin-h)); z-index: 7; height: 0; }
.ix-compact { position: absolute; left: 0; right: 0; top: 0; height: var(--ix-compact-h); display: flex; align-items: center; gap: 12px; padding: 0 10px 0 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(-6px); pointer-events: none; transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility var(--dur-fast); }
.ix-compact.is-on { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.ix-compact__day, .ix-compact__all { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: var(--fs-small); white-space: nowrap; }
.ix-compact__all { font-weight: 500; color: var(--text-2); }
.ix-compact__day .idem-icon, .ix-compact__all .idem-icon { width: 16px; height: 16px; }
.ix-compact__cats { display: inline-flex; align-items: center; min-width: 0; flex: 1; overflow: hidden; }
.ix-ci { flex: none; display: grid; place-items: center; width: 30px; height: 30px; margin-left: -6px; border: 2px solid var(--surface); border-radius: 50%; background: var(--c-bg); color: var(--c-text); }
.ix-ci:first-child { margin-left: 0; }
.ix-ci .idem-icon { width: 16px; height: 16px; }
.ix-compact__price { flex: none; padding: 3px 10px; border-radius: 999px; background: var(--surface-2); font-size: var(--fs-small); font-weight: 600; white-space: nowrap; }
.ix-compact__n { flex: none; color: var(--text-2); font-size: var(--fs-small); white-space: nowrap; }
.ix-compact__btn { flex: none; }
.ix-filters.is-float { position: sticky; top: calc(var(--ix-hd-h, 0px) + var(--ix-pin-h) + var(--ix-compact-h) + 6px); z-index: 6; padding: 14px 16px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-lg); max-height: calc(100vh - var(--ix-pin-h) - var(--ix-compact-h) - 24px); overflow: auto; }
@media (max-width: 640px) {
  .ix-page { --ix-pin-h: 52px; --ix-compact-h: 46px; }
  .ix-compact { gap: 8px; padding: 0 8px 0 10px; }
  .ix-compact__n { display: none; }
  .ix-ci { width: 26px; height: 26px; }
}

/* ===== «Сейчас в городе»: ось времени с фильтром, подгрузкой, булавками и планом ===== */
.ix-tl { --tl-lab: 250px; padding: 0; overflow: hidden; }
.ix-tl__scroll { max-height: min(calc(560px + var(--dock-h, 0px)), 88vh); overflow: auto; overscroll-behavior: contain; }
.ix-tl--plan .ix-tl__scroll { max-height: none; }
.ix-tl__scroll:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.ix-tl__in { min-width: 700px; padding: 0 20px 22px; }
.ix-tl__head { position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: var(--tl-lab) minmax(0, 1fr); gap: 14px; padding: 14px 0 6px; margin-bottom: 8px; background: var(--surface); border-bottom: 1px solid var(--border); }
.ix-tl__cnt { align-self: end; color: var(--text-2); font: 600 12px/1.2 var(--font-text); }
.ix-tl__ruler { position: relative; height: 40px; }
.ix-tl__day { position: absolute; top: 0; padding: 2px 8px; border-radius: var(--r-pill); background: var(--ink); color: var(--on-ink); font: 700 11px/1.4 var(--font-text); white-space: nowrap; z-index: 1; }
.ix-tl__tick { position: absolute; bottom: 0; transform: translateX(-50%); color: var(--text-2); font: 600 11px/1 var(--font-text); }
.ix-tl__brk { position: absolute; top: 0; bottom: 0; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; border-radius: 4px; color: var(--text-2); font: 600 10px/1 var(--font-text); background: repeating-linear-gradient(135deg, transparent 0 4px, var(--border) 4px 5px); }
.ix-tl__body { position: relative; }
.ix-tl__lines { position: absolute; left: calc(var(--tl-lab) + 14px); right: 0; top: 0; bottom: 0; pointer-events: none; }
.ix-tl__gl { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--border); opacity: .55; }
.ix-tl__bk { position: absolute; top: 0; bottom: 0; background: repeating-linear-gradient(135deg, transparent 0 4px, var(--border) 4px 5px); opacity: .8; }
.ix-tl__now { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--accent); z-index: 2; }
.ix-tl__now span { position: absolute; top: 2px; left: 6px; padding: 2px 7px; border-radius: var(--r-pill); background: var(--accent); color: var(--on-accent); font: 700 10.5px/1.3 var(--font-text); white-space: nowrap; }
.ix-tl__body ul { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.ix-tl__row { display: grid; grid-template-columns: var(--tl-lab) minmax(0, 1fr); gap: 14px; align-items: center; min-height: 40px; }
.ix-tl .ix-gantt__track { background: transparent; z-index: 1; }
.ix-tl .ix-gantt__bar { z-index: 1; }
.ix-tl__label { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ix-tl__t { min-width: 0; color: inherit; text-decoration: none; }
.ix-tl__t b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 13px/1.25 var(--font-text); }
.ix-tl__t small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); font: 500 11.5px/1.3 var(--font-text); }
.ix-tl__t:hover b { text-decoration: underline; }
.ix-pinbtn { flex: none; width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 50%; border: 1px solid var(--border-control); background: var(--surface); color: var(--text-2); cursor: pointer; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.ix-pinbtn .idem-icon { width: 16px; height: 16px; }
.ix-pinbtn:hover { color: var(--text); border-color: var(--text-2); }
.ix-pinbtn[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.ix-pinbtn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-tl__row.is-pinned .ix-gantt__bar { outline: 2px solid var(--accent); outline-offset: 1px; }
.ix-tl__row.is-clash .ix-gantt__bar { outline: 2px dashed var(--danger); outline-offset: 1px; }
.ix-tl__more { position: relative; z-index: 1; margin-top: 10px; padding-left: calc(var(--tl-lab) + 14px); color: var(--text-2); font: 500 var(--fs-small)/1.4 var(--font-text); }
.ix-steps { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 0; }
.ix-steps__it { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 14px; align-items: baseline; padding: 10px 0 10px 14px; border-left: 3px solid var(--c, var(--border)); position: relative; }
.ix-steps__gap { grid-column: 1 / -1; margin: -2px 0 6px; justify-self: start; padding: 3px 10px; border-radius: var(--r-pill); background: var(--surface-2); color: var(--text-2); font: 600 12px/1.3 var(--font-text); }
.ix-steps__gap.is-tight { background: var(--warn-bg); color: var(--warn-text); }
.ix-steps__gap.is-bad { background: var(--danger-bg, var(--warn-bg)); color: var(--danger-text); }
.ix-steps__t { font: 700 13px/1.3 var(--font-text); white-space: nowrap; }
.ix-steps__n b { display: block; font: 600 14px/1.3 var(--font-text); }
.ix-steps__n small { color: var(--text-2); font: 500 12px/1.4 var(--font-text); }
.ix-plan-empty { display: flex; align-items: center; gap: 10px; margin: 0; padding: 18px 20px; border: 1px dashed var(--border-control); border-radius: var(--r-xl); color: var(--text-2); font: 500 var(--fs-small)/1.45 var(--font-text); }
.ix-plan-empty .idem-icon { flex: none; width: 20px; height: 20px; }
@media (max-width: 900px) { .ix-tl { --tl-lab: 150px; } .ix-steps__it { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .ix-tl__scroll { max-height: min(calc(480px + var(--dock-h, 0px)), 88vh); } .ix-tl__in { padding: 0 12px 12px; } }

/* «Мой план» на общей оси: панель плана, подсветка закреплённых, окна и пересечения между ними */
.ix-tl__plan { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 10px; padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.ix-tl__plan.is-on { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); }
.ix-tl__planlbl { display: inline-flex; align-items: center; gap: 8px; font: 700 14px/1.2 var(--font-text); white-space: nowrap; }
.ix-tl__planlbl .idem-icon { width: 18px; height: 18px; color: var(--accent); }
.ix-tl__plansum { flex: 1 1 240px; min-width: 0; color: var(--text-2); font: 500 var(--fs-small)/1.4 var(--font-text); }
.ix-tl__row.is-pinned { background: color-mix(in srgb, var(--accent) 7%, transparent); border-radius: 10px; margin: 0 -8px; padding: 3px 8px; }
.ix-tl__row.is-off .ix-gantt__bar { opacity: .6; }
.ix-tl.has-plan .ix-tl__row:not(.is-pinned) .ix-gantt__bar { opacity: .55; transition: opacity var(--dur-fast) var(--ease-out); }
.ix-tl.has-plan .ix-tl__row:not(.is-pinned):hover .ix-gantt__bar { opacity: 1; }
.ix-tl__gap { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 11px/1.3 var(--font-text); font-style: normal; color: var(--text-2); }
.ix-tl__gap.is-tight { color: var(--warn-text); }
.ix-tl__gap.is-bad { color: var(--danger-text); }
.ix-tl__link { position: absolute; top: 50%; height: 16px; margin-top: -8px; border-radius: 4px; z-index: 0; box-sizing: border-box; background: color-mix(in srgb, var(--accent) 14%, transparent); border: 1px dashed var(--accent); }
.ix-tl__link.is-tight { background: var(--warn-bg); border-color: var(--warn-text); }
.ix-tl__link.is-over { background: color-mix(in srgb, var(--danger) 22%, transparent); border: 1px dashed var(--danger); }
@media (max-width: 640px) { .ix-tl__plan { padding: 10px 12px; } .ix-tl__plan .ix-tabs { width: 100%; } .ix-tl__plan .ix-tabs button { flex: 1; justify-content: center; } }

/* шкала плавно перестраивается под видимые строки */
.ix-tl .ix-gantt__bar, .ix-tl__link, .ix-tl__tick, .ix-tl__gl, .ix-tl__day, .ix-tl__brk, .ix-tl__bk, .ix-tl__now { transition: left .25s var(--ease-out), width .25s var(--ease-out); }
@media (prefers-reduced-motion: reduce) { .ix-tl .ix-gantt__bar, .ix-tl__link, .ix-tl__tick, .ix-tl__gl, .ix-tl__day, .ix-tl__brk, .ix-tl__bk, .ix-tl__now { transition: none; } }

/* закреплённые события остаются сверху оси при прокрутке: шапка и блок плана — один липкий узел */
.ix-tl__stick { position: sticky; top: 0; z-index: 3; margin: 0 -20px; padding: 0 20px; background: var(--surface); }
@media (max-width: 640px) { .ix-tl__stick { margin: 0 -12px; padding: 0 12px; } }
.ix-tl__stick .ix-tl__head { position: static; }
.ix-tl__pins { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(88vh - 260px); overflow: auto; padding: 6px 20px 8px; border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--accent) 5%, var(--surface)); box-shadow: 0 6px 12px -8px rgba(0, 0, 0, .22); }
.ix-tl__pinsh { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; color: var(--text-2); font: 700 11px/1.2 var(--font-text); text-transform: uppercase; letter-spacing: .04em; }
.ix-tl__pinsh .idem-icon { width: 14px; height: 14px; color: var(--accent); }
.ix-tl__pins .ix-tl__row { min-height: 36px; }
.ix-tl__pins .ix-tl__t small { display: none; }
.ix-tl__pins .ix-pinbtn { width: 28px; height: 28px; }
.ix-tl__pins .ix-tl__row.is-pinned { background: transparent; }
@media (max-width: 640px) { .ix-tl__pins { padding: 6px 12px 8px; } }

/* свёрнутый фильтр: якорь в потоке, поворот стрелки, отступ при прокрутке к ленте */
.ix-fsent { height: 0; }
.ix-compact__btn[aria-expanded="true"] .idem-icon { transform: rotate(180deg); }
.ix-compact__btn .idem-icon { transition: transform var(--dur-fast) var(--ease-out); }

/* объединённая стеклянная панель: день первой видимой карточки + фильтры; обычный заголовок выборки остаётся в потоке */
.ix-compact { background: color-mix(in srgb, var(--surface) 62%, transparent); border-color: color-mix(in srgb, var(--border-strong) 45%, transparent); -webkit-backdrop-filter: blur(22px) saturate(1.8); backdrop-filter: blur(22px) saturate(1.8); box-shadow: 0 1px 0 color-mix(in srgb, #fff 55%, transparent) inset, 0 8px 28px rgba(20, 18, 15, .10); }
[data-theme="dark"] .ix-compact { box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 8px 28px rgba(0, 0, 0, .3); }
.ix-filters.is-float { background: color-mix(in srgb, var(--surface) 78%, transparent); border-color: color-mix(in srgb, var(--border-strong) 45%, transparent); -webkit-backdrop-filter: blur(22px) saturate(1.8); backdrop-filter: blur(22px) saturate(1.8); }
.ix-compact__day { min-width: 0; overflow: hidden; text-overflow: ellipsis; flex: 0 1 auto; }
.ix-compact__day span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-compact__per { flex: none; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--surface-2) 70%, transparent); color: var(--text-2); font-size: var(--fs-small); font-weight: 600; white-space: nowrap; }
@media (max-width: 640px) { .ix-compact__per { display: none; } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .ix-compact { background: var(--surface); } .ix-filters.is-float { background: var(--surface); } }

/* радиус стеклянной панели = радиус карточек дизайн-системы, чтобы углы карточек под стеклом не спорили с углами панели */
.ix-page { --ix-glass-r: var(--r-lg); }
.ix-compact, .ix-filters.is-float { border-radius: var(--ix-glass-r); }

/* телефон: кнопки по сетке дизайн-системы (цель нажатия 44 px, основные действия на всю ширину) */
@media (max-width: 640px) {
  .ix-hero__main .ix-row > .idem-btn { flex: 1 1 100%; justify-content: center; min-height: var(--tap-min); }
  .ix-hero__main .ix-row > .idem-search, .ix-hero__main .ix-row > .ix-hero__search { flex: 1 1 100%; }
  .ix-filters__row { flex-wrap: wrap; gap: 10px; }
  .ix-filters__row > .idem-btn { flex: 1 1 100%; justify-content: center; min-height: var(--tap-min); }
  .ix-compact__all { display: none; }
  .ix-compact__btn { min-height: 36px; padding: 0 14px; }
  .ix-more-row { gap: 10px; }
  .ix-more-row .idem-btn { width: 100%; justify-content: center; min-height: var(--tap-min); }
  .ix-tray-wrap .idem-tray { gap: 10px; }
  .ix-tray-wrap .idem-tray .idem-btn { min-height: var(--tap-min); }
}

/* окно ленты со скруглёнными верхними углами: карточки не выглядывают из-за скругления стеклянной панели при любом положении прокрутки */
.ix-compact::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: var(--ix-glass-r); z-index: -1; pointer-events: none;
  background:
    radial-gradient(circle at 100% 100%, transparent calc(var(--ix-glass-r) - .5px), var(--bg) calc(var(--ix-glass-r) + .5px)) left top / var(--ix-glass-r) 100% no-repeat,
    radial-gradient(circle at 0 100%, transparent calc(var(--ix-glass-r) - .5px), var(--bg) calc(var(--ix-glass-r) + .5px)) right top / var(--ix-glass-r) 100% no-repeat; }

/* ===== Маршрут: список подходящих событий + липкая панель маршрута ===== */
.ix-for-me { align-items: center; padding: 10px 12px; border-radius: var(--r-lg); background: var(--surface-2); }
.ix-for-me__lbl { flex: none; display: grid; gap: 1px; min-width: 150px; max-width: 230px; }
.ix-for-me__lbl b { font: 700 var(--fs-title)/1.2 var(--font-display); }
.ix-for-me__lbl small { color: var(--text-2); font-size: var(--fs-small); line-height: 1.3; }
.ix-rtgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 24px; align-items: start; }
.ix-rtgrid .ix-tl { --tl-lab: 196px; }
.ix-rtgrid .ix-tl__in { min-width: 620px; }
.ix-rtgrid .ix-tl__plan { margin-bottom: 12px; }
.ix-rtpanel { grid-template-columns: minmax(0, 1fr); position: sticky; top: calc(var(--ix-pin-h) + var(--ix-compact-h) + 14px); display: grid; gap: 12px; max-height: calc(100vh - var(--ix-pin-h) - var(--ix-compact-h) - 28px); overflow: auto; padding-bottom: 2px; }
.ix-rt.idem-route { max-width: none; padding: 18px 20px; }
.ix-rtact { padding: 16px; gap: 10px; }
.ix-cands { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ix-cand { display: grid; grid-template-columns: 74px 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); }
.ix-cand.is-in { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.ix-cand__time { display: grid; gap: 1px; justify-items: start; font-variant-numeric: tabular-nums; }
.ix-cand__time b { font: 800 18px/1.1 var(--font-display); letter-spacing: -0.01em; }
.ix-cand__time small { color: var(--text-2); font-size: 11px; line-height: 1.25; }
.ix-cand__th { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-md); background: var(--c-bg); color: var(--c-text); }
.ix-cand__th .idem-icon { width: 22px; height: 22px; }
.ix-cand__t { display: grid; gap: 2px; min-width: 0; color: inherit; text-decoration: none; }
.ix-cand__t b { font-weight: 700; font-size: 14px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ix-cand__t:hover b { text-decoration: underline; text-underline-offset: 3px; }
.ix-cand__t small { color: var(--text-2); font-size: var(--fs-small); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-cand__fit { font: 600 11.5px/1.3 var(--font-text); font-style: normal; color: var(--accent-dark); }
.ix-cand__fit.is-ok { color: var(--ok-text); }
.ix-cand__fit.is-tight { color: var(--warn-text); }
.ix-cand__fit.is-bad { color: var(--danger-text); }
.ix-addbtn { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px 0 10px; border: 1px solid var(--border-control); border-radius: var(--r-pill); background: var(--surface); color: var(--text); font: 600 13px/1 var(--font-text); white-space: nowrap; cursor: pointer; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.ix-addbtn .idem-icon { width: 16px; height: 16px; }
.ix-addbtn:hover { border-color: var(--text-2); }
.ix-addbtn[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.ix-addbtn:focus-visible, .ix-rm:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-rtday { padding-top: 6px; }
.ix-rtday + .ix-rtday { margin-top: 10px; border-top: 2px solid var(--border-strong); padding-top: 12px; }
.ix-rtday__h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ix-rtday__h b { font: 700 var(--fs-title)/1.2 var(--font-display); }
.ix-rtday__h span { color: var(--text-2); font-size: var(--fs-small); }
/* полоса дня: события одним взглядом, пересечения пунктиром */
.ix-ds { margin-bottom: 8px; }
.ix-ds__bar { position: relative; height: 30px; border-radius: 8px; background: var(--surface-2); overflow: hidden; }
.ix-ds__seg { position: absolute; top: 3px; bottom: 3px; display: grid; place-items: center; border-radius: 6px; background: var(--c-bg); color: var(--c-text); box-shadow: inset 0 0 0 1px var(--c); font: 800 12px/1 var(--font-text); transition: left var(--dur-fast) var(--ease-out), width var(--dur-fast) var(--ease-out); }
.ix-ds__seg.is-est { border-right: 3px dashed var(--c); }
.ix-ds__seg.is-clash { outline: 2px dashed var(--danger); outline-offset: -2px; z-index: 1; }
.ix-ds__ticks { position: relative; height: 16px; margin-top: 3px; }
.ix-ds__ticks > span { position: absolute; transform: translateX(-50%); color: var(--text-2); font: 500 11px/16px var(--font-text); font-variant-numeric: tabular-nums; }
.ix-ds__ticks > span:first-child { transform: none; }
.ix-ds__ticks > span:last-child { transform: translateX(-100%); }
.ix-rt__walk { padding-left: 28px; font-weight: 500; }
.ix-rt__walk.is-tight { color: var(--warn-text); }
.ix-rt__walk.is-bad { color: var(--danger-text); font-weight: 700; }
.ix-rt .idem-it { padding: 8px 0; gap: 10px; }
.ix-rt .idem-it .th { width: 40px; height: 40px; }
.ix-rt .idem-it .t div:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-rm { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: var(--text-2); cursor: pointer; }
.ix-rm:hover { background: var(--surface-2); color: var(--text); }
.ix-rm .idem-icon { width: 16px; height: 16px; }
@media (max-width: 1100px) { .ix-rtgrid { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 16px; } .ix-cand { grid-template-columns: 62px minmax(0, 1fr) auto; } .ix-cand__th { display: none; } }
@media (max-width: 900px) {
  .ix-rtgrid { grid-template-columns: minmax(0, 1fr); }
  .ix-rtpanel { position: static; max-height: none; overflow: visible; order: -1; }
  .ix-for-me { flex-wrap: wrap; }
  .ix-for-me__lbl { max-width: none; }
}
@media (max-width: 640px) {
  .ix-cand { grid-template-columns: 54px minmax(0, 1fr); gap: 10px; }
  .ix-cand .ix-addbtn { grid-column: 1 / -1; justify-content: center; min-height: var(--tap-min, 44px); }
}
@media (prefers-reduced-motion: reduce) { .ix-ds__seg, .ix-cand, .ix-addbtn { transition: none; } }
@media (max-width: 640px) {
  .ix-filters__row > .idem-strip, .ix-for-me .idem-strip { flex: 1 1 100%; }
  .ix-filters__row > .ix-tabs { width: 100%; }
  .ix-filters__row > .ix-tabs button { flex: 1; justify-content: center; padding: 0 8px; }
  .ix-for-me { padding: 10px; }
}

/* ===== Призыв «Планируйте [день|вечер|выходные|отпуск] в Казани» (компонент Pick) ===== */
.ix-pk { --L: 1.2em; --ease: cubic-bezier(.34, 1.45, .5, 1); --i: 0; --cw: var(--w0, 4.2em); display: block; min-width: 0; max-width: 100%; }
.ix-pk__h { display: grid; justify-items: start; margin: 0; font: 800 clamp(30px, 4vw, 50px)/1.2 var(--font-display); letter-spacing: var(--ls-display); color: var(--text); }
.ix-pk__l1 { display: flex; align-items: center; gap: .28em; white-space: nowrap; }
.ix-pk__win { position: relative; display: block; height: var(--L); overflow: hidden; width: calc(var(--w0, 4.2em) + .1em); animation: pkW 12s var(--ease) infinite; }
.ix-pk__col { display: block; animation: pkY 12s var(--ease) infinite; }
.ix-pk__col span { display: block; height: var(--L); line-height: var(--L); color: var(--accent-dark); }
.ix-pk__seg { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); width: min(100%, 460px); margin-top: 16px; padding: 4px; border-radius: 999px; background: var(--surface-2); font: 600 14px/1 var(--font-text); }
.ix-pk__pill { position: absolute; left: 4px; top: 4px; bottom: 4px; width: calc((100% - 8px) / 4); border-radius: 999px; background: var(--ink); animation: pkP 12s var(--ease) infinite; }
.ix-pk__b { position: relative; z-index: 1; min-height: 40px; padding: 0 8px; border: 0; border-radius: 999px; background: transparent; color: var(--text-2); font: inherit; cursor: pointer; animation: pkC 12s linear infinite; }
.ix-pk__b:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-pk .pk-s0 { animation-delay: 0s; } .ix-pk .pk-s1 { animation-delay: -9s; } .ix-pk .pk-s2 { animation-delay: -6s; } .ix-pk .pk-s3 { animation-delay: -3s; }
.ix-pk__mz { position: absolute; left: -9999px; top: 0; visibility: hidden; font: 800 100px/1 var(--font-display); letter-spacing: var(--ls-display); white-space: nowrap; }
.ix-pk__mz span { display: inline-block; }
@keyframes pkC { 0%, 20% { color: var(--on-ink); } 25%, 95% { color: var(--text-2); } 100% { color: var(--on-ink); } }
@keyframes pkY { 0%, 20% { transform: translateY(0); } 25%, 45% { transform: translateY(calc(var(--L) * -1)); } 50%, 70% { transform: translateY(calc(var(--L) * -2)); } 75%, 95% { transform: translateY(calc(var(--L) * -3)); } 100% { transform: translateY(calc(var(--L) * -4)); } }
@keyframes pkW { 0%, 20% { width: calc(var(--w0, 4.2em) + .1em); } 25%, 45% { width: calc(var(--w1, 5.4em) + .1em); } 50%, 70% { width: calc(var(--w2, 8em) + .1em); } 75%, 95% { width: calc(var(--w3, 6em) + .1em); } 100% { width: calc(var(--w0, 4.2em) + .1em); } }
@keyframes pkP { 0%, 20% { transform: translateX(0); opacity: 1; } 25%, 45% { transform: translateX(100%); } 50%, 70% { transform: translateX(200%); } 75%, 95% { transform: translateX(300%); opacity: 1; } 98% { transform: translateX(400%); opacity: 0; } 98.01% { transform: translateX(-100%); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }
.ix-pk.is-manual .ix-pk__win { animation: none; width: calc(var(--cw) + .1em); transition: width .5s var(--ease); }
.ix-pk.is-manual .ix-pk__col { animation: none; transform: translateY(calc(var(--L) * var(--i) * -1)); transition: transform .5s var(--ease); }
.ix-pk.is-manual .ix-pk__pill { animation: none; transform: translateX(calc(var(--i) * 100%)); transition: transform .5s var(--ease); }
.ix-pk.is-manual .ix-pk__b { animation: none; color: var(--text-2); }
.ix-pk.is-manual .ix-pk__b[aria-pressed="true"] { color: var(--on-ink); }
.ix-hero__main dc-import[name="Pick"] { display: block; }
@media (prefers-reduced-motion: reduce) {
  .ix-pk__win, .ix-pk__col, .ix-pk__pill, .ix-pk__b { animation: none !important; }
  .ix-pk__b[aria-pressed="false"]:first-of-type { color: var(--on-ink); }
}

/* ===== «Маршрут»: четыре вкладки ===== */
.ix-rttabs { display: flex; gap: 4px; margin: 0 0 18px; padding: 4px; border: 1px solid var(--border); border-radius: var(--r-pill); background: var(--surface); overflow-x: auto; scrollbar-width: none; }
.ix-rttabs::-webkit-scrollbar { display: none; }
.ix-rttabs button { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--r-pill); background: transparent; color: var(--text-2); font: 700 14px/1 var(--font-text); white-space: nowrap; cursor: pointer; }
.ix-rttabs button:hover { background: var(--surface-2); color: var(--text); }
.ix-rttabs button[aria-selected="true"] { background: var(--ink); color: var(--on-ink); }
.ix-rttabs button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-rttabs .idem-icon { width: 18px; height: 18px; }
.ix-rttabs em { font-style: normal; min-width: 20px; padding: 2px 6px; border-radius: var(--r-pill); background: var(--surface-3); color: var(--text-2); font: 700 11.5px/1.3 var(--font-text); text-align: center; }
.ix-rttabs em:empty { display: none; }
.ix-rttabs button[aria-selected="true"] em { background: rgba(255, 255, 255, .22); color: var(--on-ink); }
.ix-rtmain .ix-tl__plan { margin-bottom: 12px; }
.ix-rtstat { gap: 0; padding: 6px 16px; }
.ix-rtstat__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border); font: 500 var(--fs-body)/1.3 var(--font-text); color: var(--text-2); }
.ix-rtstat__row:first-child { border-top: 0; }
.ix-rtstat__row b { color: var(--text); font-weight: 700; text-align: right; }
.ix-rtstat__row b.is-bad { color: var(--danger); }
.ix-rtfr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 24px; align-items: start; }
.ix-rtfr > * { min-width: 0; }
.ix-rtfr__side { position: sticky; top: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.ix-rtfr__side .idem-it .t > div { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-answer--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ix-answer button small { display: block; font: 500 11.5px/1.2 var(--font-text); opacity: .8; }
.ix-invite { display: flex; gap: 8px; align-items: stretch; }
.ix-invite .ix-input { flex: 1; min-width: 0; }
.ix-rtfr__vis { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border-strong); color: var(--text-2); font: 600 var(--fs-small)/1.3 var(--font-text); }
.ix-rtfr__vis .idem-icon { width: 18px; height: 18px; flex: none; color: var(--accent-dark); }
@media (max-width: 900px) {
  .ix-rtfr { grid-template-columns: minmax(0, 1fr); }
  .ix-rtfr__side { position: static; }
}
@media (max-width: 640px) {
  .ix-rttabs { border-radius: var(--r-xl); }
  .ix-rttabs button { flex: 1 0 auto; padding: 0 7px; gap: 4px; font-size: 13px; min-height: var(--tap-min, 44px); }
  .ix-rttabs .idem-icon { display: none; }
  .ix-invite { flex-direction: column; }
}

/* ===== Календарь: подробный фильтр + поиск событий для плана ===== */
.ix-cal-layout--f { grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 28px; }
.ix-cf-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; display: grid; gap: 16px; align-content: start; padding: 2px 6px 2px 2px; margin: -2px -6px -2px -2px; scrollbar-width: thin; }
.ix-cf-dates { display: grid; gap: 14px; min-width: 0; }
.ix-cf-cal { max-width: none; }
.ix-cf-caltoggle { display: none; }
.ix-cf-panel { display: grid; gap: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); min-width: 0; }
.ix-cf-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px 10px; }
.ix-cf-head b { font: 700 var(--fs-title)/1.2 var(--font-display); margin-right: auto; }
.ix-cf-n { color: var(--text-2); font-size: var(--fs-small); }
.ix-cf-close, .ix-cf-foot, .ix-cf-open, .ix-cf-back { display: none; }
.ix-cf-body { padding: 0 16px 8px; min-width: 0; }
.ix-cf-sec { border-top: 1px solid var(--border); }
.ix-cf-sech { display: flex; align-items: center; gap: 8px; width: 100%; min-height: var(--tap-min, 44px); padding: 6px 0; border: 0; background: none; color: var(--text); font: 700 14px/1.2 var(--font-text); text-align: left; cursor: pointer; }
.ix-cf-sech span { margin-right: auto; }
.ix-cf-sech em { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--accent); color: var(--on-accent); font: 700 12px/20px var(--font-text); font-style: normal; text-align: center; }
.ix-cf-chev { width: 18px; height: 18px; color: var(--text-2); transition: transform var(--dur-fast, .15s); }
.ix-cf-sech[aria-expanded="true"] .ix-cf-chev { transform: rotate(180deg); }
.ix-cf-sech:focus-visible, .ix-cf-opt:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r-md); }
.ix-cf-secbody { padding: 0 0 12px; }
.ix-cf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ix-cf-chips .idem-chip { min-height: 34px; padding: 0 12px; }
.ix-cf-chips .idem-chip[aria-disabled="true"], .ix-cf-opt[aria-disabled="true"] { opacity: .45; cursor: default; }
.ix-cf-list { display: grid; gap: 2px; }
.ix-cf-opt { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; min-height: var(--tap-min, 44px); padding: 4px 6px 4px 2px; border: 0; border-radius: var(--r-md); background: none; color: var(--text); font: 500 14px/1.25 var(--font-text); text-align: left; cursor: pointer; }
.ix-cf-opt:hover:not([aria-disabled="true"]) { background: var(--surface-2); }
.ix-cf-box { display: grid; place-items: center; width: 20px; height: 20px; border: 1.5px solid var(--border-control); border-radius: 6px; background: var(--surface); color: transparent; }
.ix-cf-box .idem-icon { width: 14px; height: 14px; }
.ix-cf-opt[aria-pressed="true"] .ix-cf-box { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.ix-cf-opt__t { display: grid; gap: 1px; min-width: 0; overflow-wrap: anywhere; }
.ix-cf-opt__t small { color: var(--text-2); font-size: 12px; line-height: 1.3; }
.ix-cf-opt__t small:empty { display: none; }
.ix-cf-opt__n { color: var(--text-2); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.ix-cf-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ix-cf-search { flex: 1 1 260px; min-width: 0; }
.ix-cf-search input { flex: 1; min-width: 0; border: 0; background: none; color: var(--text); font: 500 var(--fs-body)/1.3 var(--font-text); outline: none; padding: 0 10px 0 0; }
.ix-cf-sort .ix-input { min-height: 44px; padding: 0 12px; width: auto; border-radius: var(--r-pill); font: 600 13px/1 var(--font-text); }
.ix-cf-quick { margin-top: 10px; }
.ix-cf-badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--accent); color: var(--on-accent); font: 700 12px/20px var(--font-text); font-style: normal; text-align: center; }
.ix-cand.is-nt .ix-cand__time b { color: var(--text-2); }
.ix-cand .ix-addbtn:disabled { opacity: .5; cursor: not-allowed; }
.ix-calbar { position: sticky; bottom: 12px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding: 10px 12px 10px 16px; border: 1px solid var(--border-strong, var(--border)); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-md); }
.ix-calbar.is-on { border-color: var(--accent); }
.ix-calbar__t { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ix-calbar__t > .idem-icon { flex: none; width: 22px; height: 22px; color: var(--accent-dark); }
.ix-calbar__t > span { display: grid; gap: 1px; min-width: 0; }
.ix-calbar__t b { font: 700 14px/1.2 var(--font-text); }
.ix-calbar__t small { color: var(--text-2); font-size: 12.5px; line-height: 1.3; }
@media (max-width: 900px) {
  .ix-cal-layout--f { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .ix-cf-side { position: static; max-height: none; overflow: visible; margin: 0; padding: 0; }
  .ix-cf-caltoggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--tap-min, 44px); border: 1px solid var(--border-control); border-radius: var(--r-pill); background: var(--surface); color: var(--text); font: 600 14px/1 var(--font-text); cursor: pointer; }
  .ix-cf-caltoggle .idem-icon { width: 18px; height: 18px; }
  .ix-cf-caltoggle[aria-expanded="true"] .idem-icon:last-child { transform: rotate(180deg); }
  .ix-cf-dates:not(.is-open) .ix-cf-cal, .ix-cf-dates:not(.is-open) .ix-cf-legend { display: none; }
  .ix-cf-open { display: inline-flex; flex: none; min-height: 44px; }
  .ix-cf-open .ix-cf-badge { margin-left: 2px; }
  .ix-cf-search { flex: 1 1 100%; order: -1; }
  .ix-cf-sort { flex: 1; }
  .ix-cf-sort .ix-input { width: 100%; }
  .ix-cf-back { display: block; position: fixed; inset: 0; z-index: 70; background: rgba(12, 10, 8, .5); }
  .ix-cf-panel { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; max-height: 88vh; grid-template-rows: auto minmax(0, 1fr) auto; border: 0; border-radius: 20px 20px 0 0; box-shadow: var(--shadow-lg); }
  .ix-cf-panel.is-open { display: grid; }
  .ix-cf-panel::before { content: ""; justify-self: center; width: 40px; height: 4px; margin-top: 8px; border-radius: 2px; background: var(--border-strong, var(--border)); grid-row: 1; position: absolute; left: 50%; transform: translateX(-50%); }
  .ix-cf-head { padding-top: 22px; }
  .ix-cf-close { display: inline-grid; }
  .ix-cf-body { overflow-y: auto; overscroll-behavior: contain; }
  .ix-cf-foot { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--border); background: var(--surface); }
  .ix-cf-foot .idem-btn { min-height: var(--tap-min, 44px); justify-content: center; }
  .ix-cf-chips .idem-chip { min-height: 40px; }
  .ix-calbar { bottom: 8px; }
}
@media (max-width: 640px) {
  .ix-cand .ix-addbtn { grid-column: 1 / -1; }
  .ix-calbar { padding: 10px 10px 10px 12px; }
  .ix-calbar .idem-btn { flex: none; }
}
@media (prefers-reduced-motion: reduce) { .ix-cf-chev { transition: none; } }

/* ===== Локация: презентация (карусель, истории, таймлайн, пример для кафе) ===== */
.ix-ph { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, var(--c-bg), color-mix(in srgb, var(--c-bg) 55%, var(--surface-2))); color: var(--c-text); }
.ix-ph .idem-icon { width: 56px; height: 56px; stroke-width: 1.4; opacity: .8; }
.ix-media { position: absolute; inset: 0; overflow: hidden; }
.ix-media img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ix-media .bg { object-fit: cover; filter: blur(22px) saturate(1.1); transform: scale(1.15); opacity: .75; }
.ix-media .fg { object-fit: contain; }
.ix-vp-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 10px; color: var(--text-2); font-size: var(--fs-small); }
.ix-vp-kicker b { padding: 3px 10px; border-radius: var(--r-pill); background: var(--accent-tint); color: var(--accent-dark); font: 700 12px/1.4 var(--font-text); }
.ix-vp-note { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px; border-radius: var(--r-lg); background: var(--surface-2); color: var(--text-2); font-size: var(--fs-small); line-height: 1.45; }
.ix-vp-note .idem-icon { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.ix-vp-titlebar { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; margin: 18px 0 6px; }
.ix-vp-titlebar h1 { font: 800 34px/1.1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-vp-titlebar .ix-stats { margin-top: 10px; }
.ix-vp-rate { display: inline-flex; align-items: center; gap: 6px; }
/* карусель */
.ix-car { position: relative; border-radius: var(--r-xl); overflow: hidden; background: var(--surface-2); }
.ix-car__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; aspect-ratio: 16 / 7.4; min-height: 300px; outline-offset: -3px; }
.ix-car__track::-webkit-scrollbar { display: none; }
.ix-car__slide { position: relative; flex: 0 0 100%; margin: 0; scroll-snap-align: start; background: var(--c-bg); }
.ix-car__cap { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; justify-items: start; padding: 64px clamp(16px, 3vw, 32px) 22px; background: linear-gradient(to top, rgba(10, 8, 6, .82), rgba(10, 8, 6, .45) 55%, transparent); color: #fff; }
.ix-car__cap b { font: 800 clamp(20px, 2.6vw, 30px)/1.15 var(--font-display); letter-spacing: var(--ls-heading); max-width: 28ch; }
.ix-car__cap small { font-size: var(--fs-small); opacity: .9; }
.ix-car__cap .idem-cat { backdrop-filter: blur(6px); }
.ix-car__cap a.idem-btn { margin-top: 4px; }
.ix-car__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #1b1814; box-shadow: var(--shadow-md); cursor: pointer; }
.ix-car__nav:disabled { opacity: .35; cursor: default; }
.ix-car__nav:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-car__nav--prev { left: 14px; } .ix-car__nav--next { right: 14px; }
.ix-car__count { position: absolute; top: 14px; right: 14px; z-index: 2; padding: 4px 12px; border-radius: var(--r-pill); background: rgba(10, 8, 6, .62); color: #fff; font: 700 12.5px/1.5 var(--font-text); font-variant-numeric: tabular-nums; }
.ix-car__src { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 3px 10px; border-radius: var(--r-pill); background: rgba(10, 8, 6, .5); color: rgba(255, 255, 255, .92); font: 500 11.5px/1.5 var(--font-text); }
.ix-car__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding: 2px; scrollbar-width: thin; }
.ix-car__th { position: relative; flex: none; width: 96px; height: 64px; padding: 0; border: 0; border-radius: var(--r-md); overflow: hidden; background: var(--c-bg); cursor: pointer; opacity: .62; box-shadow: 0 0 0 1px var(--border); transition: opacity var(--dur-fast, .15s); }
.ix-car__th[aria-current="true"] { opacity: 1; box-shadow: 0 0 0 3px var(--accent); }
.ix-car__th:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-car__th .ix-ph .idem-icon { width: 24px; height: 24px; }
.ix-car__dots { display: none; position: absolute; left: 0; right: 0; bottom: 10px; z-index: 2; justify-content: center; gap: 6px; }
.ix-car__dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
.ix-car__dots i.is-cur { background: #fff; width: 18px; border-radius: 4px; }
/* горизонтальная лента карточек */
.ix-rail { position: relative; }
.ix-rail__h { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ix-rail__h h2 { font: 700 var(--fs-h3, 22px)/1.2 var(--font-display); }
.ix-rail__btns { display: flex; gap: 8px; }
.ix-rail__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 280px); gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; padding: 2px 2px 10px; scrollbar-width: thin; }
.ix-rail__track > * { scroll-snap-align: start; min-width: 0; }
/* истории */
.ix-st { position: relative; display: grid; gap: 16px; padding: 26px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.ix-st__id { display: flex; gap: 18px; align-items: center; }
.ix-st__id h1 { font: 800 30px/1.1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-rings { display: flex; gap: 18px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: thin; }
.ix-ring { flex: none; display: grid; gap: 8px; justify-items: center; width: 84px; padding: 0; border: 0; background: none; color: var(--text); font: 600 12.5px/1.25 var(--font-text); text-align: center; cursor: pointer; }
.ix-ring__a { position: relative; display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; padding: 3px; background: conic-gradient(from 210deg, var(--accent), #F5A524, var(--accent)); }
.ix-ring[aria-pressed="true"] .ix-ring__a { background: var(--border-control); }
.ix-ring__a::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--surface); }
.ix-ring__i { position: relative; z-index: 1; display: grid; place-items: center; width: 62px; height: 62px; overflow: hidden; border-radius: 50%; background: var(--c-bg); color: var(--c-text); }
.ix-ring__i .idem-icon { width: 26px; height: 26px; }
.ix-ring__n { position: absolute; right: -2px; bottom: -2px; z-index: 2; min-width: 22px; height: 22px; padding: 0 5px; border: 2px solid var(--surface); border-radius: 11px; background: var(--accent); color: var(--on-accent); font: 700 11px/18px var(--font-text); text-align: center; }
.ix-ring:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: var(--r-md); }
.ix-sv { position: absolute; inset: 0; z-index: 20; display: grid; place-items: center; padding: 18px; border-radius: inherit; background: rgba(12, 10, 8, .78); backdrop-filter: blur(6px); }
.ix-sv__card { position: relative; width: min(100%, 380px); aspect-ratio: 9 / 16; max-height: calc(100% - 4px); overflow: hidden; border-radius: 22px; background: #111; color: #fff; box-shadow: var(--shadow-lg); user-select: none; touch-action: manipulation; }
.ix-sv__bars { position: absolute; top: 10px; left: 12px; right: 12px; z-index: 4; display: flex; gap: 4px; }
.ix-sv__bars i { position: relative; flex: 1; height: 3px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, .35); }
.ix-sv__bars i::after { content: ""; position: absolute; inset: 0; transform-origin: left; transform: scaleX(0); background: #fff; }
.ix-sv__bars i.is-done::after { transform: scaleX(1); }
.ix-sv__bars i.is-cur::after { animation: ix-sv-prog 5s linear forwards; }
.ix-sv__card.is-paused .ix-sv__bars i.is-cur::after { animation-play-state: paused; }
@keyframes ix-sv-prog { to { transform: scaleX(1); } }
.ix-sv__top { position: absolute; top: 22px; left: 14px; right: 10px; z-index: 4; display: flex; align-items: center; gap: 10px; font: 700 13px/1.2 var(--font-text); text-shadow: 0 1px 6px rgba(0, 0, 0, .5); }
.ix-sv__top > span { margin-right: auto; display: grid; gap: 1px; min-width: 0; }
.ix-sv__top small { font-weight: 500; opacity: .85; display: block; }
.ix-sv__x { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .35); color: #fff; cursor: pointer; }
.ix-sv__x:focus-visible, .ix-sv__tap:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.ix-sv__slide { position: absolute; inset: 0; background: var(--c-bg); color: var(--c-text); }
.ix-sv__slide.is-photo { color: #fff; }
.ix-sv__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .5), transparent 22%, transparent 42%, rgba(0, 0, 0, .86)); }
.ix-sv__big { position: absolute; left: 22px; right: 22px; top: 26%; font: 800 30px/1.1 var(--font-display); letter-spacing: var(--ls-heading); color: var(--c-text); }
.ix-sv__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: grid; gap: 8px; padding: 20px 20px 22px; }
.ix-sv__cap .idem-cat { justify-self: start; }
.ix-sv__cap b { font: 800 22px/1.2 var(--font-display); letter-spacing: var(--ls-heading); overflow-wrap: anywhere; }
.ix-sv__cap small { font-size: 14px; opacity: .92; line-height: 1.35; }
.ix-sv__acts { display: flex; gap: 8px; margin-top: 4px; }
.ix-sv__acts > * { flex: 1; justify-content: center; }
.ix-sv__tap { position: absolute; top: 76px; bottom: 150px; z-index: 3; width: 36%; border: 0; background: none; cursor: pointer; }
.ix-sv__tap--p { left: 0; } .ix-sv__tap--n { right: 0; }
.ix-sv__hint { margin: 0; text-align: center; color: rgba(255, 255, 255, .7); font-size: 12px; }
/* таймлайн дня и неделя */
.ix-tlp { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ix-tlp__it { position: relative; display: grid; grid-template-columns: 72px 22px minmax(0, 1fr); gap: 0 14px; align-items: start; }
.ix-tlp__t { padding-top: 14px; font: 800 20px/1.1 var(--font-display); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; text-align: right; }
.ix-tlp__t small { display: block; margin-top: 3px; color: var(--text-2); font: 500 11.5px/1.25 var(--font-text); letter-spacing: 0; }
.ix-tlp__dot { position: relative; align-self: stretch; display: grid; justify-items: center; }
.ix-tlp__dot::before { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: var(--border-strong, var(--border)); }
.ix-tlp__it:first-child .ix-tlp__dot::before { top: 22px; }
.ix-tlp__it:last-child .ix-tlp__dot::before { bottom: calc(100% - 22px); }
.ix-tlp__dot i { position: relative; z-index: 1; width: 14px; height: 14px; margin-top: 16px; border: 3px solid var(--surface); border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px var(--c); }
.ix-tlp__card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; align-items: center; margin: 6px 0 10px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.ix-tlp__card.is-in { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.ix-tlp__card a { color: inherit; text-decoration: none; display: grid; gap: 3px; min-width: 0; }
.ix-tlp__card a:hover b { text-decoration: underline; text-underline-offset: 3px; }
.ix-tlp__card b { font-weight: 700; font-size: 15px; line-height: 1.3; }
.ix-tlp__card small { color: var(--text-2); font-size: var(--fs-small); }
.ix-tlp__bar { grid-column: 1 / -1; position: relative; height: 6px; border-radius: 3px; background: var(--surface-2); overflow: hidden; }
.ix-tlp__bar i { position: absolute; top: 0; bottom: 0; border-radius: 3px; background: var(--c); }
.ix-tlp__empty { padding: 14px; color: var(--text-2); font-size: var(--fs-small); }
.ix-week { display: grid; grid-template-columns: 72px repeat(7, minmax(0, 1fr)); gap: 4px; align-items: stretch; }
.ix-week__h, .ix-week__r { color: var(--text-2); font: 600 12px/1.2 var(--font-text); display: grid; place-items: center; min-height: 28px; text-align: center; }
.ix-week__r { justify-items: end; padding-right: 6px; }
.ix-week__c { display: grid; place-items: center; min-height: 40px; border: 0; border-radius: 8px; background: var(--surface-2); color: var(--text-2); font: 700 13px/1 var(--font-text); cursor: pointer; }
.ix-week__c.is-1 { background: color-mix(in srgb, var(--accent) 16%, var(--surface)); color: var(--accent-dark); }
.ix-week__c.is-2 { background: color-mix(in srgb, var(--accent) 34%, var(--surface)); color: var(--accent-dark); }
.ix-week__c.is-3 { background: var(--accent); color: var(--on-accent); }
.ix-week__c[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--focus); }
.ix-week__c:focus-visible, .ix-daytab:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-daytabs { display: flex; gap: 6px; overflow-x: auto; padding: 2px; scrollbar-width: thin; }
.ix-daytab { flex: none; display: grid; gap: 2px; justify-items: center; min-width: 62px; padding: 8px 10px; border: 1px solid var(--border-control); border-radius: var(--r-lg); background: var(--surface); color: var(--text); font: 600 12px/1.2 var(--font-text); cursor: pointer; }
.ix-daytab b { font: 800 18px/1.1 var(--font-display); }
.ix-daytab small { color: var(--text-2); font-size: 11.5px; }
.ix-daytab[aria-pressed="true"] { background: var(--text); border-color: var(--text); color: var(--bg); }
.ix-daytab[aria-pressed="true"] small { color: inherit; opacity: .8; }
.ix-vp-nophoto { position: relative; display: grid; gap: 14px; align-content: end; min-height: 280px; padding: 28px; overflow: hidden; border-radius: var(--r-xl); background: var(--c-bg); color: var(--c-text); }
.ix-vp-nophoto > .idem-icon { position: absolute; right: 28px; top: 24px; width: 120px; height: 120px; stroke-width: 1.1; opacity: .35; }
.ix-vp-nophoto h1 { position: relative; font: 800 34px/1.1 var(--font-display); letter-spacing: var(--ls-display); max-width: 20ch; }
.ix-vp-nophoto p { position: relative; margin: 0; max-width: 56ch; font-size: var(--fs-body); }
/* пример кофейни: мозаика и «окно между событиями» */
.ix-mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, 190px); gap: 8px; border-radius: var(--r-xl); overflow: hidden; }
.ix-mosaic > div { position: relative; overflow: hidden; background: var(--c-bg); }
.ix-mosaic > div:first-child { grid-row: 1 / span 2; }
.ix-mosaic .ix-ph .idem-icon { width: 40px; height: 40px; }
.ix-mosaic > div > span { position: absolute; left: 10px; bottom: 10px; padding: 3px 10px; border-radius: var(--r-pill); background: rgba(10, 8, 6, .55); color: #fff; font: 600 12px/1.5 var(--font-text); }
.ix-win { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--accent); border-radius: var(--r-xl); background: color-mix(in srgb, var(--accent) 5%, var(--surface)); }
.ix-win__h { display: grid; gap: 4px; }
.ix-win__h b { font: 700 var(--fs-title)/1.25 var(--font-display); }
.ix-win__h span { color: var(--text-2); font-size: var(--fs-small); line-height: 1.4; }
.ix-win .ix-ds__seg.is-new { background: color-mix(in srgb, var(--ok) 22%, var(--surface)); color: var(--ok-text); box-shadow: inset 0 0 0 1.5px var(--ok); }
.ix-win .ix-ds__seg.is-free { background: transparent; box-shadow: none; color: var(--text-2); font-weight: 600; }
.ix-tagrow { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ix-tagrow li { padding: 4px 12px; border-radius: var(--r-pill); background: var(--surface-2); color: var(--text-2); font: 600 12.5px/1.5 var(--font-text); }
.ix-slots { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 900px) {
  .idem-two { grid-template-columns: minmax(0, 1fr); }
  .idem-aside { position: static; }
  .ix-vp-titlebar h1, .ix-vp-nophoto h1 { font-size: 28px; }
  .ix-car__track { aspect-ratio: 4 / 3.4; min-height: 0; }
  .ix-car__nav { display: none; }
  .ix-car__dots { display: flex; }
  .ix-car__cap { padding-top: 48px; padding-bottom: 28px; }
  .ix-st { padding: 16px; }
  .ix-st__id h1 { font-size: 24px; }
  .ix-week { grid-template-columns: 52px repeat(7, minmax(0, 1fr)); }
  .ix-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 130px 130px; }
  .ix-mosaic > div:first-child { grid-row: auto; grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .ix-ds__ticks > span:nth-child(even):not(:last-child) { display: none; }
  .ix-tlp__it { grid-template-columns: 54px 18px minmax(0, 1fr); gap: 0 8px; }
  .ix-tlp__t { font-size: 17px; }
  .ix-tlp__card { grid-template-columns: minmax(0, 1fr); }
  .ix-tlp__card .ix-addbtn { justify-content: center; min-height: var(--tap-min, 44px); }
  .ix-rail__track { grid-auto-columns: minmax(230px, 78%); }
  .ix-rail__btns { display: none; }
  .ix-sv { padding: 0; border-radius: 0; }
  .ix-sv__card { width: 100%; max-height: none; height: 100%; aspect-ratio: auto; border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) { .ix-sv__bars i.is-cur::after { animation-duration: .01s; } .ix-car__th { transition: none; } }
.ix-st.is-open { min-height: 760px; }

/* ===== Событие: страница просмотра (переход из локации) ===== */
.ix-evv-back { display: inline-flex; align-items: center; gap: 4px; min-height: var(--tap-min, 44px); padding: 0 14px 0 8px; border-radius: var(--r-pill); background: var(--surface); border: 1px solid var(--border); color: var(--text); font: 600 var(--fs-small)/1 var(--font-text); text-decoration: none; }
.ix-evv-back:hover { border-color: var(--accent); color: var(--accent-dark); }
.ix-evv-back .idem-icon { width: 20px; height: 20px; }
.ix-evv-hero { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r-xl); background: var(--c-bg); }
.ix-evv-hero__src { position: absolute; right: 12px; bottom: 12px; padding: 3px 10px; border-radius: var(--r-pill); background: rgba(10, 8, 6, .55); color: #fff; font: 500 11.5px/1.5 var(--font-text); }
.ix-evv-title { margin: 10px 0 8px; font: 800 36px/1.1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-evv-h { margin: 0 0 10px; font: 700 var(--fs-h3)/1.2 var(--font-display); }
.ix-evv-dates { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.ix-evv-dates .ix-daytab { flex: 0 0 auto; }
.ix-evv-same { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ix-evv-same li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; align-items: baseline; padding: 8px 10px; border-radius: var(--r-md); background: var(--surface-2); font-size: var(--fs-small); }
.ix-evv-same .t { font-weight: 800; font-variant-numeric: tabular-nums; color: var(--c-text); }
.ix-evv-same .n { min-width: 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ix-evv-bar { display: none; }
@media (max-width: 900px) {
  .ix-evv-title { font-size: 28px; }
  .ix-evv-hero { border-radius: var(--r-lg); }
  .ix-evv-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--surface); border-top: 1px solid var(--border); box-shadow: 0 -6px 18px rgba(20, 12, 4, .08); }
  .ix-evv-bar__p { flex: 1; min-width: 0; display: grid; }
  .ix-evv-bar__p > b { font: 800 16px/1.2 var(--font-display); }
  .ix-evv-bar__p > span { color: var(--text-2); font-size: 12.5px; }
  .idem-aside .idem-btn--lg.idem-btn--block { display: none; }
}

/* ===== Модальное окно события поверх страницы-источника ===== */
.ix-ov { position: fixed; inset: 0; z-index: 1000; display: flex; justify-content: center; align-items: center; padding: 24px; background: var(--overlay, rgba(20, 14, 8, .55)); }
.ix-ov .idem-modal__media .ix-ph .idem-icon { width: 64px; height: 64px; }
@media (min-height: 1100px) { .ix-ov { align-items: flex-start; padding-top: 72px; } }
@media (max-width: 640px) { .ix-ov { padding: 0; align-items: flex-end; } .ix-ov .idem-modal { width: 100% !important; max-height: 92% !important; border-radius: var(--r-xl) var(--r-xl) 0 0; } }

/* Лента: шапка закрепляется и ужимается при прокрутке (Main). Высота обёртки не меняется, поэтому лента не прыгает. */
.ix-page.has-hd, .ix-page:has(> .ix-hd) { --ix-hd-h: 48px; }
.ix-hd { position: sticky; top: 0; z-index: 9; pointer-events: none; }
.ix-hd .idem-header { pointer-events: auto; }
.ix-hd.is-compact .idem-header { height: var(--ix-hd-h); box-sizing: border-box; display: flex; align-items: center; background: color-mix(in srgb, var(--surface) 90%, transparent); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); box-shadow: 0 6px 18px rgba(0, 0, 0, .07); }
[data-theme="dark"] .ix-hd.is-compact .idem-header { box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
.ix-hd.is-compact .idem-header__in { width: 100%; padding-top: 4px !important; padding-bottom: 4px !important; gap: 12px; }
.ix-hd.is-compact .idem-logo { font-size: 17px; gap: 8px; }
.ix-hd.is-compact .idem-logo svg { width: 28px; height: 28px; }
.ix-hd.is-compact .idem-nav a { padding-top: 6px; padding-bottom: 6px; }
.ix-hd.is-compact .idem-search { min-height: 36px; }
.ix-hd.is-compact .idem-pill { min-height: 36px; }
.ix-hd.is-compact .idem-icon-btn { min-height: 36px; min-width: 36px; width: 36px; height: 36px; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .ix-hd.is-compact .idem-header { background: var(--surface); } }
/* узкая шапка: поиск остаётся иконкой и раскрывается по нажатию на всю строку */
@container (max-width: 760px) {
  .ix-hd .idem-header__search { display: flex; flex: none; width: 40px; min-height: 40px; padding: 0; justify-content: center; gap: 0; max-width: none; border-radius: 50%; cursor: text; }
  .ix-hd .idem-header__search input { flex: none; width: 0; padding: 0; }
  .ix-hd .idem-header__search:focus-within { position: absolute; left: 8px; right: 8px; top: 50%; transform: translateY(-50%); width: auto; z-index: 3; justify-content: flex-start; padding: 0 6px 0 14px; gap: 8px; border-radius: 999px; background: var(--surface); }
  .ix-hd .idem-header__search:focus-within input { flex: 1; width: auto; }
  .ix-hd.is-compact .idem-header__search { width: 36px; min-height: 36px; }
  .ix-hd.is-compact .idem-header__search:focus-within { width: auto; }
}
.ix-hd .idem-header { position: relative; }

/* Модальное окно события: постер закреплён и сжимается до 50% при прокрутке описания */
.ix-ov .ix-evm-slot { position: sticky; top: 0; z-index: 3; background: none; pointer-events: none; }
.ix-evm-poster { position: absolute; left: 0; right: 0; top: 0; height: 100%; overflow: hidden; background: var(--surface-2); pointer-events: auto; transition: box-shadow var(--dur-fast, .15s) var(--ease-out, ease-out); }
.ix-evm-poster.is-min { box-shadow: 0 8px 20px rgba(0, 0, 0, .22); }
.ix-evm-poster .idem-modal__close { z-index: 2; }

/* Лента: призыв «Как успеть и не пропустить интересное» с примером вечера */
.ix-plan { margin-top: auto; position: relative; display: grid; gap: 16px; padding: 22px 24px; border-radius: var(--r-xl); overflow: hidden; background: var(--brand-navy); color: var(--on-brand-navy); }
.ix-plan h3 { margin: 0; font: 800 28px/1.12 var(--font-display); letter-spacing: var(--ls-display); }
.ix-plan p { margin: 0; font-size: 14px; line-height: 1.45; color: color-mix(in srgb, var(--on-brand-navy) 78%, transparent); }
.ix-plan .idem-icon { width: 18px; height: 18px; }
.ix-plan__tl { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: relative; }
.ix-plan__tl::before { content: ""; position: absolute; left: 12px; right: 12px; top: 11px; height: 2px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .45) 0 6px, transparent 6px 12px); }
.ix-plan__st { position: relative; display: grid; gap: 4px; padding: 0 12px 0 0; min-width: 0; }
.ix-plan__dot { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--c, var(--accent)); color: #fff; font: 800 12px/1 var(--font-text); box-shadow: 0 0 0 4px var(--brand-navy); position: relative; z-index: 1; }
.ix-plan__st time { margin-top: 6px; font: 700 14px/1.2 var(--font-mono); }
.ix-plan__st b { font: 700 14px/1.3 var(--font-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ix-plan__w { display: inline-flex; align-items: center; gap: 4px; width: max-content; max-width: 100%; padding: 2px 8px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: 12px; font-weight: 600; }
.ix-plan__w .idem-icon { width: 13px; height: 13px; }
.ix-plan__ok { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #8EE6C4; }
.ix-plan__ok .idem-icon { width: 16px; height: 16px; }
.ix-plan__row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
@media (max-width: 720px) { .ix-plan { padding: 18px 16px; } .ix-plan h3 { font-size: 24px; } .ix-plan__tl { grid-template-columns: 1fr; gap: 12px; } .ix-plan__tl::before { display: none; } }
@media (max-width: 640px) { .ix-plan__row > .idem-btn { flex: 1 1 100%; justify-content: center; min-height: var(--tap-min); } }

/* Лента: «Что делать на выходных»: числа и постеры из выборки на выходные, перед регулярными событиями */
.ix-wk { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 24px; padding: 22px 24px; border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--border); }
.ix-wk__l { display: grid; gap: 18px; align-content: space-between; }
.ix-wk__cap { font: 700 12px/1 var(--font-text); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-dark); }
.ix-wk h2 { margin: 8px 0 0; font: 800 28px/1.12 var(--font-display); letter-spacing: var(--ls-display); }
.ix-wk__nums { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 8px 26px; }
.ix-wk__n { display: grid; gap: 2px; }
.ix-wk__n strong { font: 800 44px/1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-wk__n:first-child strong { color: var(--accent-dark); }
.ix-wk__n > span { font-size: 13px; color: var(--text-2); }
.ix-wk__btn { justify-self: start; white-space: nowrap; }
.ix-wk__posters { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.ix-wk__p { position: relative; display: block; height: 100%; min-height: 230px; border-radius: var(--r-lg); overflow: hidden; background: var(--surface-2); color: #fff; text-decoration: none; }
.ix-wk__p:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-wk__p .ix-ph .idem-icon { width: 28px; height: 28px; }
.ix-wk__p img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--dur-slow, .3s) var(--ease-out, ease-out); }
.ix-wk__p:hover img { transform: scale(1.04); }
.ix-wk__pt { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 3px; padding: 28px 10px 10px; background: linear-gradient(to top, rgba(0, 0, 0, .78), transparent); }
.ix-wk__pt i { font: 700 11px/1.2 var(--font-mono); font-style: normal; opacity: .9; }
.ix-wk__pt b { font: 700 13px/1.25 var(--font-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 900px) { .ix-wk { grid-template-columns: 1fr; } .ix-wk__posters { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 150px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px; } .ix-wk__p { min-height: 210px; scroll-snap-align: start; } }
@media (max-width: 640px) { .ix-wk { padding: 18px 16px; } .ix-wk h2 { font-size: 24px; } .ix-wk__btn { justify-self: stretch; justify-content: center; min-height: var(--tap-min); } }
@media (prefers-reduced-motion: reduce) { .ix-wk__p img { transition: none; } }

/* кнопка перехода в «Сейчас в городе» внизу колонки «Совсем скоро» */
.ix-now__btn { margin-top: auto; align-self: stretch; justify-content: center; white-space: normal; text-align: center; }
@media (max-width: 640px) { .ix-now__btn { min-height: var(--tap-min); } }

/* модальное окно события: в карточках «когда / цена / где» вместо подписей небольшая нейтральная иконка в строке со значением */
.ix-evm-facts .idem-fact { display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 8px; align-items: start; align-content: start; }
.ix-fact-ic { display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; color: var(--text-2); }
.ix-fact-ic .idem-icon { width: 18px; height: 18px; }
.ix-evm-facts .idem-fact b { display: block; font-size: 14px; line-height: 1.35; }
.ix-evm-facts .ix-fact-sub { grid-column: 2; }

/* «Мой вечер»: компактная однострочная стеклянная планка, инвертированная к теме (днём тёмная, ночью светлая).
   Скругления как у знака сайта .idem-mark: у планки радиус 18px, у иконок событий 25% стороны */
.ix-tray-wrap .idem-tray { display: inline-flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 12px; max-width: 100%; box-sizing: border-box; padding: 8px 8px 8px 10px; border: 0; border-radius: 18px; background: color-mix(in srgb, var(--ink) 66%, transparent); color: var(--on-ink); -webkit-backdrop-filter: blur(22px) saturate(1.8); backdrop-filter: blur(22px) saturate(1.8); box-shadow: 0 8px 28px rgba(20, 18, 15, .16); }
[data-theme="dark"] .ix-tray-wrap .idem-tray { box-shadow: 0 8px 28px rgba(0, 0, 0, .3); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .ix-tray-wrap .idem-tray { background: var(--ink); } }
.ix-tray-wrap .idem-tray__txt { min-width: 0; }
.ix-tray-wrap .idem-tray__txt b span { opacity: 1; font-size: inherit; }
.ix-tray-wrap .idem-tray .idem-btn { flex: none; border-radius: 12px; }
.ix-tray-wrap .idem-tray__thumbs i { position: relative; overflow: hidden; width: 40px; height: 40px; margin-left: -10px; border: 2px solid color-mix(in srgb, var(--ink) 85%, transparent); border-radius: 25%; font-size: 11px; }
.ix-tray-wrap .idem-tray__thumbs i:first-child { margin-left: 0; }
.ix-tray-wrap .idem-tray__thumbs i img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ix-tray-wrap .idem-tray__thumbs i .idem-icon { width: 18px; height: 18px; }
@media (max-width: 640px) {
  .ix-tray-wrap .idem-tray { gap: 10px; padding: 6px 6px 6px 8px; }
  .ix-tray-wrap .idem-tray__thumbs i:nth-child(n+3) { display: none; }
  .ix-tray-wrap .idem-tray .idem-btn { min-height: 40px; }
}

/* Шапка: бургер-меню на узкой ширине — все разделы сайта + тема */
.ix-burger { display: none; }
.ix-menu-scrim, .ix-menu { display: none; }
@container (max-width: 760px) {
  .ix-hdr .ix-burger { display: inline-grid; }
  .ix-hdr .ix-menu-scrim { display: block; position: fixed; inset: 0; z-index: 1; background: color-mix(in srgb, var(--ink) 28%, transparent); }
  .ix-hdr .ix-menu { display: flex; flex-direction: column; gap: 2px; position: absolute; z-index: 2; left: 8px; right: 8px; top: calc(100% + 6px); padding: 8px; box-sizing: border-box; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); }
  .ix-hdr .ix-menu__item { display: flex; align-items: center; gap: 12px; width: 100%; min-height: var(--tap-min, 44px); padding: 6px 12px 6px 6px; box-sizing: border-box; border: 0; border-radius: var(--r-lg); background: none; color: var(--text); font: 600 16px/1.2 var(--font-text); text-align: left; text-decoration: none; cursor: pointer; }
  .ix-hdr .ix-menu__item:hover { background: var(--surface-2); }
  .ix-hdr .ix-menu__item:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
  .ix-hdr .ix-menu__item[aria-current="page"] { background: var(--accent-tint); color: var(--accent-dark); }
  .ix-hdr .ix-menu__ic { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 25%; background: var(--surface-2); color: var(--text-2); font-size: 18px; }
  .ix-hdr .ix-menu__item[aria-current="page"] .ix-menu__ic { background: var(--accent); color: var(--on-accent); }
  .ix-hdr .ix-menu__sep { height: 1px; margin: 4px 6px; background: var(--border); }
}
@container (max-width: 760px) {
  .ix-hdr .idem-header__in { padding-left: 12px !important; padding-right: 12px !important; gap: 8px; }
  .ix-hdr .idem-logo { min-width: 0; }
}
@container (max-width: 460px) {
  .ix-hdr .idem-pill { width: 40px; padding: 0; justify-content: center; }
  .ix-hdr .ix-pill-t { display: none; }
  .ix-hd.is-compact .ix-hdr .idem-pill { width: 36px; }
}
@container (max-width: 380px) {
  .ix-hdr .idem-logo { font-size: 15px; gap: 6px; }
}

/* Ночная тема: «в избранном» — сердце дневного акцента на чёрной подложке (заметнее мятного круга) */
[data-theme="dark"] .idem-photo-btn--fav[aria-pressed="true"] { background: #0B0C0F; color: #D23A18; box-shadow: 0 0 0 1px rgba(255, 255, 255, .16); }
[data-theme="dark"] .idem-photo-btn--fav[aria-pressed="true"] .idem-icon { fill: currentColor; }

/* Шапка закреплена на всех страницах: боковые закреплённые блоки встают под неё */
.ix-page:has(> .ix-hd) .ix-rsvp { top: calc(var(--ix-hd-h) + 16px); }
.ix-page:has(> .ix-hd) .ix-rtfr__side { top: calc(var(--ix-hd-h) + 16px); }
.ix-page:has(> .ix-hd) .ix-cf-side { top: calc(var(--ix-hd-h) + 12px); max-height: calc(100vh - var(--ix-hd-h) - 24px); }
.ix-page:has(> .ix-hd) .ix-tl__head, .ix-page:has(> .ix-hd) .ix-tl__stick { top: var(--ix-hd-h); }
.ix-page:has(> .ix-hd) .ix-rtpanel { top: calc(var(--ix-hd-h) + var(--ix-pin-h) + var(--ix-compact-h) + 14px); }

/* ───────── Избранное: панель под сердцем в шапке (≥761 — поповер, ≤760 — шторка), строки, общие кнопки ───────── */
.ix-hdr.has-panel, .ix-hd.is-compact .idem-header.has-panel { -webkit-backdrop-filter: none; backdrop-filter: none; }
.ix-hd.is-compact .idem-header.has-panel { background: var(--surface); }
.ix-heart.is-active { background: var(--accent-tint); color: var(--accent-dark); }
.ix-heart.is-active .idem-icon { fill: currentColor; }
.ix-fv-scrim { position: fixed; inset: 0; z-index: 1; background: transparent; }
.ix-hdr.has-panel .idem-header__in { position: relative; z-index: 2; }
.ix-fv { position: absolute; z-index: 2; top: calc(100% + 6px); right: 16px; width: min(430px, calc(100% - 16px)); max-height: min(580px, 80vh); box-sizing: border-box; display: flex; flex-direction: column; padding: 14px 8px 8px; background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); font-family: var(--font-text); text-align: left; }
.ix-fv * { box-sizing: border-box; }
.ix-fv__h { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 0 8px 10px; }
.ix-fv__h > h3 { margin: 0; font: 800 18px/1 var(--font-display); }
.ix-fv__h > small { flex: 1; min-width: 0; color: var(--text-2); font-size: 12px; }
.ix-fv .ix-fv__close { display: none; }
.ix-fv__chips { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ix-fv__chips .idem-icon { width: 15px; height: 15px; }
.ix-fv__vr { align-self: stretch; width: 1px; margin: 6px 4px; background: var(--border); }
.ix-fv__body { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.ix-fv__c { display: none; }
.ix-fv__more { display: block; margin: 2px 8px; padding: 8px 0; color: var(--accent-dark); font: 600 13px/1 var(--font-text); text-decoration: none; }
.ix-fv__more:hover { text-decoration: underline; }
.ix-fv__gh { margin: 10px 0 2px; padding: 0 8px; display: flex; align-items: baseline; gap: 8px; font: 700 12px/1 var(--font-text); letter-spacing: .06em; text-transform: uppercase; color: var(--text-2); }
.ix-fv__gh em { font-style: normal; font-weight: 600; letter-spacing: 0; text-transform: none; }
.ix-fv__empty { padding: 28px 12px; display: grid; gap: 8px; justify-items: center; text-align: center; color: var(--text-2); font-size: 14px; }
.ix-fv__empty .idem-icon { width: 30px; height: 30px; }
.ix-fv__empty > b { color: var(--text); font-size: 15px; }
.ix-fv__undo { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 6px 8px 0; padding: 8px 8px 8px 14px; border-radius: 14px; background: var(--ink); color: var(--on-ink); font-size: 13px; }
.ix-fv__undo > button { border: 0; background: none; padding: 6px 8px; color: inherit; font: 700 13px/1 var(--font-text); text-decoration: underline; cursor: pointer; border-radius: 8px; }
.ix-fv__ft { flex: none; display: flex; align-items: center; gap: 8px; padding: 10px 8px 4px; margin-top: 6px; border-top: 1px solid var(--border); }
.ix-fv__ft .idem-btn { justify-content: center; }
.ix-fv__ft--a .idem-btn { flex: 1; }
.ix-fv__ft--c { display: none; }
/* строка события */
.ix-fvr { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px; border-radius: var(--r-lg); }
.ix-fvr:hover { background: var(--surface-2); }
.ix-fvr__main { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: center; min-width: 0; color: inherit; text-decoration: none; border-radius: var(--r-md, 12px); }
.ix-fvr__main:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-fvr__th { position: relative; width: 52px; height: 52px; border-radius: 14px; overflow: hidden; background-color: var(--surface-3); background-size: cover; background-position: center; display: grid; place-items: center; color: var(--text-2); }
.ix-fvr__th .idem-icon { width: 20px; height: 20px; }
.ix-fvr__th.has-photo .idem-icon { display: none; }
.ix-fvr__tx { min-width: 0; display: grid; gap: 2px; }
.ix-fvr__tx > b { font: 600 14px/1.25 var(--font-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-fvr__tx > span { font-size: 12px; line-height: 1.3; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ix-fvr__tx > .is-today { color: var(--accent-dark); font-weight: 600; }
.ix-fvr__act { display: flex; align-items: center; gap: 6px; }
.ix-fvr__pr { font: 600 12px/1 var(--font-text); color: var(--text-2); white-space: nowrap; margin-right: 4px; }
.ix-fvb { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--surface-2); color: var(--text); cursor: pointer; padding: 0; transition: background var(--dur-fast); }
.ix-fvb:hover { background: var(--surface-3); }
.ix-fvb:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-fvb .idem-icon { width: 16px; height: 16px; }
.ix-fvb--x { color: var(--accent); background: var(--accent-tint); }
.ix-fvb--x .idem-icon { fill: currentColor; }
.ix-fvb[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); }
/* постеры ближайшего (шторка) */
.ix-fv__car { display: flex; gap: 10px; overflow-x: auto; padding: 4px 8px 12px; scroll-snap-type: x mandatory; }
.ix-fvp { position: relative; flex: none; width: 150px; height: 196px; border-radius: 18px; overflow: hidden; scroll-snap-align: start; background-color: var(--surface-3); background-size: cover; background-position: center; color: #fff; display: flex; align-items: flex-end; }
.ix-fvp::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 10, 14, .82), rgba(10, 10, 14, 0) 62%); pointer-events: none; }
.ix-fvp__go { position: absolute; inset: 0; z-index: 1; }
.ix-fvp__t { position: relative; z-index: 1; padding: 10px; display: grid; gap: 3px; pointer-events: none; }
.ix-fvp__t > b { font: 700 13px/1.2 var(--font-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ix-fvp__t > span { font-size: 11px; opacity: .85; }
.ix-fvp__x { position: absolute; z-index: 2; top: 8px; right: 8px; width: 32px; height: 32px; }
.ix-fvp__ic { position: absolute; inset: 0; display: grid; place-items: center; color: var(--text-2); }
.ix-fvp__ic .idem-icon { width: 32px; height: 32px; }
.ix-fvp.has-photo .ix-fvp__ic { display: none; }
@container (max-width: 760px) {
  .ix-fv-scrim { background: color-mix(in srgb, var(--ink) 34%, transparent); }
  .ix-hdr.has-panel .idem-header__in { position: static; z-index: auto; }
  .ix-hdr .ix-fv { left: 8px; right: 8px; width: auto; max-height: min(78vh, 640px); padding: 10px 6px 6px; border-radius: 24px; }
  .ix-hdr .ix-fv__h { padding: 4px 10px 6px; flex-wrap: nowrap; }
  .ix-hdr .ix-fv__chips, .ix-hdr .ix-fv__ord, .ix-hdr .ix-fv__a, .ix-hdr .ix-fv__ft--a { display: none; }
  .ix-hdr .ix-fv__close { display: inline-grid; }
  .ix-hdr .ix-fv__c { display: block; }
  .ix-hdr .ix-fv__ft--c { display: flex; padding: 10px 8px 6px; }
  .ix-hdr .ix-fv__ft--c .idem-btn:first-child { flex: 1; }
  .ix-hdr .ix-fvr { grid-template-columns: minmax(0, 1fr) auto; }
  .ix-hdr .ix-fvr__main { grid-template-columns: 46px minmax(0, 1fr); gap: 10px; }
  .ix-hdr .ix-fvr__th { width: 46px; height: 46px; border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) { .ix-fvb { transition: none; } }
.ix-hd:has(.ix-hdr.has-panel) { z-index: 90; }

/* ───────── Страница «Избранное» ───────── */
.ix-fvpg { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.ix-fvpg__h { margin-top: 6px; font: 800 32px/1.1 var(--font-display); letter-spacing: var(--ls-display); }
.ix-fvpg__sub { margin-top: 6px; color: var(--text-2); font-size: 14px; }
.ix-fvpg__days { margin: 18px 0 6px; display: flex; gap: 6px; }
.ix-fvd { position: relative; flex: 1; min-width: 0; display: grid; justify-items: center; gap: 2px; padding: 8px 0 10px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); color: var(--text); cursor: pointer; font-family: var(--font-text); }
.ix-fvd > small { font-size: 11px; color: var(--text-2); }
.ix-fvd > b { font: 700 16px/1.1 var(--font-text); }
.ix-fvd > i { display: flex; gap: 3px; height: 6px; margin-top: 2px; }
.ix-fvd > i > u { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.ix-fvd > i > u.x { display: none; }
.ix-fvd.is-wk > small { color: var(--accent-dark); }
.ix-fvd[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.ix-fvd[aria-pressed="true"] > small { color: inherit; opacity: .75; }
.ix-fvd[aria-pressed="true"] > i > u { background: var(--on-ink); }
.ix-fvd[disabled] { opacity: .5; cursor: default; }
.ix-fvd:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ix-fvpg .ix-fv__gh { margin-top: 18px; }
.ix-fvr--pg { grid-template-columns: minmax(0, 1fr) auto; padding: 10px; border: 1px solid var(--border); margin-top: 8px; background: var(--surface); }
.ix-fvr--pg:hover { background: var(--surface); border-color: var(--border-control, var(--border)); }
.ix-fvr--pg .ix-fvr__main { grid-template-columns: 64px minmax(0, 1fr); }
.ix-fvr--pg .ix-fvr__th { width: 64px; height: 64px; border-radius: 16px; }
.ix-fvr__plan[aria-pressed="true"] { background: var(--accent-tint); color: var(--accent-dark); border-color: transparent; }
.ix-fvpg__empty { padding: 48px 12px; }
.ix-fvpg__side { position: sticky; top: calc(var(--ix-hd-h, 48px) + 16px); display: grid; gap: 12px; align-content: start; }
.ix-fvpg__card { display: grid; gap: 12px; padding: 16px; border-radius: var(--r-xl); background: var(--surface); border: 1px solid var(--border); }
.ix-fvpg__card h2 { font: 700 14px/1.2 var(--font-text); }
.ix-fvpg__card .idem-btn { justify-content: center; width: 100%; }
.ix-fvpg__nums { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ix-fvpg__nums > div { padding: 10px; border-radius: 14px; background: var(--surface-2); display: grid; gap: 2px; }
.ix-fvpg__nums b { font: 800 22px/1 var(--font-display); }
.ix-fvpg__nums span { font-size: 11px; color: var(--text-2); }
.ix-fvpg__note { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: 12px; line-height: 1.4; color: var(--text-2); }
.ix-fvpg__note .idem-icon { flex: none; width: 16px; height: 16px; }
.ix-fvpg__reset { justify-self: start; }
.ix-fvt { position: fixed; z-index: 95; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; max-width: calc(100% - 32px); padding: 10px 10px 10px 16px; border-radius: 16px; background: var(--ink); color: var(--on-ink); font-size: 14px; box-shadow: var(--shadow-lg); }
.ix-fvt > button { border: 0; background: none; padding: 6px 8px; color: inherit; font: 700 14px/1 var(--font-text); text-decoration: underline; cursor: pointer; border-radius: 8px; }
@media (max-width: 860px) {
  .ix-fvpg { grid-template-columns: 1fr; gap: 20px; }
  .ix-fvpg__side { position: static; }
  .ix-fvpg__h { font-size: 26px; }
  .ix-fvr--pg { grid-template-columns: 1fr; }
  .ix-fvr--pg .ix-fvr__act { justify-content: flex-end; }
  .ix-fvr--pg .ix-fvr__main { grid-template-columns: 56px minmax(0, 1fr); }
  .ix-fvr--pg .ix-fvr__th { width: 56px; height: 56px; }
  .ix-fvpg__days { gap: 4px; }
}

/* плашка даты на карточке: число крупнее, месяц мельче (рантайм оборачивает значения в span, поэтому вложенные span наследуют шрифт) */
.idem-date { padding: 5px 9px 6px; }
.idem-date b { font-size: 20px; line-height: 1; letter-spacing: -.01em; color: var(--text); }
.idem-date > span { margin-top: 2px; font-size: 9px; line-height: 1.1; letter-spacing: .06em; }
.idem-date b span, .idem-date > span span { display: inline; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }

/* окно события: дата и время вынесены в метки шапки, в блоке фактов остались цена и место */
.ix-evm-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .ix-evm-facts { grid-template-columns: 1fr; } }
/* метки поверх постера окна события стоят там же, где на карточке: дата (с временем под месяцем) слева сверху, категория и возраст слева снизу */
.ix-evm-top, .ix-evm-bot { left: 14px; right: 64px; }
.ix-evm-top { top: 14px; } .ix-evm-bot { bottom: 14px; align-items: center; }
.ix-evm-top > div { display: flex; gap: 6px; align-items: flex-start; }
.idem-date > .ix-date-time { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--border); font-size: 10px; line-height: 1; letter-spacing: .02em; color: var(--text); }
