/* ===== Tripnex результаты поиска — дизайн из Claude Design template (эталон) =====
   Изолировано под #resultsArea / .tnx-eta чтобы не конфликтовать со старыми стилями tour.html */
#resultsArea, #filterRail {
  --paper:#fbfaf6; --paper-2:#f3efe6; --ink:#0d1b2a; --ink-soft:#4a5568;
  --ink-faint:#8e8a82; --line:#e7e3da; --accent:#ff5a36; --accent-soft:#ffe5dc;
  --success:#10b981; --warn:#fbbf24; --danger:#ef4444;
}

/* ── Фильтры слева ── */
#filterRail.eta-rail { background:#fff; border-radius:18px; padding:20px; border:1px solid var(--line); height:fit-content; position:sticky; top:20px; }
#filterRail.eta-rail h3 { font-family:'Fraunces',Georgia,serif; font-size:18px; margin:0 0 4px; }
#filterRail.eta-rail .reset { color:var(--accent); font-size:12px; cursor:pointer; }
#filterRail.eta-rail .filter-block { padding:16px 0; border-bottom:1px solid var(--line); }
#filterRail.eta-rail .filter-block:last-child { border-bottom:none; }
#filterRail.eta-rail .filter-block .lbl { font-size:11px; text-transform:uppercase; font-weight:700; color:var(--ink-faint); letter-spacing:.04em; margin-bottom:10px; }
#filterRail.eta-rail .check-row { display:flex; align-items:center; gap:10px; padding:5px 0; font-size:13px; cursor:pointer; }
#filterRail.eta-rail .check-row .cb { width:18px; height:18px; border:1.5px solid var(--line); border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0; }
#filterRail.eta-rail .check-row.on .cb { background:var(--accent); border-color:var(--accent); color:#fff; }
#filterRail.eta-rail .check-row .num { margin-left:auto; color:var(--ink-faint); font-size:11px; }

/* ── Шапка результатов ── */
#resultsArea .results-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; flex-wrap:wrap; gap:12px; }
#resultsArea .results-head .count { font-size:14px; color:var(--ink-soft); }
#resultsArea .results-head .count b { color:var(--ink); font-size:16px; }
#resultsArea .sort-tabs { display:flex; gap:4px; background:#fff; padding:4px; border-radius:999px; border:1px solid var(--line); }
#resultsArea .sort-tabs .s { padding:6px 12px; font-size:12px; border-radius:999px; cursor:pointer; }
#resultsArea .sort-tabs .s.on { background:var(--ink); color:#fff; }

/* ── Карточка отеля ── */
#resultsArea .result-wrap { margin-bottom:12px; }
#resultsArea .result-card { background:#fff; border-radius:18px; border:1px solid var(--line); display:grid; grid-template-columns:240px 1fr 220px; gap:0; overflow:hidden; transition:all .2s; }
#resultsArea .result-card:hover { border-color:var(--accent); box-shadow:0 8px 24px rgba(0,0,0,.06); }
#resultsArea .result-card .imgs { position:relative; background:var(--paper-2); min-height:200px; }
#resultsArea .result-card .imgs img.main { width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
#resultsArea .result-card .imgs .badge-mgr { position:absolute; top:10px; left:10px; background:var(--accent); color:#fff; padding:3px 9px; border-radius:999px; font-size:10px; font-weight:700; z-index:2; }
#resultsArea .result-card .imgs .fav { position:absolute; top:10px; right:10px; width:32px; height:32px; border-radius:16px; background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; cursor:pointer; border:none; font-size:15px; z-index:2; }
#resultsArea .result-card .info { padding:16px 18px; min-width:0; }
#resultsArea .result-card .info .stars { color:var(--warn); font-size:13px; }
#resultsArea .result-card .info .stars .pill { background:var(--paper-2); color:var(--ink-soft); padding:2px 8px; border-radius:6px; font-size:11px; font-weight:600; margin-left:6px; }
#resultsArea .result-card .info h3 { font-family:'Fraunces',Georgia,serif; font-size:22px; margin:4px 0; line-height:1.1; }
#resultsArea .result-card .info h3 a { color:inherit; text-decoration:none; }
#resultsArea .result-card .info .where { font-size:12px; color:var(--ink-faint); }
#resultsArea .result-card .info .feat { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
#resultsArea .result-card .info .feat .pill { padding:4px 10px; background:var(--paper-2); border-radius:999px; font-size:11px; font-weight:600; }
#resultsArea .result-card .info .reviews { display:flex; align-items:center; gap:8px; margin-top:12px; }
#resultsArea .result-card .info .reviews .score { background:var(--success); color:#fff; padding:3px 8px; border-radius:6px; font-weight:700; font-size:12px; }
#resultsArea .result-card .info .reviews .text { font-size:12px; color:var(--ink-soft); }
#resultsArea .result-card .info .toggle-offers { margin-top:12px; display:inline-flex; align-items:center; gap:7px; background:var(--paper-2); color:var(--ink); border:1px solid var(--line); padding:7px 14px; border-radius:999px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; }
#resultsArea .result-card .info .toggle-offers:hover { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
#resultsArea .result-card .info .toggle-offers b { font-weight:800; }
#resultsArea .result-card .info .toggle-offers .pulse { width:6px; height:6px; border-radius:50%; background:var(--success); animation:tnxPulse 2s infinite; }
#resultsArea .result-card .info .toggle-offers .arr { transition:transform .25s; font-size:10px; }
@keyframes tnxPulse { 0%,100%{opacity:1;} 50%{opacity:.3;} }
#resultsArea .result-wrap.open .toggle-offers .arr { transform:rotate(180deg); }
#resultsArea .result-card .price-col { background:var(--paper-2); padding:16px; display:flex; flex-direction:column; justify-content:space-between; border-left:1px solid var(--line); }
#resultsArea .result-card .price-col .from { font-size:10px; color:var(--ink-faint); text-transform:uppercase; font-weight:600; }
#resultsArea .result-card .price-col .price { font-family:'Fraunces',Georgia,serif; font-size:28px; font-weight:800; color:var(--ink); margin-top:2px; }
#resultsArea .result-card .price-col .nights { font-size:11px; color:var(--ink-faint); margin-top:2px; }
#resultsArea .result-card .price-col .disc { font-size:11px; color:var(--success); font-weight:600; margin-top:4px; }
#resultsArea .result-card .price-col .actions { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
#resultsArea .result-card .price-col .actions .btn { height:40px; border:0; border-radius:999px; font-weight:800; cursor:pointer; font-family:inherit; font-size:13px; }
#resultsArea .result-card .price-col .actions .btn.primary { background:var(--accent); color:#fff; }
#resultsArea .result-card .price-col .actions .btn.ghost { background:transparent; border:1px solid var(--line); color:var(--ink); }

/* ── Панель операторов (раскрывается) ── */
#resultsArea .offers-panel { background:#fff; border:1px solid var(--accent); border-top:none; border-bottom-left-radius:18px; border-bottom-right-radius:18px; overflow:hidden; max-height:0; transition:max-height .28s ease; }
#resultsArea .result-wrap.open .result-card { border-color:var(--accent); border-bottom-left-radius:0; border-bottom-right-radius:0; }
#resultsArea .result-wrap.open .offers-panel { max-height:2000px; padding-bottom:12px; }
#resultsArea .offers-tabs { display:flex; gap:4px; padding:14px 18px 8px; border-bottom:1px solid var(--line); overflow-x:auto; }
#resultsArea .offers-tabs .ot { padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600; background:var(--paper-2); color:var(--ink-soft); cursor:pointer; white-space:nowrap; display:flex; align-items:center; gap:6px; }
#resultsArea .offers-tabs .ot.on { background:var(--ink); color:#fff; }
#resultsArea .offers-tabs .ot .cnt { font-size:10px; opacity:.8; }
#resultsArea .offers-table { width:100%; border-collapse:collapse; font-size:13px; }
#resultsArea .offers-table thead th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; color:var(--ink-faint); padding:10px 14px 6px; background:var(--paper); border-bottom:1px solid var(--line); }
#resultsArea .offers-table tbody tr { border-bottom:1px solid var(--line); transition:background .15s; }
#resultsArea .offers-table tbody tr:last-child { border-bottom:none; }
#resultsArea .offers-table tbody tr:hover { background:var(--paper); }
#resultsArea .offers-table td { padding:10px 14px; vertical-align:middle; }
#resultsArea .offers-table .op-logo { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:12px; }
#resultsArea .offers-table .op-logo .lg { width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:10px; flex-shrink:0; }
#resultsArea .offers-table .room-link { display:inline-flex; align-items:center; gap:8px; cursor:pointer; padding:4px 8px; border-radius:8px; background:rgba(255,90,54,.06); color:var(--ink); transition:background .15s; border:none; font-family:inherit; text-align:left; }
#resultsArea .offers-table .room-link:hover { background:rgba(255,90,54,.14); color:var(--accent); }
#resultsArea .offers-table .room-link .thumb { width:34px; height:26px; border-radius:4px; flex-shrink:0; background:var(--paper-2) center/cover; }
#resultsArea .offers-table .room-link .rn { font-size:12px; font-weight:600; display:block; }
#resultsArea .offers-table .room-link .rs { font-size:10px; color:var(--ink-faint); display:block; }
#resultsArea .offers-table .meal-pill { background:var(--paper-2); color:var(--ink-soft); padding:2px 8px; border-radius:6px; font-size:11px; font-weight:600; display:inline-block; }
#resultsArea .offers-table .meal-pill.uai { background:#fef3c7; color:#92400e; }
#resultsArea .offers-table .meal-pill.ai { background:#d1fae5; color:#065f46; }
#resultsArea .offers-table .when-cell .d { font-weight:600; font-size:12px; }
#resultsArea .offers-table .when-cell .n { font-size:10px; color:var(--ink-faint); margin-top:1px; }
#resultsArea .offers-table .price-cell { text-align:right; font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:16px; }
#resultsArea .offers-table .price-cell .strike { font-size:11px; font-weight:500; color:var(--ink-faint); text-decoration:line-through; display:block; }
#resultsArea .offers-table .pick-btn { background:var(--accent); color:#fff; border:none; padding:8px 16px; border-radius:999px; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; transition:all .15s; white-space:nowrap; }
#resultsArea .offers-table .pick-btn:hover { background:#e84d2c; }
#resultsArea .offers-foot { display:flex; justify-content:space-between; align-items:center; padding:12px 18px 4px; font-size:12px; color:var(--ink-faint); flex-wrap:wrap; gap:8px; }
#resultsArea .offers-foot .info-line { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
#resultsArea .offers-foot .info-line .ic { color:var(--success); }

/* ── Модалка номера (галерея фото + описание) ── */
#tnxRoomModal { position:fixed; inset:0; z-index:9500; background:rgba(7,21,39,.7); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; }
#tnxRoomModal.open { display:flex; }
#tnxRoomModal .rm-card { background:#fff; width:min(680px,calc(100vw - 32px)); max-height:90vh; overflow:auto; border-radius:22px; box-shadow:0 34px 90px rgba(0,0,0,.3); }
#tnxRoomModal .rm-gallery { position:relative; aspect-ratio:16/10; background:var(--paper-2,#f3efe6); }
#tnxRoomModal .rm-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
#tnxRoomModal .rm-nav { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.9); border:none; cursor:pointer; font-size:20px; display:flex; align-items:center; justify-content:center; }
#tnxRoomModal .rm-nav.prev { left:12px; } #tnxRoomModal .rm-nav.next { right:12px; }
#tnxRoomModal .rm-counter { position:absolute; bottom:12px; right:12px; background:rgba(13,27,42,.75); color:#fff; padding:4px 10px; border-radius:999px; font-size:12px; }
#tnxRoomModal .rm-close { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; background:rgba(13,27,42,.6); color:#fff; border:none; cursor:pointer; font-size:18px; z-index:2; }
#tnxRoomModal .rm-body { padding:22px 24px; }
#tnxRoomModal .rm-body h3 { font-family:'Fraunces',Georgia,serif; font-size:24px; margin:0 0 4px; color:#0d1b2a; }
#tnxRoomModal .rm-body .rm-sub { color:#8e8a82; font-size:13px; margin-bottom:14px; }
#tnxRoomModal .rm-body .rm-desc { font-size:14px; line-height:1.6; color:#4a5568; }
#tnxRoomModal .rm-thumbs { display:flex; gap:8px; padding:0 24px 18px; flex-wrap:wrap; }
#tnxRoomModal .rm-thumbs img { width:64px; height:48px; object-fit:cover; border-radius:6px; cursor:pointer; opacity:.6; border:2px solid transparent; }
#tnxRoomModal .rm-thumbs img.on { opacity:1; border-color:var(--accent,#ff5a36); }

@media(max-width:880px){
  #resultsArea .result-card { grid-template-columns:1fr; }
  #resultsArea .result-card .price-col { border-left:none; border-top:1px solid var(--line); }
}

/* ── Модалка краткой карточки отеля (клик по фото) ── */
.tnx-hc-modal { position:fixed; inset:0; z-index:9500; background:rgba(7,21,39,.7); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; }
.tnx-hc-modal.open { display:flex; }
.tnx-hc-modal .rm-card { background:#fff; width:min(640px,calc(100vw - 32px)); max-height:90vh; overflow:auto; border-radius:22px; box-shadow:0 34px 90px rgba(0,0,0,.3); }
.tnx-hc-modal .rm-gallery { position:relative; aspect-ratio:16/9; background:#f3efe6; }
.tnx-hc-modal .rm-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
.tnx-hc-modal .rm-nav { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.9); border:none; cursor:pointer; font-size:20px; display:flex; align-items:center; justify-content:center; }
.tnx-hc-modal .rm-nav.prev { left:12px; } .tnx-hc-modal .rm-nav.next { right:12px; }
.tnx-hc-modal .rm-counter { position:absolute; bottom:12px; right:12px; background:rgba(13,27,42,.75); color:#fff; padding:4px 10px; border-radius:999px; font-size:12px; }
.tnx-hc-modal .rm-close { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; background:rgba(13,27,42,.6); color:#fff; border:none; cursor:pointer; font-size:18px; z-index:2; }
.tnx-hc-modal .rm-thumbs { display:flex; gap:8px; padding:12px 24px 0; flex-wrap:wrap; }
.tnx-hc-modal .rm-thumbs img { width:60px; height:44px; object-fit:cover; border-radius:6px; cursor:pointer; opacity:.6; border:2px solid transparent; }
.tnx-hc-modal .rm-thumbs img.on { opacity:1; border-color:#ff5a36; }
.tnx-hc-modal .rm-body { padding:18px 24px 24px; }
.tnx-hc-modal .rm-body h3 { font-family:'Fraunces',Georgia,serif; font-size:26px; margin:2px 0 4px; color:#0d1b2a; }
.tnx-hc-modal .rm-body .rm-sub { color:#8e8a82; font-size:13px; }
.tnx-hc-modal .rm-body .rm-desc { font-size:14px; line-height:1.6; color:#4a5568; }
