    :root {
      --bg: #f2f2f2;
      --bg-soft: #f8f8f8;
      --panel: #ffffff;
      --panel-2: #f4f4f4;
      --field: #f2f2f2;
      --text: #15161b;
      --muted: #68707f;
      --accent: #ffe057;
      --accent-strong: #ffd83d;
      --accent-soft: #fff6ca;
      --brand: #6ea2ff;
      --ok: #2b8a5a;
      --warn: #bb8b1a;
      --border: rgba(21,22,27,.08);
      --shadow: 0 24px 64px rgba(20, 25, 35, .08);
      --header-height: 73px;
      --chat-gap: 24px;
    }
    * { box-sizing: border-box; }
    html, body {
      touch-action: manipulation;
    }
    body {
      margin: 0;
      font-family: "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
      background:
        radial-gradient(circle at top center, rgba(110,162,255,.08), transparent 22%),
        linear-gradient(180deg, #f7f7f7 0%, var(--bg) 100%);
      color: var(--text);
    }
    .page-header {
      position: sticky;
      top: 0;
      z-index: 10;
      height: var(--header-height);
      background: rgba(255,255,255,.9);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(21,22,27,.05);
    }
    .topbar {
      max-width: 1360px;
      margin: 0 auto;
      padding: 12px 28px;
      min-height: var(--header-height);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }
    .header-left {
      display: flex;
      align-items: center;
      gap: 24px;
      min-width: 0;
      flex: 1 1 auto;
    }
    .brand {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      text-decoration: none;
      color: var(--text);
      font-weight: 800;
      font-size: 22px;
      letter-spacing: -.03em;
    }
    .brand-mark {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 36px;
    }
    .brand-mark img {
      display: block;
      height: 36px;
      width: auto;
      max-width: 160px;
      object-fit: contain;
    }
    .brand-mark svg {
      display: block;
    }
    .brand-text {
      color: #15161b;
      font-size: 24px;
      font-weight: 800;
      letter-spacing: -.03em;
    }
    .brand-subtext {
      color: var(--brand);
    }
    .header-links {
      display: flex;
      align-items: center;
      gap: 24px;
      flex: 0 1 auto;
      min-width: 0;
      margin-left: 30px;
    }
    .header-links a {
      color: var(--text);
      text-decoration: none;
      font-size: 16px;
      font-weight: 600;
    }
    .header-actions {
      display: flex;
      align-items: center;
      gap: 12px;
      flex: 0 0 auto;
      white-space: nowrap;
    }
    .header-search-replies {
      display: flex;
      align-items: center;
      gap: 8px;
      max-width: 280px;
      min-width: 0;
      padding-top: 1px;
      overflow-x: auto;
      overflow-y: visible;
      scrollbar-width: none;
    }
    .header-search-replies::-webkit-scrollbar {
      display: none;
    }
    .header-search-reply-button {
      min-height: 40px;
      padding: 0 14px;
      border-radius: 14px;
      font-size: 14px;
      font-weight: 800;
      flex: 0 0 auto;
      transform: none !important;
      box-shadow: none;
    }
    .header-search-reply-button:hover {
      transform: none !important;
    }
    .burger-button {
      display: none;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      padding: 0;
      border-radius: 16px;
      background: #f3f4f6;
      color: #2f3640;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 10px 24px rgba(20, 25, 35, .08);
    }
    .burger-button svg {
      width: 22px;
      height: 22px;
      display: block;
    }
    .mobile-menu {
      display: none;
      position: absolute;
      top: calc(100% + 10px);
      right: 0;
      min-width: 220px;
      padding: 12px;
      border-radius: 20px;
      background: rgba(255,255,255,.98);
      border: 1px solid var(--border);
      box-shadow: 0 24px 40px rgba(20, 25, 35, .14);
    }
    .mobile-menu.is-open {
      display: grid;
      gap: 8px;
    }
    .mobile-menu a,
    .mobile-menu button,
    .mobile-menu .mobile-locale {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      min-height: 44px;
      padding: 0 14px;
      border-radius: 14px;
      text-decoration: none;
      color: var(--text);
      background: #f6f7f9;
      border: 1px solid rgba(112, 122, 138, .10);
      font-size: 14px;
      font-weight: 600;
    }
    .mobile-menu button {
      cursor: pointer;
    }
    .mobile-menu .mobile-locale {
      color: #667085;
    }
    .locale-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      min-width: 48px;
      height: 48px;
      padding: 0;
      border-radius: 16px;
      background: #f3f4f6;
      font-size: 16px;
      font-weight: 700;
      color: #3d4450;
      border: 1px solid rgba(21,22,27,.05);
      white-space: nowrap;
    }
    .wrap {
      max-width: 1360px;
      margin: 0 auto;
      padding: 44px 28px 60px;
      min-height: calc(100vh - var(--header-height));
    }
    .hero {
      display: none;
    }
    .hero-title {
      margin: 0;
      font-size: clamp(42px, 6vw, 60px);
      line-height: 1.02;
      letter-spacing: -.05em;
      font-weight: 900;
    }
    .hero-subtitle {
      margin: 18px auto 0;
      max-width: 720px;
      color: #667085;
      font-size: 16px;
      line-height: 1.5;
    }
    .app-shell {
      max-width: 980px;
      margin: 0 auto;
    }
    body.no-debug .app-shell {
      padding-top: 12px;
    }
    .card {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 32px;
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .header {
      padding: 24px 28px;
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .title {
      font-size: 20px;
      font-weight: 800;
      letter-spacing: -.02em;
    }
    .subtitle {
      color: var(--muted);
      font-size: 15px;
      margin-top: 6px;
    }
    .chat {
      display: flex;
      flex-direction: column;
      min-height: 720px;
    }
    body.no-debug .chat {
      position: sticky;
      top: calc(var(--header-height) + var(--chat-gap));
      height: calc(100vh - var(--header-height) - (var(--chat-gap) * 2));
      min-height: 520px;
      max-height: calc(100vh - var(--header-height) - (var(--chat-gap) * 2));
    }
    .messages {
      flex: 1;
      min-height: 0;
      padding: 28px;
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: 18px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.9) 0%, rgba(247,247,247,.84) 100%);
    }
    .messages.bottom-aligned {
      justify-content: flex-end;
    }
    .msg {
      padding: 16px 18px;
      border-radius: 24px;
      white-space: pre-wrap;
      line-height: 1.5;
      font-size: 15px;
    }
    .msg.assistant {
      background: #ffffff;
      align-self: flex-start;
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 12px 24px rgba(27, 31, 40, .04);
    }
    .msg.user {
      background: #fff8d0;
      align-self: flex-end;
      border: 1px solid rgba(255,216,61,.45);
    }
    .message-block {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
      max-width: 86%;
      animation: message-in .28s ease-out;
      transform-origin: left bottom;
    }
    .messages.bottom-aligned .message-block {
      flex: 0 0 auto;
    }
    .message-block.user {
      align-self: flex-end;
      align-items: flex-end;
      transform-origin: right bottom;
    }
    .message-block.assistant {
      align-self: flex-start;
    }
    .message-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      justify-content: flex-end;
      width: 100%;
      margin-top: -2px;
    }
    .message-results-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 38px;
      padding: 0 16px;
      border-radius: 14px;
      background: linear-gradient(135deg, #ffe88b 0%, #f7d86a 100%);
      color: #1c2026;
      border: 1px solid rgba(255, 216, 61, .34);
      box-shadow: 0 10px 20px rgba(255, 216, 61, .18);
      font-size: 16px;
      font-weight: 800;
      white-space: nowrap;
    }
    .message-results-button:hover {
      background: linear-gradient(135deg, #ffea97 0%, #f9dc73 100%);
    }
    .message-secondary-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 38px;
      padding: 0 14px;
      border-radius: 14px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      color: #2b3440;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 10px 20px rgba(20, 25, 35, .08);
      font-size: 14px;
      font-weight: 700;
      white-space: nowrap;
      gap: 8px;
    }
    .message-secondary-button:hover {
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
      box-shadow: 0 14px 24px rgba(20, 25, 35, .12);
    }
    .message-secondary-button svg {
      width: 16px;
      height: 16px;
      display: block;
    }
    .message-icon-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      min-width: 38px;
      height: 38px;
      padding: 0;
      border-radius: 14px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 10px 20px rgba(20, 25, 35, .08);
      color: #2b3440;
      cursor: pointer;
      transition: transform .16s ease, box-shadow .16s ease, background .16s ease, opacity .16s ease;
    }
    .message-icon-button:hover {
      transform: translateY(-1px);
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
      box-shadow: 0 14px 24px rgba(20, 25, 35, .12);
    }
    .message-icon-button:disabled {
      opacity: .7;
      cursor: wait;
      transform: none;
    }
    .message-icon-button svg {
      width: 18px;
      height: 18px;
      display: block;
    }
    .msg.typing {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-width: 74px;
    }
    .typing-label {
      color: var(--muted);
      font-size: 15px;
    }
    .tour-list {
      display: grid;
      gap: 12px;
      width: 100%;
    }
    .tour-card {
      display: grid;
      grid-template-columns: 88px 1fr auto;
      grid-template-areas:
        "title title title"
        "image body price"
        "variants variants variants";
      gap: 10px;
      align-items: start;
      background: #ffffff;
      border: 1px solid var(--border);
      border-radius: 24px;
      overflow: hidden;
      padding: 14px;
      cursor: pointer;
      transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
      animation: card-in .32s ease-out;
    }
    .tour-card:hover {
      transform: translateY(-1px);
      box-shadow: 0 16px 32px rgba(20, 25, 35, .08);
      border-color: rgba(110,162,255,.24);
    }
    .tour-card img {
      grid-area: image;
      width: 88px;
      height: 72px;
      object-fit: cover;
      display: block;
      border-radius: 14px;
    }
    .tour-card-body {
      grid-area: body;
      min-width: 0;
      width: 100%;
    }
    .tour-title {
      grid-area: title;
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      width: 100%;
      font-size: 13px;
      font-weight: 700;
      margin-bottom: 0;
      line-height: 1.3;
      align-self: center;
    }
    .tour-title-text {
      min-width: 0;
      flex: 1 1 auto;
    }
    .tour-location {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 6px;
    }
    .tour-route {
      color: #7a6351;
      font-size: 12px;
      line-height: 1.4;
      margin-bottom: 6px;
    }
    .tour-summary {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }
    .tour-badge {
      display: inline-flex;
      align-items: center;
      padding: 4px 8px;
      border-radius: 999px;
      background: #f3f4f6;
      color: #4f5562;
      font-size: 12px;
      font-weight: 700;
    }
    .tour-badge-hot {
      gap: 6px;
    }
    .tour-badge-discount {
      color: #d92d20;
      font-weight: 800;
    }
    .tour-badge-stars {
      flex: 0 0 auto;
    }
    .tour-badge-stars.low {
      background: #e9eef5;
      color: #52606f;
    }
    .tour-badge-stars.mid {
      background: #dfeeff;
      color: #2f69b3;
    }
    .tour-badge-stars.high {
      background: linear-gradient(135deg, #f7d86a 0%, #ffeaa6 100%);
      color: #7d5a00;
    }
    .tour-badge-rating.low {
      background: #e9eef5;
      color: #52606f;
    }
    .tour-badge-rating.mid {
      background: #dfeeff;
      color: #2f69b3;
    }
    .tour-badge-rating.high {
      background: linear-gradient(135deg, #f7d86a 0%, #ffeaa6 100%);
      color: #7d5a00;
    }
    .tour-badge-variants {
      background: #eef2ff;
      color: #4c57b5;
    }
    .tour-price {
      grid-area: price;
      text-align: right;
      align-self: center;
      min-width: 118px;
    }
    .tour-price-from {
      color: var(--muted);
      font-size: 12px;
      margin-bottom: 2px;
    }
    .tour-price-value {
      font-size: 20px;
      line-height: 1;
      font-weight: 800;
      color: #15161b;
      white-space: nowrap;
    }
    .tour-price-note {
      color: var(--muted);
      font-size: 12px;
      margin-top: 6px;
    }
    .tour-price-local {
      color: var(--muted);
      font-size: 11px;
      margin-top: 4px;
      line-height: 1.35;
      white-space: nowrap;
    }
    .tour-meta {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.5;
    }
    .tour-variants {
      display: none;
      grid-area: variants;
      border-top: 1px solid rgba(150,126,110,.18);
      margin-top: 10px;
      padding-top: 10px;
      gap: 8px;
    }
    .tour-card.is-open .tour-variants {
      display: grid;
    }
    .tour-variant {
      background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, #f7f9fc 100%);
      border: 1px solid rgba(21,22,27,.06);
      border-radius: 18px;
      padding: 11px 12px;
      box-shadow: 0 8px 18px rgba(20, 25, 35, .035);
    }
    .tour-variant-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 8px;
    }
    .tour-variant-head-main {
      min-width: 0;
      flex: 1 1 auto;
    }
    .tour-variant-label {
      color: #8a93a2;
      font-size: 10px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .05em;
      margin-bottom: 3px;
    }
    .tour-variant-date {
      font-weight: 800;
      color: #202733;
      font-size: 14px;
      line-height: 1.25;
    }
    .tour-variant-head-side {
      flex: 0 0 auto;
      text-align: right;
    }
    .tour-variant-price {
      font-weight: 900;
      color: #222a36;
      white-space: nowrap;
      font-size: 16px;
      line-height: 1.05;
    }
    .tour-variant-price-local {
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
      text-align: right;
      margin-top: 3px;
      white-space: nowrap;
    }
    .tour-variant-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-bottom: 8px;
    }
    .tour-variant-badge {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      padding: 4px 9px;
      border-radius: 999px;
      font-size: 10px;
      line-height: 1.2;
      font-weight: 800;
      letter-spacing: .01em;
      border: 1px solid transparent;
    }
    .tour-variant-badge-wrap {
      display: inline-flex;
      align-items: center;
    }
    .tour-badge-info {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      height: 16px;
      min-width: 16px;
      min-height: 16px;
      margin-left: 6px;
      padding: 0;
      border: 0;
      border-radius: 999px;
      background: rgba(255,255,255,.92);
      color: rgba(28, 36, 48, .92);
      font-size: 11px;
      line-height: 1;
      font-weight: 800;
      cursor: pointer;
      vertical-align: middle;
      box-shadow:
        inset 0 0 0 1px rgba(28, 36, 48, .18),
        0 1px 2px rgba(20, 25, 35, .16);
    }
    .tour-badge-info:hover {
      background: #ffffff;
      color: rgba(16, 24, 36, .96);
      box-shadow:
        inset 0 0 0 1px rgba(16, 24, 36, .24),
        0 2px 4px rgba(20, 25, 35, .18);
    }
    .tour-variant-badge.promo {
      color: #8a4b00;
      background: linear-gradient(180deg, #fff1b8 0%, #ffe082 100%);
      border-color: rgba(199, 139, 0, .18);
    }
    .tour-variant-badge.attention {
      color: #8a4b00;
      background: #fff4db;
      border-color: rgba(199, 139, 0, .18);
    }
    .tour-variant-badge.request {
      color: #9a5b00;
      background: #fff3e5;
      border-color: rgba(215, 131, 34, .2);
    }
    .tour-variant-badge.limited {
      color: #8f5a00;
      background: #fff5d9;
      border-color: rgba(212, 165, 28, .2);
    }
    .tour-variant-badge.positive {
      color: #1f7a39;
      background: #e8f8ee;
      border-color: rgba(38, 143, 74, .16);
    }
    .badge-info-popover {
      position: fixed;
      z-index: 96;
      inset: 0;
      pointer-events: none;
      opacity: 0;
      transition: opacity .16s ease;
    }
    .badge-info-popover.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .badge-info-popover-card {
      position: absolute;
      width: min(320px, calc(100vw - 24px));
      padding: 12px 14px;
      border-radius: 16px;
      background: rgba(255,255,255,.98);
      border: 1px solid rgba(21,22,27,.08);
      box-shadow: 0 20px 40px rgba(20, 25, 35, .18);
    }
    .badge-info-popover-title {
      color: #1f2732;
      font-size: 13px;
      line-height: 1.3;
      font-weight: 800;
      margin-bottom: 6px;
    }
    .badge-info-popover-text {
      color: #5f6b7a;
      font-size: 12px;
      line-height: 1.45;
    }
    .tour-variant-groups {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 8px;
    }
    .tour-variant-group {
      padding: 8px 9px;
      border-radius: 16px;
      background: rgba(255,255,255,.78);
      border: 1px solid rgba(21,22,27,.05);
    }
    .tour-variant-group-title {
      color: #8a93a2;
      font-size: 10px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .05em;
      margin-bottom: 6px;
      font-weight: 800;
    }
    .tour-variant-group-items {
      display: grid;
      gap: 6px;
    }
    .tour-variant-group-item {
      display: grid;
      grid-template-columns: 18px minmax(0, 1fr);
      gap: 6px;
      align-items: start;
    }
    .tour-variant-group-icon {
      font-size: 12px;
      line-height: 1.2;
      text-align: center;
      opacity: .9;
    }
    .tour-variant-group-label {
      color: #8a93a2;
      font-size: 10px;
      line-height: 1.15;
      margin-bottom: 1px;
    }
    .tour-variant-group-value {
      color: #27303c;
      font-size: 12px;
      line-height: 1.25;
      word-break: break-word;
      font-weight: 700;
    }
    .tour-variant-chip {
      padding: 4px 8px;
      border-radius: 999px;
      background: #edf2f7;
      color: #4e5968;
      font-size: 10px;
      font-weight: 700;
      line-height: 1.2;
    }
    .tour-variant-route {
      margin-top: 0;
      color: #667085;
      font-size: 11px;
      line-height: 1.35;
      padding-top: 8px;
      border-top: 1px dashed rgba(128, 139, 158, .22);
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .tour-variant-actions {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 8px;
      margin-top: 8px;
    }
    .tour-favorite-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      min-width: 38px;
      height: 38px;
      padding: 0;
      border-radius: 14px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 10px 20px rgba(20, 25, 35, .08);
      color: #68707f;
      transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
    }
    .tour-share-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      min-width: 38px;
      height: 38px;
      padding: 0;
      border-radius: 14px;
      background: #FFFFFF;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 10px 20px rgba(20, 25, 35, .08);
      color: #68707f;
      transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
    }
    .tour-favorite-button:hover {
      transform: translateY(-1px);
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
      box-shadow: 0 14px 24px rgba(20, 25, 35, .12);
    }
    .tour-share-button:hover {
      transform: translateY(-1px);
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
      box-shadow: 0 14px 24px rgba(20, 25, 35, .12);
    }
    .tour-favorite-button.is-active {
      background: linear-gradient(180deg, #fff3f5 0%, #ffe6ea 100%);
      border-color: rgba(232, 93, 121, .18);
      box-shadow: 0 10px 20px rgba(232, 93, 121, .12);
      color: #d14f72;
    }
    .tour-favorite-button.is-active:hover {
      background: linear-gradient(180deg, #fff5f7 0%, #ffecef 100%);
      box-shadow: 0 14px 24px rgba(232, 93, 121, .16);
    }
    .tour-favorite-button svg {
      width: 18px;
      height: 18px;
      display: block;
      border-radius: 0;
      object-fit: contain;
      flex: 0 0 auto;
    }
    .tour-card .tour-share-button img,
    .tour-card .tour-share-button span {
      width: 18px;
      height: 18px;
      display: block;
      line-height: 18px;
      text-align: center;
      max-width: 18px;
      max-height: 18px;
      min-width: 18px;
      min-height: 18px;
      border-radius: 0;
      object-fit: contain;
      flex: 0 0 auto;
    }
    .tour-select-button {
      min-height: 34px;
      padding: 0 14px;
      border-radius: 12px;
      font-size: 12px;
    }
    .tour-select-button {
      min-height: 38px;
      padding: 0 16px;
      border-radius: 14px;
      font-size: 13px;
      font-weight: 700;
      background: linear-gradient(180deg, #7cb4ff 0%, #5a93f0 100%);
      color: #ffffff;
      box-shadow: 0 12px 24px rgba(90, 147, 240, .24);
    }
    .tour-select-button:disabled {
      opacity: .72;
      cursor: progress;
      transform: none;
      box-shadow: none;
    }
    .tour-description {
      background: #f7f7f7;
      border: 1px solid rgba(21,22,27,.05);
      border-radius: 18px;
      padding: 10px 12px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: start;
      color: #4d5563;
      font-size: 12px;
      line-height: 1.3;
    }
    .tour-description-text {
      min-width: 0;
    }
    .tour-card-actions {
      margin-top: 8px;
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      justify-content: flex-end;
      align-self: center;
    }
    .tour-card-actions.solo {
      justify-content: flex-start;
      align-self: flex-start;
      margin-top: 4px;
    }
    .tour-description-action {
      min-height: 34px;
      padding: 0 12px;
      border-radius: 12px;
      white-space: nowrap;
      font-size: 12px;
      font-weight: 700;
      align-self: flex-start;
    }
    .results-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .results-head-text {
      min-width: 0;
    }
    .results-filter-button {
      min-height: 42px;
      padding: 0 16px;
      border-radius: 14px;
      white-space: nowrap;
      flex: 0 0 auto;
      background: linear-gradient(135deg, #ffe88b 0%, #f7d86a 100%);
      color: #1c2026;
      border: 1px solid rgba(255, 216, 61, .34);
      box-shadow: 0 12px 24px rgba(255, 216, 61, .24);
    }
    .results-filter-button:hover {
      background: linear-gradient(135deg, #ffea97 0%, #f9dc73 100%);
    }
    .tour-list-toolbar {
      display: flex;
      justify-content: flex-end;
      width: 100%;
      margin-bottom: 2px;
    }
    .results-filter-button[hidden] {
      display: none;
    }
    .filter-modal {
      position: fixed;
      inset: 0;
      z-index: 82;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(18, 24, 35, .34);
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease;
    }
    .filter-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .filter-modal-card {
      width: min(1100px, 100%);
      max-height: min(86vh, 920px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 18px;
      border-radius: 26px;
      background: linear-gradient(180deg, #fbfbfc 0%, #f3f5f8 100%);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 28px 70px rgba(20, 25, 35, .18);
    }
    .filter-modal-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 12px;
      flex: 0 0 auto;
    }
    .filter-modal-title {
      margin: 0;
      font-size: 24px;
      line-height: 1.08;
      font-weight: 900;
      letter-spacing: -.03em;
      color: #1f2937;
    }
    .filter-modal-subtitle {
      margin-top: 6px;
      color: #667085;
      font-size: 13px;
      line-height: 1.4;
    }
    .filter-modal-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 42px;
      min-width: 42px;
      height: 42px;
      padding: 0;
      border-radius: 14px;
      border: 1px solid rgba(112, 122, 138, .16);
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      box-shadow: 0 10px 22px rgba(20, 25, 35, .08);
      color: #2b3440;
      font-size: 18px;
      line-height: 1;
    }
    .filter-modal-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 9px;
      padding-right: 4px;
    }
    .filter-group {
      padding: 12px 13px;
      border-radius: 18px;
      background: rgba(255,255,255,.88);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 14px 30px rgba(20, 25, 35, .04);
    }
    .filter-group-title {
      margin: 0 0 7px;
      color: #7b8494;
      font-size: 10px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-weight: 800;
    }
    .filter-options {
      display: grid;
      gap: 7px;
    }
    .filter-option {
      display: flex;
      align-items: center;
      gap: 8px;
      color: #27303c;
      font-size: 12px;
      line-height: 1.3;
      cursor: pointer;
      transition: opacity .2s ease, color .2s ease, transform .2s ease;
    }
    .filter-option input {
      margin-top: 0;
      accent-color: #5a93f0;
      cursor: pointer;
      transition: opacity .2s ease, filter .2s ease;
    }
    .filter-option-text {
      word-break: break-word;
      transition: opacity .2s ease, color .2s ease;
    }
    .filter-option.is-disabled {
      opacity: .42;
    }
    .filter-option.is-disabled input,
    .filter-option.is-disabled .filter-option-text {
      cursor: not-allowed;
    }
    .filter-hot-only {
      display: flex;
      align-items: center;
      gap: 12px;
      margin: 0 0 12px;
      padding: 8px 2px 2px;
      color: #7a4d00;
      font-size: 16px;
      line-height: 1.35;
      font-weight: 800;
      transition: opacity .2s ease, color .2s ease, transform .2s ease;
    }
    .filter-hot-only.is-disabled {
      opacity: .42;
    }
    .filter-modal-hot-only {
      flex: 0 0 auto;
      margin-bottom: 6px;
    }
    .filter-hot-only input {
      width: 18px;
      height: 18px;
      margin: 0;
      accent-color: #f59e0b;
      flex: 0 0 auto;
      transition: opacity .2s ease, filter .2s ease;
    }
    .filter-hot-only.is-disabled input,
    .filter-hot-only.is-disabled .filter-hot-only-text {
      cursor: not-allowed;
    }
    .filter-hot-only-text {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      transition: opacity .2s ease, color .2s ease;
    }
    .filter-hot-only-icon {
      font-size: 18px;
      line-height: 1;
      flex: 0 0 auto;
    }
    .filter-empty {
      color: #8a93a2;
      font-size: 12px;
      line-height: 1.4;
    }
    .filter-modal-footer {
      flex: 0 0 auto;
      display: flex;
      justify-content: center;
      gap: 10px;
      margin-top: 14px;
    }
    .filter-secondary-button,
    .filter-apply-button {
      min-height: 46px;
      padding: 0 18px;
      border-radius: 16px;
    }
    .quick-replies {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      max-width: 100%;
    }
    .quick-reply {
      padding: 7px 7px;
      border-radius: 999px;
      border: 1px solid rgba(21,22,27,.06);
      background: #ffffff;
      color: var(--text);
      font-size: 12px;
      font-weight: 600;
      box-shadow: 0 10px 20px rgba(20, 25, 35, .04);
    }
    .quick-reply:hover {
      background: #fffef6;
      box-shadow: 0 12px 24px rgba(20, 25, 35, .08);
    }
    .quick-reply.quick-reply-action {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 38px;
      padding: 0 16px;
      border-radius: 14px;
      background: linear-gradient(135deg, #ffe88b 0%, #f7d86a 100%);
      color: #1c2026;
      border: 1px solid rgba(255, 216, 61, .34);
      box-shadow: 0 10px 20px rgba(255, 216, 61, .18);
      font-size: 16px;
      font-weight: 800;
    }
    .quick-reply.quick-reply-action:hover {
      background: linear-gradient(135deg, #ffea97 0%, #f9dc73 100%);
      box-shadow: 0 12px 24px rgba(255, 216, 61, .24);
    }
    .quick-reply:disabled {
      opacity: .6;
      cursor: default;
      transform: none;
    }
    .typing-dots {
      display: inline-flex;
      align-items: center;
      gap: 5px;
    }
    .typing-dots span {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgba(110,162,255,.92);
      animation: typing-bounce 1s infinite ease-in-out;
    }
    .typing-dots span:nth-child(2) {
      animation-delay: .15s;
    }
    .typing-dots span:nth-child(3) {
      animation-delay: .3s;
    }
    @keyframes typing-bounce {
      0%, 80%, 100% {
        opacity: .35;
        transform: translateY(0);
      }
      40% {
        opacity: 1;
        transform: translateY(-4px);
      }
    }
    @keyframes message-in {
      0% {
        opacity: 0;
        transform: translateY(10px) scale(.985);
      }
      100% {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }
    @keyframes card-in {
      0% {
        opacity: 0;
        transform: translateY(12px);
      }
      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }
    @keyframes placeholder-pulse {
      0%, 100% {
        opacity: .55;
      }
      50% {
        opacity: 1;
      }
    }
    .composer {
      /*border-top: 1px solid var(--border);*/
      padding: 22px 28px 15px;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 16px;
      background: #ffffff;
    }
    .chat-progress {
      height: 14px;
      opacity: 0;
      visibility: hidden;
      padding: 0 28px;
      background: #ffffff;
      flex: 0 0 auto;
      transition: opacity .28s ease, visibility 0s linear .28s;
    }
    .chat-progress.is-visible {
      opacity: 1;
      visibility: visible;
      transition: opacity .28s ease;
    }
    .chat-progress .progress-track {
      opacity: 0;
      transition: opacity .28s ease;
    }
    .chat-progress.is-visible .progress-track {
      opacity: 1;
    }
    textarea {
      width: 100%;
      min-height: 64px;
      height: 64px;
      max-height: 180px;
      resize: vertical;
      border-radius: 24px;
      border: 1px solid var(--border);
      background: var(--field);
      color: var(--text);
      padding: 18px 20px;
      font: inherit;
      outline: none;
      box-shadow: inset 0 1px 2px rgba(20, 25, 35, .02);
      overflow: hidden;
      font-size: 15px;
    }
    textarea::placeholder {
      color: #98a2b3;
      transition: opacity .2s ease;
    }
    textarea.placeholder-animating::placeholder {
      animation: placeholder-pulse 2.4s ease-in-out infinite;
    }
    textarea:focus {
      border-color: rgba(110,162,255,.35);
      box-shadow: 0 0 0 4px rgba(110,162,255,.10);
    }
    button {
      border: 0;
      border-radius: 22px;
      padding: 0 24px;
      font: inherit;
      font-weight: 700;
      cursor: pointer;
      transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    }
    button:hover {
      transform: translateY(-1px);
    }
    .primary {
      background: var(--accent);
      color: #1c2026;
      box-shadow: 0 14px 28px rgba(255, 216, 61, .28);
    }
    #btnSend {
      height: 64px;
      min-height: 64px;
      align-self: stretch;
    }
    .ghost {
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      color: #2b3440;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 14px 28px rgba(20, 25, 35, .10);
    }
    .header-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 48px;
      height: 48px;
      padding: 0 18px;
      border-radius: 16px;
      font-size: 16px;
      font-weight: 700;
      white-space: nowrap;
    }
    .dashboard {
      margin-top: 28px;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      align-items: start;
    }
    body.no-debug .dashboard {
      display: none;
    }
    .dashboard .wide {
      grid-column: span 2;
    }
    .dashboard .full {
      grid-column: 1 / -1;
    }
    .side {
      display: grid;
      gap: 16px;
      align-content: start;
    }
    .side .body {
      padding: 20px 24px 24px;
    }
    .pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      border: 1px solid var(--border);
      background: #f7f7f7;
    }
    .pill.ok { color: var(--ok); }
    .pill.warn { color: var(--warn); }
    .progress-track {
      position: relative;
      width: 100%;
      height: 5px;
      border-radius: 999px;
      overflow: hidden;
      background: #e8edf2;
      border: 1px solid rgba(43, 138, 90, .10);
    }
    .progress-bar {
      height: 100%;
      width: 0;
      border-radius: inherit;
      background: linear-gradient(90deg, #49b96f 0%, #7adf98 100%);
      box-shadow: inset 0 -1px 0 rgba(255,255,255,.18);
      transition: width .35s ease;
    }
    .grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }
    .field {
      background: #f7f7f7;
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 14px 16px;
    }
    .field .k {
      color: var(--muted);
      font-size: 12px;
      margin-bottom: 6px;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .field .v {
      font-size: 14px;
      word-break: break-word;
    }
    pre {
      margin: 0;
      white-space: pre-wrap;
      word-break: break-word;
      font-size: 12px;
      line-height: 1.5;
      color: #5a4738;
    }
    .footer-note {
      padding: 12px 24px 24px;
      color: var(--muted);
      font-size: 12px;
    }
    .tour-modal {
      position: fixed;
      inset: 0;
      z-index: 90;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(18, 24, 35, .42);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
    }
    .tour-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .tour-modal-panel {
      width: min(1040px, 100%);
      max-height: min(88vh, 920px);
      overflow: auto;
      background:
        radial-gradient(circle at top right, rgba(110,162,255,.08), transparent 24%),
        linear-gradient(180deg, #fcfcfd 0%, #f4f5f7 100%);
      border-radius: 28px;
      box-shadow: 0 30px 80px rgba(20, 25, 35, .26);
      transform: translateY(18px) scale(.985);
      transition: transform .24s ease;
    }
    .tour-modal.is-open .tour-modal-panel {
      transform: translateY(0) scale(1);
    }
    .tour-modal-header {
      position: sticky;
      top: 0;
      z-index: 1;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 18px;
      padding: 16px 20px 12px;
      background: rgba(255,255,255,.94);
      backdrop-filter: blur(12px);
    }
    .tour-modal-header-info {
      display: grid;
      min-width: 0;
      flex: 1 1 auto;
      align-content: start;
      gap: 8px;
    }
    .tour-modal-title {
      margin: 0;
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      font-size: 16px;
      line-height: 1.1;
      font-weight: 900;
      letter-spacing: -.03em;
      margin-top: 0;
    }
    .tour-modal-title-text {
      min-width: 0;
    }
    .tour-modal-subtitle {
      margin-top: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }
    .tour-modal-meta {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 0;
    }
    .tour-modal-operator-link {
      display: none;
      align-items: center;
      justify-content: center;
      min-height: 42px;
      padding: 0 16px;
      border-radius: 14px;
      text-decoration: none;
      font-size: 14px;
      font-weight: 700;
      white-space: nowrap;
    }
    .tour-modal-operator-link.is-visible {
      display: inline-flex;
    }
    .tour-modal-price-badge {
      display: none;
      grid-template-columns: 1fr;
      gap: 2px;
      min-height: 0;
      padding: 7px 12px;
      border-radius: 14px;
      background: linear-gradient(135deg, #fff7cf 0%, #ffe88b 100%);
      border: 1px solid rgba(255, 216, 61, .34);
      box-shadow: 0 10px 20px rgba(255, 216, 61, .14);
      white-space: nowrap;
    }
    .tour-modal-price-badge.is-visible {
      display: grid;
    }
    .tour-modal-price-badge-value {
      font-size: 16px;
      line-height: 1;
      font-weight: 900;
      letter-spacing: -.03em;
      color: #15161b;
    }
    .tour-modal-price-badge-local {
      color: rgba(28, 32, 38, .68);
      font-size: 10px;
      line-height: 1.2;
      font-weight: 700;
    }
    .tour-modal-close {
      flex: 0 0 auto;
      width: 44px;
      height: 44px;
      padding: 0;
      border-radius: 14px;
      background: #f3f4f6;
      color: #2f3640;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: none;
      font-size: 18px;
      line-height: 1;
    }
    .tour-modal-body {
      padding: 0 24px 108px;
      display: grid;
      gap: 22px;
    }
    .tour-modal-hero {
      display: grid;
      grid-template-columns: 1fr;
      gap: 16px;
      align-items: start;
    }
    .tour-modal-gallery {
      display: grid;
      gap: 10px;
    }
    .tour-modal-gallery-empty {
      min-height: 172px;
      padding: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      border-radius: 24px;
      background: linear-gradient(135deg, #dfe8f8 0%, #edf1f8 100%);
      border: 1px solid rgba(21,22,27,.06);
    }
    .tour-modal-thumbs {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 12px;
      align-items: start;
    }
    .tour-modal-thumb {
      display: block;
      aspect-ratio: 1;
      width: 100%;
      min-width: 0;
      min-height: 0;
      padding: 0;
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(21,22,27,.06);
      background: #eff3f7;
      box-shadow: none;
    }
    .tour-modal-thumb.featured {
      grid-column: span 2;
      aspect-ratio: 1.2;
      border-radius: 20px;
    }
    .tour-modal-thumb.is-active {
      border-color: rgba(90, 147, 240, .55);
      box-shadow: 0 0 0 3px rgba(90, 147, 240, .12);
    }
    .tour-modal-thumb:hover {
      transform: none;
      border-color: rgba(255, 216, 61, .58);
      box-shadow: 0 0 0 3px rgba(255, 216, 61, .16);
    }
    .tour-modal-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .tour-modal-thumb.is-more {
      position: relative;
      isolation: isolate;
    }
    .tour-modal-thumb.is-more::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(11, 18, 32, .18) 0%, rgba(11, 18, 32, .62) 100%);
      z-index: 1;
    }
    .tour-modal-thumb-more {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      color: #ffffff;
      text-align: center;
      padding: 10px;
    }
    .tour-modal-thumb-more-label {
      font-size: 24px;
      line-height: 1;
      font-weight: 900;
      letter-spacing: -.03em;
    }
    .tour-modal-thumb-more-text {
      font-size: 11px;
      line-height: 1.2;
      font-weight: 700;
      opacity: .92;
    }
    .tour-modal-details {
      display: grid;
      gap: 14px;
    }
    .tour-modal-card {
      background: rgba(255,255,255,.84);
      border: 1px solid rgba(21,22,27,.06);
      border-radius: 24px;
      padding: 18px;
      box-shadow: 0 18px 36px rgba(20, 25, 35, .05);
      min-width: 0;
    }
    .tour-modal-card-title {
      font-size: 15px;
      font-weight: 800;
      margin-bottom: 12px;
      letter-spacing: -.02em;
    }
    .tour-modal-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 0;
    }
    .tour-modal-badges .tour-variant-badge {
      min-height: 26px;
      padding: 5px 10px;
      font-size: 11px;
    }
    .tour-modal-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }
    .tour-modal-field {
      padding: 14px 16px;
      border-radius: 18px;
      background: #f7f8fa;
      border: 1px solid rgba(21,22,27,.05);
    }
    .tour-modal-field-label {
      color: var(--muted);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: .05em;
      margin-bottom: 6px;
    }
    .tour-modal-field-value {
      font-size: 14px;
      line-height: 1.45;
      color: #212630;
      word-break: break-word;
    }
    .tour-modal-field-value a {
      color: #2f69b3;
      text-decoration: none;
      font-weight: 600;
    }
    .tour-modal-field-value a:hover {
      text-decoration: underline;
    }
    .tour-modal-groups {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
    }
    .tour-modal-group {
      padding: 14px 14px 15px;
      border-radius: 20px;
      background: rgba(255,255,255,.82);
      border: 1px solid rgba(21,22,27,.06);
      min-width: 0;
    }
    .tour-modal-group-title {
      margin: 0 0 10px;
      color: #7b8494;
      font-size: 11px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-weight: 800;
    }
    .tour-modal-group-items {
      display: grid;
      gap: 10px;
    }
    .tour-modal-group-item {
      display: grid;
      grid-template-columns: 32px minmax(0, 1fr);
      gap: 8px;
      align-items: start;
    }
    .tour-modal-group-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      border-radius: 10px;
      background: #f5f7fa;
      border: 1px solid rgba(21,22,27,.05);
      font-size: 14px;
      line-height: 1;
    }
    .tour-modal-group-label {
      color: #8a93a2;
      font-size: 11px;
      line-height: 1.25;
      margin-bottom: 2px;
    }
    .tour-modal-group-value {
      color: #1f2732;
      font-size: 14px;
      line-height: 1.3;
      font-weight: 700;
      word-break: break-word;
    }
    .tour-modal-group-value a {
      color: #2f69b3;
      text-decoration: none;
    }
    .tour-modal-group-value a:hover {
      text-decoration: underline;
    }
    .tour-modal-sections {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .tour-modal-section {
      background: rgba(255,255,255,.88);
      border: 1px solid rgba(21,22,27,.06);
      border-radius: 24px;
      padding: 18px;
      box-shadow: 0 14px 30px rgba(20, 25, 35, .04);
    }
    .tour-modal-section.full {
      grid-column: 1 / -1;
    }
    .tour-modal-section-content {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: start;
      margin-bottom: 12px;
    }
    .tour-modal-section-actions {
      display: flex;
      justify-content: flex-end;
      align-self: start;
    }
    .tour-modal-section-actions .tour-description-action {
      flex: 0 0 auto;
      align-self: flex-start;
    }
    .tour-modal-section-title {
      margin: 0 0 12px;
      font-size: 16px;
      font-weight: 800;
      letter-spacing: -.02em;
    }
    .tour-modal-section-text {
      color: #48505d;
      font-size: 14px;
      line-height: 1.6;
    }
    .tour-modal-list {
      margin: 0;
      padding-left: 18px;
      color: #48505d;
      font-size: 14px;
      line-height: 1.6;
    }
    .tour-modal-list li + li {
      margin-top: 6px;
    }
    .tour-modal-footer {
      position: sticky;
      bottom: 0;
      z-index: 2;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      padding: 16px 24px 24px;
      background: linear-gradient(180deg, rgba(244,245,247,0) 0%, rgba(244,245,247,.94) 26%, rgba(244,245,247,1) 100%);
      backdrop-filter: blur(10px);
    }
    .tour-modal-book-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: 58px;
      border-radius: 20px;
      padding: 0 24px;
      text-decoration: none;
      background: var(--accent);
      color: #1c2026;
      box-shadow: 0 14px 28px rgba(255, 216, 61, .28);
      font-size: 16px;
      font-weight: 800;
      letter-spacing: -.01em;
    }
    .tour-modal-book-button:hover {
      transform: translateY(-1px);
      background: var(--accent-strong);
    }
    .tour-modal-share {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 58px;
      min-width: 58px;
      height: 58px;
      border-radius: 20px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 14px 28px rgba(20, 25, 35, .10);
      color: #2b3440;
      font-size: 22px;
      line-height: 1;
      text-decoration: none;
    }
    .tour-modal-share img {
      display: block;
      width: 30px;
      height: 30px;
      object-fit: contain;
    }
    .tour-modal-share:hover {
      transform: translateY(-1px);
    }
    .photo-viewer {
      position: fixed;
      inset: 0;
      z-index: 95;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(10, 15, 24, .76);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
    }
    .photo-viewer.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .photo-viewer-panel {
      position: relative;
      width: min(1120px, calc(100vw - 48px));
      max-height: calc(100vh - 48px);
      display: grid;
      gap: 12px;
      justify-items: stretch;
      align-items: start;
      margin: 0 auto;
      min-width: 0;
    }
    .photo-viewer-main {
      position: relative;
      width: 100%;
      max-width: 100%;
      min-height: 0;
      min-width: 0;
      justify-self: stretch;
      margin: 0 auto;
    }
    .photo-viewer-main .splide__track {
      border-radius: 28px;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(34, 43, 56, .92) 0%, rgba(17, 24, 35, .96) 100%);
      box-shadow: 0 30px 90px rgba(0, 0, 0, .4);
    }
    .photo-viewer-main .splide__slide {
      min-height: 320px;
      max-height: calc(100vh - 188px);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .photo-viewer-main .splide__slide img {
      display: block;
      max-width: 100%;
      max-height: calc(100vh - 196px);
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
    .photo-viewer-main .splide__arrow {
      position: absolute;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 46px;
      height: 46px;
      min-width: 46px;
      min-height: 46px;
      padding: 0;
      border-radius: 16px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      color: #000000;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 14px 28px rgba(20, 25, 35, .16);
      opacity: 1;
      line-height: 1;
      transform: none;
      transition: background .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
    }
    .photo-viewer-main .splide__arrow:hover {
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
      color: #000000;
      transform: none;
    }
    .photo-viewer-main .splide__arrow svg {
      fill: #2b3440;
      width: 15px;
      height: 15px;
      display: block;
      color: #2b3440;
    }
    .photo-viewer-main .splide__arrow svg path {
      stroke: currentColor;
      stroke-width: 2;
    }
    .photo-viewer-main .splide__arrow--prev {
      left: 16px;
    }
    .photo-viewer-main .splide__arrow--next {
      right: 16px;
    }
    .photo-viewer-main .splide__pagination {
      display: none;
    }
    .photo-viewer-thumbs {
      width: 100%;
      max-width: 100%;
      min-width: 0;
      justify-self: stretch;
      margin: 0 auto;
    }
    .photo-viewer-thumbs .splide__track {
      padding: 2px 0;
    }
    .photo-viewer-thumbs .splide__slide {
      border-radius: 18px;
      overflow: hidden;
      opacity: .58;
      transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
    }
    .photo-viewer-thumbs .splide__slide.is-active {
      opacity: 1;
      box-shadow: 0 0 0 2px rgba(255,255,255,.75);
      transform: translateY(-1px);
    }
    .photo-viewer-thumbs .splide__slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .photo-viewer-close {
      position: absolute;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 46px;
      height: 46px;
      min-width: 46px;
      min-height: 46px;
      padding: 0;
      border-radius: 16px;
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      color: #2b3440;
      border: 1px solid rgba(112, 122, 138, .16);
      box-shadow: 0 14px 28px rgba(20, 25, 35, .16);
      font-size: 28px;
      line-height: 1;
      z-index: 1;
    }
    .photo-viewer-close:hover {
      background: linear-gradient(180deg, #f4f6f9 0%, #e7ecf2 100%);
    }
    .photo-viewer-close {
      top: 16px;
      right: 16px;
      font-size: 18px;
    }
    .tour-loader {
      position: fixed;
      inset: 0;
      z-index: 98;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(18, 24, 35, .26);
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease;
    }
    .tour-loader.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .tour-loader-card {
      min-width: 220px;
      padding: 22px 24px;
      border-radius: 24px;
      background: rgba(255,255,255,.96);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 24px 60px rgba(20, 25, 35, .16);
      text-align: center;
    }
    .tour-loader-spinner {
      width: 44px;
      height: 44px;
      margin: 0 auto 14px;
      border-radius: 50%;
      border: 3px solid rgba(110,162,255,.22);
      border-top-color: #6ea2ff;
      animation: tour-spin .8s linear infinite;
    }
    .tour-loader-text {
      color: #344054;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.4;
    }
    .welcome-modal {
      position: fixed;
      inset: 0;
      z-index: 78;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      /*background: rgba(251, 251, 251, 0.97);*/
      background: rgba(18, 24, 35, .67);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
    }
    .welcome-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .welcome-modal-card {
      width: min(680px, 100%);
      display: grid;
      border-radius: 30px;
      background:
        radial-gradient(circle at top right, rgba(110,162,255,.08), transparent 28%),
        linear-gradient(180deg, #fcfcfd 0%, #f4f5f7 100%);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 28px 70px rgba(20, 25, 35, .18);
      overflow: hidden;
    }
    .welcome-modal-step {
      display: none;
      min-width: 0;
    }
    .welcome-modal-step.is-active {
      display: grid;
    }
    .welcome-modal-step:not(.is-active) {
      display: none !important;
    }
    .welcome-modal-step.is-active {
      display: grid !important;
    }
    .welcome-modal-step-cover {
      align-items: start;
      padding: 0;
      overflow: hidden;
    }
    .welcome-modal-step-cover::after {
      display: none;
    }
    .welcome-modal-cover-image {
      display: block;
      width: 100%;
      height: auto;
      max-height: min(640px, calc(100vh - 120px));
      object-fit: contain;
      object-position: center;
    }
    .welcome-modal-cover-actions {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 12px;
      width: 100%;
      padding: 16px 26px 22px;
    }
    .welcome-modal-locale {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 122px;
      min-height: 56px;
      padding: 0 20px;
      border-radius: 20px;
      background: rgba(255,255,255,.96);
      color: #2f3640;
      border: 1px solid rgba(21,22,27,.08);
      box-shadow: 0 12px 28px rgba(20, 25, 35, .12);
      font-size: 16px;
      font-weight: 800;
      letter-spacing: .02em;
      flex: 0 0 auto;
    }
    .welcome-modal-continue {
      min-width: min(320px, calc(100% - 80px));
      min-height: 56px;
      padding: 0 28px;
      border-radius: 20px;
    }
    .welcome-modal-content {
      display: grid;
      gap: 14px;
      align-content: start;
      min-width: 0;
      padding: 24px 24px 22px;
    }
    .welcome-modal-hero {
      display: grid;
      gap: 18px;
      align-items: center;
    }
    .welcome-modal-copy {
      display: grid;
      gap: 14px;
      min-width: 0;
    }
    .welcome-modal-logo {
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      margin-bottom: 4px;
    }
    .welcome-modal-logo img {
      display: block;
      height: 40px;
      width: auto;
    }
    .welcome-modal-illustration {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 12px;
      border-radius: 24px;
      background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(244,247,252,.94) 100%);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 18px 36px rgba(20, 25, 35, .06);
      overflow: hidden;
    }
    .welcome-modal-illustration img {
      display: block;
      width: 100%;
      height: auto;
      max-height: 210px;
      object-fit: contain;
    }
    .welcome-modal-title {
      margin: 0;
      font-size: clamp(30px, 4vw, 44px);
      line-height: 1.02;
      letter-spacing: -.05em;
      font-weight: 900;
      color: #141922;
    }
    .welcome-modal-subtitle {
      color: #667085;
      font-size: 15px;
      line-height: 1.6;
    }
    .welcome-modal-caption {
      color: #141922;
      font-size: 14px;
      line-height: 1.45;
      font-weight: 800;
      letter-spacing: -.01em;
    }
    .welcome-modal-points {
      display: grid;
      gap: 8px;
      margin: 2px 0 4px;
    }
    .welcome-modal-point {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #344054;
      font-size: 14px;
      line-height: 1.45;
      font-weight: 600;
    }
    .welcome-modal-point-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      border-radius: 10px;
      background: #fff7cf;
      border: 1px solid rgba(255, 216, 61, .28);
      flex: 0 0 auto;
    }
    .welcome-modal-button {
      min-height: 52px;
      padding: 0 22px;
      border-radius: 18px;
      justify-self: center;
    }
    .welcome-modal-note {
      color: #344054;
      font-size: 15px;
      line-height: 1.55;
      font-weight: 600;
    }
    .error-modal {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(18, 24, 35, .34);
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease;
    }
    .error-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .error-modal-card {
      width: min(420px, 100%);
      padding: 24px;
      border-radius: 28px;
      background: rgba(255,255,255,.98);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 28px 70px rgba(20, 25, 35, .18);
      text-align: center;
    }
    .error-modal-icon {
      font-size: 36px;
      line-height: 1;
      margin-bottom: 12px;
    }
    .error-modal-title {
      font-size: 22px;
      line-height: 1.1;
      font-weight: 900;
      letter-spacing: -.03em;
      margin: 0 0 10px;
      color: #1f2937;
    }
    .error-modal-text {
      color: #5f6b7a;
      font-size: 14px;
      line-height: 1.5;
      margin: 0 0 18px;
    }
    .error-modal-button {
      min-height: 48px;
      min-width: 140px;
    }
    .profile-modal {
      position: fixed;
      inset: 0;
      z-index: 75;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(18, 24, 35, .34);
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease;
    }
    .profile-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .profile-modal#hotelInfoModal {
      z-index: 91;
    }
    .profile-modal-card {
      width: min(1100px, 100%);
      max-height: min(86vh, 920px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 18px;
      border-radius: 26px;
      background: linear-gradient(180deg, #fbfbfc 0%, #f3f5f8 100%);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 28px 70px rgba(20, 25, 35, .18);
    }
    .profile-modal-head {
      flex: 0 0 auto;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 12px;
    }
    .profile-modal-title {
      margin: 0;
      font-size: 22px;
      line-height: 1.08;
      font-weight: 900;
      letter-spacing: -.03em;
      color: #1f2937;
    }
    .profile-modal-subtitle {
      margin-top: 6px;
      color: #667085;
      font-size: 13px;
      line-height: 1.4;
    }
    .profile-modal-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 42px;
      min-width: 42px;
      height: 42px;
      padding: 0;
      border-radius: 14px;
      border: 1px solid rgba(112, 122, 138, .16);
      background: linear-gradient(180deg, #f0f2f5 0%, #e3e8ee 100%);
      box-shadow: 0 10px 22px rgba(20, 25, 35, .08);
      color: #2b3440;
      font-size: 18px;
      line-height: 1;
    }
    .results-modal {
      position: fixed;
      inset: 0;
      z-index: 76;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(18, 24, 35, .34);
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease;
    }
    .results-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .results-modal-card {
      width: min(1100px, 100%);
      max-height: min(86vh, 920px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 18px;
      border-radius: 26px;
      background: linear-gradient(180deg, #fbfbfc 0%, #f3f5f8 100%);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 28px 70px rgba(20, 25, 35, .18);
    }
    .results-modal-head {
      flex: 0 0 auto;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 12px;
    }
    .results-modal-title {
      margin: 0;
      font-size: 22px;
      line-height: 1.08;
      font-weight: 900;
      letter-spacing: -.03em;
      color: #1f2937;
    }
    .results-modal-subtitle {
      margin-top: 6px;
      color: #667085;
      font-size: 13px;
      line-height: 1.4;
    }
    .results-modal-controls {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 0 0 auto;
    }
    .results-modal-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      padding-right: 4px;
    }
    .favorites-toast {
      position: fixed;
      top: 22px;
      left: 50%;
      transform: translateX(-50%) translateY(-8px);
      z-index: 92;
      opacity: 0;
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }
    .favorites-toast.is-open {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }
    .favorites-toast-card {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 0 20px;
      border-radius: 18px;
      background: rgba(255,255,255,.98);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 24px 48px rgba(20, 25, 35, .18);
      color: #1f2937;
      font-size: 15px;
      font-weight: 700;
      gap: 10px;
    }
    .favorites-toast-card svg {
      width: 18px;
      height: 18px;
      display: block;
      color: #d14f72;
    }
    .profile-groups {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 9px;
      padding-right: 4px;
    }
    .profile-group {
      padding: 12px 13px;
      border-radius: 18px;
      background: rgba(255,255,255,.88);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 14px 30px rgba(20, 25, 35, .04);
    }
    .profile-group.full {
      grid-column: 1 / -1;
    }
    .profile-group-title {
      margin: 0 0 7px;
      color: #7b8494;
      font-size: 10px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-weight: 800;
    }
    .profile-group-items {
      display: grid;
      gap: 7px;
    }
    .profile-group-item {
      display: grid;
      grid-template-columns: 26px minmax(0, 1fr);
      gap: 7px;
      align-items: center;
    }
    .profile-group-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      border-radius: 9px;
      background: #f5f7fa;
      border: 1px solid rgba(21,22,27,.05);
      font-size: 13px;
      line-height: 1;
    }
    .profile-group-label {
      color: #8a93a2;
      font-size: 10px;
      line-height: 1.2;
      margin-bottom: 1px;
    }
    .profile-group-value {
      color: #1f2732;
      font-size: 13px;
      line-height: 1.25;
      font-weight: 700;
      word-break: break-word;
    }
    .hotel-info-modal-card {
      width: min(1040px, 100%);
    }
    .hotel-info-modal-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      padding-right: 4px;
    }
    .hotel-info-section {
      padding: 14px;
      border-radius: 18px;
      background: rgba(255,255,255,.9);
      border: 1px solid rgba(21,22,27,.06);
      box-shadow: 0 14px 30px rgba(20, 25, 35, .04);
    }
    .hotel-info-section--highlight {
      background: linear-gradient(135deg, #fff8d9 0%, #fff1b3 100%);
      border-color: rgba(230, 179, 32, .2);
      box-shadow: 0 18px 34px rgba(194, 152, 28, .12);
    }
    .hotel-info-section--positive {
      background: linear-gradient(180deg, #f4fff8 0%, #ecfbf2 100%);
      border-color: rgba(30, 147, 89, .14);
    }
    .hotel-info-section--negative {
      background: linear-gradient(180deg, #fff8f6 0%, #fff1ee 100%);
      border-color: rgba(210, 76, 53, .14);
    }
    .hotel-info-section--positive-soft {
      background: linear-gradient(180deg, #fbfffc 0%, #f3fbf6 100%);
      border-color: rgba(30, 147, 89, .1);
    }
    .hotel-info-section--negative-soft {
      background: linear-gradient(180deg, #fffdfc 0%, #fff6f3 100%);
      border-color: rgba(210, 76, 53, .1);
    }
    .hotel-info-section--nuances {
      background: linear-gradient(180deg, #f9fbff 0%, #f2f6fc 100%);
      border-color: rgba(77, 112, 180, .12);
    }
    .hotel-info-section.full {
      grid-column: 1 / -1;
    }
    .hotel-info-section-title {
      margin: 0 0 8px;
      color: #7b8494;
      font-size: 10px;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-weight: 800;
    }
    .hotel-info-section-text {
      color: #1f2732;
      font-size: 13px;
      line-height: 1.5;
    }
    .hotel-info-list {
      margin: 0;
      padding-left: 18px;
      color: #1f2732;
      font-size: 13px;
      line-height: 1.5;
      display: grid;
      gap: 6px;
    }
    .hotel-info-meta {
      display: grid;
      gap: 8px;
      margin-bottom: 8px;
    }
    .hotel-info-meta-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 2px;
    }
    .hotel-info-meta-label {
      color: #8a93a2;
      font-size: 10px;
      line-height: 1.2;
    }
    .hotel-info-meta-value {
      color: #1f2732;
      font-size: 13px;
      line-height: 1.25;
      font-weight: 700;
      word-break: break-word;
    }
    .hotel-info-meta-value--positive,
    .hotel-info-meta-value--neutral,
    .hotel-info-meta-value--negative {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: fit-content;
      min-height: 26px;
      padding: 4px 10px;
      border-radius: 999px;
      border: 1px solid transparent;
    }
    .hotel-info-meta-value--positive {
      background: #eaf8ef;
      border-color: rgba(30, 147, 89, .14);
      color: #1d7f4b;
    }
    .hotel-info-meta-value--neutral {
      background: #fff6dc;
      border-color: rgba(217, 160, 34, .16);
      color: #8a5a00;
    }
    .hotel-info-meta-value--negative {
      background: #fff0eb;
      border-color: rgba(210, 76, 53, .16);
      color: #ba3a1f;
    }
    @media (max-width: 1180px) {
      .profile-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .hotel-info-modal-body {
        grid-template-columns: 1fr;
      }
    }
    @keyframes tour-spin {
      to {
        transform: rotate(360deg);
      }
    }
    body.modal-open {
      overflow: hidden;
    }
    @media (max-width: 980px) {
      .topbar {
        padding: 12px 18px;
        gap: 12px;
        position: relative;
      }
      .locale-pill {
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        border-radius: 14px;
        font-size: 14px;
      }
      .header-links {
        display: none;
      }
      .header-actions {
        gap: 8px;
        flex-wrap: nowrap;
        justify-content: flex-end;
        min-width: 0;
      }
      .header-search-replies {
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        justify-content: flex-end;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
      }
      .header-search-replies::-webkit-scrollbar {
        display: none;
      }
      .header-search-reply-button {
        min-height: 36px;
        padding: 0 10px;
        font-size: 13px;
        flex: 0 0 auto;
      }
      .header-actions .locale-pill {
        display: none;
      }
      .burger-button {
        display: inline-flex;
      }
      .header-chip {
        height: 44px;
        min-width: 44px;
        padding: 0 12px;
        border-radius: 14px;
        font-size: 14px;
      }
      .header-links a {
        font-size: 14px;
      }
      .brand {
        gap: 10px;
        min-width: 0;
      }
      .wrap { padding: 28px 4px 42px; }
      .hero {
        display: none;
      }
      .hero-subtitle {
        font-size: 17px;
      }
      .chat {
        min-height: 560px;
      }
      body.no-debug .chat {
        position: sticky;
        top: calc(var(--header-height) + 16px);
        height: calc(100vh - var(--header-height) - 32px);
        min-height: 480px;
        max-height: calc(100vh - var(--header-height) - 32px);
      }
      .header {
        padding: 20px 20px;
      }
      .messages {
        padding: 18px;
        overflow-x: hidden;
      }
      .quick-replies {
        width: 100%;
        max-width: 100%;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-bottom: 2px;
        overscroll-behavior-x: contain;
      }
      .quick-replies::-webkit-scrollbar {
        display: none;
      }
      .quick-reply {
        flex: 0 0 auto;
        white-space: nowrap;
      }
      .chat-progress {
        padding: 0 18px;
      }
      .composer {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 0px 16px 14px;
        align-items: center;
      }
      .dashboard {
        grid-template-columns: 1fr;
      }
      .dashboard .wide,
      .dashboard .full {
        grid-column: auto;
      }
      .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .tour-card {
        grid-template-columns: 72px minmax(0, 1fr) auto;
        grid-template-areas:
          "title title title"
          "image body price"
          "variants variants variants";
      }
      .tour-card img { width: 72px; height: 72px; }
      .tour-price {
        text-align: right;
        min-width: 92px;
      }
      .tour-modal-sections {
        grid-template-columns: 1fr;
      }
      .tour-modal-section-content {
        grid-template-columns: 1fr;
      }
      .tour-modal-section-actions {
        justify-content: flex-start;
      }
      .tour-modal-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .tour-modal-sections {
        grid-template-columns: 1fr;
      }
      #btnSend {
        height: 52px;
        min-height: 52px;
        white-space: nowrap;
      }
      .message-block {
        max-width: 100%;
      }
      .msg {
        padding: 4px 18px;
        font-size: 15px;
      }
      .tour-modal,
      .filter-modal,
      .profile-modal,
      .results-modal,
      .welcome-modal,
      .error-modal,
      .photo-viewer {
        padding:
          max(4px, env(safe-area-inset-top))
          max(4px, env(safe-area-inset-right))
          max(4px, env(safe-area-inset-bottom))
          max(4px, env(safe-area-inset-left));
      }
      .tour-modal-panel,
      .filter-modal-card,
      .profile-modal-card,
      .results-modal-card,
      .photo-viewer-panel {
        width: 100%;
        max-width: 100%;
        height: 100%;
        max-height: 100%;
        box-sizing: border-box;
      }
      .photo-viewer-panel {
        display: flex;
        flex-direction: column;
      }
      .photo-viewer-main {
        flex: 1 1 auto;
        min-height: 0;
      }
      .photo-viewer-main .splide__track,
      .photo-viewer-main .splide__list,
      .photo-viewer-main .splide__slide {
        height: 100%;
      }
      .filter-modal-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .welcome-modal-card {
        width: min(680px, 100%);
      }
      .welcome-modal-content {
        padding: 20px 18px;
      }
      .welcome-modal-cover-image {
        max-height: calc(100vh - 8px);
      }
      .welcome-modal-cover-actions {
        padding: 16px 18px 18px;
      }
      .welcome-modal-illustration {
        min-height: 180px;
        order: -1;
      }
    }
    @media (max-width: 560px) {
      .tour-card {
        grid-template-columns: 64px minmax(0, 1fr) 74px;
        gap: 8px;
        padding: 12px;
      }
      .tour-card img {
        width: 64px;
        height: 64px;
        border-radius: 12px;
      }
      .tour-price {
        min-width: 74px;
      }
      .tour-price-from {
        font-size: 10px;
      }
      .tour-price-value {
        font-size: 16px;
      }
      .tour-price-local,
      .tour-price-note {
        font-size: 10px;
      }
      .tour-location,
      .tour-route {
        font-size: 11px;
        margin-bottom: 4px;
      }
      .tour-summary {
        gap: 6px;
      }
      .tour-badge {
        padding: 3px 7px;
        font-size: 11px;
      }
      .tour-variant-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .tour-variant-group.tourists {
        grid-column: 1 / -1;
      }
      .tour-variant-group.tourists .tour-variant-group-items {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
      }
      .tour-variant-group.tourists .tour-variant-group-item {
        grid-template-columns: 16px minmax(0, 1fr);
        gap: 5px;
      }
      .tour-variant-group.tourists .tour-variant-group-value {
        font-size: 11px;
      }
      .tour-share-button,
      .tour-favorite-button {
        width: 34px;
        min-width: 34px;
        height: 34px;
        border-radius: 12px;
      }
      .tour-card .tour-share-button img,
      .tour-card .tour-share-button span,
      .tour-card .tour-favorite-button svg {
        width: 16px;
        height: 16px;
        border-radius: 0;
        object-fit: contain;
      }
      #btnSend {
        min-width: 48px;
        height: 48px;
        min-height: 48px;
        padding: 0 12px;
        font-size: 0;
      }
      #btnSend::before {
        content: '➤';
        font-size: 18px;
        line-height: 1;
      }
      #messageInput {
        min-height: 48px;
        max-height: 48px;
        padding: 5px 16px;
        font-size: 15px;
        line-height: 1.25;
      }
      .brand-mark {
        height: 24px;
      }
      .brand-mark img {
        height: 24px;
        max-width: 118px;
      }
      .brand-text {
        font-size: 16px;
      }
      .welcome-modal-card {
        padding: 0px;
      }
      .welcome-modal-visual {
        min-height: 180px;
      }
      .welcome-modal-subtitle {
        font-size: 14px;
      }
      .welcome-modal-point {
        font-size: 13px;
      }
      .welcome-modal-button {
        width: 100%;
      }
      .tour-modal {
        padding: 10px;
      }
      .tour-modal-header,
      .tour-modal-body {
        padding: 16px;
      }
      .tour-modal-body {
        padding-bottom: 104px;
      }
      .tour-modal-footer {
        padding: 12px 16px 16px;
      }
      .tour-modal-grid {
        grid-template-columns: 1fr;
      }
      .tour-modal-group {
        padding: 14px;
      }
      .tour-modal-body {
        padding: 0 16px 104px;
      }
      .tour-modal-thumbs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
      .tour-modal-thumb {
        aspect-ratio: 1;
      }
      .tour-modal-thumb.featured {
        grid-column: span 1;
        aspect-ratio: 1;
        border-radius: 16px;
      }
      .tour-modal-groups {
        grid-template-columns: 1fr;
        gap: 10px;
      }
      .tour-modal-card {
        padding: 16px;
      }
      .tour-modal-gallery {
        gap: 8px;
      }
      .photo-viewer {
        padding: 12px;
      }
      .photo-viewer-panel {
        max-width: calc(100vw - 24px);
        max-height: calc(100vh - 24px);
      }
      .photo-viewer-main .splide__track {
        border-radius: 22px;
      }
      .photo-viewer-main .splide__slide {
        min-height: 240px;
        max-height: calc(100vh - 164px);
      }
      .photo-viewer-main .splide__slide img {
        max-height: calc(100vh - 172px);
      }
      .photo-viewer-close,
      .photo-viewer-main .splide__arrow {
        width: 42px;
        height: 42px;
        min-width: 42px;
        min-height: 42px;
        border-radius: 14px;
      }
      .photo-viewer-close {
        top: 12px;
        right: 12px;
      }
      .photo-viewer-main .splide__arrow--prev {
        left: 12px;
      }
      .photo-viewer-main .splide__arrow--next {
        right: 12px;
      }
      .filter-modal {
        padding: 12px;
      }
      .filter-modal-card {
        padding: 16px;
        max-height: calc(100vh - 24px);
      }
      .filter-modal-body {
        grid-template-columns: repeat(1, minmax(0, 1fr));
      }
      .profile-modal {
        padding: 12px;
      }
      .profile-modal-card {
        padding: 18px;
        max-height: calc(100vh - 24px);
      }
      .profile-groups {
        grid-template-columns: 1fr;
      }
      .hotel-info-modal-body {
        grid-template-columns: 1fr;
      }
      .tour-description {
        grid-template-columns: 1fr;
      }
      .tour-description-action {
        width: 100%;
      }
      .tour-card-actions {
        margin-top: 6px;
        justify-content: flex-start;
      }
    }
    @media (max-width: 380px) {
      .results-head {
        align-items: stretch;
        flex-direction: column;
      }
      .tour-variant-groups {
        grid-template-columns: 1fr;
      }
      .tour-variant-group.tourists .tour-variant-group-items {
        grid-template-columns: 1fr;
      }
      .filter-modal-body {
        grid-template-columns: repeat(1, minmax(0, 1fr));
      }
    }
