:root {
  color-scheme: light;
  --brand-ink: #001219;
  --brand-navy: #001219;
  --brand-dark-teal: #005f73;
  --brand-teal: #0a9396;
  --brand-jade: #3F7F72;
  --brand-plum: #6D597A;
  --brand-mint: #94d2bd;
  --brand-cream: #e9d8a6;
  --brand-amber: #ee9b00;
  --brand-orange: #ca6702;
  --brand-burnt-orange: #bb3e03;
  --brand-red: #ae2012;
  --brand-dark-red: #9b2226;
  --neutral-page: #ffffff;
  --neutral-alt: #F7F9F9;
  --neutral-subtle: #EEF3F3;
  --neutral-border: #D7E1E1;
  --neutral-border-strong: #B8C7C8;
  --text: #23343B;
  --text-secondary: #52656D;
  --text-muted: #718087;
  --ink: #001219;
  --muted: #52656D;
  --line: #D7E1E1;
  --border: #D7E1E1;
  --border-strong: #B8C7C8;
  --panel: #ffffff;
  --surface: #F7F9F9;
  --page: #F7F9F9;
  --primary: #005f73;
  --secondary: #ee9b00;
  --accent: #0a9396;
  --on-primary: #ffffff;
  --on-secondary: #001219;
  --on-accent: #ffffff;
  --primary-text: var(--primary);
  --success: #3F7F72;
  --advanced: #6D597A;
  --warning: #ca6702;
  --danger: #ae2012;
  --critical: #9b2226;
  --focus-ring: #94d2bd;
  --focus-ring-dark: #e9d8a6;
  --shadow-soft: 0 12px 28px rgba(0, 18, 25, 0.06);
  --shadow-raised: 0 18px 44px rgba(0, 18, 25, 0.12);
  --sidebar-width: 248px;
  --admin-action-width: var(--sidebar-width, 248px);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--page); color: var(--text); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [contenteditable="true"]:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width, 248px) minmax(0, 1fr); background: linear-gradient(180deg, #F7FAF9 0%, #EFF7F5 100%); }
.sidebar { position: sticky; top: 0; align-self: start; min-height: 100vh; max-height: 100vh; overflow-y: auto; background: linear-gradient(180deg, #FFFFFF 0%, #F0F8F6 100%); color: var(--text); padding: 24px 18px; border-right: 1px solid #CFE0DC; box-shadow: 10px 0 28px rgba(0, 18, 25, 0.04); }
.sidebar-brand-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-bottom: 28px; }
.brandmark { display: flex; align-items: center; gap: 10px; font-weight: 700; margin-bottom: 28px; }
.sidebar-brand-row .brandmark { min-width: 0; margin-bottom: 0; }
.sidebar-toggle { flex: 0 0 auto; }
@media (min-width: 901px) {
  html.admin-sidebar-collapsed { --sidebar-width: 72px; --admin-action-width: 178px; }
  html.admin-sidebar-collapsed .sidebar { padding: 18px 10px; overflow-x: hidden; }
  html.admin-sidebar-collapsed .sidebar-brand-row { grid-template-columns: 1fr; justify-items: center; gap: 10px; margin-bottom: 16px; }
  html.admin-sidebar-collapsed .sidebar-brand-row .brandmark { width: 100%; justify-content: center; overflow: hidden; }
  html.admin-sidebar-collapsed .sidebar-brand-row .site-logo-app { max-width: 42px; max-height: 34px; }
  html.admin-sidebar-collapsed .sidebar-toggle { width: 42px; min-width: 42px; min-height: 38px; }
  html.admin-sidebar-collapsed .nav a { justify-content: center; min-height: 42px; padding: 10px; gap: 0; }
  html.admin-sidebar-collapsed .nav a span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
.brand-dot { width: 28px; height: 28px; border-radius: 7px; background: var(--primary); }
.site-logo { display: block; width: auto; height: auto; object-fit: contain; }
.site-logo-app { max-width: 170px; max-height: 34px; padding: 0; border-radius: 6px; background: transparent; }
.site-logo-marketing { max-width: 188px; max-height: 38px; }
.site-logo-footer { max-width: 180px; max-height: 36px; }
.site-logo-auth { max-width: 210px; max-height: 42px; }
.nav { display: grid; gap: 8px; }
.nav a { position: relative; color: var(--primary); padding: 10px 12px; border-radius: 7px; display: flex; align-items: center; gap: 9px; font-weight: 700; border: 1px solid transparent; }
.nav a .icon { color: var(--primary); opacity: 0.9; }
.nav a:hover { background: #EAF4F2; border-color: #CFE0DC; }
.nav a.active { background: var(--primary); color: #fff; }
.nav a.active .icon { color: #fff; opacity: 1; }
.icon { width: 1.1em; height: 1.1em; flex: 0 0 auto; vertical-align: -0.18em; }
.icon-tabler { stroke-width: 2; }
.submit-lock-overlay { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(17, 25, 35, 0.78); }
.submit-lock-overlay.is-visible { display: flex; }
.submit-lock-overlay-card { display: grid; justify-items: center; gap: 16px; max-width: 360px; color: #fff; text-align: center; }
.submit-lock-overlay-text { font-size: 16px; font-weight: 700; line-height: 1.45; }
.submit-lock-overlay-progress { min-height: 18px; font-size: 13px; line-height: 1.4; color: rgba(255,255,255,0.82); font-weight: 650; }
.loader { position: relative; display: block; width: 12px; height: 12px; margin: 14px auto; border-radius: 999px; color: #fff; animation: submit-lock-loader 1s linear infinite alternate; }
@keyframes submit-lock-loader {
  0% { box-shadow: -38px -12px, -14px 0, 14px 0, 38px 0; }
  33% { box-shadow: -38px 0, -14px -12px, 14px 0, 38px 0; }
  66% { box-shadow: -38px 0, -14px 0, 14px -12px, 38px 0; }
  100% { box-shadow: -38px 0, -14px 0, 14px 0, 38px -12px; }
}
.main { min-width: 0; background: linear-gradient(180deg, #FFFFFF 0%, #F8FAFA 42%, #EFF7F5 100%); }
.topbar { min-height: 68px; background: rgba(255, 255, 255, 0.94); border-bottom: 1px solid #CFE0DC; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; gap: 16px; box-shadow: 0 10px 26px rgba(0, 18, 25, 0.035); }
.topbar-identity { display: flex; align-items: center; gap: 11px; min-width: 0; }
.topbar-identity > div { min-width: 0; }
.topbar-identity strong,
.topbar-identity .eyebrow { overflow-wrap: anywhere; }
.topbar-org-mark,
.topbar-user-mark { display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); background: #fff; color: var(--primary); overflow: hidden; }
.topbar-org-mark { width: 38px; height: 38px; border-radius: 8px; }
.topbar-user-mark { width: 38px; height: 38px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #edf3f6; }
.topbar-org-mark img,
.topbar-user-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.topbar-org-mark img { object-fit: contain; padding: 5px; }
.app-notice-stack { display: grid; gap: 10px; padding: 16px 28px 0; }
.app-notice-stack[hidden] { display: none; }
.app-help-widget { position: fixed; right: 22px; bottom: 22px; z-index: 70; width: min(260px, calc(100vw - 32px)); }
.app-help-widget summary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; float: right; min-height: 42px; padding: 10px 13px; border-radius: 7px; background: var(--primary); color: #fff; cursor: pointer; box-shadow: 0 14px 34px rgba(24, 33, 43, 0.18); list-style: none; }
.app-help-widget summary::-webkit-details-marker { display: none; }
.app-help-widget[open] summary { margin-bottom: 8px; }
.app-help-menu { clear: both; display: grid; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 18px 48px rgba(24, 33, 43, 0.18); }
.app-help-menu a { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 8px 10px; border-radius: 7px; color: var(--ink); }
.app-help-menu a:hover { background: var(--neutral-subtle); color: var(--primary); }
.copy-toast { position: fixed; top: 20px; left: 50%; z-index: 99999; max-width: min(92vw, 460px); transform: translate(-50%, -10px); padding: 10px 20px; border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 999px; background: rgba(0, 95, 115, 0.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #ffffff; box-shadow: 0 16px 44px rgba(0, 18, 25, 0.28); font-size: 14px; font-weight: 700; line-height: 1.35; display: flex; align-items: center; gap: 8px; opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
.copy-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }
.copy-toast.toast-error { background: rgba(174, 32, 18, 0.94); }
.cookie-consent { position: fixed; left: 18px; right: 18px; bottom: 18px; z-index: 3300; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; width: min(820px, calc(100vw - 36px)); margin: 0 auto; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); box-shadow: 0 22px 60px rgba(0, 18, 25, 0.18); }
.cookie-consent strong { display: block; color: var(--ink); margin-bottom: 4px; }
.cookie-consent p { margin: 0; color: var(--text-secondary); font-size: 14px; line-height: 1.45; }
.cookie-consent-choices { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.cookie-consent-choices div,
.cookie-consent-choices label { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--neutral-subtle); color: var(--ink); font-size: 14px; font-weight: 700; }
.cookie-consent-choices strong { margin: 0; font-size: inherit; }
.cookie-consent-choices span { color: var(--text-secondary); font-weight: 600; }
.cookie-consent-choices input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.cookie-consent-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.content { padding: 28px 28px 92px; }
.focused-editor-page { display: grid; grid-template-columns: var(--sidebar-width, 248px) minmax(0, 1fr); min-height: 100vh; background: #F8FAFA; }
.focused-editor-main { min-height: 100vh; }
.focused-editor-main .content { width: 100%; max-width: none; padding: 14px 18px 92px; }
.hstack { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.spacer { flex: 1; }
.eyebrow { display: none !important; color: var(--primary); font-size: 13px; margin: 0 0 6px; font-weight: 700; }
.eyebrow.light { color: #dbe7ea; }
h1, h2, h3 { margin: 0; letter-spacing: 0; }
h1 { color: var(--brand-ink); font-size: 30px; }
h2 { color: var(--text); font-size: 20px; }
h3 { color: var(--text); font-size: 16px; }
h4 { margin: 0; font-size: 16px; letter-spacing: 0; }
.grid { display: grid; gap: 18px; }
.grid.two { grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); }
.builder-layout { grid-template-columns: 220px minmax(0, 1fr) minmax(320px, 420px); align-items: start; }
.editor-builder-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); align-items: start; }
.focused-trip-editor { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.focused-trip-editor > .grid { min-width: 0; }
.editor-controls-rail { position: sticky; top: 84px; align-self: start; max-height: calc(100vh - 104px); overflow-y: auto; padding-bottom: 4px; }
.editor-sticky-toolbar { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, 0.96); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); align-items: center; }
.editor-toolbar-title { min-width: 0; }
.editor-toolbar-title h1 { max-width: 100%; font-size: clamp(19px, 2vw, 26px); line-height: 1.12; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.editor-toolbar-title p { max-width: 100%; margin: 4px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.editor-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; max-width: min(100%, 920px); }
.editor-toolbar-actions .button,
.editor-toolbar-actions button { height: 36px; min-height: 36px; padding: 0 10px; align-self: center; line-height: 1; flex: 0 0 auto; }
.editor-toolbar-actions .icon { flex: 0 0 auto; font-size: 18px; line-height: 1; }
.editor-toolbar-actions .badge { min-height: 18px; padding: 0 6px; margin-left: 0; font-size: 12px; line-height: 16px; }
.editor-publish-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; height: 36px; }
.editor-publish-form .checkbox-row { margin: 0; }
.editor-settings-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--neutral-subtle); }
.editor-settings-panel > summary,
.editor-history-panel > summary { display: flex; align-items: center; gap: 9px; cursor: pointer; font-weight: 700; list-style: none; }
.editor-library-drawer summary { display: flex; align-items: center; gap: 9px; cursor: pointer; font-weight: 700; list-style: none; }
.editor-library-drawer summary::-webkit-details-marker { display: none; }
.editor-library-actions { display: grid; gap: 8px; margin-top: 12px; }
.editor-library-actions .button,
.editor-library-actions button { justify-content: flex-start; width: 100%; }
.editor-inspector-card .block-settings { display: none; }
.editor-inspector-card .block-settings.is-selected,
.editor-inspector-card .block-settings.is-active { display: grid; }
.inspector-section { display: grid; gap: 4px; margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--line); }
.inspector-section h3 { font-size: 15px; }
.inspector-primary-fields { align-items: end; }
.inspector-layout-fields summary { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.inspector-layout-fields summary span { color: var(--muted); font-size: 12px; font-weight: 400; }
.editor-settings-panel > summary::-webkit-details-marker,
.editor-history-panel > summary::-webkit-details-marker { display: none; }
.editor-settings-panel > summary::after,
.editor-history-panel > summary::after { content: "+"; margin-left: auto; color: var(--muted); font-size: 20px; line-height: 1; }
.editor-settings-panel[open] > summary,
.editor-history-panel[open] > summary { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.editor-settings-panel[open] > summary::after,
.editor-history-panel[open] > summary::after { content: "-"; }
.editor-history-heading { margin-bottom: 12px; }
.editor-action-card .hstack { align-items: stretch; }
.editor-action-card .button,
.editor-action-card button { justify-content: center; }
.editor-inspector-card { border-color: #CFE0DC; background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFA 100%); }
.editor-inspector-card .block-settings { display: none; }
.editor-inspector-card .block-settings.is-selected { display: block; }
.editor-inspector-card .block-settings:first-of-type { display: block; }
.editor-inspector-card:has(.block-settings.is-selected) .block-settings:first-of-type:not(.is-selected) { display: none; }
.inspector-layout-fields { background: #F8FBFA; }
.inspector-layout-fields > summary { color: var(--advanced); }
.editor-modal { width: min(760px, calc(100vw - 32px)); max-height: min(86vh, 920px); padding: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); box-shadow: 0 28px 80px rgba(0, 18, 25, 0.28); }
#ai-client-fit-modal { width: min(900px, calc(100vw - 32px)); }
.editor-modal[open] { position: fixed; margin: 0; overflow: auto; }
.editor-modal::backdrop { background: rgba(0, 18, 25, 0.24); }
.editor-modal-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #fff; cursor: move; user-select: none; }
.editor-modal-header button,
.editor-modal-header a,
.editor-modal-header input,
.editor-modal-header select,
.editor-modal-header textarea { cursor: auto; user-select: auto; }
.editor-modal > form,
.editor-modal > p,
.editor-modal > .notice { margin: 20px; }
.editor-modal .form-grid { max-width: none; }
.editor-modal > .editor-modal-body { margin: 20px; display: grid; gap: 16px; }
.editor-modal > .editor-media-modal-body { margin: 20px; display: grid; gap: 16px; }
.app-confirm-dialog { width: min(480px, calc(100vw - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); box-shadow: 0 28px 80px rgba(0, 18, 25, 0.28); }
.app-confirm-dialog[open] { position: fixed; }
.app-confirm-dialog::backdrop { background: rgba(0, 18, 25, 0.24); }
.app-confirm-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #fff; }
.app-confirm-body { display: grid; gap: 18px; padding: 20px; }
.app-confirm-body p { margin: 0; }
.app-confirm-actions { justify-content: flex-end; }
.hotel-review-list { display: grid; gap: 10px; }
.hotel-review-row { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.hotel-review-header { align-items: flex-start; }
.hotel-review-title { min-width: 180px; }
.hotel-review-title h3 { margin-bottom: 4px; }
.hotel-review-rerun-form { display: grid; grid-template-columns: minmax(240px, 320px) auto; align-items: end; gap: 8px; justify-content: flex-end; margin-left: auto; }
.hotel-review-url-field { display: grid; gap: 4px; min-width: 0; color: var(--muted); font-size: 13px; }
.hotel-review-rerun-form input { min-width: 0; }
.hotel-review-rerun-button { align-self: end; }
.hotel-review-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.builder-outline { position: sticky; top: 18px; display: grid; gap: 12px; }
.outline-nav { display: grid; gap: 8px; }
.outline-nav a, .outline-day { border: 1px solid var(--line); border-radius: 7px; padding: 9px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--surface); }
.outline-day { display: grid; justify-content: stretch; }
.outline-day small { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.metrics, .metrics-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.dashboard-metric-groups { display: grid; gap: 14px; }
.dashboard-metric-groups .metric-band { display: grid; gap: 10px; padding: 14px; border: 1px solid #C7DADB; border-radius: 8px; background: linear-gradient(135deg, #EFF7F5 0%, #FFFFFF 58%, #F7FBFA 100%); box-shadow: 0 12px 28px rgba(0, 18, 25, 0.05); }
.dashboard-metric-groups .metric-band:nth-of-type(2) { border-color: #E7D6A2; background: linear-gradient(135deg, #FFF7DF 0%, #FFFFFF 60%, #F8FBFA 100%); }
.dashboard-metric-groups .metric-band:nth-of-type(3) { border-color: #D6CCDA; background: linear-gradient(135deg, #F4F1F6 0%, #FFFFFF 58%, #F2F8F7 100%); }
.metric-band h2 { font-size: 16px; }
.metric-band .metrics { gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-metric-groups .metric { position: relative; overflow: hidden; background: rgba(255, 255, 255, 0.92); border-color: rgba(0, 95, 115, 0.18); box-shadow: 0 8px 18px rgba(0, 18, 25, 0.04); }
.dashboard-metric-groups .metric::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--brand-teal); }
.dashboard-metric-groups .metric-band:nth-of-type(2) .metric { border-color: rgba(202, 103, 2, 0.22); }
.dashboard-metric-groups .metric-band:nth-of-type(2) .metric::before { background: var(--brand-amber); }
.dashboard-metric-groups .metric-band:nth-of-type(3) .metric { border-color: rgba(109, 89, 122, 0.22); }
.dashboard-metric-groups .metric-band:nth-of-type(3) .metric::before { background: var(--brand-plum); }
.dashboard-metric-groups .metric span { color: var(--text-secondary); }
.dashboard-metric-groups .metric strong { color: var(--brand-ink); }
.dashboard-metric-groups .metric-link:hover { border-color: var(--primary); box-shadow: 0 14px 30px rgba(0, 95, 115, 0.13); transform: translateY(-1px); }
.dashboard-page.is-empty .dashboard-metric-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-page.is-empty .metric-band { align-content: start; min-height: 0; padding: 16px; }
.dashboard-page.is-empty .metric-band h2 { font-size: 17px; }
.dashboard-page.is-empty .metric-band p { margin: 0; color: var(--text-secondary); line-height: 1.5; }
.dashboard-primary-action { flex: 0 0 auto; }
.dashboard-empty-state { display: grid; gap: 18px; }
.dashboard-empty-state h2 { margin-bottom: 6px; }
.dashboard-empty-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dashboard-empty-features article { display: grid; align-content: start; gap: 7px; min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: linear-gradient(180deg, #fff 0%, #F8FBFA 100%); }
.dashboard-empty-features article > span { color: var(--primary); font-size: 21px; }
.dashboard-empty-features strong { color: var(--brand-ink); }
.dashboard-empty-features p { margin: 0; color: var(--text-secondary); line-height: 1.45; }
.dashboard-empty-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.access-denied-card { width: min(100%, 620px); display: grid; gap: 12px; margin-top: 28px; }
.content, .card, .report-section, .metric-band { min-width: 0; }
.card { background: rgba(255, 255, 255, 0.96); border: 1px solid var(--line); border-radius: 8px; padding: 18px; box-shadow: 0 10px 24px rgba(0, 18, 25, 0.035); }
.max { max-width: 760px; }
.metrics-grid { display: grid; gap: 14px; }
.metric { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px; }
.metric span { color: var(--muted); font-size: 13px; font-weight: 700; }
.metric strong { display: block; font-size: 28px; margin-top: 8px; }
.metric-link:hover { border-color: var(--primary); box-shadow: var(--shadow-soft); }
.table-wrap { max-width: 100%; min-width: 0; overflow-x: auto; }
.responsive-table { max-width: 100%; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 8px; }
.responsive-table > .table { margin-top: 0; }
.table { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-top: 16px; }
.table th, .table td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.table th { color: var(--text-secondary); background: var(--neutral-subtle); font-weight: 700; font-size: 13px; }
.compact-table th, .compact-table td { padding: 11px 12px; }
.trip-title-link { color: var(--ink); text-decoration: none; }
.trip-title-link:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.badge { display: inline-flex; align-items: center; gap: 5px; min-height: 24px; padding: 2px 9px; border-radius: 999px; border: 1px solid transparent; background: var(--neutral-subtle); color: var(--text-secondary); font-size: 13px; font-weight: 700; }
.badge.info { background: #EAF4F8; border-color: #CBE3ED; color: var(--primary); }
.badge.draft, .badge.disabled, .badge.paused, .badge.archived { background: #EEF1F2; border-color: var(--neutral-border); color: var(--text-secondary); }
.badge.published, .badge.active, .badge.enabled { background: #E6F4EF; border-color: #C7E5DC; color: var(--primary); }
.badge.open { background: transparent; border: 0; padding: 0; min-height: 0; border-radius: 0; color: var(--primary); }
.badge.sold, .badge.confirmed, .badge.success { background: #E8F3F0; border-color: #C9E2DC; color: var(--success); }
.badge.review, .badge.pending { background: #FFF5D6; border-color: #EBD99D; color: #7A4C00; }
.badge.warning, .badge.attention, .badge.lost { background: #FFF1E5; border-color: #E9C5A4; color: var(--brand-burnt-orange); }
.badge.failed, .badge.error { background: #FFF0EF; border-color: #E8B9B4; color: var(--danger); }
.badge.critical { background: #FDEBEB; border-color: #E1AAA9; color: var(--critical); }
.button, button { border: 1px solid var(--primary); border-radius: 7px; background: var(--primary); color: #fff; padding: 10px 13px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; max-width: 100%; cursor: pointer; font-weight: 700; line-height: 1.2; text-align: center; vertical-align: middle; overflow-wrap: anywhere; transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease; }
.button:hover, button:hover { background: var(--brand-ink); border-color: var(--brand-ink); color: #fff; }
.button:active, button:active { background: var(--brand-ink); border-color: var(--brand-ink); }
.button.secondary, button.secondary { background: #fff; color: var(--primary); border-color: var(--primary); }
.button.secondary:hover, button.secondary:hover { background: var(--neutral-subtle); color: var(--primary); border-color: var(--primary); }
.button.secondary:active, button.secondary:active { background: #DCE8E8; }
.button.active, .button.secondary.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.button.warning, button.warning { background: var(--secondary); border-color: transparent; color: var(--brand-ink); }
.button.warning:hover, button.warning:hover { background: var(--brand-orange); border-color: transparent; color: var(--brand-ink); }
.button.tertiary, button.tertiary { background: transparent; border-color: transparent; color: var(--primary); padding-left: 6px; padding-right: 6px; }
.button.tertiary:hover, button.tertiary:hover { background: var(--neutral-subtle); color: var(--brand-ink); text-decoration: underline; text-underline-offset: 3px; }
.button.danger, button.danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.button.danger:hover, button.danger:hover { background: var(--critical); border-color: var(--critical); color: #fff; }
button:disabled, .button[aria-disabled="true"] { background: var(--neutral-border-strong); border-color: var(--neutral-border-strong); color: #fff; opacity: 1; cursor: not-allowed; }
.button.secondary:disabled, button.secondary:disabled { background: var(--neutral-subtle); border-color: var(--line); color: var(--muted); opacity: 0.65; cursor: not-allowed; }
.button.compact, button.compact { min-height: 34px; padding: 7px 10px; }
.button > span, button > span { min-width: 0; }
.button .icon + span, button .icon + span { overflow-wrap: anywhere; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: 34px; min-width: 34px; max-width: 34px; padding-left: 0; padding-right: 0; flex: 0 0 auto; font-weight: 700; }
.icon-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.filter-actions, .form-actions, .page-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-actions .button, .filter-actions button,
.form-actions .button, .form-actions button,
.page-actions .button, .page-actions button { width: auto; flex: 0 1 auto; }
#audit-events .filter-actions { padding-bottom: 12px; }
.trips-filter-form { gap: 12px; }
.trips-filter-controls { display: grid; grid-template-columns: minmax(120px, 0.72fr) minmax(160px, 1fr) minmax(145px, 0.82fr) minmax(130px, 0.62fr) minmax(130px, 0.62fr) minmax(190px, 1fr); gap: 12px; align-items: end; }
.trips-filter-controls.no-account-manager { grid-template-columns: minmax(120px, 0.72fr) minmax(145px, 0.82fr) minmax(130px, 0.62fr) minmax(130px, 0.62fr) minmax(190px, 1fr); }
.trips-filter-controls .checkbox-row { min-height: 40px; align-content: center; }
.trips-filter-search { max-width: 760px; }
.fit-button { justify-self: start; width: auto; }
.pagination { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.pagination-top { margin: 14px 0 0; }
.pagination-inline { margin-top: 0; justify-content: flex-end; }
.page-heading { align-items: flex-start; padding: 16px; border: 1px solid #CFE0DC; border-radius: 8px; background: linear-gradient(135deg, #EFF7F5 0%, #FFFFFF 68%); box-shadow: 0 12px 28px rgba(0, 18, 25, 0.04); }
.page-heading .muted { color: var(--text-secondary); }
.trip-create-page { justify-items: center; }
.trip-create-stack { width: min(100%, 920px); display: grid; gap: 18px; }
.trip-create-upload { order: 1; }
.trip-create-saved-plan { order: 2; }
.trip-create-copy { order: 3; }
.trip-create-dev { order: 99; }
.trip-create-stack .card > .button { justify-self: start; margin-top: 12px; }
.centered-admin-page { justify-items: center; }
.centered-admin-stack, .admin-page-stack { width: min(100%, 980px); display: grid; gap: 18px; }
.admin-page-stack--focused { width: min(100%, 860px); }
.admin-page-stack--standard { width: min(100%, 980px); }
.admin-page-stack--wide { width: min(100%, 1080px); }
.profile-admin-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: 18px; align-items: start; }
label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.upload-panel { display: grid; gap: 9px; color: var(--muted); font-size: 13px; font-weight: 700; }
.upload-panel-label { display: block; }
.upload-preview { min-height: 86px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; display: grid; place-items: center; overflow: hidden; color: var(--primary); }
.upload-preview img { display: block; max-width: 100%; max-height: 112px; object-fit: contain; }
.upload-preview-logo { min-height: 94px; padding: 12px; }
.upload-preview-logo span { color: var(--ink); font-size: 18px; font-weight: 700; text-align: center; overflow-wrap: anywhere; }
.upload-preview-avatar { width: 112px; height: 112px; min-height: 112px; border-radius: 999px; }
.upload-preview-avatar img { width: 100%; height: 100%; object-fit: cover; }
.upload-preview-avatar span,
.profile-preview-initials { display: grid; place-items: center; width: 100%; height: 100%; color: var(--primary); background: #edf3f6; font-size: 28px; font-weight: 700; }
.upload-dropzone { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 88px; padding: 15px; border: 2px dashed #6d919c; border-radius: 8px; background: #f0f7f8; color: var(--ink); cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0, 95, 115, 0.04); transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease; }
.upload-dropzone:hover,
.upload-dropzone:focus-within,
.upload-dropzone.is-dragover { border-color: var(--primary); background: #e2f2ef; box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent), #fff 28%), 0 14px 28px rgba(0, 95, 115, 0.12); }
.upload-dropzone .icon { position: relative; z-index: 1; color: var(--primary); font-size: 24px; }
.upload-dropzone > span { position: relative; z-index: 1; pointer-events: none; }
.upload-dropzone strong { display: block; color: var(--ink); font-size: 14px; line-height: 1.35; }
.upload-dropzone small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.upload-dropzone [data-upload-file-name], .upload-selected-file { display: block; margin-top: 6px; color: var(--primary); font-size: 13px; line-height: 1.35; font-weight: 700; overflow-wrap: anywhere; }
.upload-dropzone [data-upload-file-name].is-empty { color: var(--muted); font-weight: 600; }
.upload-dropzone input[type="file"] { position: absolute; inset: 0; z-index: 2; opacity: 0; cursor: pointer; }
.upload-dropzone input.visible-file-input { position: static; inset: auto; z-index: 1; grid-column: 2; width: 100%; max-width: 100%; opacity: 1; cursor: pointer; }
.itinerary-dropzone input.visible-file-input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; max-width: none; opacity: 0.01; cursor: pointer; }
.media-dropzone { min-height: 150px; align-items: center; }
.media-dropzone .icon { font-size: 30px; }
.media-advanced-fields { border: 0; padding: 0; background: transparent; }
.media-advanced-fields summary { font-size: 12px; }
.media-advanced-fields .form-grid { margin-top: 8px; gap: 10px; }
.media-rights-fields { align-items: stretch; }
.media-rights-fields label { grid-template-rows: auto 1fr; }
.media-rights-fields input,
.media-rights-fields textarea { min-height: 76px; }
.profile-preview-photo { display: block; width: 86px; height: 86px; border-radius: 999px; border: 1px solid var(--line); object-fit: cover; background: #edf3f6; }
.checkbox-row { align-content: end; grid-template-columns: auto 1fr; align-items: center; min-height: 64px; }
.checkbox-row.compact-checkbox { min-height: 40px; align-content: center; }
.checkbox-row input { width: auto; }
.plain-fieldset { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.plain-fieldset legend { padding: 0 6px; font-weight: 700; }
.plain-fieldset .checkbox-row { min-height: 0; margin: 0; }
input, select, textarea { width: 100%; border: 1px solid var(--border-strong); border-radius: 7px; background: #fff; color: var(--text); padding: 10px 11px; }
input::placeholder, textarea::placeholder { color: var(--text-muted); opacity: 1; }
input:hover, select:hover, textarea:hover { border-color: var(--primary); }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus-ring), #fff 45%); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 3px #FFE0DC; }
textarea { resize: vertical; min-height: 92px; }
form { margin: 0; }
.form-grid { display: grid; gap: 14px; margin-top: 16px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 12px; }
.detail-grid > div { padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.detail-grid strong { display: block; margin-top: 3px; color: var(--ink); overflow-wrap: anywhere; }
.detail-grid.compact { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.import-found-list { display: grid; gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
.import-found-list li { display: grid; grid-template-columns: minmax(92px, max-content) minmax(0, 1fr); gap: 10px; align-items: baseline; }
.import-found-list span { color: var(--muted); font-size: 13px; }
.import-found-list strong { min-width: 0; color: var(--ink); font-weight: 500; overflow-wrap: anywhere; }
.dismissible-notice-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dismissible-notice-close { margin-left: auto; line-height: 1; }
.admin-section-title { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.admin-section-title .icon { color: var(--primary); font-size: 22px; margin-top: 2px; }
.admin-help { margin: 6px 0 0; color: var(--muted); line-height: 1.45; }
.admin-action-row { justify-content: flex-end; align-items: center; }
.admin-action-row .inline-form { justify-content: flex-end; }
.admin-action-layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--admin-action-width); gap: 14px; align-items: start; }
.admin-action-stack { display: grid; gap: 8px; justify-items: end; align-content: start; }
.admin-action-stack .button,
.admin-action-stack button,
.admin-action-stack .inline-form { width: 100%; }
.admin-action-stack .inline-form { display: grid; }
.admin-action-stack .button,
.admin-action-stack button { justify-content: flex-start; }
.organization-join-details { margin-top: 0; grid-template-columns: minmax(118px, 160px) minmax(0, 1fr); }
.organization-join-details .is-wide { min-width: 0; }
.invite-member-form { margin-top: 16px; }
.invite-member-fields { min-width: 0; display: grid; grid-template-columns: minmax(150px, 0.85fr) minmax(220px, 1.25fr) minmax(180px, 0.9fr); gap: 14px; align-items: end; }
.invite-member-fields .form-grid { margin-top: 0; }
.invite-member-form .admin-action-stack { align-self: end; }
.organization-reassign-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.8fr) var(--admin-action-width); gap: 14px; align-items: end; }
.form-action-slot { display: flex; justify-content: flex-end; align-items: end; }
.form-action-slot button,
.admin-fixed-action {
  width: var(--admin-action-width);
  min-width: var(--admin-action-width);
  max-width: var(--admin-action-width);
  min-height: 34px;
  height: 34px;
  padding: 7px 10px;
  justify-content: flex-start;
  line-height: 1.2;
}
.admin-fixed-action .button-label,
.admin-fixed-action span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table td .admin-fixed-action { display: flex; margin-left: auto; }
.danger-zone { border-color: #E8B9B4; background: #FFF5F3; }
.inline-form .button-label, .button .button-label, button .button-label { white-space: nowrap; }
.day { display: grid; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.block { border-left: 4px solid var(--primary); background: var(--neutral-subtle); padding: 10px 12px; border-radius: 0 7px 7px 0; }
.highlight-block { border-left-color: var(--secondary); background: #FFF7DF; }
.block-align-center { text-align: center; }
.block-align-right { text-align: right; }
.block-spacing-compact { margin-top: 6px; margin-bottom: 6px; }
.block-spacing-spacious { margin-top: 22px; margin-bottom: 22px; padding-top: 18px; padding-bottom: 18px; }
.block.block-variant-soft, .accordion-block.block-variant-soft { border-left-color: var(--primary); background: #eef6f4; }
.block.block-variant-bordered, .accordion-block.block-variant-bordered { border: 1px solid var(--line); border-left: 4px solid var(--accent); background: #fff; }
.block.block-variant-accent, .accordion-block.block-variant-accent { border-left-color: var(--primary); background: color-mix(in srgb, var(--accent), #fff 86%); }
.gallery-block.block-variant-bordered figure { border: 1px solid var(--line); border-radius: 7px; padding: 8px; background: #fff; }
.gallery-block.block-variant-soft { padding: 10px; border-radius: 7px; background: #eef6f4; }
.gallery-block.block-variant-accent { padding: 10px; border-radius: 7px; background: color-mix(in srgb, var(--accent), #fff 86%); }
.gallery-block.block-spacing-compact { gap: 7px; margin-top: 8px; margin-bottom: 8px; }
.gallery-block.block-spacing-spacious { gap: 18px; margin-top: 24px; margin-bottom: 24px; }
.gallery-block.gallery-layout-mosaic { grid-template-columns: repeat(6, 1fr); }
.gallery-block.gallery-layout-mosaic figure { grid-column: span 2; }
.gallery-block.gallery-layout-mosaic figure:first-child { grid-column: span 3; grid-row: span 2; }
.gallery-block.gallery-layout-wide { grid-template-columns: 1fr; }
.gallery-block.gallery-layout-wide button { aspect-ratio: 16 / 9; }
.gallery-block.image-crop-wide button { aspect-ratio: 16 / 9; }
.gallery-block.image-crop-square button { aspect-ratio: 1 / 1; }
.gallery-block.image-crop-portrait button { aspect-ratio: 4 / 5; }
.gallery-block.image-crop-cinematic button { aspect-ratio: 21 / 9; }
.gallery-block.image-position-top img { object-position: center top; }
.gallery-block.image-position-bottom img { object-position: center bottom; }
.gallery-block.image-position-left img { object-position: left center; }
.gallery-block.image-position-right img { object-position: right center; }
.gallery-block figure.image-position-top img { object-position: center top; }
.gallery-block figure.image-position-bottom img { object-position: center bottom; }
.gallery-block figure.image-position-left img { object-position: left center; }
.gallery-block figure.image-position-right img { object-position: right center; }
.viewer-mode-pdf .gallery-block figure.image-pdf-position-top img { object-position: center top; }
.viewer-mode-pdf .gallery-block figure.image-pdf-position-bottom img { object-position: center bottom; }
.viewer-mode-pdf .gallery-block figure.image-pdf-position-left img { object-position: left center; }
.viewer-mode-pdf .gallery-block figure.image-pdf-position-right img { object-position: right center; }
.animation-fade { animation: blockFadeIn 360ms ease both; }
.animation-slide { animation: blockSlideIn 420ms ease both; }
.animation-reveal { animation: blockReveal 460ms ease both; }
.accordion-block { border: 1px solid var(--line); border-radius: 7px; background: #fff; overflow: hidden; }
.accordion-block summary { cursor: pointer; padding: 12px 14px; font-weight: 700; color: var(--primary); }
.accordion-block summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: -3px; }
.accordion-block p { margin: 0; padding: 0 14px 14px; }
.structured-block { border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 7px; background: #fff; padding: 13px 14px; display: grid; gap: 10px; }
.viewer .structured-block,
.viewer .hotel-comparison-region,
.viewer .summary-entry,
.viewer .schedule-list,
.viewer .document-row { scroll-margin-top: 190px; }
.proposal-day .structured-block { border: 0; border-top: 1px solid #dfe4e7; border-radius: 0; background: transparent; padding: 26px 0; box-shadow: none; }
.proposal-day .structured-block:first-of-type { border-top: 0; }
.structured-block .eyebrow { margin: 0; }
.structured-block ul { margin: 0; padding-left: 20px; display: grid; gap: 7px; }
.viewer .itinerary-item-header { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; }
.viewer .item-icon { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 0; background: transparent; color: var(--primary); }
.viewer .item-type { margin: 0 0 5px; color: var(--viewer-text-accent); font-size: var(--viewer-size-xs); line-height: 1.25; font-weight: var(--viewer-weight-bold); text-transform: uppercase; letter-spacing: 0.06em; }
.viewer .itinerary-item h3,
.viewer .itinerary-item h4,
.viewer .map-card h4,
.viewer .document-row h4 { margin: 0; color: var(--viewer-text-primary); font-size: clamp(22px, 1.6vw, 24px); line-height: 1.3; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.viewer .item-summary { margin: 7px 0 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.5; font-weight: var(--viewer-weight-regular); }
.day-stay-link { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: 16px; align-items: stretch; margin: 0; padding: 24px 0; border-top: 1px solid #dfe4e7; clear: both; }
.day-stay-link:first-of-type { border-top: 0; }
.day-stay-link-image { display: block; min-height: 142px; border-radius: 8px; overflow: hidden; border: 1px solid #dce6ee; background: #eef1f4; }
.day-stay-link-image img { width: 100%; height: 100%; min-height: 142px; object-fit: cover; display: block; }
.day-stay-link-copy { min-width: 0; display: grid; align-content: start; gap: 8px; }
.viewer .day-stay-link h4 { margin: 0; color: var(--viewer-text-primary); font-size: clamp(21px, 1.45vw, 23px); line-height: 1.3; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.viewer .day-stay-link h4 a { color: inherit; text-decoration: none; }
.viewer .day-stay-link h4 a:hover,
.viewer .day-stay-link h4 a:focus-visible { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.day-stay-link-details { margin: 4px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.day-stay-link-details div { min-width: 0; border: 1px solid #dce6ee; border-radius: 7px; background: #fff; overflow: hidden; }
.viewer .day-stay-link-details dt { margin: 0; padding: 7px 9px; border-bottom: 1px solid #dce6ee; background: #eef4f8; color: var(--viewer-text-label); font-size: var(--viewer-size-label); line-height: 1.4; font-weight: var(--viewer-weight-semibold); }
.viewer .day-stay-link-details dd { margin: 0; padding: 9px; color: var(--viewer-text-primary); font-size: var(--viewer-size-summary); line-height: 1.45; overflow-wrap: anywhere; }
.day-stay-link .button { width: fit-content; margin-top: 2px; }
.item-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 44px; margin-top: 20px; }
.detail-group.is-wide { grid-column: 1 / -1; }
.viewer .detail-group-title { margin: 0 0 8px; color: var(--viewer-text-secondary); font-size: var(--viewer-size-group-title); line-height: 1.35; font-weight: var(--viewer-weight-semibold); text-transform: none; letter-spacing: 0; }
.viewer .detail-list { margin: 0; }
.detail-list > div { display: grid; grid-template-columns: minmax(110px, 0.55fr) minmax(0, 1fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid #edf0f2; }
.viewer .detail-list dt { color: var(--viewer-text-label); font-size: var(--viewer-size-label); line-height: 1.45; font-weight: var(--viewer-weight-semibold); }
.viewer .detail-list dd { margin: 0; color: var(--viewer-text-primary); font-size: var(--viewer-size-body); line-height: 1.58; font-weight: var(--viewer-weight-regular); overflow-wrap: anywhere; }
.viewer .item-description,
.viewer .item-description p,
.viewer .structured-body,
.viewer .structured-body p,
.viewer .proposal-day > p,
.viewer .lead { margin-top: 18px; color: var(--viewer-text-secondary); font-size: var(--viewer-size-body); line-height: var(--viewer-line-body); font-weight: var(--viewer-weight-regular); max-width: 72ch; }
.structured-content-blocks { display: grid; gap: 18px; margin-top: 18px; max-width: 78ch; }
.structured-content-block { display: grid; gap: 9px; color: var(--viewer-text-secondary); font-size: var(--viewer-size-body); line-height: var(--viewer-line-body); }
.viewer .structured-content-title { margin: 0; color: var(--viewer-text-primary); font-size: var(--viewer-size-group-title); line-height: 1.35; font-weight: var(--viewer-weight-semibold); text-transform: none; letter-spacing: 0; }
.structured-content-block p { margin: 0; }
.structured-content-block p + p { margin-top: 10px; }
.structured-content-block .structured-content-list,
.structured-content-block ul { margin: 0; padding-left: 20px; display: grid; gap: 7px; }
.structured-content-detail-list { margin-top: 2px; }
.structured-table-wrap { width: 100%; overflow-x: auto; border: 1px solid #dce6ee; border-radius: 7px; background: #fff; }
.structured-table { width: 100%; border-collapse: collapse; min-width: 420px; }
.structured-table th,
.structured-table td { padding: 9px 10px; border-bottom: 1px solid #edf0f2; text-align: left; vertical-align: top; color: var(--viewer-text-primary); font-size: var(--viewer-size-summary); line-height: 1.45; }
.structured-table th { background: #eef4f8; color: var(--viewer-text-label); font-weight: var(--viewer-weight-semibold); }
.structured-table tbody tr:last-child td { border-bottom: 0; }
[dir="rtl"] .structured-table th,
[dir="rtl"] .structured-table td,
[dir="rtl"] .structured-table-wrap,
[dir="rtl"] .detail-list dt,
[dir="rtl"] .detail-list dd,
[dir="rtl"] .detail-list div,
[dir="rtl"] .item-description { text-align: right; direction: rtl; }
.instruction-callout {
  --callout-accent: var(--primary);
  --callout-border: #d7e4eb;
  --callout-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 5h8'/%3E%3Cpath d='M13 9h5'/%3E%3Cpath d='M13 15h8'/%3E%3Cpath d='M13 19h5'/%3E%3Cpath d='M3 5h6v6H3z'/%3E%3Cpath d='M3 15h6v6H3z'/%3E%3C/svg%3E");
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
  margin-top: 20px;
  padding: 16px 18px;
  border: 1px solid var(--callout-border);
  border-radius: 7px;
  background: #f4f7f8;
}
.instruction-callout::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  grid-column: 1;
  grid-row: 1 / span 20;
  background: var(--callout-accent);
  -webkit-mask: var(--callout-icon) center / contain no-repeat;
  mask: var(--callout-icon) center / contain no-repeat;
}
.instruction-callout-instruction { --callout-border: #d7e4eb; }
.instruction-callout-important {
  --callout-accent: #8a5a00;
  --callout-border: #ead6a8;
  --callout-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3C/svg%3E");
}
.viewer .instruction-callout strong { display: block; grid-column: 2; margin-bottom: 6px; color: var(--viewer-text-accent); font-size: var(--viewer-size-sm); line-height: 1.3; font-weight: var(--viewer-weight-bold); text-transform: none; letter-spacing: 0; }
.viewer .instruction-callout p,
.viewer .instruction-callout ul,
.viewer .instruction-callout [contenteditable="true"] { grid-column: 2; }
.viewer .instruction-callout p { margin: 0; color: var(--viewer-text-primary); font-size: var(--viewer-size-body); line-height: 1.55; }
.viewer .structured-details { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 9px; align-items: stretch; }
.viewer .structured-details div { border: 1px solid #dce6ee; border-radius: 7px; padding: 0; background: #fff; display: grid; grid-template-rows: auto 1fr; min-height: 82px; overflow: hidden; }
.viewer .structured-details div,
.viewer .summary-field-grid div { min-width: 0; }
.viewer .structured-details dt { margin: 0; padding: 8px 10px; border-bottom: 1px solid #dce6ee; background: #eef4f8; color: var(--viewer-text-label); font-size: var(--viewer-size-label); line-height: 1.45; font-weight: var(--viewer-weight-semibold); text-transform: none; letter-spacing: 0; }
.viewer .structured-details dd { margin: 0; padding: 11px 10px 12px; color: var(--viewer-text-primary); font-size: var(--viewer-size-body); line-height: 1.5; font-weight: var(--viewer-weight-regular); overflow-wrap: anywhere; display: flex; align-items: center; }
.viewer .structured-details dd a { font-weight: var(--viewer-weight-semibold); }
.structured-block-image { width: 100%; max-height: 210px; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); background: #eef1f4; }
.viewer .timing-chip { margin: 0; display: inline-flex; width: fit-content; align-items: center; gap: 7px; min-height: 30px; padding: 5px 9px; border-radius: 999px; background: #eef6f4; color: var(--viewer-text-accent); font-size: 14px; font-weight: var(--viewer-weight-semibold); }
.timing-chip .icon { font-size: 15px; }
.service-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.service-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; background: #edf0f5; color: #42515d; font-size: 14px; font-weight: 600; }
.service-voucher { background: #e8f3f0; color: #1f6357; }
.service-reference, .service-responsibility { background: #edf4ff; color: #315f9d; }
.service-mandatory { background: #fff0f0; color: #8f2424; }
.service-optional { background: #edf0f5; color: #42515d; }
.structured-cover, .structured-destination, .structured-hotel, .structured-activity, .structured-guidance, .structured-weather, .structured-custom_section { border-left-color: var(--primary); }
.structured-transport, .structured-map, .structured-flight, .structured-schedule { border-left-color: #4f6f94; }
.structured-meal { border-left-color: var(--secondary); }
.structured-support, .structured-requirements, .structured-packing, .structured-terms, .structured-upgrades, .structured-assumptions { border-left-color: var(--secondary); background: #fffdfa; }
.structured-schedule .viewer-visual-copy { display: grid; align-content: start; gap: 14px; }
.structured-schedule h4 { margin: 0; }
.schedule-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.schedule-list li { display: grid; grid-template-columns: minmax(82px, 110px) minmax(0, 1fr); gap: 14px; align-items: start; padding: 15px 14px; border: 1px solid #edf0f5; border-radius: 8px; background: linear-gradient(180deg, #fff, #fbfcfd); position: relative; box-shadow: 0 8px 22px rgba(24, 33, 43, 0.035); }
.schedule-list li:first-child { padding-top: 15px; }
.schedule-list li::before { content: none; }
.viewer .schedule-list time { display: block; width: fit-content; max-width: 100%; padding-top: 1px; color: var(--viewer-text-label); font-weight: var(--viewer-weight-semibold); font-size: var(--viewer-size-auxiliary); line-height: 1.4; text-transform: uppercase; }
.viewer .schedule-list strong { color: var(--viewer-text-primary); font-size: var(--viewer-size-body); line-height: 1.4; font-weight: var(--viewer-weight-semibold); }
.viewer .schedule-list p { margin: 4px 0 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.55; font-weight: var(--viewer-weight-regular); }
.schedule-meta { margin: 6px 0 0; display: grid; gap: 3px; }
.schedule-meta div { display: grid; grid-template-columns: minmax(86px, auto) minmax(0, 1fr); gap: 8px; }
.viewer .schedule-meta dt { color: var(--viewer-text-label); font-size: var(--viewer-size-sm); line-height: 1.45; font-weight: var(--viewer-weight-semibold); }
.viewer .schedule-meta dd { margin: 0; color: var(--viewer-text-primary); font-size: var(--viewer-size-label); line-height: 1.5; font-weight: var(--viewer-weight-regular); overflow-wrap: anywhere; }
.structured-inclusions { border-left-color: var(--accent); background: #f7fbfa; }
.structured-exclusions { border-left-color: #9c5a46; background: #fff8f5; }
.viewer-detail-section-grid { display: grid; gap: 18px; margin-top: 18px; }
.viewer-detail-section .structured-block,
.viewer-detail-section .structured-list { padding: 0 0 18px; border-top: 0; border-right: 0; border-left: 0; border-bottom: 1px solid #edf0f2; border-radius: 0; background: transparent; box-shadow: none; }
.viewer-detail-section .structured-block:last-child,
.viewer-detail-section .structured-list:last-child { padding-bottom: 0; border-bottom: 0; }
.viewer-detail-section .structured-upgrades { background: transparent; }
#travel-info .viewer-detail-section-grid { gap: 10px; }
#travel-info .structured-block { border-left: 0; border-radius: 0; background: transparent; box-shadow: none; }
#travel-info .itinerary-item-header { grid-template-columns: 22px minmax(0, 1fr); gap: 12px; }
#travel-info .item-icon { width: 22px; height: 22px; border-radius: 0; }
#travel-info .item-columns { gap: 10px; }
#travel-info .detail-group { border: 0; background: transparent; padding: 0; }
#travel-info .detail-group-title { margin-bottom: 6px; }
#travel-info .detail-list div { padding: 7px 0; border-top: 1px solid #edf0f2; }
#travel-info .detail-list div:first-child { border-top: 0; }
.detail-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.detail-group-heading .detail-group-title { margin: 0; }
.detail-list .editable-detail-row { position: relative; grid-template-columns: minmax(0, 1fr) auto; }
.detail-list .editable-detail-row dt,
.detail-list .editable-detail-row dd { grid-column: 1; }
.detail-row-delete { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.viewer-detail-section .structured-table-wrap { max-width: 100%; }
.viewer .structured-documents a { color: var(--viewer-text-accent); font-size: var(--viewer-size-summary); font-weight: var(--viewer-weight-semibold); text-decoration: underline; text-underline-offset: 2px; }
.document-list { display: grid; margin-top: 12px; }
.document-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 0; border-top: 1px solid #edf0f2; }
.document-row:first-child { border-top: 0; }
.document-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: #eef4f8; color: var(--primary); }
.viewer .document-row h4 { font-size: 18px; line-height: 1.35; }
.viewer .document-row p { margin: 3px 0 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.5; font-weight: var(--viewer-weight-regular); }
.viewer .document-meta { color: var(--viewer-text-label); font-size: var(--viewer-size-sm); line-height: 1.4; font-weight: var(--viewer-weight-semibold); }
.document-row .button { justify-self: end; }
.trip-document-admin-list { display: grid; gap: 10px; }
.trip-document-admin-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.trip-document-admin-row p { margin: 3px 0 0; overflow-wrap: anywhere; }
.trip-document-admin-row .inline-form { justify-self: end; }
.map-card { align-items: stretch; overflow: hidden; }
.map-card-frame { min-height: 220px; background: #eef1f4; }
.map-card-frame iframe, .route-map-panel iframe { display: block; width: 100%; height: 100%; min-height: 220px; border: 0; }
.route-map-panel iframe { aspect-ratio: 16 / 10; min-height: 320px; background: #eef1f4; }
.map-card-frame iframe:not([src]), .route-map-panel iframe:not([src]) { background: linear-gradient(135deg, #eef4f8, #f8fafb); }
.route-map-unavailable { display: grid; place-items: center; align-content: center; gap: 10px; min-height: 320px; aspect-ratio: 16 / 10; padding: 22px; color: var(--viewer-text-muted); text-align: center; background: #eef4f8; }
.route-map-unavailable .icon { font-size: 34px; color: var(--primary); opacity: 0.8; }
.route-map-unavailable span { max-width: 34ch; font-size: var(--viewer-size-summary); line-height: 1.45; font-weight: var(--viewer-weight-semibold); }
.viewer-media-frame,
.viewer-visual-media .image-carousel-frame { width: 100%; aspect-ratio: 16 / 10; min-height: 320px; max-height: 520px; border: 1px solid #dce6ee; border-radius: 8px; overflow: hidden; background: #eef1f4; }
.viewer-media-frame iframe { display: block; width: 100%; height: 100%; min-height: 0; border: 0; }
.viewer-visual-media .image-carousel-frame { position: relative; }
.viewer-visual-media .image-carousel-slide,
.viewer-visual-media .image-carousel-slide button { height: 100%; }
.viewer-visual-media .image-carousel-slide img { height: 100%; aspect-ratio: auto; max-height: none; border: 0; border-radius: 0; }
.viewer-visual-media .image-carousel-slide .image-carousel-video { height: 100%; aspect-ratio: auto; max-height: none; border: 0; border-radius: 0; }
.map-card-visual { min-height: 160px; position: relative; background:
  radial-gradient(circle at 24% 32%, rgba(143, 79, 44, 0.18), transparent 22%),
  radial-gradient(circle at 76% 68%, rgba(47, 143, 123, 0.22), transparent 24%),
  linear-gradient(135deg, rgba(47, 143, 123, 0.18), rgba(21, 63, 82, 0.1)),
  repeating-linear-gradient(35deg, rgba(21, 63, 82, 0.1) 0 2px, transparent 2px 28px),
  #f3f7f6; }
.map-card-visual::before { content: ""; position: absolute; left: 18%; right: 16%; top: 50%; border-top: 4px dashed var(--accent); transform: rotate(-14deg); transform-origin: center; }
.map-card-visual span { position: absolute; display: grid; place-items: center; width: 22px; height: 22px; border: 4px solid #fff; border-radius: 999px; background: var(--primary); box-shadow: 0 4px 14px rgba(24, 33, 43, 0.18); }
.map-card-visual span:nth-child(1) { left: 18%; top: 58%; }
.map-card-visual span:nth-child(2) { left: 48%; top: 41%; background: var(--secondary); }
.map-card-visual span:nth-child(3) { right: 18%; top: 32%; background: var(--accent); }
.map-card-content { display: grid; gap: 10px; padding: 0; }
.map-support { margin-top: 12px; display: grid; gap: 10px; }
.viewer-visual-media.map-support { margin-top: 0; }
.viewer .viewer-visual-media:not(.map-support):not(.viewer-visual-placeholder) { overflow: hidden; border-radius: 8px; }
.viewer [data-viewer-parallax-image] { will-change: transform; transform-origin: center; transition: none; }
.image-crop-wide .viewer-visual-media:not(.map-support) img,
.image-crop-wide .structured-block-image,
.image-crop-wide .viewer-visual-media .image-carousel-frame { aspect-ratio: 16 / 9; }
.image-crop-square .viewer-visual-media:not(.map-support) img,
.image-crop-square .structured-block-image,
.image-crop-square .viewer-visual-media .image-carousel-frame { aspect-ratio: 1 / 1; }
.image-crop-portrait .viewer-visual-media:not(.map-support) img,
.image-crop-portrait .structured-block-image,
.image-crop-portrait .viewer-visual-media .image-carousel-frame { aspect-ratio: 4 / 5; }
.image-crop-cinematic .viewer-visual-media:not(.map-support) img,
.image-crop-cinematic .structured-block-image,
.image-crop-cinematic .viewer-visual-media .image-carousel-frame { aspect-ratio: 21 / 9; }
.viewer .map-support summary { cursor: pointer; color: var(--viewer-text-accent); font-size: var(--viewer-size-summary); font-weight: var(--viewer-weight-semibold); }
.map-support .map-card-frame,
.schedule-map-panel .map-card-frame { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.map-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.map-browser-link { width: fit-content; }
.schedule-map-panel { margin: 0; display: grid; gap: 10px; align-content: start; }
.schedule-map-panel .map-card-frame { min-height: 320px; }
.schedule-map-copy { padding: 14px; display: grid; align-content: start; gap: 8px; }
.ordered-stops { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ordered-stops li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start; }
.viewer .ordered-stops span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 14px; font-weight: var(--viewer-weight-semibold); }
.ordered-stops strong { min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
.ordered-stops.compact { margin: 7px 0 12px; gap: 6px; }
.ordered-stops.compact li { grid-template-columns: 24px minmax(0, 1fr); }
.ordered-stops.compact span { width: 24px; height: 24px; }
.option-group-block { background: #fff; }
.option-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.option-card { border: 1px solid var(--line); border-radius: 7px; padding: 12px; display: grid; gap: 10px; background: #fbfcfd; }
.option-card.is-recommended { border-color: var(--accent); box-shadow: inset 0 3px 0 var(--accent); }
.option-card.is-confirmed { border-color: var(--primary); box-shadow: inset 0 3px 0 var(--primary); background: #f4f8f8; }
.option-card h4 { min-width: 0; overflow-wrap: anywhere; }
.option-card p { margin: 0; }
.hotel-comparison-block { border-left-color: var(--primary); background: #fbfcfd; }
.accommodation-choices { display: grid; gap: 26px; overflow: hidden; }
.accommodation-choices > .section-header { margin: -22px -22px 0; padding: 24px 22px 20px; border-bottom: 1px solid #dce6ee; background: linear-gradient(135deg, #f6faf8 0%, #eef6f4 52%, #f8fafc 100%); }
.section-header { display: grid; gap: 6px; }
.section-header p { margin: 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-body); line-height: 1.5; }
.hotel-comparison { display: grid; gap: 14px; padding-top: 18px; border-top: 1px solid rgba(24, 33, 43, 0.1); }
.hotel-comparison:first-of-type { padding-top: 0; border-top: 0; }
.viewer .hotel-comparison-header { display: flex; justify-content: space-between; gap: 12px; align-items: end; padding: 0 2px; }
.viewer .hotel-comparison-header h3 { margin: 0; color: var(--viewer-text-primary); font-size: clamp(23px, 2vw, 26px); line-height: 1.3; font-weight: var(--viewer-weight-bold); overflow-wrap: anywhere; }
.viewer .hotel-comparison-header p { margin: 6px 0 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.5; font-weight: var(--viewer-weight-regular); }
.viewer .hotel-comparison-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.viewer .hotel-comparison-controls[hidden] { display: none; }
.viewer .hotel-comparison-scroll-hint { color: var(--viewer-text-secondary); font-size: 15px; line-height: 1.4; text-align: center; }
.viewer .hotel-comparison-region { max-width: 100%; overflow-x: auto; contain: layout paint; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-gutter: stable; border: 1px solid #cfdde6; border-radius: 8px; background: #fff; box-shadow: 0 18px 44px rgba(24, 33, 43, 0.08); }
.viewer .hotel-comparison-region:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 2px; }
.viewer .hotel-comparison-table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; table-layout: fixed; background: #fff; }
.viewer .hotel-comparison-table caption { padding: 10px 14px; color: var(--viewer-text-secondary); font-size: 15px; line-height: 1.45; font-weight: var(--viewer-weight-regular); text-align: left; border-bottom: 1px solid #dce6ee; }
.viewer .comparison-feature-column { width: 18%; }
.viewer .comparison-hotel-column { width: 27.333%; }
.viewer .hotel-comparison-table th,
.viewer .hotel-comparison-table td { padding: 14px 16px; border-bottom: 1px solid #dce6ee; border-inline-start: 1px solid #edf0f5; font-family: inherit; text-align: left; vertical-align: top; text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }
.viewer .hotel-comparison-table tr:last-child th,
.viewer .hotel-comparison-table tr:last-child td { border-bottom: 0; }
.viewer .hotel-comparison-table th:first-child,
.viewer .hotel-comparison-table td:first-child { border-inline-start: 0; }
.viewer .hotel-comparison-table thead th { background: #f5f8fa; color: var(--viewer-text-primary); font-size: var(--viewer-size-summary); line-height: 1.45; font-weight: var(--viewer-weight-semibold); }
.viewer .hotel-comparison-table thead th:not(:first-child) { padding: 10px; background: #fff; }
.viewer .hotel-comparison-table tbody th { background: #fbfcfd; color: var(--viewer-text-label); font-size: 16px; line-height: 1.45; font-weight: var(--viewer-weight-semibold); }
.viewer .hotel-comparison-table td { color: var(--viewer-text-primary); font-size: 16px; line-height: 1.5; font-weight: var(--viewer-weight-regular); }
.hotel-option-hero { display: grid; gap: 9px; align-content: start; min-height: 100%; padding: 10px; border: 1px solid #dce6ee; border-radius: 8px; background: linear-gradient(180deg, #fff, #f8fbfc); box-shadow: 0 10px 28px rgba(24, 33, 43, 0.07); }
.viewer .hotel-comparison-table .hotel-name { display: block; margin-top: 2px; color: var(--viewer-text-primary); font-size: 20px; line-height: 1.3; font-weight: var(--viewer-weight-bold); overflow-wrap: anywhere; }
.viewer .hotel-recommendation { display: inline-flex; margin-top: 8px; min-height: 24px; align-items: center; padding: 3px 8px; border-radius: 7px; background: #e8f3f0; color: #1f6357; font-size: 14px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); }
.viewer .hotel-confirmed { background: #edf4ff; color: #315f9d; }
.hotel-option-gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
.hotel-option-gallery-card { display: grid; align-content: start; gap: 7px; padding: 12px; border: 1px solid #dce6ee; border-radius: 8px; background: #fff; }
.viewer .hotel-option-gallery-card h4 { margin: 0; color: var(--viewer-text-primary); font-size: 18px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.hotel-option-gallery-card p { margin: 0; }
.hotel-image-carousel { position: relative; display: grid; gap: 8px; width: 100%; }
.hotel-image-carousel-track { position: relative; overflow: hidden; border: 1px solid #dce6ee; border-radius: 8px; background: #eef1f4; }
.hotel-image-carousel-compact .hotel-image-carousel-track { border: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.36); }
.hotel-image-slide { margin: 0; position: relative; }
.hotel-image-slide[hidden] { display: none; }
.hotel-image-slide img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.hotel-image-slide figcaption { position: absolute; inset-inline: 0; bottom: 0; padding: 7px 9px; background: rgba(10, 18, 25, 0.72); color: #fff; font-size: 14px; line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.hotel-image-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hotel-image-button { min-width: 44px; width: 44px; height: 44px; padding: 0; border-radius: 7px; background: #eef3f6; color: var(--primary); }
.hotel-image-count { color: var(--viewer-text-secondary); font-size: 14px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); }
.hotel-image-carousel-detail { margin: 0; max-width: 680px; }
.image-carousel { width: 100%; max-width: 850px; display: grid; gap: 10px; margin: 14px 0 8px; }
.image-carousel:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 3px; border-radius: 8px; }
.image-carousel-frame { position: relative; overflow: hidden; border: 1px solid #dce6ee; border-radius: 8px; background: #eef1f4; }
.image-carousel-slide { margin: 0; position: relative; }
.image-carousel-slide[data-lightbox-video-src] { cursor: zoom-in; }
.image-carousel-slide[hidden] { display: none; }
.image-carousel-slide button { display: block; width: 100%; padding: 0; border: 0; border-radius: 0; background: #101923; min-height: 0; cursor: zoom-in; }
.image-carousel-slide img { display: block; width: 100%; aspect-ratio: 16 / 7; max-height: 380px; object-fit: cover; background: #eef1f4; }
.image-carousel-video { display: block; width: 100%; aspect-ratio: 16 / 7; max-height: 380px; object-fit: cover; background: #101923; }
.image-carousel-slide .image-carousel-video-play { position: absolute; left: 50%; top: 50%; z-index: 3; display: grid; width: 76px; min-width: 76px; height: 76px; min-height: 76px; padding: 0; border: 0; border-radius: 999px; place-items: center; background: rgba(12, 17, 22, 0.78); color: #fff; box-shadow: 0 12px 34px rgba(10, 18, 25, 0.34); cursor: pointer; transform: translate(-50%, -50%); }
.image-carousel-slide .image-carousel-video-play::before { content: ""; position: absolute; left: 50%; top: 50%; width: 0; height: 0; border-top: 17px solid transparent; border-bottom: 17px solid transparent; border-left: 25px solid currentColor; transform: translate(-38%, -50%); }
.image-carousel-slide .image-carousel-video-play svg { display: none; }
.image-carousel-slide .image-carousel-video-play { pointer-events: none; }
.image-carousel-slide .image-carousel-video-play:hover,
.image-carousel-slide .image-carousel-video-play:focus-visible { background: rgba(12, 17, 22, 0.9); transform: translate(-50%, -50%) scale(1.04); }
.image-carousel-slide.is-video-playing .image-carousel-video-play { display: none; }
.image-carousel-slide figcaption { position: absolute; inset-inline: 0; bottom: 0; padding: 8px 12px; background: rgba(10, 18, 25, 0.7); color: #fff; font-size: 14px; line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.image-carousel-arrow { position: absolute; top: 50%; z-index: 2; min-width: 46px; width: 46px; min-height: 46px; padding: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.92); color: var(--primary); box-shadow: 0 8px 22px rgba(10, 18, 25, 0.24); transform: translateY(-50%); }
.image-carousel-prev { left: 12px; }
.image-carousel-next { right: 12px; }
.image-carousel-count { position: absolute; right: 12px; top: 12px; z-index: 2; padding: 4px 8px; border-radius: 999px; background: rgba(10, 18, 25, 0.72); color: #fff; font-size: 14px; line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.image-carousel-dots { display: flex; justify-content: center; gap: 7px; }
.image-carousel-dots button { width: 10px; min-width: 10px; height: 10px; min-height: 10px; padding: 0; border-radius: 999px; background: #c9d4dc; border: 0; }
.image-carousel-dots button[aria-current="true"] { background: var(--primary); }
.image-carousel-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.image-carousel-thumbs button { min-height: 0; padding: 0; border: 2px solid transparent; border-radius: 7px; overflow: hidden; background: #eef1f4; aspect-ratio: 16 / 9; }
.image-carousel-thumbs button[aria-current="true"] { border-color: var(--accent); }
.image-carousel-thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.image-carousel-video-thumb { position: relative; display: block; width: 100%; height: 100%; color: #fff; background: #101923; }
.image-carousel-video-thumb video { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.image-carousel-video-thumb-play { position: absolute; left: 50%; top: 50%; width: 38px; height: 38px; border-radius: 999px; background: rgba(12, 17, 22, 0.74); transform: translate(-50%, -50%); }
.image-carousel-video-thumb-play::before { content: ""; position: absolute; left: 15px; top: 10px; width: 0; height: 0; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-left: 14px solid currentColor; }
.gallery-block { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 14px 0; }
.proposal-day > .gallery-block { grid-template-columns: repeat(auto-fit, minmax(160px, 240px)); justify-content: start; margin: 12px 0 0; }
.gallery-block figure { margin: 0; display: grid; gap: 7px; }
.gallery-block button { display: block; width: 100%; padding: 0; overflow: hidden; background: #0f1b24; border: 1px solid var(--line); border-radius: 7px; aspect-ratio: 4 / 3; }
.proposal-day > .gallery-block button { aspect-ratio: 16 / 9; }
.gallery-block button:hover img { transform: scale(1.035); }
.gallery-block img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 180ms ease; }
.gallery-block figcaption { color: var(--muted); font-size: 13px; line-height: 1.35; }
.placeholder-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 18px 0 4px; }
.placeholder-gallery figure { margin: 0; display: grid; gap: 7px; min-width: 0; }
.placeholder-gallery-tile { min-height: 124px; border: 1px solid #dce6ee; border-radius: 8px; display: grid; place-items: center; color: var(--primary); background: linear-gradient(135deg, rgba(21, 63, 82, 0.12), rgba(47, 143, 123, 0.16)), repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.38) 0 8px, transparent 8px 18px), #eef4f8; }
.placeholder-gallery-tile-2 { background: linear-gradient(135deg, rgba(143, 79, 44, 0.13), rgba(21, 63, 82, 0.12)), repeating-linear-gradient(35deg, rgba(255, 255, 255, 0.42) 0 7px, transparent 7px 18px), #f3f6f7; }
.placeholder-gallery-tile-3 { background: linear-gradient(135deg, rgba(47, 143, 123, 0.14), rgba(143, 79, 44, 0.12)), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.36) 0 7px, transparent 7px 18px), #f4f6f4; }
.placeholder-gallery-tile .icon { font-size: 28px; opacity: 0.8; }
.viewer .placeholder-gallery figcaption { color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.35; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.lightbox { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 24px; background: rgba(9, 15, 22, 0.86); }
.lightbox-panel { position: relative; width: min(980px, 100%); max-height: calc(100vh - 48px); display: grid; gap: 10px; }
.lightbox-image-wrap { max-height: calc(100vh - 120px); overflow: auto; border-radius: 8px; overscroll-behavior: contain; }
.lightbox-panel img { display: block; max-width: 100%; max-height: calc(100vh - 120px); margin: 0 auto; border-radius: 8px; object-fit: contain; background: var(--brand-ink); }
.lightbox-video { display: block; width: min(100%, 980px); max-height: calc(100vh - 120px); margin: 0 auto; border-radius: 8px; background: var(--brand-ink); }
.lightbox-panel img[hidden],
.lightbox-video[hidden] { display: none !important; }
.lightbox-panel img.is-zoomed { max-width: none; max-height: none; width: auto; height: auto; min-width: min(1320px, 150vw); cursor: zoom-out; }
.lightbox-panel p { margin: 0; color: #fff; text-align: center; }
.lightbox-actions { position: absolute; top: 10px; right: 10px; z-index: 2; display: flex; gap: 8px; align-items: center; }
.lightbox-close, .lightbox-zoom { min-height: 38px; padding: 0 13px; border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--ink); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); }
.lightbox-close, .lightbox-zoom { width: 38px; min-width: 38px; padding: 0; }
.lightbox-nav { position: absolute; top: 50%; width: 42px; min-width: 42px; min-height: 52px; padding: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--ink); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); transform: translateY(-50%); }
.viewer button[data-lightbox-src],
.proposal button[data-lightbox-src] { display: block; width: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; box-shadow: none; }
.viewer button[data-lightbox-src]:hover,
.proposal button[data-lightbox-src]:hover { background: transparent; color: inherit; }
.lightbox-prev { left: 10px; }
.lightbox-next { right: 10px; }
[dir="rtl"] .lightbox-actions { left: 10px; right: auto; }
[dir="rtl"] .lightbox-prev { left: auto; right: 10px; }
[dir="rtl"] .lightbox-next { left: 10px; right: auto; }
.floating-contact { position: fixed; right: 18px; bottom: 18px; z-index: 8; max-width: min(280px, calc(100vw - 36px)); background: var(--accent); color: #fff; border-radius: 7px; padding: 12px 14px; box-shadow: 0 12px 28px rgba(24, 33, 43, 0.22); font-weight: 700; }
.floating-contact:hover { background: var(--primary); }
.internal { border-left-color: var(--secondary); background: #fbf7f4; }
.block-settings { display: grid; gap: 10px; padding: 14px 0; border-top: 1px solid var(--line); }
.block-settings:first-of-type { border-top: 0; padding-top: 0; }
.js-editor-active .block-settings[hidden] { display: none; }
.block-settings.is-selected { border-color: var(--accent); }
.gallery-focus-tools { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: #f8fafb; }
.gallery-focus-tools[hidden] { display: none; }
.viewer {
  --viewer-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
  --viewer-text-primary: #18212b;
  --viewer-text-secondary: #43515d;
  --viewer-text-label: #596977;
  --viewer-text-muted: #6b7884;
  --viewer-text-accent: var(--primary);
  --viewer-text-on-dark: #ffffff;
  --viewer-weight-regular: 400;
  --viewer-weight-medium: 500;
  --viewer-weight-semibold: 600;
  --viewer-weight-bold: 700;
  --viewer-size-xs: 13px;
  --viewer-size-sm: 14px;
  --viewer-size-label: 15px;
  --viewer-size-summary: 16px;
  --viewer-size-body: 17px;
  --viewer-size-body-large: 18px;
  --viewer-size-group-title: 16px;
  --viewer-size-item-title: 23px;
  --viewer-size-day-title: 27px;
  --viewer-size-section-title: 30px;
  --viewer-size-auxiliary: var(--viewer-size-sm);
  --viewer-line-tight: 1.2;
  --viewer-line-heading: 1.3;
  --viewer-line-compact: 1.45;
  --viewer-line-body: 1.64;
  --viewer-theme-page: #f6f4ef;
  --viewer-theme-page-soft: #f7f9fa;
  --viewer-theme-surface: #ffffff;
  --viewer-theme-band: #eef6f4;
  --viewer-theme-card: #ffffff;
  --viewer-evaluation-banner-height: 0px;
  position: relative;
  max-width: 100%;
  overflow-x: clip;
  background: linear-gradient(180deg, var(--viewer-theme-page) 0, var(--viewer-theme-page-soft) 620px, color-mix(in srgb, var(--viewer-theme-page), #fff 62%) 100%);
  color: var(--viewer-text-primary);
  font-family: var(--viewer-font-family);
}
.skip-link { position: absolute; left: 16px; top: 12px; z-index: 30; padding: 9px 12px; border-radius: 7px; background: #fff; color: var(--primary); font-weight: 700; transform: translateY(-180%); transition: transform 120ms ease; }
.skip-link:focus { transform: translateY(0); }
.viewer .card { background: var(--viewer-theme-card); border-color: color-mix(in srgb, var(--primary), #fff 78%); box-shadow: 0 18px 44px rgba(24, 33, 43, 0.07); }
.viewer.visual-template-editorial .viewer-hero { min-height: 620px; }
.viewer.visual-template-editorial .viewer-hero-grid { grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.18fr); }
.viewer.visual-template-editorial .viewer-visual-section { gap: 34px; }
.viewer.visual-template-compact { --viewer-size-body: 18px; --viewer-size-summary: 17px; }
.viewer.visual-template-compact .viewer-hero { min-height: 430px; }
.viewer.visual-template-compact .viewer-body { gap: 20px; }
.viewer.visual-template-compact .card { padding: 18px; }
.viewer.visual-template-adventure .proposal-day { border-left: 4px solid var(--accent); }
.viewer.visual-template-adventure .route-strip span { border-radius: 7px; }
.viewer.visual-template-destination-story .destination-summary-card,
.viewer.visual-template-destination-story #travel-info { background: linear-gradient(135deg, #ffffff 0%, var(--viewer-theme-band) 160%); }
.viewer.visual-template-destination-story .viewer-visual-media { box-shadow: 0 20px 52px rgba(24, 33, 43, 0.12); }
.viewer .button,
.viewer button { min-height: 44px; font-size: var(--viewer-size-summary); line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.viewer .button,
.viewer button { border: 0; background: var(--primary); color: var(--on-primary); }
.viewer .button:hover,
.viewer button:hover { background: var(--primary); color: var(--on-primary); }
.viewer .button.secondary,
.viewer button.secondary { background: #e8edf3; color: var(--ink); border: 0; }
.viewer .button.secondary:hover,
.viewer button.secondary:hover { background: #dfe8ef; color: var(--ink); }
.viewer .button.warning,
.viewer button.warning { background: var(--secondary); color: var(--brand-ink); border: 0; }
.viewer .button.compact,
.viewer button.compact { min-height: 40px; font-size: var(--viewer-size-label); }
.viewer .small { font-size: var(--viewer-size-auxiliary); line-height: 1.45; }
.viewer .eyebrow { color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.viewer:not(.viewer-editor-canvas) .eyebrow { display: none; }
.viewer .eyebrow.light { color: #dbe7ea; }
.viewer .muted { color: var(--viewer-text-muted); }
.viewer-hero { color: #fff; padding: 70px 28px 74px; min-height: 520px; display: grid; align-items: end; position: relative; overflow: hidden; }
.viewer-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 36%; background: linear-gradient(0deg, rgba(7, 13, 18, 0.5), rgba(7, 13, 18, 0)); pointer-events: none; }
.viewer-hero-image-edit { position: absolute; top: 14px; right: 14px; z-index: 3; background: rgba(255, 255, 255, 0.92); color: var(--ink); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22); }
.viewer .viewer-hero h1 { max-width: 920px; color: var(--viewer-text-on-dark); font-size: clamp(34px, 4vw, 54px); line-height: 1.08; font-weight: var(--viewer-weight-bold); text-wrap: balance; overflow-wrap: anywhere; }
.viewer-hero-print-image { display: none; }
.viewer-hero p { max-width: 760px; font-size: var(--viewer-size-body-large); line-height: 1.55; }
.viewer-hero.has-cover-image { text-shadow: 0 1px 18px rgba(0, 0, 0, 0.38); }
.viewer-hero-background { position: absolute; inset: -110px 0; z-index: 0; pointer-events: none; background-position: center; background-size: cover; background-repeat: no-repeat; transform: translate3d(0, 0, 0); will-change: transform; }
.viewer-hero-rotator { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.viewer-hero-rotator-image { position: absolute; inset: 0; background-position: center; background-size: cover; opacity: 0; transition: opacity 1400ms ease; }
.viewer-hero-rotator-image.is-active { opacity: 1; }
.viewer-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: 0.72; }
.viewer-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: end; }
.viewer-hero-copy { min-width: 0; }
.viewer-hero-subtitle { margin: 14px 0 0; }
.viewer-hero-meta { font-weight: var(--viewer-weight-bold); margin: 16px 0 0; }
.viewer-hero-destinations { margin: 8px 0 0; }
.viewer-hero-destination-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 9px; }
.viewer-hero-destination-chips span:not(.viewer-route-separator) { display: inline; }
.viewer-route-separator { width: 6px; height: 6px; flex: 0 0 auto; transform: rotate(45deg); background: currentColor; opacity: 0.72; }
.viewer-top-actions { position: absolute; top: 18px; right: 18px; z-index: 12; display: flex; align-items: flex-start; gap: 10px; }
.viewer-share-menu { position: relative; }
.viewer-theme-switcher { position: absolute; top: 18px; left: 18px; z-index: 12; display: block; }
.viewer-theme-switcher select { width: auto; min-width: 132px; min-height: 38px; padding: 7px 32px 7px 10px; border: 1px solid rgba(255, 255, 255, 0.52); border-radius: 7px; background-color: rgba(255, 255, 255, 0.94); color: var(--primary-text); box-shadow: 0 10px 28px rgba(10, 18, 25, 0.18); font-size: 14px; font-weight: var(--viewer-weight-semibold); cursor: pointer; }
.viewer-theme-switcher select:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 2px; }
.viewer-share-menu summary { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(255, 255, 255, 0.52); border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--primary-text); box-shadow: 0 10px 28px rgba(10, 18, 25, 0.2); cursor: pointer; list-style: none; }
.viewer-share-menu summary::-webkit-details-marker { display: none; }
.viewer-share-menu summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 2px; }
.viewer-share-menu .icon { font-size: 28px; }
.viewer-print-button { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(255, 255, 255, 0.52); border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--primary-text); box-shadow: 0 10px 28px rgba(10, 18, 25, 0.2); }
.viewer-print-button .icon { font-size: 28px; }
.viewer-print-button:hover { border-color: var(--accent); color: var(--primary); }
.viewer-print-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 2px; }
.viewer-share-menu-panel { position: absolute; top: calc(100% + 10px); right: 0; width: min(260px, calc(100vw - 36px)); display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(24, 33, 43, 0.12); border-radius: 8px; background: #fff; box-shadow: 0 18px 42px rgba(10, 18, 25, 0.22); }
.viewer-share-menu-panel .button,
.viewer-share-menu-panel button { width: 100%; justify-content: flex-start; color: var(--viewer-text-primary); }
.viewer-inner { width: min(94vw, 1520px); max-width: 1520px; margin: 0 auto; }
.viewer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.viewer-brand img { max-height: 112px; max-width: 380px; object-fit: contain; background: rgba(255, 255, 255, 0.96); border-radius: 8px; padding: 12px 14px; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18); }
.viewer-brand span { font-weight: var(--viewer-weight-bold); font-size: 18px; }
.viewer-cover { max-width: 1040px; margin: 0 auto; padding: 18px 28px 0; }
.viewer-cover img { width: 100%; max-height: 340px; object-fit: cover; border-radius: 8px; display: block; }
.viewer-glance { background: var(--viewer-theme-band); border-bottom: 1px solid color-mix(in srgb, var(--secondary), #fff 76%); }
.viewer-glance .viewer-inner { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.glance-item { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: start; padding: 17px 14px; background: var(--viewer-theme-surface); border-left: 1px solid color-mix(in srgb, var(--secondary), #fff 80%); }
.glance-item:nth-child(even) { background: color-mix(in srgb, var(--secondary), #fff 93%); }
.glance-item:first-child { border-left: 0; }
.glance-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; background: var(--primary); color: var(--on-primary); }
.glance-icon .icon { font-size: 20px; }
.viewer .glance-item span:not(.glance-icon) { display: block; color: #4f5f68; font-size: var(--viewer-size-auxiliary); line-height: 1.35; font-weight: var(--viewer-weight-semibold); text-transform: none; overflow-wrap: anywhere; }
.glance-item strong { display: block; margin-top: 4px; overflow-wrap: anywhere; line-height: 1.3; }
.viewer-locale-note { background: #fffaf0; border-bottom: 1px solid #f0d8ad; padding: 9px 28px; }
.viewer-locale-note p { margin: 0; }
.viewer-status { background: #eef7f5; border-bottom: 1px solid #c8e2dc; padding: 10px 28px; }
.viewer-status strong { color: var(--primary); }
.viewer-nav { position: sticky; top: var(--viewer-evaluation-banner-height, 0px); z-index: 5; background: linear-gradient(90deg, color-mix(in srgb, var(--primary), #fff 92%), color-mix(in srgb, var(--secondary), #fff 88%), color-mix(in srgb, var(--accent), #fff 92%)); border-bottom: 1px solid color-mix(in srgb, var(--secondary), #fff 78%); padding: 10px 28px; backdrop-filter: blur(10px); }
.viewer-nav .viewer-inner { display: flex; gap: 8px; flex-wrap: wrap; overflow-x: visible; }
.viewer-nav .viewer-inner::-webkit-scrollbar { display: none; }
.viewer-nav a { white-space: nowrap; border: 1px solid rgba(24, 33, 43, 0.12); border-radius: 7px; padding: 8px 11px; color: var(--primary-text); background: #fff; font-weight: var(--viewer-weight-semibold); font-size: 15px; }
.viewer-nav a:hover { border-color: var(--accent); }
.viewer-nav a.active, .viewer-nav a[aria-current="true"] { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.viewer-progress { height: 3px; margin: 8px auto 0; max-width: 1040px; background: #e8edf3; transform-origin: left center; overflow: hidden; }
.viewer-progress span { display: block; width: 100%; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: left center; transition: transform 120ms ease; }
[dir="rtl"] .viewer-progress span { transform-origin: right center; }
.viewer-day-context { position: sticky; top: calc(var(--viewer-evaluation-banner-height, 0px) + var(--viewer-nav-height, 58px)); z-index: 4; padding: 10px 28px; border-bottom: 1px solid color-mix(in srgb, var(--primary), #fff 84%); background: color-mix(in srgb, var(--viewer-theme-surface), #fff 12%); backdrop-filter: blur(10px); }
.viewer-day-context[hidden] { display: none; }
.viewer-day-context .viewer-inner { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px; align-items: center; }
.viewer-day-context-badge { display: inline-grid; place-items: center; min-width: 58px; min-height: 34px; padding: 6px 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--primary), #fff 70%); background: #fff; color: var(--primary); font-size: 14px; line-height: 1.1; font-weight: var(--viewer-weight-semibold); white-space: nowrap; cursor: pointer; }
.viewer-day-context-picker { position: absolute; top: calc(100% + 8px); left: 0; z-index: 10; display: grid; gap: 4px; width: min(300px, calc(100vw - 32px)); max-height: 50vh; overflow: auto; padding: 8px; border: 1px solid color-mix(in srgb, var(--primary), #fff 74%); border-radius: 8px; background: #fff; box-shadow: 0 18px 44px rgba(0, 18, 25, 0.14); }
.viewer-day-context-picker[hidden] { display: none; }
.viewer-day-context-option { display: block; width: 100%; padding: 8px 10px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--viewer-text-primary); font-size: var(--viewer-size-auxiliary); line-height: 1.25; text-align: left; cursor: pointer; }
.viewer-day-context-option:hover,
.viewer-day-context-option.active { border-color: color-mix(in srgb, var(--primary), #fff 78%); background: color-mix(in srgb, var(--primary), #fff 92%); color: var(--primary); }
.viewer[dir="rtl"] .viewer-day-context-picker { right: 0; left: auto; }
.viewer[dir="rtl"] .viewer-day-context-option { text-align: right; }
.viewer-day-context-copy { min-width: 0; display: grid; gap: 2px; }
.viewer-day-context-copy strong { display: block; color: var(--viewer-text-primary); font-size: 16px; line-height: 1.25; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.viewer-day-context-copy span, .viewer-day-context-copy p { margin: 0; color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.35; }
.viewer-day-context-copy p { overflow-wrap: anywhere; }
.viewer-body { width: min(94vw, 1520px); max-width: 1520px; margin: 0 auto; padding: 34px 0 28px; overflow-x: clip; font-family: inherit; font-size: var(--viewer-size-body); line-height: var(--viewer-line-body); font-weight: var(--viewer-weight-regular); color: var(--viewer-text-primary); align-items: start; }
.viewer-body p,
.viewer-body li,
.viewer-body .item-description,
.viewer-body .instruction-callout { max-width: 780px; }
.viewer-body .summary-field-grid dd,
.viewer-body .hotel-comparison-table td,
.viewer-body .route-strip li,
.viewer-body .itinerary-brief li,
.viewer-body .gallery-block li,
.viewer-body .document-row p,
.viewer-body .contact-panel p,
.viewer-body .price-panel p { max-width: none; }
.viewer-body h2 { color: var(--viewer-text-primary); font-size: clamp(27px, 2.2vw, 31px); line-height: 1.25; font-weight: var(--viewer-weight-bold); }
.viewer-main-flow { grid-template-columns: 1fr; gap: 34px; }
.viewer-main-flow > * { min-width: 0; }
.viewer-side { align-self: start; gap: 18px; }
.viewer-summary-section { scroll-margin-top: 150px; }
.viewer-summary-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 16px; }
.summary-card { border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 8px; background: #fbfcfd; padding: 14px; display: grid; gap: 10px; }
.summary-card.has-day-number { grid-template-columns: minmax(64px, auto) minmax(0, 1fr); align-items: start; column-gap: 14px; }
.summary-card.has-day-number > .proposal-day-number { grid-column: 1; grid-row: 1 / span 4; }
.summary-card.has-day-number > :not(.proposal-day-number) { grid-column: 2; }
.summary-card .structured-details { grid-template-columns: 1fr; }
.summary-card-image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); background: #eef1f4; }
.viewer .destination-section .lead { margin: 12px 0 6px; color: var(--viewer-text-secondary); font-size: var(--viewer-size-body); line-height: var(--viewer-line-body); max-width: 72ch; }
.viewer-visual-section { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
.viewer-visual-section .viewer-visual-media { position: relative; min-width: 0; margin: 0; }
.viewer-visual-section .viewer-visual-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid #dce6ee; border-radius: 8px; background: #eef1f4; }
.viewer-visual-section .image-carousel { max-width: none; margin: 0; }
.viewer-visual-section-destination .viewer-visual-media { order: -1; }
.viewer-visual-placeholder-frame { display: grid; place-items: center; align-content: center; gap: 10px; width: 100%; aspect-ratio: 16 / 10; min-height: 220px; border: 1px dashed #cbd8e2; border-radius: 8px; color: #6f7f8d; background: linear-gradient(135deg, rgba(238, 244, 248, 0.92), rgba(247, 249, 250, 0.96)); }
.viewer-visual-placeholder-frame .icon { font-size: 34px; opacity: 0.72; }
.viewer-visual-placeholder-frame span { font-size: var(--viewer-size-sm); font-weight: var(--viewer-weight-semibold); color: var(--viewer-text-muted); }
.highlight-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-top: 16px; }
.highlight-summary { display: grid; grid-template-rows: auto 1fr; border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 8px; overflow: hidden; background: #fbfcfd; }
.highlight-summary img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #eef1f4; }
.highlight-summary > div { display: grid; gap: 8px; padding: 14px; }
.highlight-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #eef6f4; color: var(--primary); }
.overview-highlights { margin-top: 16px; }
.viewer-overview-card .overview-highlights .eyebrow { margin-bottom: 0; }
.viewer-overview-card .highlight-strip { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-top: 10px; }
.viewer-overview-card .highlight-summary { grid-template-rows: auto; background: var(--viewer-theme-card); border-color: rgba(24, 33, 43, 0.12); }
.viewer-overview-card .highlight-summary > div { padding: 12px; }
.viewer-overview-card .highlight-summary h3 { font-size: 18px; line-height: 1.3; }
.viewer-overview-card .highlight-summary p { color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.45; }
.summary-entry-list { display: grid; gap: 12px; margin-top: 14px; }
.summary-day-group { display: grid; gap: 10px; }
.summary-day-head { display: flex; align-items: center; }
.summary-day-items { display: grid; gap: 10px; padding-left: 12px; border-left: 2px solid rgba(21, 63, 82, 0.14); }
.summary-entry { border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 8px; background: #fbfcfd; padding: 13px; display: grid; gap: 11px; }
.summary-entry-document { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px 18px; background: linear-gradient(135deg, #fff, #f7fbfa); border-color: #d4e5df; }
.summary-entry-document .summary-entry-head,
.summary-entry-document .summary-field-grid,
.summary-entry-document .summary-entry-note { grid-column: 1; }
.summary-entry-document .summary-entry-actions { grid-column: 2; grid-row: 1 / span 3; align-self: center; justify-self: end; }
.summary-entry-image { width: 100%; max-height: 240px; aspect-ratio: 16 / 7; object-fit: cover; border-radius: 7px; border: 1px solid #dce6ee; background: #eef1f4; }
.summary-entry-media { width: 100%; min-width: 0; }
.summary-entry-media .image-carousel-frame { width: 100%; aspect-ratio: 16 / 9; min-height: 220px; border: 1px solid #dce6ee; border-radius: 7px; overflow: hidden; background: #eef1f4; }
.summary-entry-media .image-carousel-slide,
.summary-entry-media .image-carousel-slide button { height: 100%; }
.summary-entry-media .image-carousel-slide img,
.summary-entry-media .image-carousel-video { display: block; width: 100%; height: 100%; object-fit: cover; border: 0; border-radius: 0; }
.accommodation-choices .summary-entry-hotel { grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); align-items: start; gap: 16px; }
.accommodation-choices .summary-entry-hotel .summary-entry-image,
.accommodation-choices .summary-entry-hotel .summary-entry-media { grid-row: 1 / span 3; }
.accommodation-choices .summary-entry-hotel .summary-entry-image { aspect-ratio: 4 / 3; max-height: 250px; }
.accommodation-choices .summary-entry-hotel .summary-entry-media .image-carousel-frame { aspect-ratio: 4 / 3; min-height: 220px; max-height: 250px; }
.summary-entry-transport { gap: 8px; }
.summary-entry-transport .summary-field-grid { display: block; }
.summary-entry-transport .summary-field-grid div { min-height: 0; display: grid; grid-template-columns: minmax(120px, 180px) minmax(0, 1fr); border: 0; border-top: 1px solid #dce6ee; border-radius: 0; background: transparent; }
.summary-entry-transport .summary-field-grid div:first-child { border-top: 0; }
.summary-entry-transport .summary-field-grid div.is-wide { grid-column: auto; }
.viewer .summary-entry-transport .summary-field-grid dt { padding: 9px 10px 9px 0; border-bottom: 0; background: transparent; }
.viewer .summary-entry-transport .summary-field-grid dd { padding: 9px 0; align-items: start; }
.structured-transport .item-columns { display: block; margin-top: 12px; }
.structured-transport .detail-group { border-top: 1px solid #dce6ee; padding-top: 8px; }
.structured-transport .detail-group:first-child { border-top: 0; padding-top: 0; }
.structured-transport .detail-group-title { margin-bottom: 4px; }
.structured-transport .detail-list { display: block; }
.structured-transport .detail-list div { display: grid; grid-template-columns: minmax(120px, 180px) minmax(0, 1fr); gap: 10px; padding: 5px 0; border: 0; background: transparent; }
.viewer .structured-transport .detail-list dt,
.viewer .structured-transport .detail-list dd { padding: 0; border: 0; background: transparent; }
.transport-logistics { margin-top: 16px; display: grid; gap: 8px; }
.transport-route-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 0 10px; border: 0; border-bottom: 1px solid #dce6ee; border-radius: 0; background: transparent; }
.transport-route-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; background: #e8f4f2; color: var(--viewer-text-accent); }
.transport-route-copy { min-width: 0; display: grid; gap: 4px; }
.transport-route-copy strong { color: var(--viewer-text-primary); font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.transport-route-copy small { color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.4; overflow-wrap: anywhere; }
.transport-route-points { min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--viewer-text-primary); font-size: 17px; line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.transport-route-points > span:not(.transport-route-arrow) { min-width: 0; overflow-wrap: anywhere; }
.transport-route-arrow { display: inline-flex; color: var(--viewer-text-accent); }
.transport-facts { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; }
.transport-notes { margin: 0; display: grid; gap: 4px; }
.transport-facts > div { min-width: 0; padding: 9px 10px; border: 1px solid #dce6ee; border-radius: 8px; background: #fff; }
.transport-notes > div { min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.viewer .transport-facts dt { margin: 0 0 3px; color: var(--viewer-text-label); font-size: var(--viewer-size-label); line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.viewer .transport-facts dd { margin: 0; color: var(--viewer-text-primary); font-size: var(--viewer-size-summary); line-height: 1.45; overflow-wrap: anywhere; }
.transport-notes > div { display: flex; gap: 6px; align-items: baseline; color: var(--viewer-text-secondary); }
.transport-notes > div.transport-mode-detail { align-items: center; color: var(--viewer-text-primary); }
.transport-mode-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; color: var(--viewer-text-accent); }
.transport-mode-icon .icon { display: block; font-size: 17px; }
.viewer .transport-notes dt,
.viewer .transport-notes dd { margin: 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-auxiliary); line-height: 1.45; overflow-wrap: anywhere; }
.summary-entry-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: center; }
.summary-entry-head.has-day-number { grid-template-columns: auto minmax(0, 1fr); }
.viewer .summary-entry-head h3 { min-width: 0; color: var(--viewer-text-primary); font-size: 20px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.summary-field-grid { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 9px; align-items: stretch; }
.summary-field-grid div { border: 1px solid #dce6ee; border-radius: 7px; padding: 0; background: #fff; display: grid; grid-template-rows: auto 1fr; min-height: 82px; overflow: hidden; }
.summary-field-grid div.is-wide { grid-column: span 2; }
.viewer .summary-field-grid dt { margin: 0; padding: 8px 10px; border-bottom: 1px solid #dce6ee; background: #eef4f8; color: var(--viewer-text-label); font-size: var(--viewer-size-label); line-height: 1.45; font-weight: var(--viewer-weight-semibold); text-transform: none; letter-spacing: 0; }
.viewer .summary-field-grid dd { margin: 0; padding: 11px 10px 12px; color: var(--viewer-text-primary); font-size: var(--viewer-size-body); line-height: 1.5; font-weight: var(--viewer-weight-regular); overflow-wrap: anywhere; display: flex; align-items: center; }
.viewer .summary-field-grid dd a { font-weight: var(--viewer-weight-semibold); }
.viewer .summary-entry-note { margin: 0; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.5; }
.summary-entry-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.viewer-overview-card { border-top: 5px solid var(--accent); }
.viewer-overview-card .lead { color: var(--viewer-text-secondary); font-size: var(--viewer-size-body-large); line-height: var(--viewer-line-body); margin-top: 12px; max-width: 72ch; }
.overview-facts { margin-top: 14px; }
.overview-terms { display: grid; gap: 10px; margin-top: 14px; }
.overview-terms details { border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 7px; background: #fbfcfd; padding: 10px 12px; }
.overview-terms summary { cursor: pointer; color: var(--primary); font-weight: 700; }
.overview-terms p { margin: 8px 0 0; }
.overview-term-list, .price-term-list { margin: 8px 0 0; padding-left: 20px; display: grid; gap: 5px; }
.price-list-block { display: grid; gap: 2px; padding: 13px; border: 1px solid #dce6ee; border-radius: 8px; background: rgba(255,255,255,0.82); }
.price-list-block > strong { color: var(--viewer-text-primary); }
.viewer-anchor { display: block; height: 1px; scroll-margin-top: 150px; }
.viewer-footer { padding: 8px 28px 86px; color: var(--viewer-text-muted); }
.viewer-footer .viewer-inner { width: 100%; }
.viewer-footer details { border-top: 1px solid var(--line); padding-top: 14px; }
.viewer-footer summary { cursor: pointer; font-weight: 700; color: var(--primary); }
.viewer-footer p { max-width: none; font-size: var(--viewer-size-auxiliary); line-height: 1.5; }
.viewer-legal-footer + .viewer-platform-disclaimer { margin-top: 16px; }
.viewer-platform-disclaimer { display: grid; gap: 12px; width: 100%; padding-top: 14px; border-top: 1px solid var(--line); }
.viewer-platform-disclaimer p { margin: 0; overflow-wrap: anywhere; }
.viewer-powered-by { display: flex; flex-wrap: nowrap; gap: 8px; align-items: center; min-width: 0; color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.4; }
.viewer-powered-by span { font-weight: var(--viewer-weight-semibold); }
.viewer-powered-by img { display: block; width: auto; max-width: 150px; max-height: 30px; object-fit: contain; }
.viewer-print-help { position: fixed; top: 18px; left: 50%; z-index: 30; width: min(560px, calc(100vw - 32px)); transform: translateX(-50%); padding: 13px 16px; border: 1px solid #c9d8e2; border-radius: 8px; background: #fff; color: var(--viewer-text-primary); box-shadow: 0 18px 52px rgba(10, 18, 25, 0.2); }
.viewer-print-help strong { display: block; margin-bottom: 3px; color: var(--primary); font-size: 16px; }
.viewer-print-help p { margin: 0; color: var(--viewer-text-secondary); font-size: 14px; line-height: 1.45; }
.viewer-evaluation-banner { position: sticky; top: 0; z-index: 6; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding: 13px 28px; background: #fff0c2; border-bottom: 2px solid #ca6702; color: #4f3300; font-size: 15px; line-height: 1.4; }
.viewer-evaluation-banner strong { color: #3d2600; font-size: 16px; text-transform: uppercase; }
.viewer-evaluation-banner span { overflow-wrap: anywhere; }
.viewer-print-qr { display: none; }
.print-map-fallback,
.print-map-visual { display: none; }
.viewer-print-prepared .viewer-share-menu,
.viewer-print-prepared .viewer-theme-switcher,
.viewer-print-prepared .viewer-nav,
.viewer-print-prepared .viewer-progress,
.viewer-print-prepared .viewer-day-context { display: none; }
body.is-viewer-print-prepared .cookie-consent,
body.is-viewer-print-prepared .demo-return-link,
body.is-viewer-print-prepared .demo-top-link,
body.is-viewer-print-prepared .public-top-link { display: none !important; }
.viewer-print-prepared .viewer-top-actions { position: fixed; top: 16px; right: 16px; z-index: 20; }
.viewer-print-prepared .viewer-print-button { background: var(--primary); color: #fff; border-color: var(--primary); }
.viewer-print-prepared .viewer-hero { min-height: auto; padding: 42px 28px 36px; }
.viewer-print-prepared .viewer-body { padding-top: 28px; }
.viewer-print-prepared .card,
.viewer-print-prepared .proposal-day { box-shadow: none; break-inside: auto; }
.viewer-print-prepared .structured-block,
.viewer-print-prepared .summary-entry { box-shadow: none; break-inside: avoid; }
.viewer-print-prepared .activity-accordion-body { display: block; }
.viewer-print-prepared .image-carousel-arrow,
.viewer-print-prepared .image-carousel-count,
.viewer-print-prepared .image-carousel-dots,
.viewer-print-prepared .image-carousel-thumbs,
.viewer-print-prepared .hotel-image-carousel-controls { display: none !important; }
.day-by-day-card { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none !important; }
.day-by-day-card > .eyebrow,
.day-by-day-card > h2 { padding: 0 2px; }
.proposal-day { margin-top: 18px; padding: 30px; border: 1px solid #d7dde1; border-radius: 12px; background: #fff; }
.proposal-day:last-child { border-bottom: 1px solid #d7dde1; }
.viewer .proposal-day h3 { color: var(--viewer-text-primary); font-size: clamp(24px, 2vw, 28px); line-height: 1.25; font-weight: var(--viewer-weight-bold); }
.proposal-day-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: center; margin-bottom: 12px; }
.proposal-day-date { margin: 0 0 6px; color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.35; font-weight: var(--viewer-weight-semibold); display: inline-flex; align-items: center; gap: 8px; }
.proposal-day-number { display: inline-grid; place-items: center; width: fit-content; min-width: 58px; min-height: 34px; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--primary); background: var(--primary); color: var(--on-primary); font-size: 14px; line-height: 1.1; font-weight: var(--viewer-weight-semibold); white-space: nowrap; }
.proposal-day-head .proposal-day-number { font-size: 24px; font-weight: var(--viewer-weight-bold); min-height: 48px; min-width: 80px; padding: 8px 16px; border-radius: 10px; border: 1.5px solid var(--primary); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); }
.proposal-day, .price-panel, #overview, #destinations, #highlights, #route, #activities, #days, #contact, #transport, #meals, #weather, #travel-info, #commercial-details, #practical, #about, #documents, #custom-sections { scroll-margin-top: 190px; }
.day-inline-narrative { margin-top: 14px; display: grid; gap: 8px; color: var(--viewer-text-secondary); }
.day-inline-narrative p { margin: 0; }
.day-inline-tips { margin-top: 10px; display: grid; gap: 6px; padding: 0; border: 0; background: transparent; }
.day-inline-tips-heading { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.day-inline-tips h4 { margin: 0; color: var(--viewer-text-label); font-size: var(--viewer-size-sm); line-height: 1.35; font-weight: var(--viewer-weight-semibold); }
.day-inline-tips ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.45; }
[dir="rtl"] .day-inline-tips ul { padding-left: 0; padding-right: 20px; }
.day-subsection-heading { display: flex; align-items: flex-start; gap: 14px; margin-top: 28px; padding: 20px 0 2px; border-top: 1px solid #dfe4e7; clear: both; }
.day-subsection-heading h4 { margin: 0; color: var(--viewer-text-primary); font-size: 21px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); }
.day-subsection-heading .item-type { margin-bottom: 3px; }
.activity-accordion { display: block; width: 100%; min-width: 0; border-top: 1px solid #dfe4e7; clear: both; }
.activity-accordion:first-of-type { border-top: 0; }
.activity-accordion > summary { position: relative; display: flex; width: 100%; box-sizing: border-box; gap: 14px; align-items: flex-start; padding: 20px 0; cursor: pointer; list-style: none; }
.activity-accordion > summary::-webkit-details-marker { display: none; }
.activity-accordion > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 3px; border-radius: 8px; }
.activity-accordion-copy { flex: 1 1 auto; min-width: 0; display: grid; gap: 4px; }
.activity-accordion-copy strong { color: var(--viewer-text-primary); font-size: 21px; line-height: 1.3; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.activity-accordion-copy span { color: var(--viewer-text-accent); font-size: var(--viewer-size-summary); line-height: 1.45; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.activity-accordion-copy em { color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.5; font-style: normal; overflow-wrap: anywhere; }
.activity-accordion-body { padding-bottom: 24px; }
.activity-accordion-body .structured-block { border-top: 0; padding-top: 0; }
.structured-line-section { display: grid; gap: 6px; margin-top: 10px; }
.structured-line-section:first-child { margin-top: 0; }
.structured-line-section > strong { color: var(--viewer-text-primary); font-size: var(--viewer-size-summary); }
[dir="rtl"] .image-carousel-prev { left: auto; right: 12px; }
[dir="rtl"] .image-carousel-next { right: auto; left: 12px; }
[dir="rtl"] .image-carousel-count { right: auto; left: 12px; }
[dir="rtl"] .activity-accordion > summary { padding: 20px 0; }
.route-strip { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; position: relative; }
.route-strip::before { content: ""; position: absolute; left: 8%; right: 8%; top: 22px; height: 1px; background: linear-gradient(90deg, transparent, #b8ccd7 12%, #b8ccd7 88%, transparent); }
.route-strip li { position: relative; display: grid; padding: 0 6px; }
.route-strip a { display: grid; gap: 8px; justify-items: center; text-align: center; color: inherit; text-decoration: none; border: 1px solid transparent; border-radius: 8px; padding: 12px 4px 8px; background: rgba(255,255,255,0.72); }
.route-strip a:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 4px; }
.route-strip a:hover { border-color: #dce6ee; background: #fff; box-shadow: 0 8px 22px rgba(24, 33, 43, 0.06); }
.route-strip a:hover strong { color: var(--viewer-text-accent); text-decoration: underline; text-underline-offset: 3px; }
.viewer .route-strip span { position: relative; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 999px; background: var(--primary); color: var(--on-primary); font-weight: var(--viewer-weight-semibold); box-shadow: 0 0 0 6px #fff; }
.viewer .route-strip a.is-active span,
.viewer .route-strip a[aria-current="location"] span { background: var(--accent); color: var(--on-accent); box-shadow: 0 0 0 6px #fff, 0 0 0 9px color-mix(in srgb, var(--accent), #fff 64%); }
.route-strip a.is-active strong,
.route-strip a[aria-current="location"] strong { color: var(--viewer-text-accent); }
.route-strip strong { font-size: 14px; overflow-wrap: anywhere; }
.route-stop-picker { display: none; margin: 14px 0 0; }
.route-stop-picker select { width: 100%; min-height: 46px; border-radius: 8px; border: 1px solid #cfdde6; background: #fff; color: var(--viewer-text-primary); font-size: 16px; font-weight: var(--viewer-weight-semibold); }
.route-map-panel { margin-top: 18px; display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(260px, 0.4fr); gap: 0; align-items: stretch; border: 1px solid #cfdde6; border-radius: 8px; overflow: hidden; background: linear-gradient(135deg, #fbfcfd, #f4faf8); box-shadow: 0 18px 44px rgba(24, 33, 43, 0.08); }
.route-map-panel > div { padding: 18px; display: grid; align-content: start; gap: 10px; }
.route-map-selected { display: block; color: var(--viewer-text-primary); font-size: 20px; line-height: 1.35; font-weight: var(--viewer-weight-semibold); overflow-wrap: anywhere; }
.route-map-full-button,
.route-map-panel .map-browser-link { justify-self: start; min-width: 178px; }
.route-map-visual { min-height: 320px; padding: 28px; display: grid; align-items: center; background: linear-gradient(145deg, rgba(207, 226, 229, 0.9), rgba(239, 246, 244, 0.94)), radial-gradient(circle at 72% 24%, rgba(238, 155, 0, 0.24), transparent 26%), radial-gradient(circle at 32% 72%, rgba(10, 147, 150, 0.22), transparent 30%); }
.route-map-visual ol { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(82px, 1fr)); gap: 14px; align-items: center; margin: 0; padding: 0; list-style: none; }
.route-map-visual ol::before { content: ""; position: absolute; left: 7%; right: 7%; top: 50%; height: 3px; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--accent), var(--secondary)); transform: translateY(-50%); }
.route-map-visual li { position: relative; z-index: 1; display: grid; justify-items: center; }
.route-map-visual li:nth-child(even) { transform: translateY(54px); }
.route-map-visual li:nth-child(odd) { transform: translateY(-34px); }
.route-map-visual a { min-width: 88px; display: grid; justify-items: center; gap: 8px; padding: 8px; border: 1px solid rgba(24, 33, 43, 0.12); border-radius: 8px; background: rgba(255, 255, 255, 0.94); color: var(--viewer-text-primary); text-align: center; text-decoration: none; box-shadow: 0 12px 30px rgba(24, 33, 43, 0.12); }
.route-map-visual a:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent), #fff 20%); outline-offset: 3px; }
.route-map-visual a:hover strong { color: var(--viewer-text-accent); text-decoration: underline; text-underline-offset: 3px; }
.viewer .route-map-visual span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; background: var(--primary); color: var(--on-primary); font-size: 14px; font-weight: var(--viewer-weight-semibold); }
.route-map-visual strong { color: var(--viewer-text-primary); font-size: 13px; line-height: 1.25; overflow-wrap: anywhere; }
.route-openmap { width: min(100%, 980px); aspect-ratio: 1.618 / 1; margin: 18px auto 0; overflow: hidden; border: 1px solid #cfdde6; border-radius: 8px; background: #e8f0ee; }
.route-openmap .maplibregl-ctrl-attrib { font-size: 10px; }
.route-openmap .maplibregl-popup-content { min-width: 160px; padding: 14px 38px 14px 14px; }
.route-openmap .maplibregl-popup-close-button { width: 30px; height: 30px; font-size: 20px; line-height: 28px; }
.route-openmap-marker { display: grid; place-items: center; min-width: 30px; height: 30px; padding: 0 7px; border: 2px solid #fff; border-radius: 999px; background: color-mix(in srgb, var(--primary) 70%, transparent); color: var(--on-primary); font-size: 13px; font-weight: var(--viewer-weight-semibold); box-shadow: 0 2px 8px rgba(24, 33, 43, .34); cursor: pointer; }
.route-map-attribution { margin: 6px 0 0; color: var(--viewer-text-muted); font-size: 11px; }
.route-map-attribution a { color: inherit; }
.route-map-unavailable { margin-top: 18px; }
.itinerary-brief { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 12px; position: relative; }
.itinerary-brief li { position: relative; }
.itinerary-brief li::before { content: none; }
.itinerary-brief a, .itinerary-brief .brief-day { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px 12px; border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 8px; padding: 12px; background: #fbfcfd; }
.itinerary-brief a[aria-current="true"] { border-color: var(--accent); background: color-mix(in srgb, var(--accent), #fff 88%); }
.itinerary-brief a[aria-current="true"] .proposal-day-number { border-color: color-mix(in srgb, var(--accent), #fff 54%); color: var(--on-primary); }
.itinerary-brief .brief-day.is-pending { color: var(--muted); background: #f7f8fa; }
.viewer .itinerary-brief span:not(.proposal-day-number), .viewer .itinerary-brief small { color: var(--viewer-text-muted); font-size: var(--viewer-size-auxiliary); line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.itinerary-brief strong { min-width: 0; overflow-wrap: anywhere; }
.viewer .itinerary-brief em { grid-column: 2 / -1; color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); font-style: normal; line-height: 1.5; overflow-wrap: anywhere; }
.viewer .day-mood-chip { grid-column: 2 / -1; display: inline-flex; width: fit-content; align-items: center; gap: 6px; min-height: 28px; padding: 4px 8px; border-radius: 999px; background: #eef6f4; color: var(--viewer-text-accent); font-size: 14px; font-weight: var(--viewer-weight-semibold); }
.day-mood-chip .icon { font-size: 14px; }
.itinerary-brief-mobile { display: none; margin-top: 14px; gap: 12px; }
.itinerary-brief-mobile select { width: 100%; min-height: 46px; border-radius: 8px; border: 1px solid rgba(24, 33, 43, 0.14); background: #fff; color: var(--viewer-text-primary); font-size: 16px; font-weight: var(--viewer-weight-semibold); }
.itinerary-brief-mobile-preview { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 13px; border: 1px solid rgba(24, 33, 43, 0.1); border-radius: 8px; background: #fbfcfd; }
.itinerary-brief-mobile-preview > div { min-width: 0; display: grid; gap: 6px; }
.itinerary-brief-mobile-preview strong { color: var(--viewer-text-primary); overflow-wrap: anywhere; }
.itinerary-brief-mobile-preview small,
.itinerary-brief-mobile-preview em { color: var(--viewer-text-secondary); font-size: var(--viewer-size-summary); line-height: 1.45; font-style: normal; overflow-wrap: anywhere; }
.itinerary-brief-mobile-preview .day-mood-chip { grid-column: auto; }
.itinerary-brief-mobile-preview .button { justify-self: start; margin-top: 4px; }
.day-by-day-card.viewer-reveal { opacity: 1; transform: none; }
[dir="rtl"] .itinerary-brief a, [dir="rtl"] .itinerary-brief .brief-day { padding: 12px; }
.client-preview { background: #fbfcfd; }
.viewer-editor-workspace { padding: 0; overflow: hidden; scroll-margin-top: 220px; }
.autosave-toast { position: fixed; top: 14px; left: 50%; z-index: 80; transform: translate(-50%, -12px); min-width: 150px; max-width: calc(100vw - 32px); padding: 10px 16px; border: 1px solid #b8d8cf; border-radius: 999px; background: #e8f3f0; color: #1f6357; font-weight: 700; text-align: center; box-shadow: 0 12px 32px rgba(24, 33, 43, 0.18); opacity: 0; pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }
.autosave-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.autosave-toast[hidden] { display: none; }
.viewer-editor-workspace > .wysiwyg-save-form { margin-left: 18px; margin-right: 18px; }
.viewer-editor-frame { box-sizing: border-box; width: 100%; margin: 0 auto; border-top: 1px solid var(--line); background: #fff; overflow: hidden; transition: max-width 160ms ease, border-color 160ms ease, border-radius 160ms ease, box-shadow 160ms ease; }
.viewer-editor-frame.preview-tablet { max-width: 820px; border: 10px solid #1f2933; border-radius: 24px; box-shadow: 0 18px 44px rgba(24, 33, 43, 0.18); }
.viewer-editor-frame.preview-mobile { max-width: 430px; border: 10px solid #1f2933; border-radius: 30px; box-shadow: 0 18px 44px rgba(24, 33, 43, 0.20); }
.viewer-editor-frame.preview-reduced { transition: none; }
.viewer-editor-frame .viewer-inner { width: min(calc(100% - 32px), 1520px); }
.viewer-editor-frame .viewer-body { width: 100%; max-width: none; padding-left: 0; padding-right: 0; }
.viewer-editor-frame.preview-tablet .viewer-hero,
.viewer-editor-frame.preview-mobile .viewer-hero { min-height: 410px; padding: 42px 16px 48px; }
.viewer-editor-frame.preview-tablet .viewer-hero-grid,
.viewer-editor-frame.preview-mobile .viewer-hero-grid { grid-template-columns: 1fr; gap: 18px; }
.viewer-editor-frame.preview-tablet .viewer .viewer-hero h1 { font-size: 40px; }
.viewer-editor-frame.preview-mobile .viewer .viewer-hero h1 { font-size: 36px; }
.viewer-editor-frame.preview-mobile .viewer-hero { min-height: 460px; }
.viewer-editor-frame.preview-mobile .viewer-hero p { font-size: 16px; }
.viewer-editor-frame.preview-tablet .viewer-glance .viewer-inner,
.viewer-editor-frame.preview-mobile .viewer-glance .viewer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.viewer-editor-frame.preview-tablet .glance-item,
.viewer-editor-frame.preview-mobile .glance-item { border-top: 1px solid rgba(24, 33, 43, 0.08); }
.viewer-editor-frame.preview-tablet .glance-item:nth-child(odd),
.viewer-editor-frame.preview-mobile .glance-item:nth-child(odd) { border-left: 0; }
.viewer-editor-frame.preview-tablet .viewer-nav,
.viewer-editor-frame.preview-mobile .viewer-nav { padding: 8px 16px; }
.viewer-editor-frame.preview-tablet .viewer-nav .viewer-inner,
.viewer-editor-frame.preview-mobile .viewer-nav .viewer-inner { flex-wrap: wrap; overflow: visible; scrollbar-width: auto; -ms-overflow-style: auto; mask-image: none; }
.viewer-editor-frame.preview-tablet .viewer-nav a,
.viewer-editor-frame.preview-mobile .viewer-nav a { flex: 1 1 auto; text-align: center; padding: 8px 10px; font-size: 14px; }
.viewer-editor-frame.preview-tablet .viewer-day-context,
.viewer-editor-frame.preview-mobile .viewer-day-context { padding: 9px 16px; }
.viewer-editor-frame.preview-tablet .viewer-day-context .viewer-inner,
.viewer-editor-frame.preview-mobile .viewer-day-context .viewer-inner { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
.viewer-editor-frame.preview-tablet .viewer-day-context-copy strong,
.viewer-editor-frame.preview-mobile .viewer-day-context-copy strong { font-size: 15px; }
.viewer-editor-frame.preview-tablet .viewer-day-context-copy p,
.viewer-editor-frame.preview-mobile .viewer-day-context-copy p { display: none; }
.viewer-editor-frame.preview-tablet .viewer-side,
.viewer-editor-frame.preview-mobile .viewer-side { position: static; }
.viewer-editor-frame.preview-mobile .route-stop-picker { display: block; }
.viewer-editor-frame.preview-mobile .route-strip { display: none; }
.viewer-editor-frame.preview-tablet .itinerary-brief a,
.viewer-editor-frame.preview-tablet .itinerary-brief .brief-day,
.viewer-editor-frame.preview-mobile .itinerary-brief a,
.viewer-editor-frame.preview-mobile .itinerary-brief .brief-day { grid-template-columns: 1fr; align-items: start; }
.viewer-editor-frame.preview-tablet .viewer .itinerary-brief a > *,
.viewer-editor-frame.preview-tablet .viewer .itinerary-brief .brief-day > *,
.viewer-editor-frame.preview-mobile .viewer .itinerary-brief a > *,
.viewer-editor-frame.preview-mobile .viewer .itinerary-brief .brief-day > * { grid-column: 1 / -1; }
.viewer-editor-frame.preview-tablet .viewer .itinerary-brief small,
.viewer-editor-frame.preview-mobile .viewer .itinerary-brief small { display: block; grid-column: 1 / -1; width: 100%; min-width: 0; }
.viewer-editor-frame.preview-tablet .itinerary-brief em,
.viewer-editor-frame.preview-tablet .day-mood-chip,
.viewer-editor-frame.preview-mobile .itinerary-brief em,
.viewer-editor-frame.preview-mobile .day-mood-chip { grid-column: auto; }
.viewer-editor-frame.preview-mobile .itinerary-brief-card > .itinerary-brief { display: none; }
.viewer-editor-frame.preview-mobile .itinerary-brief-mobile { display: grid; }
.viewer-editor-frame.preview-tablet .summary-card.has-day-number,
.viewer-editor-frame.preview-mobile .summary-card.has-day-number,
.viewer-editor-frame.preview-mobile .summary-entry-document,
.viewer-editor-frame.preview-mobile .accommodation-choices .summary-entry-hotel,
.viewer-editor-frame.preview-mobile .contact-card-grid,
.viewer-editor-frame.preview-mobile .route-map-panel,
.viewer-editor-frame.preview-mobile .schedule-map-panel,
.viewer-editor-frame.preview-mobile .gallery-block,
.viewer-editor-frame.preview-mobile .placeholder-gallery,
.viewer-editor-frame.preview-mobile .map-card { grid-template-columns: 1fr; }
.viewer-editor-frame.preview-tablet .summary-card.has-day-number > .proposal-day-number,
.viewer-editor-frame.preview-tablet .summary-card.has-day-number > :not(.proposal-day-number),
.viewer-editor-frame.preview-mobile .summary-card.has-day-number > .proposal-day-number,
.viewer-editor-frame.preview-mobile .summary-card.has-day-number > :not(.proposal-day-number) { grid-column: auto; grid-row: auto; }
.viewer-editor-frame.preview-tablet .proposal-day-head,
.viewer-editor-frame.preview-mobile .proposal-day-head { grid-template-columns: auto minmax(0, 1fr); }
.viewer-editor-frame.preview-tablet .proposal-day,
.viewer-editor-frame.preview-mobile .proposal-day { padding: 22px 18px; }
.viewer-editor-frame.preview-tablet .item-columns,
.viewer-editor-frame.preview-mobile .item-columns { grid-template-columns: 1fr; gap: 0; }
.viewer-editor-frame.preview-mobile .summary-entry-document .summary-entry-head,
.viewer-editor-frame.preview-mobile .summary-entry-document .summary-field-grid,
.viewer-editor-frame.preview-mobile .summary-entry-document .summary-entry-note,
.viewer-editor-frame.preview-mobile .summary-entry-document .summary-entry-actions { grid-column: auto; grid-row: auto; justify-self: stretch; }
.viewer-editor-frame.preview-mobile .summary-entry-actions .button,
.viewer-editor-frame.preview-mobile .day-stay-link .button { width: 100%; }
.viewer-editor-frame.preview-mobile .day-stay-link,
.viewer-editor-frame.preview-mobile .detail-list > div,
.viewer-editor-frame.preview-mobile .schedule-meta div,
.viewer-editor-frame.preview-mobile .summary-entry-transport .summary-field-grid div,
.viewer-editor-frame.preview-mobile .structured-transport .detail-list div { grid-template-columns: 1fr; gap: 3px; }
.viewer-editor-frame.preview-mobile .transport-route-card { grid-template-columns: auto minmax(0, 1fr); align-items: flex-start; }
.viewer-editor-frame.preview-mobile .viewer-body { font-size: 16px; padding-top: 16px; padding-bottom: 16px; }
.viewer-editor-frame.preview-mobile .viewer-body h2,
.viewer-editor-frame.preview-mobile .viewer .proposal-day h3,
.viewer-editor-frame.preview-mobile .viewer .itinerary-item h3,
.viewer-editor-frame.preview-mobile .viewer .itinerary-item h4,
.viewer-editor-frame.preview-mobile .viewer .map-card h4,
.viewer-editor-frame.preview-mobile .viewer .document-row h4,
.viewer-editor-frame.preview-mobile .viewer .lead,
.viewer-editor-frame.preview-mobile .viewer p { overflow-wrap: anywhere; }
.viewer-editor-frame.preview-mobile .viewer .proposal-day h3 { font-size: 24px; }
.viewer-editor-frame.preview-mobile .viewer .itinerary-item h3,
.viewer-editor-frame.preview-mobile .viewer .itinerary-item h4,
.viewer-editor-frame.preview-mobile .viewer .map-card h4 { font-size: 21px; }
.viewer-editor-frame.preview-mobile .viewer .detail-group-title { font-size: 16px; }
.viewer-editor-frame.preview-mobile .viewer .detail-list dt,
.viewer-editor-frame.preview-mobile .viewer .structured-details dt,
.viewer-editor-frame.preview-mobile .viewer .summary-field-grid dt { font-size: 15px; }
.viewer-editor-frame.preview-mobile .viewer .detail-list dd,
.viewer-editor-frame.preview-mobile .viewer .structured-details dd,
.viewer-editor-frame.preview-mobile .viewer .summary-field-grid dd { font-size: 16px; }
.viewer-editor-frame.preview-mobile .viewer .highlight-strip,
.viewer-editor-frame.preview-mobile .viewer .route-strip,
.viewer-editor-frame.preview-mobile .viewer .structured-details,
.viewer-editor-frame.preview-mobile .viewer .summary-field-grid,
.viewer-editor-frame.preview-mobile .viewer .hotel-comparison-grid,
.viewer-editor-frame.preview-mobile .viewer .schedule-list li { grid-template-columns: minmax(0, 1fr); }
.viewer-editor-frame.preview-mobile .summary-field-grid div.is-wide { grid-column: 1 / -1; }
.viewer-editor-frame.preview-mobile .schedule-list { padding-left: 0; }
.viewer-editor-frame.preview-mobile .hotel-image-slide img,
.viewer-editor-frame.preview-mobile .image-carousel-slide img,
.viewer-editor-frame.preview-mobile .image-carousel-video { aspect-ratio: 4 / 3; }
.viewer-editor-frame.preview-mobile .image-carousel-arrow { min-width: 44px; width: 44px; min-height: 44px; }
.viewer-editor-frame.preview-mobile .image-carousel-prev { left: 8px; }
.viewer-editor-frame.preview-mobile .image-carousel-next { right: 8px; }
.viewer-editor-canvas .viewer-top-actions,
.viewer-editor-canvas .viewer-theme-switcher { display: none; }
.viewer-editor-canvas .viewer-body { padding-bottom: 48px; }
.viewer-editor-day-shell,
.viewer-editor-block-shell { position: relative; }
.viewer-editor-day-shell { padding-top: 46px; }
.viewer-editor-day-bar,
.viewer-editor-block-bar { position: sticky; top: 0; z-index: 5; min-height: 38px; padding: 6px 8px; border: 1px solid rgba(24, 33, 43, 0.12); border-radius: 7px; background: rgba(255, 255, 255, 0.96); box-shadow: 0 8px 22px rgba(24, 33, 43, 0.08); }
.viewer-editor-day-bar { margin: -36px 0 12px; }
.viewer-day-image-button { position: absolute; top: 14px; right: 14px; z-index: 3; overflow: hidden; padding: 0; background: rgba(255, 255, 255, 0.92); color: var(--ink); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22); }
.viewer-day-image-button-thumb { display: block; width: 100%; height: 100%; min-width: 32px; min-height: 32px; object-fit: cover; object-position: center; }
.viewer-day-image-button-icon { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0, 18, 25, 0.34); color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.36); }
.viewer-day-image-button-icon .icon { font-size: 18px; }
.viewer-visual-media--empty-day { display: grid; min-height: 220px; aspect-ratio: 16 / 10; border: 1px dashed #aebfcb; border-radius: 8px; overflow: hidden; background: linear-gradient(135deg, rgba(19, 65, 84, 0.96), rgba(41, 121, 114, 0.9)), radial-gradient(circle at 16% 20%, rgba(255, 255, 255, 0.22), transparent 36%), radial-gradient(circle at 86% 80%, rgba(234, 172, 87, 0.28), transparent 42%); }
.viewer-day-image-empty-state { display: grid; place-items: center; align-content: center; gap: 7px; width: 100%; min-height: 100%; padding: 28px; border: 0; border-radius: 0; background: transparent; color: #fff; text-align: center; box-shadow: none; }
.viewer-day-image-empty-state:hover { background: rgba(255, 255, 255, 0.10); color: #fff; }
.viewer-day-image-empty-state:focus-visible { outline: 3px solid #fff; outline-offset: -7px; }
.viewer-day-image-empty-state strong { font-size: 1rem; }
.viewer-day-image-empty-state small { color: rgba(255, 255, 255, 0.84); font-size: 0.8rem; }
.viewer-day-image-empty-icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 3px; border: 1px solid rgba(255, 255, 255, 0.48); border-radius: 50%; background: rgba(255, 255, 255, 0.14); }
.viewer-day-image-empty-icon .icon { font-size: 25px; }
.viewer-editor-block-bar { margin-bottom: 10px; }
.viewer-editor-block-shell { margin: 16px 0; padding: 10px; border: 1px dashed rgba(47, 143, 123, 0.45); border-radius: 8px; background: rgba(255, 255, 255, 0.72); }
.viewer-editor-block-shell.is-selected,
.viewer-editor-day-shell.is-selected { box-shadow: inset 0 0 0 2px var(--accent), 0 10px 28px rgba(24, 33, 43, 0.10); }
.preview-device-button .icon { font-size: 17px; }
.preview-frame { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 18px; margin: 0 auto; transition: max-width 160ms ease; }
.preview-tablet { max-width: 760px; }
.preview-mobile { max-width: 390px; }
.preview-reduced { transition: none; }
.preview-frame[dir="rtl"] { text-align: right; }
.preview-day { border-top: 1px solid var(--line); padding: 16px 0; }
.preview-day.is-day-drop-target { box-shadow: inset 0 -4px 0 var(--secondary); background: #fffaf5; }
.wysiwyg-canvas [contenteditable="true"] { border-radius: 7px; min-height: 1.35em; padding: 3px 5px; margin-left: -5px; margin-right: -5px; transition: background-color 120ms ease, color 120ms ease, box-shadow 120ms ease; }
.wysiwyg-canvas [contenteditable="true"]:hover,
[contenteditable="true"]:hover { background-color: #fff59d !important; color: #000000 !important; text-shadow: none !important; box-shadow: inset 0 0 0 1.5px #fbc02d, 0 2px 8px rgba(0, 0, 0, 0.12) !important; }
.wysiwyg-canvas [contenteditable="true"]:focus,
.wysiwyg-canvas [contenteditable="true"]:focus-visible,
.wysiwyg-canvas [contenteditable="true"].is-editing,
[contenteditable="true"]:focus,
[contenteditable="true"]:focus-visible { background-color: #fff176 !important; color: #000000 !important; text-shadow: none !important; box-shadow: inset 0 0 0 2px #f57f17, 0 4px 14px rgba(0, 0, 0, 0.18) !important; outline: none !important; }
.wysiwyg-canvas [contenteditable="true"]:hover *,
.wysiwyg-canvas [contenteditable="true"]:focus *,
.wysiwyg-canvas [contenteditable="true"]:focus-visible *,
.wysiwyg-canvas [contenteditable="true"].is-editing *,
[contenteditable="true"]:hover *,
[contenteditable="true"]:focus * { color: #000000 !important; text-shadow: none !important; }
.wysiwyg-canvas [contenteditable="true"][aria-invalid="true"], textarea[aria-invalid="true"] { box-shadow: inset 0 0 0 2px #b42318 !important; background: #fff5f3 !important; color: #8f2424 !important; }
.wysiwyg-error-message { margin: 6px 0 0; color: #8f2424; font-size: 13px; font-weight: 700; }
.wysiwyg-editable-group[data-wysiwyg-dirty="true"] { box-shadow: inset 3px 0 0 var(--accent); }
.wysiwyg-editable-group.is-selected { box-shadow: inset 0 0 0 2px var(--accent), 0 8px 24px rgba(24, 33, 43, 0.08); }
.wysiwyg-editable-group.is-dragging { opacity: 0.55; }
.wysiwyg-editable-group.is-drop-target { box-shadow: inset 0 -4px 0 var(--accent), 0 8px 24px rgba(24, 33, 43, 0.08); }
.wysiwyg-editable-group.is-hidden-in-preview { opacity: 0.62; border-left-style: dashed; }
.editor-block-render:empty { display: none; }
.editor-block-render { margin-bottom: 10px; }
.wysiwyg-save-form[hidden] { display: none; }
.wysiwyg-block-bar { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.wysiwyg-block-bar .inline-form { gap: 0; }
.wysiwyg-block-bar .icon-button { opacity: 0.88; }
.wysiwyg-block-bar .icon-button:hover, .wysiwyg-block-bar .icon-button:focus-visible { opacity: 1; }
.wysiwyg-block-bar .button.warning.icon-button,
.wysiwyg-block-bar button.warning.icon-button { background: #d9381e; color: #ffffff; border: 0; }
.wysiwyg-block-bar .button.warning.icon-button:hover,
.wysiwyg-block-bar button.warning.icon-button:hover { background: #b42318; color: #ffffff; }
.viewer .editor-source-button,
.viewer button.editor-source-button,
.editor-source-button { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 26px !important; height: 26px !important; min-width: 26px !important; min-height: 26px !important; max-width: 26px !important; max-height: 26px !important; padding: 0 !important; vertical-align: middle !important; border-radius: 6px !important; background: var(--primary, #005f73) !important; color: var(--on-primary, #ffffff) !important; border: 1px solid rgba(0, 0, 0, 0.15) !important; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) !important; }
.viewer .editor-source-button .icon,
.viewer button.editor-source-button .icon,
.editor-source-button .icon { width: 14px !important; height: 14px !important; min-width: 14px !important; min-height: 14px !important; display: block !important; flex: 0 0 auto !important; stroke: currentColor !important; color: inherit !important; stroke-width: 2.2 !important; }
.viewer .editor-source-button:hover,
.viewer button.editor-source-button:hover,
.editor-source-button:hover { background: var(--accent, #0a9396) !important; color: var(--on-accent, #ffffff) !important; }
.viewer .item-type .editor-source-button,
.viewer .item-summary .editor-source-button,
.viewer .viewer-hero-meta .editor-source-button,
.viewer .route-overview h2 .editor-source-button { margin-left: 6px; }
.viewer .proposal-day-date .editor-source-button { margin-inline-start: 8px; margin-inline-end: 4px; display: inline-flex; align-items: center; vertical-align: middle; }
.viewer .item-type .editor-source-button { text-transform: none; letter-spacing: 0; }
.drag-handle { cursor: grab; }
.drag-handle:active { cursor: grabbing; }
.compact-modal, #shift-dates-modal { max-width: 440px; }
.canvas-insert-form { margin-top: 12px; border: 1px dashed var(--line); border-radius: 7px; padding: 10px; display: grid; grid-template-columns: minmax(110px, 150px) minmax(0, 1fr) auto; gap: 8px; align-items: center; background: #fbfcfd; text-align: left; }
.js-editor-active .wysiwyg-editable-group:not(.is-selected) .canvas-inline-insert { display: none; }
.canvas-inline-insert { margin-top: 10px; background: #fff; }
.canvas-insert-form select, .canvas-insert-form input { min-height: 34px; padding: 7px 9px; text-align: left; direction: ltr; }
.canvas-insert-form button { min-height: 34px; }
.pdf-preview-page { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.price-panel { border-top: 0; overflow: hidden; background: linear-gradient(135deg, #ffffff 0%, #f4faf8 55%, #fffaf5 100%); border-color: #cadfda; box-shadow: 0 20px 50px rgba(0, 18, 25, 0.08); }
.viewer .price-panel h2 { color: var(--viewer-text-primary); font-size: var(--viewer-size-section-title); line-height: 1.12; font-weight: var(--viewer-weight-bold); padding-bottom: 12px; border-bottom: 1px solid #dce6ee; }
.viewer .price-panel .price-amount { margin: 0; color: var(--viewer-text-accent); font-size: clamp(30px, 3.5vw, 46px); line-height: 1.05; font-weight: var(--viewer-weight-bold); }
.price-panel > .price-basis { padding: 12px; border: 1px solid #dce6ee; border-radius: 8px; background: #fff; }
.price-panel .muted { padding-top: 8px; border-top: 1px solid #dce6ee; }
.contact-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.contact-card-grid.single { grid-template-columns: minmax(0, 1fr); }
.contact-person-card { display: grid; grid-template-rows: auto 1fr auto; align-content: stretch; gap: 12px; min-width: 0; }
.contact-company-card { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); grid-template-areas: "logo copy" "logo actions"; align-content: stretch; gap: 14px 18px; min-width: 0; }
.contact-profile { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; margin-bottom: 0; }
.contact-avatar { width: 72px; height: 72px; border-radius: 999px; object-fit: cover; border: 2px solid #dce6ee; background: #edf3f6; color: var(--primary); display: grid; place-items: center; font-size: 24px; font-weight: 700; }
.contact-avatar-initials { box-shadow: inset 0 0 0 6px #fff; }
.price-panel .button { width: auto; justify-self: start; min-width: 178px; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 8px; align-self: end; }
.contact-actions .button { width: auto; min-width: 112px; }
.contact-company-copy { grid-area: copy; min-width: 0; display: grid; align-content: start; gap: 10px; }
.contact-company-heading { min-width: 0; }
.contact-company-logo { grid-area: logo; min-width: 0; min-height: 168px; border: 1px solid #dce6ee; border-radius: 8px; background: #fff; display: grid; place-items: center; overflow: hidden; color: var(--primary); font-size: 28px; font-weight: 700; }
.contact-company-logo img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.contact-company-heading strong { display: block; color: var(--viewer-text-primary); font-size: 22px; line-height: 1.25; overflow-wrap: anywhere; }
.contact-company-heading p { margin: 2px 0 0; }
.contact-company-card .contact-actions { grid-area: actions; }
.viewer-reveal { opacity: 0; transform: translateY(14px); transition: opacity 360ms ease, transform 360ms ease; }
.viewer-reveal.is-visible { opacity: 1; transform: translateY(0); }
.viewer-editor-canvas .viewer-reveal,
.viewer-editor-canvas .animation-fade,
.viewer-editor-canvas .animation-slide,
.viewer-editor-canvas .animation-reveal { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.auth-page { min-height: 100vh; padding: 24px; background: linear-gradient(135deg, color-mix(in srgb, var(--brand-mint), #fff 72%), color-mix(in srgb, var(--brand-cream), #fff 68%)); }
.auth-wrap { width: 100%; max-width: 460px; margin: 72px auto 24px; }
.auth-card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 28px; box-shadow: var(--shadow-raised); }
.auth-below-card { margin: 14px 0 0; text-align: center; color: var(--text-secondary); font-size: 14px; line-height: 1.5; }
.auth-below-card p { margin: 0; }
.auth-below-card a { color: var(--primary); font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.auth-brand { color: var(--ink); margin-bottom: 22px; }
.notice {
  --notice-accent: var(--primary);
  --notice-border: #BFD9D7;
  --notice-bg: #EAF5F3;
  --notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12v4'/%3E%3Cpath d='M12 8h.01'/%3E%3Cpath d='M12 21a9 9 0 1 0 0-18a9 9 0 0 0 0 18z'/%3E%3C/svg%3E");
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  column-gap: 10px;
  border: 1px solid var(--notice-border);
  border-radius: 7px;
  padding: 11px 12px;
  margin-top: 16px;
  background: var(--notice-bg);
  color: var(--text);
}
.notice::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  grid-column: 1;
  grid-row: 1 / span 20;
  background: var(--notice-accent);
  -webkit-mask: var(--notice-icon) center / contain no-repeat;
  mask: var(--notice-icon) center / contain no-repeat;
}
.notice > * { grid-column: 2; min-width: 0; }
.notice.admin-flash::before,
.notice:has(> .icon)::before { content: none; }
.notice.admin-flash { display: flex; }
.notice p:first-child,
.notice ul:first-child { margin-top: 0; }
.notice p:last-child,
.notice ul:last-child { margin-bottom: 0; }
.main > .notice,
.content > .notice,
.app-notice-stack > .notice { width: 100%; margin: 0; padding: 13px 15px; font-weight: 700; box-shadow: 0 10px 26px rgba(24, 33, 43, 0.08); }
.main > .notice p,
.main > .notice li,
.main > .notice .detail-grid,
.content > .notice p,
.content > .notice li,
.content > .notice .detail-grid,
.app-notice-stack > .notice p,
.app-notice-stack > .notice li,
.app-notice-stack > .notice .detail-grid { font-weight: 400; }
.notice strong { color: var(--notice-accent); }
.notice.info { --notice-accent: var(--primary); --notice-border: #BFD9D7; --notice-bg: #EAF5F3; }
.notice.error { --notice-accent: var(--danger); --notice-border: #E8B9B4; --notice-bg: #FFF0EF; --notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M12 21a9 9 0 1 0 0-18a9 9 0 0 0 0 18z'/%3E%3C/svg%3E"); color: var(--text); }
.notice.error strong { color: var(--danger); }
.notice.success { --notice-accent: var(--success); --notice-border: #C7E5DC; --notice-bg: #EAF6F1; --notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 12l2 2l4-4'/%3E%3Cpath d='M12 21a9 9 0 1 0 0-18a9 9 0 0 0 0 18z'/%3E%3C/svg%3E"); color: var(--text); }
.notice.success strong { color: var(--success); }
.notice.warning { --notice-accent: var(--warning); --notice-border: #EBD99D; --notice-bg: #FFF6D8; --notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E"); color: var(--text); }
.notice.warning strong { color: var(--warning); }
.notice.warning.admin-flash {
  border-color: #8f1d18;
  background-color: #c52b25;
  background-image: repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.22) 0, rgba(255, 255, 255, 0.22) 8px, transparent 8px, transparent 18px);
  color: #fff;
  box-shadow: 0 10px 26px rgba(116, 25, 21, 0.24);
}
.notice.warning.admin-flash > .icon { color: #fff; flex: 0 0 auto; }
.notice.warning.admin-flash .inline-form { margin-left: auto; }
.notice.warning.admin-flash button.secondary {
  border-color: #fff;
  background: #fff;
  color: #9d211c;
}
.notice.warning.admin-flash button.secondary:hover,
.notice.warning.admin-flash button.secondary:active {
  border-color: #fff;
  background: #fff3f2;
  color: #761813;
}
.media-upload-result { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.media-upload-result::before { content: none; }
.notice.media-upload-result > * { grid-column: 1; }
.media-upload-result-group { display: grid; gap: 7px; }
.media-upload-result-group > strong { display: flex; gap: 8px; align-items: center; color: var(--text); font-size: 14px; line-height: 1.35; }
.media-upload-result-group ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.media-upload-result-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; padding: 2px 0; }
.media-upload-result-row .icon { margin-top: 1px; }
.media-upload-result-row.is-error .icon { color: var(--danger); }
.media-upload-result-row.is-success .icon { color: var(--success); }
.media-upload-result-row bdi { display: block; color: var(--text); font-weight: 700; overflow-wrap: anywhere; }
.media-upload-result-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.admin-flash { display: flex; align-items: center; gap: 8px; }
.itinerary-dropzone { min-height: 140px; }
.inline-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.inline-form select { width: auto; min-width: 170px; }
.member-role-form { display: grid; grid-template-columns: minmax(155px, 1fr); align-items: center; max-width: 220px; }
.member-role-form select { width: 100%; min-width: 0; }
.member-action-stack { display: grid; gap: 8px; justify-items: end; width: var(--admin-action-width); margin-left: auto; }
.member-action-stack .button,
.member-action-stack button,
.member-action-stack .inline-form { width: 100%; justify-content: flex-start; }
.member-action-stack .muted.small { display: inline-flex; align-items: center; gap: 6px; max-width: 220px; line-height: 1.35; }
.status-form { margin-top: 0; }
.link-status-form select { width: 160px; min-width: 160px; max-width: 160px; }
.actions-cell .icon-actions { width: 160px; max-width: 100%; margin-top: 6px; }
.actions-cell .status-form select { width: 160px; min-width: 160px; max-width: 160px; }
.actions-cell { min-width: var(--sidebar-width, 248px); }
.compact-links { margin-top: 8px; gap: 6px; flex-wrap: wrap; }
.compact-links a { color: var(--primary); font-size: 12px; line-height: 1.3; text-decoration: underline; text-underline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.organization-branding-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr); gap: 22px; align-items: start; }
.organization-branding-settings { display: grid; gap: 14px; }
.organization-branding-settings .form-grid { margin-top: 0; }
.organization-branding-settings > button { width: fit-content; }
.media-library-page { justify-items: center; }
.seller-guidance-summary.is-empty { min-height: 202px; }
.media-library-stack { display: grid; gap: 18px; }
.media-filter-form { display: grid; grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(130px, 180px)) auto; gap: 12px; align-items: end; }
.inline-filter-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 10px 0 16px; min-width: 0; }
.inline-filter-form label { flex: 1 1 180px; min-width: min(100%, 180px); }
.inline-filter-form .filter-actions { flex: 0 1 auto; }
.site-admin-report-nav { position: sticky; top: 0; z-index: 25; align-self: start; display: flex; gap: 8px; align-items: center; overflow-x: auto; margin: -2px 0 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, 0.96); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); }
.site-admin-report-nav a { flex: 0 0 auto; padding: 7px 10px; border-radius: 6px; color: var(--primary); font-size: 13px; font-weight: 700; white-space: nowrap; }
.site-admin-report-nav a:hover { background: var(--neutral-subtle); }
#overview, .site-admin-report-nav + section, .site-admin-report-nav ~ section { scroll-margin-top: 78px; }
.site-admin-journey-path { min-width: 280px; max-width: 620px; overflow-wrap: anywhere; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.media-bulk-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--neutral-subtle); }
.media-bulk-actions .checkbox-row { min-height: 0; margin: 0; }
.media-card { position: relative; overflow: hidden; padding: 0; display: grid; grid-template-rows: 184px minmax(0, 1fr); min-width: 0; }
.media-select-control { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 5px; margin: 10px; padding: 5px 8px; border-radius: 6px; background: rgba(255, 255, 255, 0.94); color: var(--text); font-size: 12px; font-weight: 700; box-shadow: var(--shadow-soft); }
.media-select-control input { width: auto; margin: 0; }
.media-empty-card { grid-column: 1 / -1; text-align: center; }
.media-empty-card p { margin: 0; }
.media-thumb { height: 184px; min-height: 184px; background: var(--neutral-subtle); border-bottom: 1px solid var(--line); display: grid; place-items: center; overflow: hidden; }
.media-thumb button[data-lightbox-src] { width: 100%; height: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; box-shadow: none; cursor: zoom-in; }
.media-thumb button[data-lightbox-src]:hover { background: transparent; color: inherit; }
.media-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; }
.media-video-preview { width: 100%; height: 100%; display: block; object-fit: contain; background: #101820; }
.media-video-thumb { display: grid; gap: 8px; place-items: center; color: var(--muted); }
.media-card-body { display: grid; gap: 10px; padding: 14px; }
.media-card-body h3 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.media-rights-note { margin: -2px 0 0; font-size: 12px; line-height: 1.35; }
.media-edit-details > summary { cursor: pointer; color: var(--primary); font-size: 12px; line-height: 1.35; font-weight: 600; }
.media-edit-details[open] > summary { margin-bottom: 8px; }
.media-card-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.media-card-actions .inline-form { margin: 0; }
.compact-form { gap: 8px; margin-top: 10px; }
.advanced-fields { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: #fff; }
.advanced-fields summary { cursor: pointer; color: var(--primary); }
.advanced-fields .form-grid { margin-top: 12px; }
.route-stop-editor { display: grid; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--neutral-subtle); }
.route-stop-editor h3 { margin: 0; font-size: 1rem; }
.media-result-heading { align-items: center; flex-wrap: wrap; }
.tag-list { display: flex; gap: 6px; flex-wrap: wrap; }
.tag-chip { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; background: var(--neutral-subtle); color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.profile-upload-status { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.profile-upload-status.is-error { color: var(--danger); font-weight: 700; }
.organization-branding-preview { display: grid; gap: 14px; }
.organization-branding-layout,
.organization-branding-layout *,
.organization-join-details,
.organization-join-details *,
.member-action-stack,
.member-action-stack *,
.admin-action-layout,
.admin-action-layout * { min-width: 0; }
.organization-branding-layout,
.organization-join-details,
.member-action-stack,
.admin-action-layout { overflow-wrap: anywhere; }
.brand-color-controls { margin-top: 0; }
.brand-color-field { position: relative; gap: 8px; }
.brand-color-field-label { display: block; color: var(--muted); font-size: 13px; font-weight: 700; }
.brand-color-field-control { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; min-height: 46px; border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; box-shadow: 0 8px 18px rgba(0, 18, 25, 0.035); }
.brand-color-field-swatch { display: block; width: 100%; height: 100%; min-height: 46px; padding: 0; border: 0; border-right: 1px solid var(--line); border-radius: 0; background: currentColor; cursor: pointer; }
.brand-color-field-swatch:hover { border-color: var(--line); background: currentColor; transform: none; }
.brand-color-field-control input { min-height: 46px; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 14px; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.brand-color-field-control input:hover,
.brand-color-field-control input:focus { border-color: transparent; box-shadow: none; }
.brand-color-field-control:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus-ring), #fff 45%); }
.brand-color-field-control:has(input:invalid) { border-color: var(--danger); box-shadow: 0 0 0 3px #FFE0DC; }
.brand-color-popover { position: absolute; left: 0; bottom: calc(46px + 8px); z-index: 30; display: grid; width: min(260px, calc(100vw - 32px)); gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 18px 44px rgba(0, 18, 25, 0.14); }
.brand-color-field:nth-child(3) .brand-color-popover { left: auto; right: 0; }
.brand-color-popover[hidden] { display: none; }
.brand-color-popover-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.brand-color-popover-head strong { color: var(--ink); font-size: 13px; line-height: 1.25; }
.brand-color-popover-head .icon-button { width: 30px; min-width: 30px; min-height: 30px; padding: 0; }
.brand-color-popover-actions { display: flex; align-items: center; gap: 6px; }
.brand-color-spectrum { position: relative; width: 100%; aspect-ratio: 1 / 1; min-height: 150px; border: 1px solid rgba(0, 18, 25, 0.18); border-radius: 7px; background: linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(var(--picker-hue, 0), 100%, 50%)); cursor: crosshair; overflow: hidden; touch-action: none; }
.brand-color-spectrum span { position: absolute; left: calc(var(--picker-saturation, 1) * 100%); top: calc((1 - var(--picker-value, 1)) * 100%); width: 14px; height: 14px; border: 2px solid #fff; border-radius: 999px; box-shadow: 0 0 0 1px #001219, 0 2px 8px rgba(0, 18, 25, 0.35); transform: translate(-50%, -50%); pointer-events: none; }
.brand-color-hue-label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.brand-color-hue-label input[type="range"] { appearance: none; -webkit-appearance: none; height: 28px; min-height: 28px; padding: 0; border: 0; border-radius: 999px; background: transparent; cursor: pointer; }
.brand-color-hue-label input[type="range"]::-webkit-slider-runnable-track { height: 14px; border: 1px solid rgba(0, 18, 25, 0.18); border-radius: 999px; background: linear-gradient(to right, #f00 0%, #ff8000 8.33%, #ff0 16.66%, #80ff00 25%, #0f0 33.33%, #00ff80 41.66%, #0ff 50%, #0080ff 58.33%, #00f 66.66%, #8000ff 75%, #f0f 83.33%, #ff0080 91.66%, #f00 100%); }
.brand-color-hue-label input[type="range"]::-moz-range-track { height: 14px; border: 1px solid rgba(0, 18, 25, 0.18); border-radius: 999px; background: linear-gradient(to right, #f00 0%, #ff8000 8.33%, #ff0 16.66%, #80ff00 25%, #0f0 33.33%, #00ff80 41.66%, #0ff 50%, #0080ff 58.33%, #00f 66.66%, #8000ff 75%, #f0f 83.33%, #ff0080 91.66%, #f00 100%); }
.brand-color-hue-label input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; margin-top: -3px; border: 2px solid #fff; border-radius: 999px; background: hsl(var(--picker-hue, 0), 100%, 50%); box-shadow: 0 0 0 1px #001219, 0 2px 8px rgba(0, 18, 25, 0.25); }
.brand-color-hue-label input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border: 2px solid #fff; border-radius: 999px; background: hsl(var(--picker-hue, 0), 100%, 50%); box-shadow: 0 0 0 1px #001219, 0 2px 8px rgba(0, 18, 25, 0.25); }
.brand-color-hue-label input[type="range"]:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus-ring), #fff 45%); outline-offset: 3px; }
.brand-color-rgb-grid { display: grid; grid-template-columns: 1fr; gap: 6px; }
.brand-color-rgb-grid label { grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 700; }
.brand-color-rgb-grid input { min-height: 34px; padding: 7px 8px; text-align: left; }
.brand-theme-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; }
.brand-theme-picker legend { grid-column: 1 / -1; color: var(--muted); font-size: 13px; font-weight: 700; }
.brand-theme-option { position: relative; display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 62px; padding: 10px 10px 10px 34px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); cursor: pointer; }
.brand-theme-option input { position: absolute; left: 10px; top: 50%; width: 16px; height: 16px; margin: 0; transform: translateY(-50%); accent-color: var(--primary); }
.brand-theme-option:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 2px rgba(0, 95, 115, 0.14); }
.brand-theme-option strong { color: var(--ink); font-size: 13px; line-height: 1.25; }
.brand-theme-option-swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; width: 86px; height: 38px; overflow: hidden; border-radius: 6px; border: 1px solid rgba(0, 18, 25, 0.08); background: #fff; }
.brand-theme-option-swatches span { min-width: 0; }
.brand-theme-option-custom .brand-theme-option-swatches span:first-child { background: var(--primary); }
.brand-theme-option-custom .brand-theme-option-swatches span:nth-child(2) { background: var(--secondary); }
.brand-theme-option-custom .brand-theme-option-swatches span:nth-child(3) { background: var(--accent); }
.brand-list-logo { width: 92px; height: 58px; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 8px; }
.brand-color-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.brand-color-row span { min-height: 8px; border-radius: 999px; border: 1px solid rgba(0, 18, 25, 0.08); }
.visual-template-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0; padding: 0; border: 0; }
.visual-template-picker legend { grid-column: 1 / -1; color: var(--muted); font-size: 13px; font-weight: 700; }
.visual-template-card { position: relative; display: grid; gap: 8px; align-content: start; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); cursor: pointer; box-shadow: 0 8px 18px rgba(0, 18, 25, 0.035); }
.visual-template-card input { position: absolute; inset: 10px 10px auto auto; width: 18px; height: 18px; }
.visual-template-card:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary), #fff 54%), 0 12px 26px rgba(0, 95, 115, 0.10); }
.visual-template-card strong { padding-right: 24px; color: var(--ink); font-size: 15px; line-height: 1.25; }
.visual-template-card small { color: var(--text-secondary); line-height: 1.35; }
.visual-template-card em { width: fit-content; padding: 3px 7px; border-radius: 999px; background: #EAF4F2; color: var(--primary); font-size: 12px; font-style: normal; font-weight: 700; }
.visual-template-thumb { display: grid; grid-template-columns: 1fr 0.66fr; gap: 5px; height: 66px; padding: 7px; border-radius: 7px; background: linear-gradient(135deg, #EFF7F5, #FFFFFF); border: 1px solid #D7E1E1; }
.visual-template-thumb span { border-radius: 5px; background: color-mix(in srgb, var(--primary), #fff 76%); }
.visual-template-thumb span:first-child { grid-row: 1 / span 2; background: linear-gradient(135deg, var(--primary), var(--accent)); }
.visual-template-thumb span:nth-child(3) { background: color-mix(in srgb, var(--secondary), #fff 42%); }
.visual-template-card-editorial .visual-template-thumb { grid-template-columns: 1.2fr 0.5fr; }
.visual-template-card-compact .visual-template-thumb { grid-template-columns: repeat(3, 1fr); }
.visual-template-card-adventure .visual-template-thumb span:first-child { background: linear-gradient(135deg, var(--brand-orange), var(--primary)); }
.visual-template-card-destination-story .visual-template-thumb { grid-template-columns: 0.7fr 1fr; }
.brand-preview { min-height: 100%; --viewer-theme-page: color-mix(in srgb, var(--secondary), #fff 86%); --viewer-theme-page-soft: color-mix(in srgb, var(--secondary), #fff 94%); --viewer-theme-surface: color-mix(in srgb, var(--accent), #fff 96%); --viewer-theme-band: color-mix(in srgb, var(--secondary), #fff 78%); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--viewer-theme-page); box-shadow: 0 14px 34px rgba(24, 33, 43, 0.08); }
.brand-preview-hero { background: linear-gradient(90deg, rgba(10, 18, 25, 0.76), rgba(10, 18, 25, 0.34)), url('/img/demo/vietnam-photography/hero-terraces.webp') center/cover no-repeat; color: #fff; min-height: 190px; padding: 22px; display: grid; align-content: space-between; gap: 22px; }
.brand-preview-hero img { max-height: 58px; max-width: 220px; object-fit: contain; background: #fff; border-radius: 7px; padding: 8px; }
.brand-preview-hero span { display: block; color: rgba(255, 255, 255, 0.78); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.brand-preview-hero strong { display: block; margin-top: 6px; font-size: 24px; line-height: 1.2; overflow-wrap: anywhere; }
.brand-preview-logo strong { display: inline-block; margin: 0; padding: 8px 12px; border-radius: 7px; background: #fff; color: var(--primary); font-size: 18px; line-height: 1.2; }
.brand-preview-glance { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--viewer-theme-band); border-bottom: 1px solid color-mix(in srgb, var(--secondary), #fff 76%); }
.brand-preview-glance div { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 7px; align-items: start; padding: 11px 9px; background: var(--viewer-theme-surface); border-left: 1px solid color-mix(in srgb, var(--secondary), #fff 80%); }
.brand-preview-glance div:nth-child(even) { background: color-mix(in srgb, var(--secondary), #fff 93%); }
.brand-preview-glance div:first-child { border-left: 0; }
.brand-preview-glance span { grid-row: 1 / span 2; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; background: var(--primary); color: var(--on-primary); }
.brand-preview-glance .icon { font-size: 15px; }
.brand-preview-glance small { color: #4f5f68; font-size: 11px; line-height: 1.2; font-weight: 700; }
.brand-preview-glance strong { color: var(--ink); font-size: 12px; line-height: 1.25; overflow-wrap: anywhere; }
.brand-preview-nav { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 12px; background: linear-gradient(90deg, color-mix(in srgb, var(--primary), #fff 92%), color-mix(in srgb, var(--secondary), #fff 88%), color-mix(in srgb, var(--accent), #fff 92%)); border-bottom: 1px solid color-mix(in srgb, var(--secondary), #fff 78%); }
.brand-preview-nav span { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 10px; border: 1px solid rgba(24, 33, 43, 0.12); border-radius: 7px; background: #fff; color: var(--primary-text); font-size: 12px; font-weight: 700; }
.brand-preview-nav span.is-active { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.brand-preview-flow { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 12px; padding: 16px; background: var(--viewer-theme-page); }
.brand-preview-flow section { display: grid; gap: 8px; min-height: 112px; padding: 14px; border: 1px solid color-mix(in srgb, var(--primary), #fff 78%); border-top: 4px solid var(--accent); border-left: 4px solid var(--secondary); border-radius: 8px; background: #fff; }
.brand-preview-flow small { color: var(--primary-text); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.brand-preview-flow strong { color: var(--ink); font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
.brand-preview-flow p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.brand-preview-flow aside { display: grid; gap: 8px; align-content: start; min-width: 0; }
.brand-preview-flow aside span { min-height: 26px; border-radius: 7px; background: var(--primary); }
.brand-preview-flow aside span:nth-child(2) { background: var(--secondary); }
.brand-preview-flow aside span:nth-child(3) { background: var(--accent); }
.audit-json { white-space: pre-wrap; word-break: break-word; background: #f6f8fb; border: 1px solid var(--line); border-radius: 7px; padding: 10px; max-width: 420px; }
.public-empty { max-width: 720px; margin: 0 auto; }
.skip-link { position: absolute; left: 16px; top: -48px; z-index: 20; padding: 10px 12px; border-radius: 7px; background: var(--primary); color: #fff; font-weight: 700; transition: top 160ms ease; }
.skip-link:focus { top: 12px; }
.marketing-page { background: #fff; color: var(--text); }
.marketing-inner { width: min(100% - 40px, 1180px); margin: 0 auto; }
.marketing-inner.narrow { max-width: 820px; text-align: center; }
.marketing-header { position: sticky; top: 0; z-index: 10; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(10px); }
.marketing-nav-row { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.marketing-brand { margin: 0; color: var(--ink); }
.marketing-nav, .marketing-actions, .marketing-footer nav { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.marketing-mobile-menu { display: none; }
.marketing-mobile-menu summary { align-items: center; gap: 7px; width: 40px; min-width: 40px; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--primary); font-weight: 700; list-style: none; cursor: pointer; }
.marketing-mobile-menu summary::-webkit-details-marker { display: none; }
.hamburger-icon, .hamburger-icon::before, .hamburger-icon::after { display: block; width: 20px; height: 2px; border-radius: 999px; background: currentColor; content: ""; }
.hamburger-icon { position: relative; }
.hamburger-icon::before { position: absolute; top: -6px; left: 0; }
.hamburger-icon::after { position: absolute; top: 6px; left: 0; }
.marketing-mobile-menu nav { display: grid; gap: 6px; margin-top: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.marketing-mobile-menu nav a { padding: 8px 9px; border-radius: 7px; color: var(--brand-ink); font-weight: 700; }
.marketing-mobile-menu nav a:hover { background: var(--neutral-subtle); color: var(--primary); }
.marketing-nav a, .marketing-login, .marketing-footer a { color: var(--brand-ink); font-weight: 700; font-size: 14px; }
.marketing-nav a:hover, .marketing-login:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.marketing-nav a.active { color: var(--primary); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.marketing-cta { white-space: nowrap; }
.auth-header { width: min(100% - 40px, 1180px); margin: 18px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.auth-header nav { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.auth-header a { color: var(--brand-ink); font-weight: 700; font-size: 14px; }
.auth-header a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.auth-header .auth-home-link { width: 42px; min-width: 42px; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; color: var(--primary); }
.auth-header .auth-home-link:hover { background: transparent; color: var(--brand-teal); text-decoration: none; }
.auth-header .auth-home-link .icon { width: 1.2em; height: 1.2em; }
.site-logo-auth-header { max-width: 168px; max-height: 36px; }
.marketing-hero { padding: 72px 0 54px; background: linear-gradient(180deg, color-mix(in srgb, var(--brand-mint), #fff 76%), #fff); }
.marketing-hero-grid { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr); gap: 42px; align-items: center; }
.marketing-hero-copy h1, .marketing-page-hero h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.02; max-width: 760px; }
.marketing-lead { color: var(--text-secondary); font-size: 20px; line-height: 1.55; max-width: 680px; margin: 20px 0 0; }
.marketing-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.marketing-hero-actions .button { min-width: 178px; }
.marketing-support { margin: 12px 0 0; color: var(--muted); font-size: 14px; }
.marketing-product-preview { position: relative; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; box-shadow: var(--shadow-raised); }
.marketing-product-preview picture, .marketing-product-preview img { display: block; width: 100%; height: auto; }
.marketing-home-preview { --marketing-preview-window-height: 620px; --marketing-preview-aspect-width: 720; --marketing-preview-aspect-height: 900; display: block; height: var(--marketing-preview-window-height); }
.marketing-home-preview:is(a) { display: block; color: inherit; text-decoration: none; cursor: pointer; }
.marketing-home-preview:is(a):focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.marketing-preview-pan-layer { display: block; width: 100%; aspect-ratio: var(--marketing-preview-aspect-width) / var(--marketing-preview-aspect-height); transform: translate3d(0, 0, 0); backface-visibility: hidden; contain: paint; will-change: auto; }
.marketing-preview-pan-layer picture { display: block; width: 100%; height: 100%; }
.marketing-home-preview img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.marketing-preview-card { position: absolute; right: 18px; bottom: 18px; width: min(310px, calc(100% - 36px)); display: grid; gap: 5px; padding: 14px; border: 1px solid rgba(255, 255, 255, 0.72); border-radius: 8px; background: rgba(255, 255, 255, 0.94); box-shadow: var(--shadow-soft); }
.marketing-preview-card span { color: var(--muted); font-size: 13px; line-height: 1.45; }
.demo-return-link,
.demo-top-link,
.public-top-link { position: fixed; bottom: 18px; z-index: 70; display: inline-flex; align-items: center; justify-content: center; width: 50px; min-width: 50px; min-height: 50px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.78); border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--primary); font-weight: 400; box-shadow: var(--shadow-soft); }
.demo-return-link { right: 78px; }
.demo-top-link,
.public-top-link { right: 18px; }
.cookie-consent ~ .demo-return-link,
.cookie-consent ~ .demo-top-link,
.cookie-consent ~ .public-top-link,
body:has(.cookie-consent) .demo-return-link,
body:has(.cookie-consent) .demo-top-link,
body:has(.cookie-consent) .public-top-link { bottom: 118px; }
.demo-return-link:hover,
.demo-top-link:hover,
.public-top-link:hover { color: var(--brand-ink); text-decoration: none; }
.demo-return-link span,
.demo-top-link span,
.public-top-link span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.marketing-section { padding: 64px 0; }
.marketing-section.compact-section { padding: 34px 0; }
.marketing-band { background: color-mix(in srgb, var(--brand-cream), #fff 68%); border-top: 1px solid rgba(0, 18, 25, 0.07); border-bottom: 1px solid rgba(0, 18, 25, 0.07); }
.marketing-mint-band { background: color-mix(in srgb, var(--brand-mint), #fff 82%); border-top: 1px solid rgba(0, 18, 25, 0.07); border-bottom: 1px solid rgba(0, 18, 25, 0.07); }
.marketing-answer-box { max-width: 900px; display: grid; gap: 10px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.marketing-answer-box h2 { font-size: clamp(24px, 2.3vw, 34px); }
.marketing-answer-box p { margin: 0; color: var(--text-secondary); font-size: 18px; line-height: 1.6; }
.section-heading { display: grid; gap: 10px; margin-bottom: 24px; }
.section-heading h2, .marketing-section h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }
.section-heading p, .marketing-section p { color: var(--text-secondary); line-height: 1.6; }
.marketing-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.marketing-card-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.marketing-card, .pricing-card, .marketing-form { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 22px; box-shadow: var(--shadow-soft); }
.marketing-flat-grid .marketing-card { box-shadow: none; background: #fff; border-color: color-mix(in srgb, var(--primary), #fff 84%); }
.marketing-feature-grid .marketing-card { box-shadow: none; }
.marketing-card h2, .marketing-card h3, .pricing-card h2 { margin-bottom: 8px; }
.marketing-card h3 a { color: inherit; text-decoration: none; }
.marketing-card h2 a, .marketing-card h3 a { color: inherit; text-decoration: none; }
.marketing-card h2 a:hover, .marketing-card h3 a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.marketing-card p, .pricing-card p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.marketing-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.marketing-steps article { display: grid; align-content: start; gap: 10px; padding: 22px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.marketing-steps span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: var(--primary); color: #fff; font-weight: 700; }
.marketing-steps p { margin: 0; color: var(--text-secondary); line-height: 1.5; }
.marketing-comparison, .marketing-split, .marketing-form-layout { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1.15fr); gap: 32px; align-items: start; }
.marketing-table-wrap { overflow-x: auto; }
.marketing-table { width: 100%; border-collapse: collapse; min-width: 620px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.marketing-table caption { padding: 0 0 12px; text-align: left; color: var(--muted); font-weight: 700; }
.marketing-table th, .marketing-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.marketing-table th { color: var(--primary); background: color-mix(in srgb, var(--brand-mint), #fff 78%); }
.marketing-table tr:last-child td, .marketing-table tr:last-child th { border-bottom: 0; }
.marketing-flow-cell { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.marketing-flow-cell .icon { flex: 0 0 auto; margin-top: 0.15em; color: var(--primary); }
.marketing-flow-cell span { min-width: 0; overflow-wrap: anywhere; }
.pricing-feature-table tbody th { color: var(--text-secondary); font-weight: 400; }
.pricing-feature-label { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pricing-feature-label .icon { flex: 0 0 auto; color: var(--primary); }
.pricing-feature-label span { min-width: 0; overflow-wrap: anywhere; }
.pricing-mobile-feature-groups { display: none; }
.pricing-mobile-feature-groups article { display: grid; gap: 7px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.pricing-mobile-feature-groups h2 { display: flex; align-items: center; gap: 9px; font-size: 18px; line-height: 1.25; }
.pricing-mobile-feature-groups h2 .icon { color: var(--primary); }
.pricing-mobile-feature-groups p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.marketing-mini-preview { display: grid; gap: 12px; }
.marketing-mini-preview div { display: grid; gap: 5px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.marketing-mini-preview span { color: var(--muted); }
.marketing-check-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.marketing-check-list li { display: flex; align-items: flex-start; gap: 10px; color: var(--text-secondary); line-height: 1.5; }
.marketing-check-list li::before { content: none; }
.marketing-check-list .icon { flex: 0 0 auto; margin-top: 0.15em; color: var(--primary); }
.marketing-split > .button { justify-self: start; width: auto; }
.marketing-final-cta { text-align: center; background: var(--brand-ink); color: #fff; }
.marketing-final-cta h2 { color: #fff; }
.marketing-final-cta p { color: #dbe7ea; margin: 10px auto 24px; max-width: 620px; }
.marketing-final-cta .button { background: var(--brand-amber); border-color: transparent; color: var(--brand-ink); }
.marketing-final-cta .button:hover { background: var(--brand-orange); border-color: transparent; color: var(--brand-ink); }
.marketing-page-hero { padding: 64px 0 42px; background: linear-gradient(180deg, color-mix(in srgb, var(--brand-mint), #fff 76%), #fff); }
.help-index-hero, .help-article-hero { padding: 38px 0 26px; }
.help-index-hero h1, .help-article-hero h1 { font-size: clamp(34px, 4vw, 52px); max-width: 720px; }
.help-index-hero .marketing-lead, .help-article-hero .marketing-lead { max-width: 680px; }
.marketing-section.help-shell-section, .help-article-hero + .compact-section { padding-top: 28px; }
.pricing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pricing-card { display: grid; grid-template-rows: auto auto minmax(104px, auto) auto auto; align-content: stretch; gap: 12px; }
.pricing-card > p:not(.eyebrow) { min-height: 104px; }
.pricing-card > .button { align-self: end; margin-top: auto; }
.pricing-card.featured { border-color: var(--primary); box-shadow: 0 18px 36px rgba(0, 95, 115, 0.16); }
.pricing-card h2 { font-size: 36px; color: var(--primary); }
.pricing-card h2 span { color: var(--muted); font-size: 16px; font-weight: 400; }
.pricing-feature-list { margin: 0; padding-left: 18px; color: var(--text-secondary); line-height: 1.5; }
.checkout-page .card { max-width: 920px; }
.pricing-note { margin: 18px 0 0; color: var(--muted); line-height: 1.55; }
.marketing-form-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, 430px); }
.marketing-form { display: grid; gap: 14px; align-content: start; }
.marketing-form, .marketing-form * { min-width: 0; }
.marketing-form h2 { margin-bottom: 2px; }
.marketing-form button { justify-self: start; }
.marketing-form .checkbox-row { min-height: 0; margin: 12px 0 2px; align-content: center; }
.marketing-form .turnstile-field { min-height: 0; }
.label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.optional-label { color: var(--muted); font-size: 13px; font-weight: 600; }
.turnstile-field { min-height: 65px; max-width: 100%; overflow: hidden; }
.turnstile-field .cf-turnstile { max-width: 100%; }
.evaluation-card { display: grid; gap: 16px; }
.faq-list { max-width: 880px; display: grid; gap: 18px; }
.faq-list h2 { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.faq-list h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.faq-list article { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.faq-list article p { margin: 8px 0 0; color: var(--text-secondary); line-height: 1.6; }
.help-layout, .help-article-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 28px; align-items: start; }
.help-sidebar { position: sticky; top: 94px; display: grid; gap: 14px; }
.help-panel { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.help-panel h2 { margin: 0; color: var(--brand-ink); font-size: 17px; line-height: 1.25; }
.help-panel p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.help-filter-list, .help-nav-list { display: grid; gap: 7px; }
.help-filter { width: 100%; min-height: 38px; justify-content: flex-start; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--brand-ink); font-weight: 700; text-align: left; cursor: pointer; }
.help-filter:hover { border-color: var(--border-strong); background: var(--neutral-subtle); color: var(--brand-ink); }
.help-filter.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.help-nav-list a, .help-back-link { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; color: var(--brand-ink); font-weight: 700; line-height: 1.35; }
.help-category-panel .help-nav-list { gap: 2px; }
.help-category-panel .help-nav-list a { padding: 9px 0; color: var(--primary); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.help-category-panel .help-nav-list a:hover { text-decoration-color: currentColor; }
.help-nav-list a:hover, .help-back-link:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.help-main { display: grid; gap: 28px; }
.help-search-panel label { color: var(--brand-ink); font-weight: 800; }
.help-search-field { position: relative; }
.help-search-field input { width: 100%; min-height: 48px; padding: 11px 42px 11px 14px; border: 1px solid var(--line); border-radius: 8px; color: var(--text); font: inherit; }
.help-search-field .icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.help-mobile-filters { display: none; gap: 8px; flex-wrap: wrap; }
.help-mobile-filters .help-filter { width: auto; }
.help-popular { display: grid; gap: 10px; }
.help-popular h2 { font-size: 18px; }
.help-popular > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.help-popular a { display: inline-flex; align-items: flex-start; gap: 8px; padding: 5px 0; color: var(--text-secondary); font-weight: 700; line-height: 1.35; }
.help-popular a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.help-popular .icon, .help-card-link .icon, .help-back-link .icon { flex: 0 0 auto; margin-top: 0.12em; color: var(--primary); }
.help-category { scroll-margin-top: 96px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.help-category .section-heading { margin-bottom: 4px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.help-category .section-heading h2 { font-size: 24px; }
.help-article-grid { display: grid; }
.help-article-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; min-width: 0; padding: 16px 2px; border-bottom: 1px solid var(--line); background: transparent; }
.help-article-card:last-child { border-bottom: 0; padding-bottom: 0; }
.help-article-card h3 { font-size: 18px; line-height: 1.25; }
.help-article-card h3 a { color: inherit; text-decoration: none; }
.help-article-card h3 a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.help-article-card p { grid-column: 1; margin: 0; color: var(--text-secondary); line-height: 1.55; }
.help-card-link { grid-column: 2; grid-row: 1 / span 2; align-self: center; justify-self: end; display: inline-flex; align-items: center; justify-content: center; width: 34px; min-width: 34px; min-height: 34px; border-radius: 7px; color: var(--primary); }
.help-card-link:hover { background: color-mix(in srgb, var(--brand-mint), #fff 78%); color: var(--brand-ink); text-decoration: none; }
.help-article-body { display: grid; gap: 24px; padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.help-article-body h2 { margin-bottom: 10px; font-size: 26px; }
.help-article-body ol, .help-article-body ul { margin: 0; padding-left: 24px; display: grid; gap: 10px; }
.help-article-body li { color: var(--text-secondary); line-height: 1.65; }
.help-flow-list { display: grid; gap: 16px; }
.help-flow { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; }
.help-flow h3 { margin: 0; font-size: 18px; line-height: 1.25; }
.help-flow p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.help-icon-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.help-icon-guide-item { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; }
.help-icon-guide-symbol { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid color-mix(in srgb, var(--primary), #fff 72%); border-radius: 7px; background: #fff; color: var(--primary); }
.help-icon-guide-item strong { display: block; color: var(--brand-ink); line-height: 1.25; }
.help-icon-guide-item p { margin: 3px 0 0; color: var(--text-secondary); font-size: 14px; line-height: 1.45; }
.hidden { display: none !important; }
.legal-doc { max-width: 940px; display: grid; gap: 22px; }
.legal-doc section { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.legal-doc section:last-child { border-bottom: 0; }
.legal-doc h2 { margin-bottom: 8px; }
.legal-doc h3 { margin-top: 14px; }
.legal-doc h4 { margin-top: 12px; margin-bottom: 4px; color: var(--text); }
.legal-doc p, .legal-doc li { color: var(--text-secondary); line-height: 1.65; }
.legal-doc ul { margin: 10px 0 0; padding-left: 22px; display: grid; gap: 5px; }
.marketing-footer { padding: 42px 0 24px; background: var(--brand-ink); color: #dbe4ee; }
.marketing-footer-grid { display: grid; grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr); gap: 28px; align-items: start; }
.marketing-footer .marketing-brand, .marketing-footer a { color: #fff; }
.marketing-footer a:hover { color: #dbe4ee; text-decoration: underline; text-underline-offset: 4px; }
.marketing-footer p { margin: 12px 0 0; color: #b9c5d1; line-height: 1.55; }
.marketing-footer nav { justify-content: flex-end; }
.marketing-footer-bottom { margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.14); color: #b9c5d1; font-size: 13px; }
@keyframes blockFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes blockSlideIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes blockReveal {
  from { opacity: 0; clip-path: inset(0 0 18% 0); }
  to { opacity: 1; clip-path: inset(0 0 0 0); }
}
@media (min-width: 901px) and (max-width: 1320px) {
  :root { --sidebar-width: 72px; --admin-action-width: 178px; }
  html.admin-sidebar-expanded { --sidebar-width: 248px; --admin-action-width: 178px; }
  html.admin-sidebar-collapsed { --sidebar-width: 72px; --admin-action-width: 178px; }

  .sidebar { padding: 18px 10px; overflow-x: hidden; }
  .sidebar-brand-row { grid-template-columns: 1fr; justify-items: center; gap: 10px; margin-bottom: 16px; }
  .sidebar-brand-row .brandmark { width: 100%; justify-content: center; overflow: hidden; }
  .sidebar-brand-row .site-logo-app { max-width: 42px; max-height: 34px; }
  .sidebar-toggle { width: 42px; min-width: 42px; min-height: 38px; }
  .nav a { justify-content: center; min-height: 42px; padding: 10px; gap: 0; }
  .nav a span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

  html.admin-sidebar-expanded .sidebar { padding: 24px 18px; overflow-x: visible; }
  html.admin-sidebar-expanded .sidebar-brand-row { grid-template-columns: minmax(0, 1fr) auto; justify-items: stretch; gap: 8px; margin-bottom: 28px; }
  html.admin-sidebar-expanded .sidebar-brand-row .brandmark { justify-content: flex-start; overflow: visible; }
  html.admin-sidebar-expanded .sidebar-brand-row .site-logo-app { max-width: 170px; max-height: 34px; }
  html.admin-sidebar-expanded .nav a { justify-content: flex-start; min-height: 0; padding: 10px 12px; gap: 9px; }
  html.admin-sidebar-expanded .nav a span { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; border: 0; }

  .content { padding: 22px 22px 92px; }
  .trip-worklist-table { display: block; min-width: 0; border: 0; background: transparent; }
  .trip-worklist-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .trip-worklist-table tbody { display: grid; gap: 12px; }
  .trip-worklist-empty { display: block; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
  .trip-worklist-empty td { display: block; padding: 0; border: 0; }
  .trip-worklist-record { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(170px, 1.35fr) minmax(96px, 0.7fr) minmax(96px, 0.65fr) minmax(166px, auto); gap: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 20px rgba(0, 18, 25, 0.04); overflow: hidden; }
  .trip-worklist-record td { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 11px 12px; border-bottom: 0; overflow-wrap: anywhere; }
  .trip-worklist-record td::before { content: attr(data-label); color: var(--text-secondary); font-size: 11px; font-weight: 800; line-height: 1.2; text-transform: uppercase; }
  .trip-worklist-record td:not(.trip-title-cell):not(.trip-client-cell):not(.trip-actions-cell) { border-top: 1px solid var(--line); background: #fbfcfc; }
  .trip-title-cell { grid-column: 1; grid-row: 1; }
  .trip-client-cell { grid-column: 2; grid-row: 1; }
  .trip-status-cell { grid-column: 3; grid-row: 1; }
  .trip-dates-cell { grid-column: 4; grid-row: 1; }
  .trip-actions-cell { grid-column: 5; grid-row: 1 / span 2; border-left: 1px solid var(--line); background: #fff; }
  .trip-manager-cell { grid-column: 1; grid-row: 2; }
  .trip-info-cell { grid-column: 2; grid-row: 2; }
  .trip-price-cell { grid-column: 3; grid-row: 2; }
  .trip-activity-cell { grid-column: 4; grid-row: 2; }
  .trip-link-cell { grid-column: 5; grid-row: 2; border-left: 1px solid var(--line); }
  .trip-select-cell { grid-column: 1; grid-row: 1 / span 2; width: 44px; align-content: center; justify-content: center; border-right: 1px solid var(--line); }
  .trip-select-cell::before { display: none; }
  .trip-worklist-table.has-bulk-select .trip-worklist-record { grid-template-columns: 44px minmax(210px, 2fr) minmax(150px, 1.2fr) minmax(96px, 0.65fr) minmax(96px, 0.65fr) minmax(166px, auto); }
  .trip-worklist-table.has-bulk-select .trip-title-cell { grid-column: 2; }
  .trip-worklist-table.has-bulk-select .trip-client-cell { grid-column: 3; }
  .trip-worklist-table.has-bulk-select .trip-status-cell { grid-column: 4; }
  .trip-worklist-table.has-bulk-select .trip-dates-cell { grid-column: 5; }
  .trip-worklist-table.has-bulk-select .trip-actions-cell { grid-column: 6; }
  .trip-worklist-table.has-bulk-select .trip-manager-cell { grid-column: 2; }
  .trip-worklist-table.has-bulk-select .trip-info-cell { grid-column: 3; }
  .trip-worklist-table.has-bulk-select .trip-price-cell { grid-column: 4; }
  .trip-worklist-table.has-bulk-select .trip-activity-cell { grid-column: 5; }
  .trip-worklist-table.has-bulk-select .trip-link-cell { grid-column: 6; }
  .trip-worklist-table .actions-cell,
  .trip-worklist-table .actions-cell .icon-actions,
  .trip-worklist-table .actions-cell .status-form select,
  .trip-worklist-table .link-status-form select { width: 100%; min-width: 0; max-width: none; }
  .trip-worklist-table .actions-cell .icon-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
}
@media (max-width: 900px) {
  .marketing-inner { width: min(100% - 32px, 1180px); }
  .marketing-header { position: static; }
  .marketing-nav-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 12px 0; gap: 10px 12px; }
  .marketing-brand { min-width: 0; }
  .site-logo-marketing { max-width: 154px; max-height: 32px; }
  .marketing-nav { display: none; }
  .marketing-mobile-menu { display: block; grid-column: 1; grid-row: 2; justify-self: start; position: relative; }
  .marketing-mobile-menu summary { display: inline-flex; }
  .marketing-mobile-menu nav { position: absolute; left: 0; top: 100%; z-index: 12; width: min(220px, calc(100vw - 32px)); }
  .marketing-actions { display: contents; }
  .marketing-actions .marketing-login { grid-column: 2; grid-row: 1; justify-self: end; display: inline-flex; font-size: 13px; line-height: 1.2; }
  .marketing-actions .button { grid-column: 2; grid-row: 2; justify-self: end; align-self: center; min-height: 42px; padding: 9px 10px; white-space: nowrap; }
  .marketing-hero { padding: 38px 0 34px; }
  .marketing-hero-grid,
  .marketing-comparison,
  .marketing-split,
  .marketing-form-layout { grid-template-columns: 1fr; }
  .marketing-product-preview { max-height: 230px; }
  .marketing-product-preview picture, .marketing-product-preview img { height: 230px; object-fit: cover; }
  .marketing-home-preview { --marketing-preview-window-height: 320px; height: var(--marketing-preview-window-height); max-height: none; }
  .marketing-preview-pan-layer picture { height: 100%; }
  .marketing-home-preview img { height: 100%; }
  .marketing-preview-card { left: 14px; right: 14px; bottom: 14px; width: auto; }
  .marketing-hero-copy h1, .marketing-page-hero h1 { font-size: 38px; }
  .marketing-lead { font-size: 18px; }
  .marketing-card-grid,
  .marketing-card-grid.four,
  .marketing-steps,
  .pricing-grid,
  .marketing-footer-grid { grid-template-columns: 1fr; }
  .marketing-card, .pricing-card, .marketing-form { padding: 18px; }
  .pricing-card { grid-template-rows: none; }
  .pricing-card > p:not(.eyebrow) { min-height: 0; }
  .marketing-flat-grid .marketing-card { padding: 16px; border: 1px solid color-mix(in srgb, var(--primary), #fff 84%); border-radius: 8px; background: #fff; }
  .marketing-feature-grid .marketing-card { border-left-width: 1px; }
  .help-layout, .help-article-layout { grid-template-columns: 1fr; }
  .help-sidebar { position: static; }
  .help-layout > .help-sidebar { display: none; }
  .help-sidebar .help-filter-list { display: none; }
  .help-mobile-filters { display: flex; }
  .help-popular > div { grid-template-columns: 1fr; }
  .help-category { padding: 18px; }
  .help-article-card { grid-template-columns: minmax(0, 1fr); gap: 7px; padding: 14px 0; }
  .help-card-link { display: none; }
  .help-article-body { padding: 20px; }
  .help-icon-guide { grid-template-columns: 1fr; }
  .marketing-table-wrap .pricing-feature-table { display: none; }
  .marketing-table-wrap { overflow: visible; }
  .marketing-table { display: block; min-width: 0; border: 0; background: transparent; }
  .marketing-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .marketing-table tbody { display: grid; gap: 12px; }
  .marketing-table tr { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 20px rgba(0, 18, 25, 0.04); }
  .marketing-table td { display: grid; gap: 7px; padding: 13px 14px; border-bottom: 1px solid var(--line); }
  .marketing-table td:last-child { border-bottom: 0; }
  .marketing-table td::before { color: var(--primary); font-size: 12px; font-weight: 800; letter-spacing: 0.02em; text-transform: uppercase; }
  .marketing-table td:first-child::before { content: "Document workflow"; }
  .marketing-table td:nth-child(2)::before { content: "sendVoyage workflow"; }
  .pricing-mobile-feature-groups { display: grid; gap: 12px; }
  .marketing-section { padding: 46px 0; }
  .marketing-footer nav { justify-content: flex-start; }
  .shell { grid-template-columns: minmax(0, 1fr); max-width: 100%; overflow-x: clip; }
  .focused-editor-page { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 100%; overflow-x: clip; }
  .sidebar { position: static; min-height: auto; max-height: none; overflow: visible; padding: 12px 16px 14px; background: #fff; color: var(--text); border-bottom: 1px solid var(--line); }
  .sidebar-brand-row { display: block; margin-bottom: 10px; }
  .sidebar-toggle { display: none; }
  .brandmark { margin-bottom: 10px; }
  .site-logo-app { max-width: 154px; max-height: 32px; padding: 0; background: transparent; }
  .nav { display: flex; flex-wrap: wrap; gap: 7px; overflow: visible; padding-bottom: 0; }
  .nav a { flex: 0 1 auto; min-height: 36px; padding: 8px 10px; border: 1px solid var(--line); background: #fff; color: var(--primary); white-space: normal; line-height: 1.15; }
  .nav a .icon { color: var(--primary); opacity: 1; }
  .nav a:hover { background: var(--neutral-subtle); color: var(--primary); }
  .nav a.active { background: var(--primary); border-color: var(--primary); color: #fff; }
  .grid.two, .builder-layout, .editor-builder-layout, .metrics, .metric-band .metrics, .form-grid.two, .form-grid.three, .form-grid.four, .form-grid.five, .trips-filter-controls, .trips-filter-controls.no-account-manager, .organization-branding-layout, .organization-reassign-row, .admin-action-layout, .profile-admin-layout { grid-template-columns: 1fr; }
  .brand-theme-picker,
  .brand-preview-glance,
  .brand-preview-flow { grid-template-columns: 1fr; }
  .brand-preview-glance div { border-left: 0; border-top: 1px solid color-mix(in srgb, var(--primary), #fff 84%); }
  .brand-preview-glance div:first-child { border-top: 0; }
  .trips-filter-search { max-width: none; }
  .editor-controls-rail, .editor-sticky-toolbar { position: static; max-height: none; overflow: visible; }
  .editor-sticky-toolbar { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .editor-toolbar-actions { justify-content: flex-start; max-width: none; }
  .organization-branding-settings > button { width: 100%; }
  .form-action-slot { justify-content: stretch; }
  .form-action-slot button,
  .admin-fixed-action { width: 100%; min-width: 0; max-width: none; }
  .admin-action-stack .button,
  .admin-action-stack button { justify-content: center; }
  .organization-join-details { grid-template-columns: minmax(0, 1fr); }
  .invite-member-fields { grid-template-columns: minmax(0, 1fr); }
  .media-filter-form { grid-template-columns: 1fr; }
  .builder-outline { position: static; }
  .topbar { padding: 14px 16px; align-items: stretch; gap: 12px; flex-direction: column; }
  .topbar-identity { align-items: flex-start; }
  .topbar form { align-self: flex-start; }
  .app-help-widget { position: static; width: auto; max-width: none; margin: 0 16px 16px; justify-self: start; }
  .app-help-widget summary { float: none; min-height: 42px; padding: 10px 13px; border-radius: 7px; }
  .app-help-menu { width: min(260px, calc(100vw - 32px)); }
  .content, .viewer-body { padding: 16px; }
  .card { padding: 15px; }
  .page-heading { padding: 14px; }
  .page-heading .button { width: auto; max-width: 100%; }
  .dashboard-page.is-empty .dashboard-metric-groups,
  .dashboard-empty-features { grid-template-columns: 1fr; }
  .dashboard-page.is-empty .metric-band { padding: 13px; }
  .dashboard-empty-actions .button { flex: 0 1 auto; }
  .trip-create-upload .fit-button { width: auto; justify-self: start; }
  .table { min-width: 760px; }
  .responsive-table .mobile-card-table,
  .responsive-table .trip-worklist-table { display: block; min-width: 0; border: 0; background: transparent; }
  .responsive-table .mobile-card-table thead,
  .responsive-table .trip-worklist-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .responsive-table .mobile-card-table tbody,
  .responsive-table .trip-worklist-table tbody { display: grid; gap: 12px; }
  .responsive-table .mobile-card-table tr,
  .responsive-table .trip-worklist-table tr { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 20px rgba(0, 18, 25, 0.04); overflow: hidden; }
  .responsive-table .mobile-card-table td,
  .responsive-table .trip-worklist-table td { display: grid; grid-template-columns: minmax(92px, 34%) minmax(0, 1fr); gap: 10px; align-items: start; padding: 11px 12px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
  .responsive-table .mobile-card-table td:last-child,
  .responsive-table .trip-worklist-table td:last-child { border-bottom: 0; }
  .responsive-table .mobile-card-table td::before,
  .responsive-table .trip-worklist-table td::before { content: attr(data-label); color: var(--text-secondary); font-size: 12px; font-weight: 700; line-height: 1.35; }
  .responsive-table .mobile-card-table td:not([data-label])::before,
  .responsive-table .trip-worklist-table td:not([data-label])::before { content: ""; display: none; }
  .responsive-table .mobile-card-table .actions-cell .icon-actions,
  .responsive-table .trip-worklist-table .actions-cell .icon-actions { justify-content: flex-start; }
  .responsive-table .trip-worklist-table .status-form { display: grid; gap: 8px; }
  .icon-button, .button.compact.icon-button, button.compact.icon-button { width: 42px; min-width: 42px; min-height: 42px; }
  .actions-cell { min-width: 0; }
  .inline-form select { min-width: 150px; }
  .member-role-form { grid-template-columns: minmax(0, 1fr); max-width: none; }
  .member-role-form button,
  .member-action-stack .button,
  .member-action-stack button { justify-content: center; }
  .viewer-hero { min-height: 410px; padding: 42px 16px 48px; }
  .viewer-hero-grid { grid-template-columns: 1fr; gap: 18px; }
  .viewer-brand img { max-width: min(72vw, 280px); max-height: 82px; padding: 10px 12px; }
  .viewer-top-actions { top: 12px; right: 12px; gap: 8px; }
  .viewer-share-menu summary,
  .viewer-print-button { width: 48px; height: 48px; }
  .viewer-share-menu .icon,
  .viewer-print-button .icon { font-size: 24px; }
  .viewer-theme-switcher { top: 12px; left: 12px; }
  .viewer-theme-switcher select { min-width: 112px; max-width: 42vw; min-height: 36px; font-size: 13px; }
  .viewer-glance .viewer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .glance-item { border-top: 1px solid rgba(24, 33, 43, 0.08); }
  .glance-item:nth-child(odd) { border-left: 0; }
  .viewer-nav { padding: 8px 16px; }
  .viewer-nav .viewer-inner { flex-wrap: wrap; overflow: visible; scrollbar-width: auto; -ms-overflow-style: auto; mask-image: none; }
  .viewer-nav a { flex: 1 1 auto; text-align: center; padding: 8px 10px; font-size: 14px; }
  .viewer-day-context { padding: 9px 16px; }
  .viewer-day-context .viewer-inner { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
  .viewer-day-context-copy strong { font-size: 15px; }
  .viewer-day-context-copy p { display: none; }
  .viewer-side { position: static; }
  .route-stop-picker { display: block; }
  .route-strip { display: none; }
  .itinerary-brief a, .itinerary-brief .brief-day { grid-template-columns: 1fr; align-items: start; }
  .viewer .itinerary-brief a > *,
  .viewer .itinerary-brief .brief-day > * { grid-column: 1 / -1; }
  .viewer .itinerary-brief small { display: block; grid-column: 1 / -1; width: 100%; min-width: 0; }
  .itinerary-brief em, .day-mood-chip { grid-column: auto; }
  .itinerary-brief-card > .itinerary-brief { display: none; }
  .itinerary-brief-mobile { display: grid; }
  .summary-card.has-day-number { grid-template-columns: 1fr; }
  .summary-card.has-day-number > .proposal-day-number,
  .summary-card.has-day-number > :not(.proposal-day-number) { grid-column: auto; grid-row: auto; }
  .proposal-day-head { grid-template-columns: auto minmax(0, 1fr); }
  .proposal-day-number { min-height: 34px; min-width: 58px; font-size: 14px; }
  .proposal-day { padding: 22px 18px; }
  .item-columns { grid-template-columns: 1fr; gap: 0; }
  .accommodation-choices .summary-entry-hotel { grid-template-columns: 1fr; }
  .accommodation-choices .summary-entry-hotel .summary-entry-image,
  .accommodation-choices .summary-entry-hotel .summary-entry-media { grid-row: auto; max-height: none; }
  .accommodation-choices .summary-entry-hotel .summary-entry-media .image-carousel-frame { max-height: none; }
  .contact-card-grid { grid-template-columns: 1fr; }
  .contact-company-card { grid-template-columns: minmax(160px, 220px) minmax(0, 1fr); }
  .contact-actions .button { flex: 1 1 120px; }
  .structured-transport .detail-list div { grid-template-columns: 1fr; gap: 3px; }
  .transport-route-card { grid-template-columns: auto minmax(0, 1fr); align-items: flex-start; }
  .detail-group.is-wide { grid-column: auto; }
  .document-row { grid-template-columns: 32px minmax(0, 1fr); align-items: start; }
  .document-row .button { grid-column: 2; justify-self: start; }
  .floating-contact { position: static; display: flex; margin: 0 16px 18px; max-width: none; text-align: center; }
  .image-carousel { max-width: none; }
  .image-carousel-slide img,
  .image-carousel-video { aspect-ratio: 16 / 10; max-height: none; }
  .activity-accordion > summary { gap: 12px; }
  .activity-accordion-copy strong { font-size: 19px; }
  .gallery-block { grid-template-columns: 1fr; }
  .placeholder-gallery { grid-template-columns: 1fr; }
  .map-card { grid-template-columns: 1fr; }
  .map-card-visual { min-height: 120px; }
  .map-card-frame iframe { min-height: 190px; }
  .viewer-media-frame,
  .viewer-visual-media .image-carousel-frame { min-height: 220px; max-height: none; }
  .schedule-map-panel .map-card-frame { min-height: 220px; }
  .route-map-panel,
  .schedule-map-panel { grid-template-columns: 1fr; }
  .gallery-block.gallery-layout-mosaic { grid-template-columns: 1fr; }
  .gallery-block.gallery-layout-mosaic figure,
  .gallery-block.gallery-layout-mosaic figure:first-child { grid-column: auto; grid-row: auto; }
  .gallery-block figure.image-mobile-position-top img { object-position: center top; }
  .gallery-block figure.image-mobile-position-bottom img { object-position: center bottom; }
  .gallery-block figure.image-mobile-position-left img { object-position: left center; }
  .gallery-block figure.image-mobile-position-right img { object-position: right center; }
  .lightbox { padding: 14px; }
  .lightbox-panel img { max-height: calc(100vh - 96px); }
  .canvas-insert-form { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .auth-page { padding: 16px 12px; }
  .auth-header { width: 100%; margin-top: 6px; }
  .auth-wrap { margin: 44px auto 18px; }
  .auth-card { padding: 20px 16px; }
  .site-logo-auth-header { max-width: 150px; max-height: 32px; }
  .marketing-inner { width: min(100% - 24px, 1180px); }
  .marketing-nav-row { gap: 10px; }
  .marketing-mobile-menu nav { width: min(300px, calc(100vw - 24px)); }
  .marketing-actions .marketing-login,
  .marketing-actions .button { width: min(160px, 44vw); justify-content: center; }
  .marketing-actions .button { max-width: none; white-space: normal; text-align: center; }
  .marketing-hero-actions { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .marketing-hero-actions .button { width: 100%; min-width: 0; justify-content: center; }
  .marketing-form { padding: 14px; }
  .marketing-form h2 { font-size: 30px; }
  .marketing-form button { width: 100%; justify-self: stretch; }
  .cookie-consent { grid-template-columns: 1fr; left: 12px; right: 12px; bottom: 12px; width: calc(100vw - 24px); padding: 12px; }
  .cookie-consent-actions { justify-content: stretch; }
  .cookie-consent-actions button { flex: 1 1 140px; }
  .turnstile-field .cf-turnstile { transform: scale(0.94); transform-origin: left top; width: 300px; }
  .demo-return-link,
  .demo-top-link,
  .public-top-link { bottom: 14px; width: 46px; min-width: 46px; min-height: 46px; }
  .demo-return-link { right: 66px; }
  .demo-top-link,
  .public-top-link { right: 12px; }
  .cookie-consent ~ .demo-return-link,
  .cookie-consent ~ .demo-top-link,
  .cookie-consent ~ .public-top-link,
  body:has(.cookie-consent) .demo-return-link,
  body:has(.cookie-consent) .demo-top-link,
  body:has(.cookie-consent) .public-top-link { bottom: 138px; }
  .viewer-inner { width: calc(100% - 16px); }
  .viewer-body { width: 100%; padding: 10px 8px 18px; }
  .viewer-hero { padding: 36px 10px 42px; }
  .viewer-nav { padding: 8px; }
  .viewer-day-context { padding: 8px; }
  .proposal-day { padding: 18px 12px; }
  .summary-card { padding: 12px; }
}

@media (max-width: 1199px) {
  .viewer .hotel-comparison-table { min-width: calc(180px + (260px * 3)); }
  .viewer .hotel-comparison-table thead th:first-child,
  .viewer .hotel-comparison-table tbody th {
    position: sticky;
    inset-inline-start: 0;
    z-index: 2;
    background: #fbfcfd;
    box-shadow: 8px 0 12px rgba(24, 33, 43, 0.08);
  }
  .viewer .hotel-comparison-table thead th:first-child {
    z-index: 3;
    background: #f5f8fa;
  }
  [dir="rtl"] .viewer .hotel-comparison-table thead th:first-child,
  [dir="rtl"] .viewer .hotel-comparison-table tbody th {
    box-shadow: -8px 0 12px rgba(24, 33, 43, 0.08);
  }
  .viewer .comparison-feature-column { width: 180px; }
  .viewer .comparison-hotel-column { width: 260px; }
}

@media (min-width: 1440px) {
  .viewer-visual-section { grid-template-columns: minmax(0, 0.56fr) minmax(420px, 0.44fr); gap: 24px 34px; }
  .viewer-visual-section > :not(.viewer-visual-media) { grid-column: 1; }
  .viewer-visual-section .viewer-visual-media { grid-column: 2; grid-row: 1 / span 6; order: 0; }
  .viewer-visual-section .item-columns { grid-template-columns: 1fr; gap: 0; }
  .viewer-visual-section .detail-group.is-wide { grid-column: auto; }
  .viewer-visual-section .image-carousel-slide img,
  .viewer-visual-section .viewer-visual-media img { aspect-ratio: 16 / 10; max-height: 520px; }
  .route-map-panel iframe { max-height: 520px; }
}

@media (max-width: 700px) {
  .viewer-body { font-size: 16px; }
  .viewer .proposal-day h3 { font-size: 24px; }
  .viewer .itinerary-item h3,
  .viewer .itinerary-item h4,
  .viewer .map-card h4 { font-size: 21px; }
  .viewer .detail-group-title { font-size: 16px; }
  .viewer .detail-list dt,
  .viewer .structured-details dt,
  .viewer .summary-field-grid dt { font-size: 15px; }
  .viewer .detail-list dd,
  .viewer .structured-details dd,
  .viewer .summary-field-grid dd { font-size: 16px; }
  .viewer .hotel-comparison-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .viewer .hotel-comparison-scroll-hint { grid-column: 1 / -1; grid-row: 1; text-align: left; }
  .viewer .hotel-comparison-table { min-width: calc(142px + (min(270px, 68vw) * 3)); }
  .viewer .comparison-feature-column { width: 142px; }
  .viewer .comparison-hotel-column { width: min(270px, 68vw); }
  .viewer .hotel-comparison-table caption { font-size: 15px; }
  .viewer .hotel-comparison-table th,
  .viewer .hotel-comparison-table td { padding: 12px 12px; }
  .viewer .hotel-comparison-table .hotel-name { font-size: 19px; }
  .viewer .hotel-comparison-table tbody th { font-size: 15px; }
  .viewer .hotel-comparison-table td { font-size: 16px; }
  .hotel-image-slide img { aspect-ratio: 4 / 3; }
  .image-carousel-slide img,
  .image-carousel-video { aspect-ratio: 4 / 3; }
  .image-carousel-arrow { min-width: 44px; width: 44px; min-height: 44px; }
  .image-carousel-prev { left: 8px; }
  .image-carousel-next { right: 8px; }
  [dir="rtl"] .image-carousel-prev { left: auto; right: 8px; }
  [dir="rtl"] .image-carousel-next { right: auto; left: 8px; }
}

@media (max-width: 640px) {
  .hotel-review-header { display: grid; align-items: stretch; }
  .hotel-review-rerun-form { width: 100%; grid-template-columns: minmax(0, 1fr); margin-left: 0; justify-content: stretch; }
  .hotel-review-url-field,
  .hotel-review-rerun-form button { width: 100%; }
  .summary-entry-head { align-items: start; }
  .summary-entry-document { grid-template-columns: 1fr; }
  .summary-entry-document .summary-entry-head,
  .summary-entry-document .summary-field-grid,
  .summary-entry-document .summary-entry-note,
  .summary-entry-document .summary-entry-actions { grid-column: auto; grid-row: auto; justify-self: stretch; }
  .summary-entry-actions .button { width: 100%; }
  .contact-company-card { grid-template-columns: 1fr; grid-template-areas: "logo" "copy" "actions"; }
  .contact-company-logo { min-height: 160px; }
  .day-stay-link { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .day-stay-link-image,
  .day-stay-link-image img { min-height: 190px; }
  .day-stay-link .button { width: 100%; }
  .detail-list > div,
  .schedule-meta div,
  .summary-entry-transport .summary-field-grid div { grid-template-columns: 1fr; gap: 3px; }
  .schedule-list { padding-left: 0; }
  .schedule-list li { grid-template-columns: minmax(62px, 76px) minmax(0, 1fr); padding-left: 12px; padding-right: 10px; }
}

@media (max-width: 480px) {
  .summary-day-items { padding-left: 8px; }
  .viewer-body h2,
  .viewer .proposal-day h3,
  .viewer .itinerary-item h3,
  .viewer .itinerary-item h4,
  .viewer .map-card h4,
  .viewer .document-row h4,
  .viewer .lead,
  .viewer p { overflow-wrap: anywhere; }
  .viewer .highlight-strip,
  .viewer .structured-details,
  .viewer .summary-field-grid,
  .viewer .hotel-comparison-grid { grid-template-columns: minmax(0, 1fr); }
  .viewer .itinerary-brief a,
  .viewer .itinerary-brief .brief-day,
  .viewer .schedule-list li,
  .viewer .schedule-meta div { grid-template-columns: minmax(0, 1fr); }
  .summary-field-grid div.is-wide { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .viewer-hero { min-height: 460px; }
  .viewer-hero p { font-size: 16px; }
  .viewer-glance .viewer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .glance-item { border-left: 0; }
}

@media print {
  @page {
    margin: 14mm 12mm 18mm;
  }
  html, body { background: #fff !important; }
  body { margin: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .shell,
  .main,
  .content,
  .viewer,
  .viewer-body,
  .viewer-main-flow,
  .viewer .card,
  .proposal-day,
  .viewer-detail-section-grid,
  .accommodation-choices,
  .hotel-comparison,
  .viewer .hotel-comparison-region { overflow: visible !important; contain: none !important; transform: none !important; }
  .shell,
  .main,
  .content { display: block !important; min-height: 0 !important; }
  .sidebar,
  .topbar,
  .app-help-widget,
  .cookie-consent,
  .demo-return-link,
  .demo-top-link,
  .public-top-link,
  .viewer-locale-note,
  .viewer-status { display: none !important; }
  .viewer-reveal,
  .viewer-reveal.is-visible { opacity: 1 !important; transform: none !important; }
  .viewer { background: #fff; color: var(--viewer-text-primary); font-family: var(--viewer-font-family); }
  .viewer * { animation: none !important; transition: none !important; }
  a { color: inherit; text-decoration: none; }
  .viewer-top-actions,
  .viewer-print-help,
  .viewer-share-menu,
  .viewer-theme-switcher,
  .viewer-nav,
  .viewer-progress,
  .viewer-day-context,
  .lightbox,
  .skip-link { display: none !important; }
  .viewer-evaluation-banner { display: block; padding: 8pt 0; border-bottom: 1px solid #d6bf82; background: #fff; color: #5d4410; break-inside: avoid; }
  .viewer-evaluation-banner span { display: block; margin-top: 2pt; color: #705315; }
  .viewer-print-qr { display: grid; grid-template-columns: 72pt minmax(0, 1fr); gap: 10pt; align-items: center; margin: 0 0 14pt; padding: 8pt; border: 1px solid #dce6ee; break-inside: avoid; page-break-inside: avoid; }
  .viewer-print-qr img { display: block; width: 72pt; height: 72pt; object-fit: contain; }
  .viewer-print-qr strong { display: block; color: var(--viewer-text-primary); font-size: 11pt; }
  .viewer-print-qr span { display: block; margin-top: 3pt; color: var(--viewer-text-secondary); font-size: 8.5pt; line-height: 1.25; overflow-wrap: anywhere; }
  .viewer-hero { min-height: auto; padding: 0 0 14pt; color: var(--viewer-text-primary); background: #fff !important; text-shadow: none; break-after: avoid; }
  .viewer-hero::after,
  .viewer-hero-background,
  .viewer-hero-rotator,
  .viewer-hero-video { display: none; }
  .viewer-hero-print-image { display: block; width: 100%; max-height: 150pt; margin: 0 0 10pt; object-fit: cover; border-radius: 4pt; }
  .viewer-inner { width: 100%; max-width: none; padding: 0; }
  .viewer-hero-grid { display: block; }
  .viewer-brand img { max-height: 28pt; }
  .viewer .viewer-hero h1 { max-width: none; color: var(--viewer-text-primary); font-size: 24pt; line-height: 1.12; }
  .viewer-hero p,
  .viewer-hero-meta,
  .viewer-hero-destinations { color: var(--viewer-text-primary); font-size: 11pt; }
  .viewer-glance { border-block: 1px solid #dce6ee; background: #fff; break-inside: avoid; }
  .viewer-glance .viewer-inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .glance-item { padding: 6pt 7pt; border-left: 0; border-right: 1px solid #dce6ee; border-bottom: 1px solid #eef2f4; }
  .viewer-body { max-width: none; padding: 14pt 0 0; font-size: 10.5pt; line-height: 1.45; }
  .viewer-main-flow { gap: 12pt; }
  #days,
  .day-by-day-card,
  #hotels,
  #transport,
  #travel-info,
  #commercial-details { break-before: page; page-break-before: always; }
  .day-by-day-card > .proposal-day { break-before: page; page-break-before: always; }
  .day-by-day-card > .proposal-day:first-of-type { break-before: auto; page-break-before: auto; }
  .viewer-body h2 { font-size: 18pt; line-height: 1.22; break-after: avoid; }
  .viewer .proposal-day h3 { font-size: 15pt; }
  .viewer .itinerary-item h3,
  .viewer .itinerary-item h4,
  .viewer .map-card h4 { font-size: 12.5pt; break-after: avoid; }
  .viewer .detail-list dt,
  .viewer .structured-details dt,
  .viewer .summary-field-grid dt,
  .viewer .hotel-comparison-table tbody th { font-size: 10pt; color: #303b45; }
  .viewer .detail-list dd,
  .viewer .structured-details dd,
  .viewer .summary-field-grid dd,
  .viewer .hotel-comparison-table td { font-size: 11pt; color: var(--viewer-text-primary); }
  .summary-entry,
  .structured-block,
  .price-panel,
  .contact-panel { box-shadow: none !important; break-inside: avoid; page-break-inside: avoid; border-color: #dce6ee; }
  .contact-panel { break-inside: auto; page-break-inside: auto; }
  .viewer .card { box-shadow: none !important; break-inside: auto; page-break-inside: auto; border-color: #dce6ee; border-radius: 0; }
  .proposal-day { box-shadow: none !important; break-inside: auto; page-break-inside: auto; border-color: #dce6ee; }
  .viewer .card { padding: 12pt; }
  .proposal-day { margin-top: 12pt; padding: 10pt 0; border-width: 1px 0 0; border-radius: 0; }
  .proposal-day-intro,
  .viewer-visual-section { grid-template-columns: 1fr !important; gap: 9pt; }
  .structured-block { padding: 10pt 0; }
  .activity-accordion,
  .activity-accordion-body { display: block; }
  .activity-accordion summary { break-after: avoid; }
  .summary-entry-actions,
  .map-actions,
  .route-map-full-button,
  .viewer .button { display: none !important; }
  .viewer .hotel-comparison-controls,
  .viewer .hotel-comparison-scroll-hint,
  .hotel-image-carousel-controls,
  .image-carousel-arrow,
  .image-carousel-count,
  .image-carousel-dots,
  .image-carousel-thumbs { display: none !important; }
  .viewer .hotel-comparison-region { overflow: visible; border: 1px solid #dce6ee; }
  .viewer .hotel-comparison-table { min-width: 0; table-layout: fixed; page-break-inside: auto; }
  .viewer .hotel-comparison-table thead { display: table-header-group; }
  .viewer .hotel-comparison-table tr { break-inside: avoid; }
  .viewer .hotel-comparison-table .hotel-name { font-size: 13pt; }
  .image-carousel-frame,
  .viewer-visual-media .image-carousel-frame,
  .summary-entry-media .image-carousel-frame { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8pt; }
  .image-carousel-frame,
  .viewer-visual-media .image-carousel-frame,
  .summary-entry-media .image-carousel-frame,
  .hotel-image-carousel-track { min-height: 0 !important; height: auto !important; max-height: none; aspect-ratio: auto; border: 1px solid #dce6ee; }
  .image-carousel-slide[hidden],
  .hotel-image-slide[hidden] { display: block !important; }
  .image-carousel-slide,
  .hotel-image-slide { break-inside: avoid; page-break-inside: avoid; }
  .image-carousel-slide img,
  .image-carousel-video,
  .hotel-image-slide img,
  .gallery-block img,
  .summary-entry-image,
  .structured-block-image { display: block; width: auto; max-width: 100%; height: auto; max-height: 88pt; aspect-ratio: auto; object-fit: contain; border-radius: 4pt; }
  .viewer-visual-media:empty,
  .summary-entry-media:empty,
  .image-carousel:empty,
  .image-carousel-frame:empty,
  .hotel-image-carousel-track:empty { display: none !important; }
  .gallery-block { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8pt; break-inside: auto; }
  .gallery-block figure { break-inside: avoid; page-break-inside: avoid; }
  .gallery-block button { border: 0; padding: 0; background: transparent; aspect-ratio: auto; overflow: visible; }
  .image-carousel-video { display: none; }
  .image-carousel-slide figcaption,
  .hotel-image-slide figcaption { position: static; padding: 4pt 0 0; background: transparent; color: var(--viewer-text-secondary); font-size: 8.5pt; }
  .route-map-panel,
  .schedule-map-panel,
  .map-support { display: block; border: 1px solid #dce6ee; border-radius: 0; background: #fff; box-shadow: none; padding: 8pt; break-inside: avoid; }
  .map-card-frame,
  .route-openmap,
  .route-map-panel iframe,
  .map-card-frame iframe { display: none !important; }
  .print-map-visual { display: block; margin: 0 0 6pt; padding: 8pt; border: 1px solid #dce6ee; background: linear-gradient(135deg, #f8fbfa, #fff); break-inside: avoid; page-break-inside: avoid; }
  .print-map-visual ol { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(70pt, 1fr)); gap: 7pt; margin: 0; padding: 0; list-style: none; }
  .print-map-visual ol::before { content: ""; position: absolute; left: 4%; right: 4%; top: 13pt; border-top: 1.5pt solid #7fa7ac; }
  .print-map-visual li { position: relative; z-index: 1; min-width: 0; }
  .print-map-visual a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 5pt; align-items: center; color: var(--viewer-text-primary); text-decoration: none; }
  .print-map-visual span { display: grid; place-items: center; width: 20pt; height: 20pt; border: 1.5pt solid #fff; border-radius: 999px; background: var(--primary); color: #fff; font-size: 9pt; font-weight: var(--viewer-weight-semibold); }
  .print-map-visual strong { font-size: 9.5pt; line-height: 1.25; overflow-wrap: anywhere; }
  .print-map-fallback { display: block; margin: 0; color: var(--viewer-text-secondary); font-size: 9.5pt; line-height: 1.35; overflow-wrap: anywhere; }
  .viewer-footer { display: block; padding: 8pt 0 0; break-inside: avoid; page-break-inside: avoid; }
  .viewer-footer details { display: none; }
  .viewer-platform-disclaimer { gap: 5pt; padding-top: 7pt; border-top: 1px solid #dce6ee; }
  .viewer-platform-disclaimer p { max-width: none; font-size: 8.5pt; line-height: 1.35; }
  .viewer-powered-by { gap: 5pt; font-size: 8.5pt; }
  .viewer-powered-by img { max-width: 86pt; max-height: 18pt; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-block img,
  .viewer-progress span,
  .viewer-reveal {
    transition: none;
  }
  .viewer-reveal { opacity: 1; transform: none; }
  .viewer-hero-rotator-image { transition: none; }
  .viewer-hero-video { display: none; }
  .marketing-preview-pan-layer { transform: none; will-change: auto; }
  .animation-fade,
  .animation-slide,
  .animation-reveal {
    animation: none;
  }
  .gallery-block button:hover img {
    transform: none;
  }
}

.revision-list {
  display: grid;
  gap: 10px;
}

.revision-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.revision-row strong {
  display: block;
  overflow-wrap: anywhere;
}
.revision-diff { display: grid; gap: 4px; margin-top: 8px; }
.revision-diff-line { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; margin: 0; padding: 5px 7px; border-radius: 7px; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.revision-diff-line.removed { background: #fff1f0; color: #9f2a20; text-decoration: line-through; }
.revision-diff-line.added { background: #edf8f2; color: #17633f; }
.revision-diff-line span { font-weight: 700; text-decoration: none; }

.editor-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
  gap: 8px;
  margin: 10px 0;
  max-height: min(48vh, 520px);
  overflow: auto;
  padding: 2px;
}

.editor-day-image-tray {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid color-mix(in srgb, var(--accent), #fff 60%);
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent), #fff 92%);
}

.editor-day-image-tray[hidden] {
  display: none;
}

.editor-day-image-tray strong {
  display: block;
  color: var(--text);
  font-size: 14px;
  line-height: 1.25;
}

.editor-day-image-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.editor-media-section {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.editor-media-section h3 {
  margin: 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
}

.editor-video-grid {
  display: grid;
  gap: 10px;
}

.editor-video-choice {
  position: relative;
  margin: 0;
  display: grid;
  gap: 6px;
  width: 100%;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
  text-align: start;
}

.editor-video-choice[aria-pressed="true"] {
  border-color: var(--accent);
  border-width: 3px;
  padding: 4px;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent), transparent 68%);
}

.editor-video-choice video {
  width: 100%;
  max-height: 170px;
  display: block;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #101820;
}

.editor-video-choice > span:not(.editor-video-choice-selected) {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.editor-video-choice-selected {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: none;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--accent);
  box-shadow: 0 8px 18px rgba(0, 18, 25, 0.20);
  pointer-events: none;
}

.editor-video-choice[aria-pressed="true"] .editor-video-choice-selected {
  display: grid;
}

.editor-media-choice {
  position: relative;
  display: grid;
  gap: 6px;
  min-height: 0;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
  text-align: start;
}

.editor-media-choice[aria-pressed="true"] {
  border-color: var(--accent);
  border-width: 3px;
  padding: 4px;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent), transparent 68%);
}

.editor-media-choice-remove {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: none;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--danger);
  box-shadow: 0 8px 18px rgba(0, 18, 25, 0.20);
  pointer-events: none;
}

.editor-media-choice[aria-pressed="true"] .editor-media-choice-remove {
  display: grid;
}

.editor-media-choice-remove .icon {
  font-size: 15px;
}

.editor-media-choice img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center center;
  border-radius: 6px;
}

.editor-media-choice span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .editor-day-image-tray {
    grid-template-columns: 1fr;
  }

  .editor-day-image-actions {
    justify-content: stretch;
  }

  .editor-day-image-actions > button {
    flex: 1 1 140px;
  }
}

.structured-editor {
  display: grid;
  gap: 12px;
  margin: 8px 0 12px;
}

.structured-editor-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  justify-content: space-between;
}

.structured-editor-row {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.structured-editor-row + .structured-editor-row {
  margin-top: 10px;
}

.structured-editor-row-header {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.structured-editor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  align-items: end;
}

.structured-editor label,
.structured-raw-details label {
  min-width: 0;
}

.structured-editor input,
.structured-editor textarea,
.structured-editor select {
  width: 100%;
}

.structured-editor textarea {
  min-height: 76px;
  resize: vertical;
}

.editor-modal .structured-editor { gap: 9px; margin: 4px 0 8px; }
.editor-modal .structured-editor-heading { gap: 6px; }
.editor-modal .structured-editor-row { gap: 8px; padding: 8px; border-radius: 7px; }
.editor-modal .structured-editor-row + .structured-editor-row { margin-top: 8px; }
.editor-modal .structured-editor-grid { gap: 7px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.editor-modal .structured-editor textarea { min-height: 62px; }
.route-leg-actions { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.route-leg-actions .button, .route-leg-actions button { min-height: 30px; padding: 4px 8px; font-size: 12px; }
.brand-form-actions { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }

.structured-raw-details {
  margin: 8px 0 12px;
}

.structured-raw-details summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 13px;
}

.ai-client-fit-form {
  display: grid;
  gap: 8px;
  margin: 12px 14px 14px;
}

.ai-fit-intro {
  margin: 0;
}

.ai-fit-intro .admin-section-title {
  margin: 0;
}

.ai-fit-sections-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.ai-fit-card {
  margin: 0;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  display: grid;
  gap: 6px;
}

.ai-fit-card fieldset {
  margin: 0;
  min-width: 0;
  padding: 0;
  border: 0;
}

.ai-fit-card.full-width {
  grid-column: 1 / -1;
}

.ai-fit-legend,
.ai-fit-legend-label {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  padding: 0;
  display: block;
}

.ai-fit-section-heading {
  margin: 0;
  color: var(--text);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 700;
}

.ai-preferences-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(150px, 0.7fr);
  gap: 10px;
  align-items: start;
}

.ai-pace-field {
  margin: 0;
  min-width: 0;
}

.ai-option-grid {
  display: grid;
  gap: 4px 10px;
}

.ai-option-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ai-amount-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ai-option-grid .checkbox-row {
  margin: 0;
  align-items: flex-start;
  align-content: center;
  min-width: 0;
  min-height: 0;
  padding: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
}

.ai-option-grid .checkbox-row span {
  min-width: 0;
  line-height: 1.25;
}

.ai-option-grid .checkbox-row input {
  margin-top: 1px;
}

.ai-pace-select {
  width: 100%;
}

.ai-fit-footer {
  justify-content: flex-end;
  margin-top: 2px;
}

@media (max-width: 900px) {
  .seller-guidance-summary.is-empty { min-height: 0; }
}

@media (max-width: 640px) {
  .ai-fit-sections-grid,
  .ai-preferences-grid,
  .ai-amount-grid,
  .ai-option-grid.two {
    grid-template-columns: minmax(0, 1fr);
  }
}
