.jb-body { margin: 0; font-family: var(--font-primary, "Plus Jakarta Sans", sans-serif); background: var(--bg-primary); color: var(--text-primary); }
.jb-wrap { display: flex; min-height: 100vh; }
.jb-side { width: 260px; min-height: 100vh; position: fixed; left: 0; top: 0; bottom: 0; z-index: 20; overflow: auto; background: linear-gradient(180deg, rgba(14,165,233,.16), transparent 28%), var(--bg-card); border-right: 1px solid var(--border); backdrop-filter: blur(16px); }
.jb-logo { display: flex; padding: 18px 18px 0; }
.jb-logo img, .jb-logo .site-wordmark { height: 42px; width: auto; max-width: 180px; }
.jb-kicker { margin: 8px 18px 4px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 800; color: #0284c7; }
.jb-side .adm-nav { padding: 8px 12px 20px; display: flex; flex-direction: column; gap: 4px; }
.jb-side .adm-link { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; color: var(--text-secondary); text-decoration: none; font-weight: 600; }
.jb-side .adm-link.active, .jb-side .adm-link:hover { background: linear-gradient(120deg, rgba(14,165,233,.18), rgba(124,58,237,.16)); color: var(--text-primary); }
.jb-main { margin-left: 260px; flex: 1; min-width: 0; }
.jb-body .adm-header { height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 22px; background: color-mix(in srgb, var(--bg-card) 82%, transparent); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 30; }
.jb-head-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.jb-body .adm-header h1 { margin: 0; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-toggle { display: none; width: 38px; height: 38px; border: 1px solid var(--border); background: var(--bg-secondary); border-radius: 12px; color: var(--text-primary); align-items: center; justify-content: center; font-size: 20px; cursor: pointer; flex: 0 0 38px; }
.jb-close { display: none; position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-secondary); color: var(--text-primary); align-items: center; justify-content: center; cursor: pointer; font-size: 16px; }
.adm-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 25; }
.adm-overlay.show { display: block; }
.jb-quick { display: none; }
.jb-body .adm-body { padding: 22px; }
.jb-body .header-title-mark { border-radius: 8px; }
.jb-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 16px; }
.jb-stat { position: relative; overflow: hidden; border: 0; border-radius: 18px; color: #fff; padding: 18px 18px 16px; min-height: 118px; box-shadow: 0 16px 30px rgba(15, 23, 42, .12); }
.jb-stat::after { content: ""; position: absolute; width: 90px; height: 90px; right: -16px; bottom: -24px; border-radius: 50%; background: rgba(255,255,255,.16); }
.jb-stat span { display: block; font-size: 12px; letter-spacing: .08em; font-weight: 800; opacity: .85; }
.jb-stat b { display: block; font-size: 28px; margin: 8px 0 6px; }
.jb-stat small { opacity: .85; }
.jb-stat i { position: absolute; right: 16px; top: 18px; width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.22); font-size: 20px; }
.jb-stat.revenue { background: linear-gradient(135deg, #7c3aed, #6366f1); }
.jb-stat.users { background: linear-gradient(135deg, #ec4899, #f472b6); }
.jb-stat.hotels { background: linear-gradient(135deg, #06b6d4, #38bdf8); }
.jb-stat.tours { background: linear-gradient(135deg, #10b981, #34d399); }
.jb-panel { background: color-mix(in srgb, var(--bg-card) 92%, transparent); border: 1px solid var(--border); border-radius: 18px; padding: 16px 18px; margin-bottom: 16px; box-shadow: 0 10px 30px rgba(15,23,42,.05); }
.jb-panel h3 { margin: 0; font-size: 16px; }
.jb-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.jb-period { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; font-size: 12px; color: var(--text-muted); font-weight: 700; }
.jb-period > button { min-width: 168px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid rgba(56,189,248,.45); background: linear-gradient(180deg, rgba(14,165,233,.12), rgba(124,58,237,.08)); color: var(--text-primary); border-radius: 14px; padding: 10px 12px; font: 700 13px/1 var(--font-primary, "Plus Jakarta Sans", sans-serif); cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25), 0 8px 20px rgba(37,99,235,.12); }
.jb-period > button i { color: #2563eb; }
.jb-period ul { position: absolute; top: calc(100% + 6px); right: 0; z-index: 5; margin: 0; padding: 6px; list-style: none; min-width: 190px; border-radius: 16px; border: 1px solid rgba(56,189,248,.35); background: color-mix(in srgb, var(--bg-card) 92%, #0ea5e9 8%); backdrop-filter: blur(16px); box-shadow: 0 16px 40px rgba(15,23,42,.16); }
.jb-period ul[hidden] { display: none; }
.jb-period li button { width: 100%; text-align: left; border: 0; background: transparent; color: var(--text-primary); border-radius: 10px; padding: 9px 10px; font: 650 13px/1 var(--font-primary, "Plus Jakarta Sans", sans-serif); cursor: pointer; }
.jb-period li button.is-on, .jb-period li button:hover { background: linear-gradient(120deg, rgba(37,99,235,.16), rgba(124,58,237,.16)); }
.jb-period li button.is-on::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: #2563eb; vertical-align: middle; }
.jb-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 14px; }
.jb-panel canvas { width: 100% !important; height: 240px !important; }
.td-card, .td-table-wrap { background: var(--bg-card); border: 1px solid var(--border); border-radius: 18px; padding: 16px; color: var(--text-primary); margin-bottom: 16px; }
.td-muted, .td-card span { color: var(--text-muted); font-size: 13px; }
.td-table-wrap, .jb-panel { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.td-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.td-table th, .td-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--border); font-size: 14px; }
.td-form { display: grid; gap: 10px; }
.td-form input, .td-form select, .td-form textarea { width: 100%; box-sizing: border-box; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-secondary); color: var(--text-primary); padding: 10px 12px; }
.td-btn { border: 0; border-radius: 999px; padding: 10px 16px; background: linear-gradient(120deg, #0ea5e9, #2563eb); color: #fff; font-weight: 700; cursor: pointer; }
.td-pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.td-pills a { color: var(--text-secondary); text-decoration: none; border: 1px solid var(--border); border-radius: 999px; padding: 6px 12px; background: var(--bg-card); }
.td-pills a.is-on { background: linear-gradient(120deg, #0ea5e9, #7c3aed); color: #fff; border-color: transparent; }
.td-note { color: #b45309; }
.jb-link { color: #2563eb; font-weight: 700; text-decoration: none; font-size: 13px; }
@media (max-width: 1024px) {
  .jb-side { transform: translateX(-110%); width: min(300px, 86vw); border-radius: 0 28px 28px 0; z-index: 40; transition: transform .28s ease; }
  .jb-side.show { transform: translateX(0); }
  .jb-side .desk-switch-nav { display: none; }
  .jb-main { margin-left: 0; }
  .adm-toggle, .jb-close { display: inline-flex; }
  .jb-quick { display: block; padding: 12px 12px 0; }
  .jb-quick .desk-switch-nav { display: flex; gap: 8px; margin: 0; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .jb-quick .desk-switch-nav::-webkit-scrollbar { display: none; }
  .jb-quick .desk-switch-link { flex: 0 0 76px; min-width: 76px; }
  .jb-stats { grid-template-columns: 1fr 1fr; }
  .jb-split { grid-template-columns: 1fr; }
  .jb-body .adm-body { padding: 14px; }
  .jb-body .adm-header { padding: 0 12px; height: 56px; }
  .jb-panel-head { flex-wrap: wrap; }
  .jb-panel-head select, .jb-panel-head label, .jb-period, .jb-period > button { width: 100%; }
  .jb-period { align-items: stretch; }
  .td-form { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .jb-stats { grid-template-columns: 1fr; }
  .jb-stat b { font-size: 24px; }
  .jb-panel canvas { height: 200px !important; }
  .jb-body .adm-header h1 { font-size: 14px; }
}

.tv-body { min-height: 100vh; color: #0f172a; background: #083344 center/cover no-repeat; font-family: "Plus Jakarta Sans", var(--font-primary, sans-serif); }
.tv-shade { min-height: 100vh; background: linear-gradient(180deg, rgba(6, 24, 38, .25), rgba(6, 24, 38, .45)); padding: 28px 64px 48px 16px; }
.tv-body .side-rail-widgets { z-index: 1400; }
.tv-wrap { width: min(1080px, 100%); margin: 0 auto; }
.tv-panel { position: relative; z-index: 8; }
.tv-results, .tv-kicker, #my-bookings { position: relative; z-index: 1; }
.tv-tabs { display: flex; gap: 6px; align-items: flex-end; margin: 0 22px -18px; position: relative; z-index: 1; }
.tv-tabs a { position: relative; text-decoration: none; color: #fff; font-weight: 700; font-size: 13px; padding: 9px 14px 22px; border-radius: 14px 14px 0 0; display: flex; gap: 6px; align-items: center; border: 0; }
.tv-tabs a i { font-size: 15px; }
.tv-tabs a.flights { background: linear-gradient(135deg, #38bdf8, #2563eb); }
.tv-tabs a.hotels { background: linear-gradient(135deg, #22d3ee, #0d9488); }
.tv-tabs a.tours { background: linear-gradient(135deg, #a78bfa, #7c3aed); }
.tv-tabs a.visa { background: linear-gradient(135deg, #fb7185, #e11d48); }
.tv-tabs a.is-on::after { content: ""; position: absolute; top: -6px; right: -6px; left: auto; bottom: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%230f172a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.2l3 3.1 6.2-6.6'/%3E%3C/svg%3E") center / 12px no-repeat; transform: none; box-shadow: 0 2px 8px rgba(15,23,42,.22); z-index: 3; }
.tv-brand { display: inline-flex; align-items: center; background: rgba(255,255,255,.9); border-radius: 14px; padding: 6px 10px; }
.tv-topbar .site-wordmark { height: 42px; width: auto; }
.tv-topbar .site-logo-for-light-theme { display: block; }
.tv-topbar .site-logo-for-dark-theme { display: none; }
.tv-card { position: relative; z-index: 2; overflow: visible; background: #fff; color: #0f172a; border-radius: 28px; padding: 30px 22px 22px; box-shadow: 0 20px 50px rgba(0,0,0,.18); }
.jb-quickbar { display: none; }
.tv-dash { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.94); color: #0f172a; text-decoration: none; font-weight: 700; font-size: 13px; box-shadow: 0 8px 18px rgba(15,23,42,.16); }
.tv-dash i { font-size: 16px; color: #2563eb; }
.tv-types { display: inline-flex; gap: 4px; margin-bottom: 16px; padding: 4px; background: #eef2f7; border-radius: 999px; }
.tv-types button, .tv-types a { border: 0; background: transparent; color: #475569; border-radius: 999px; padding: 6px 12px; font-weight: 700; font-size: 13px; line-height: 1; white-space: nowrap; cursor: pointer; text-decoration: none; font-family: inherit; }
.tv-types .is-on { background: linear-gradient(120deg, #2563eb, #7c3aed); color: #fff; box-shadow: 0 4px 12px rgba(37,99,235,.28); }
.tv-search { border: 0; border-radius: 999px; padding: 12px 18px; background: linear-gradient(120deg, #0ea5e9, #2563eb); color: #fff; font-weight: 800; cursor: pointer; }
.tv-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr; gap: 12px; }
.tv-grid-2 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr auto; gap: 12px; align-items: end; margin-top: 12px; }
.tv-field label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.tv-field input, .tv-field select, .tv-pay input, .tv-pay select, .tv-offer input, .tv-offer select { background: linear-gradient(180deg, rgba(248,251,255,.96), #fff); color: #0f172a; border: 1px solid rgba(56,189,248,.45); border-radius: 16px; padding: 11px 14px; width: 100%; box-sizing: border-box; box-shadow: 0 8px 18px rgba(14,165,233,.06); font: inherit; }
.tv-field input:focus, .tv-field select:focus, .tv-pay input:focus, .tv-pay select:focus, .tv-offer input:focus, .tv-offer select:focus { outline: none; border-color: #38bdf8; box-shadow: 0 0 0 4px rgba(14,165,233,.16); }
.tv-place-wrap { position: relative; z-index: 3; }
.tv-place-wrap:focus-within, .tv-place-wrap:has(.tv-suggest.is-open) { z-index: 60; }
.tv-place-wrap input { padding-right: 36px; }
.tv-caret { position: absolute; right: 4px; bottom: 6px; width: 32px; height: 32px; border: 0; background: transparent; color: #64748b; cursor: pointer; }
.tv-suggest { display: none; position: absolute; z-index: 80; left: 0; right: 0; top: calc(100% + 6px); background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; box-shadow: 0 18px 40px rgba(15,23,42,.16); max-height: 280px; overflow: auto; }
.tv-suggest.is-open { display: block; }
.tv-suggest button { display: block; width: 100%; text-align: left; border: 0; background: transparent; padding: 10px 12px; cursor: pointer; font-family: inherit; }
.tv-suggest button strong { display: block; font-size: 14px; color: #0f172a; }
.tv-suggest button span { display: block; margin-top: 2px; color: #64748b; font-size: 12px; }
.tv-suggest button.is-active, .tv-suggest button:hover { background: #eff6ff; }
.tv-suggest-empty { margin: 0; padding: 12px; color: #64748b; font-size: 13px; }
.tv-pay { display: flex; flex-direction: column; gap: 12px; min-width: 220px; align-items: stretch; }
.tv-pay form, .tv-offer form { display: flex; flex-direction: column; gap: 8px; }
.tv-pay > b { margin: 0 0 2px; }
.tv-pay .tv-search, .tv-offer .tv-search { width: auto; align-self: flex-start; margin-top: 8px; padding: 8px 16px; font-size: 13px; line-height: 1.2; border-radius: 12px; }
.tv-pay p { margin: 0; color: #64748b; font-size: 12px; }
.tv-kicker { margin: 16px 0 0; color: #fff; font-weight: 800; }
.tv-cards, .tv-checkout { margin-top: 16px; }
.tv-cards h2, .tv-checkout h2, #my-bookings h2 { margin: 0 0 8px; font-size: 18px; }
.tv-cards form, .tv-checkout form { margin-top: 10px; }
.tv-results { margin-top: 18px; display: grid; gap: 12px; }
.tv-offer { display: flex; justify-content: space-between; gap: 12px; align-items: center; background: #fff; border-radius: 16px; padding: 14px 16px; }
.tv-offer b { font-size: 18px; }
.tv-topbar { display: flex; justify-content: space-between; align-items: center; color: #fff; margin-bottom: 18px; }
@media (max-width: 800px) {
  .td-shell { grid-template-columns: 1fr; }
  .tv-grid, .tv-grid-2 { grid-template-columns: 1fr; }
  .tv-offer { flex-direction: column; align-items: stretch; }
  .tv-offer form, .tv-offer input, .tv-offer select { width: 100%; box-sizing: border-box; }
  .tv-tabs { margin: 0 10px -16px; overflow: visible; }
  .tv-tabs a { flex: 1 1 0; min-width: 0; justify-content: center; padding: 8px 4px 20px; font-size: 12px; gap: 4px; }
  .tv-tabs a.is-on::after { top: -4px; right: -2px; width: 16px; height: 16px; background-size: 10px; }
  .tv-shade { padding: 16px 46px 96px 12px; }
  .tv-card { padding: 22px 14px 16px; }
  .jb-quickbar { display: flex; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 1200; background: rgba(255,255,255,.94); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.8); border-radius: 22px; box-shadow: 0 12px 32px rgba(15,23,42,.16); padding: 8px 4px calc(8px + env(safe-area-inset-bottom)); justify-content: space-around; align-items: center; }
  .jb-quickbar a, .jb-quickbar button { appearance: none; border: 0; background: transparent; color: #475569; text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 2px; font: 600 10px/1 "Plus Jakarta Sans", system-ui, sans-serif; padding: 4px 6px; border-radius: 14px; cursor: pointer; }
  .jb-quickbar i { font-size: 22px; color: #f68b1e; }
  .jb-quickbar a.is-on { color: #c2410c; }
  .jb-quickbar a.is-on i { color: #ea580c; }
  .jb-body { padding-bottom: 84px; }
  .tv-body .support-chat-fab, .jb-body .support-chat-fab { display: none; }
  .tv-topbar .site-wordmark { height: 34px; }
  .tv-foot { padding-bottom: 96px; }
}
.tv-foot { background: #0f172a; color: #fff; margin-top: 28px; padding: 56px 20px 28px; }
.tv-foot-inner { width: min(1080px, 100%); margin: 0 auto; }
.tv-foot-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 28px; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.1); }
.tv-foot-logo .site-wordmark { height: 42px; width: auto; }
.tv-foot .site-logo-for-dark-theme { display: block; }
.tv-foot .site-logo-for-light-theme { display: none; }
.tv-foot-brand p { color: rgba(255,255,255,.62); font-size: 14px; line-height: 1.6; max-width: 320px; margin: 12px 0 18px; }
.tv-foot-social { display: flex; gap: 10px; }
.tv-foot-social a { width: 38px; height: 38px; border-radius: 12px; background: rgba(255,255,255,.1); color: #fff; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.tv-foot h4 { margin: 0 0 14px; font-size: 15px; }
.tv-foot ul { list-style: none; margin: 0; padding: 0; }
.tv-foot li { margin: 0 0 10px; }
.tv-foot a { color: rgba(255,255,255,.62); text-decoration: none; font-size: 14px; }
.tv-foot a:hover { color: #fff; }
.tv-foot li i { margin-right: 6px; }
.tv-foot-bottom { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 18px; }
.tv-foot-bottom p { margin: 0; color: rgba(255,255,255,.45); font-size: 13px; }
.tv-cal { position: absolute; z-index: 80; width: 280px; padding: 12px; border-radius: 18px; background: rgba(255,255,255,.96); border: 1px solid rgba(56,189,248,.35); box-shadow: 0 18px 40px rgba(15,23,42,.16); backdrop-filter: blur(12px); }
.tv-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-weight: 800; }
.tv-cal-head button, .tv-cal-foot button { border: 0; background: #eef6ff; color: #1d4ed8; border-radius: 10px; padding: 6px 8px; cursor: pointer; font: inherit; font-weight: 700; }
.tv-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.tv-cal-grid span { font-size: 11px; color: #64748b; font-weight: 700; }
.tv-cal-grid button { border: 0; background: transparent; border-radius: 10px; padding: 7px 0; cursor: pointer; font: inherit; }
.tv-cal-grid button.is-today { box-shadow: inset 0 0 0 2px #2563eb; font-weight: 800; }
.tv-cal-grid button.is-on { background: linear-gradient(135deg, #38bdf8, #2563eb); color: #fff; }
.tv-cal-grid button:hover { background: #e0f2fe; }
.tv-cal-grid button.is-on:hover { color: #fff; }
.tv-cal-grid button:disabled { opacity: 0.35; cursor: not-allowed; background: transparent; }
.tv-cal-head button:disabled { opacity: 0.35; cursor: not-allowed; }
.tv-cal-foot { display: flex; justify-content: space-between; margin-top: 8px; }
.tv-date-wrap { position: relative; }
.tv-date-wrap:focus-within { z-index: 70; }
.tv-field input.tv-date, .tv-pay input.tv-date, .tv-offer input.tv-date { padding-right: 42px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230ea5e9' stroke-width='1.8'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='3'/%3E%3Cpath d='M8 3.5v3M16 3.5v3M3.5 10h17'/%3E%3C/svg%3E"), linear-gradient(180deg, rgba(248,251,255,.96), #fff); background-repeat: no-repeat; background-position: right 12px center, 0 0; background-size: 18px 18px, auto; }
@media (max-width: 1000px) {
  .tv-foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .tv-foot-grid { grid-template-columns: 1fr; }
}
.tv-booking { padding: 12px 0; border-top: 1px solid rgba(148, 163, 184, .35); }
.tv-booking p { margin: 0 0 6px; }
.tv-status { font-weight: 800; color: #0369a1; }
.tv-status-ticketed { color: #047857; }
.tv-status-requested, .tv-status-reserved { color: #b45309; }
.tv-status-cancelled, .tv-status-refunded { color: #b91c1c; }
.tv-trail { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.tv-trail li { font-size: 13px; color: var(--text-secondary, #334155); }
.tv-trail time { display: inline-block; min-width: 108px; color: var(--text-muted, #64748b); font-size: 12px; }
.tv-trail span { display: block; margin-left: 108px; }
