.theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #edf5f7; cursor: pointer; }
.theme-toggle:hover { background: #ffffff18; }
.theme-toggle:focus-visible { outline: 3px solid #5ed1c6; outline-offset: 3px; }
.theme-toggle::-webkit-details-marker { display: none; }
.theme-toggle { list-style: none; }
/* The icon is the visitor's choice, not the colours in force: following the computer shows a screen. */
.theme-sun, .theme-moon { display: none; }
[data-theme-preference="dark"] .theme-moon, [data-theme-preference="light"] .theme-sun { display: block; }
[data-theme-preference="dark"] .theme-system, [data-theme-preference="light"] .theme-system { display: none; }
.theme-menu { position: relative; }
.theme-menu[open] > .theme-toggle { background: #ffffff18; }
.theme-menu__label { display: none; }
.theme-menu__list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 40; min-width: 190px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); box-shadow: 0 10px 28px rgba(13, 27, 42, 0.22); }
.theme-menu__list button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: none; border-radius: 6px; background: none; color: var(--ink); font: inherit; font-size: 0.92rem; text-align: left; cursor: pointer; }
.theme-menu__list button::before { content: ""; width: 14px; flex-shrink: 0; }
.theme-menu__list button[aria-pressed="true"] { font-weight: 600; }
.theme-menu__list button[aria-pressed="true"]::before { content: "✓"; color: var(--teal-deep); }
.theme-menu__list button:hover { background: var(--mist); }
.theme-menu__list button:focus-visible { outline: 3px solid #5ed1c6; outline-offset: 1px; }
html[data-bs-theme="light"] { color-scheme: light; }
html[data-bs-theme="dark"] { color-scheme: dark; --ink: #edf5f7; --slate: #b2c1cc; --mist: #101c28; --line: #354755; --teal-deep: #5ed1c6; --danger: #ffb4ab; }
html[data-bs-theme="dark"], [data-bs-theme="dark"] body { background: #101c28; color: #edf5f7; }
[data-bs-theme="dark"] :is(.quote-experience, .results-experience, .members-experience, .travel-plans, .travel-how, .travel-proof, .travel-faq) { background: #101c28 !important; color: #edf5f7 !important; }
[data-bs-theme="dark"] .page-head { background: linear-gradient(120deg, #163a3a, #101c28) !important; border-color: #354755 !important; color: #edf5f7; }
[data-bs-theme="dark"] :is(.quote-card, .quote-form, .guided__summary, .guided__chat, .compare, .trip-ribbon, .quote-start, .login-card, .login-experience, .cookie-consent, .coverage-card, .plan-card, .travel-step, .faq-item, .skye-panel) { background: #192a39 !important; color: #edf5f7 !important; border-color: #354755 !important; }
[data-bs-theme="dark"] :is(.quote-card__actions, .quote-card__tabs, .quote-card__panel, .skye-panel__scroll, .member-age, .member-steps li > span, .comparison-mobile thead th, .comparison-desktop thead th) { background: #132330 !important; color: #edf5f7 !important; border-color: #354755 !important; }
[data-bs-theme="dark"] main :is(h1, h2, h3, legend, label, dt, .trip-ribbon__place, .plan-title) { color: #edf5f7 !important; }
[data-bs-theme="dark"] main :is(.note, .field__hint, .results-intro, .login-description, .payment-intro, .payment-note, .payment-caption, .provider, .quote-card__provider, .quote-card__price span, .benefit-list dd, .guided__summary dt, .guided__summary .note, .member-age, .chat-ready, .skye-panel__note, .guided__upload > span, .skye-connecting p, .skye-msg p, .quote-start > p, .quote-start__divider, .login-welcome > p, .comparison-desktop td, .comparison-mobile td, .comparison-desktop small, .comparison-mobile small, .staff-login p) { color: #b2c1cc !important; }
[data-bs-theme="dark"] main :is(.field input, .field select, .form-control, .form-select, .card-preview input, .skye-panel__ask input, .mobile-plan-selectors select, .results-bar select, textarea) { background: #101c28 !important; border-color: #465c6c !important; color: #edf5f7 !important; }
[data-bs-theme="dark"] main input::placeholder, [data-bs-theme="dark"] main textarea::placeholder { color: #a4b4c1 !important; }
[data-bs-theme="dark"] :is(.skye-msg--skye, .section-icon, .trip-ribbon__icon, .quote-card__badge, .plan-count, .quote-start__skye, .quote-start__icon, .payment-help, .payment-unavailable, .skye-connecting) { background: #163a3a !important; color: #d3eeeb !important; border-color: #35635f !important; }
[data-bs-theme="dark"] :is(.focus-chip, .switch-to-form, .trip-ribbon__edit, .btn-quiet) { background: #163a3a !important; border-color: #5ed1c6 !important; color: #5ed1c6 !important; }
[data-bs-theme="dark"] .focus-chip[aria-pressed="true"] { background: #5ed1c6 !important; color: #0d1b2a !important; }
[data-bs-theme="dark"] main :is(a:not(.btn-brand):not(.select-plan):not(.travel-hero__link), .btn-link, .results-eyebrow, .members-eyebrow, .summary-eyebrow, .login-eyebrow, .payment-eyebrow, .trip-ribbon__eyebrow, .quote-card__price strong, .guided__summary dd strong, .payment-total strong, .chat-example summary, .switch-to-form small, .comparison-desktop strong, .comparison-mobile strong) { color: #5ed1c6 !important; }
[data-bs-theme="dark"] :is(.btn-brand, .btn-primary, .payment-submit, .select-plan) { background: #007a77; border-color: #007a77; color: white; }
[data-bs-theme="dark"] :is(.trip-summary, .benefit-list div, .quote-card__actions, fieldset, .guided__summary dl > div, .member-steps, .chat-ready, .payment-total, .comparison-desktop th, .comparison-desktop td, .comparison-mobile th, .comparison-mobile td, .staff-login, .login-card hr) { border-color: #354755 !important; }
[data-bs-theme="dark"] :is(.skye-compare, .compare-picks li) { background: #132330; border-color: #354755; color: #edf5f7; }
[data-bs-theme="dark"] .skye-example { background: #132330; color: #edf5f7; }
[data-bs-theme="dark"] .skye-starters button, [data-bs-theme="dark"] .skye-mic:not(.skye-mic--on) { background: #132330; border-color: #5ed1c6; color: #5ed1c6; }
[data-bs-theme="dark"] .skye-starters button:hover:not(:disabled), [data-bs-theme="dark"] .skye-mic:not(.skye-mic--on):hover:not(:disabled) { background: #1d4a49; }
[data-bs-theme="dark"] .chat-introduction { color: #5ed1c6 !important; }
/* Message text is primary content, not a muted caption. Keep each bubble's text
   paired with its own background instead of the page-wide paragraph styling. */
[data-bs-theme="dark"] .skye-msg--visitor { background: #24515c !important; color: #f1f9fa !important; }
[data-bs-theme="dark"] main .skye-msg--visitor :is(p, li, strong, em) { color: #f1f9fa !important; }
[data-bs-theme="dark"] main .skye-msg--skye :is(p, li, strong, em) { color: #d3eeeb !important; }
[data-bs-theme="dark"] .skye-speaker { background: #132330; border-color: #5ed1c6; color: #5ed1c6; }
[data-bs-theme="dark"] .skye-speaker:hover:not(:disabled) { background: #1d4a49; }
[data-bs-theme="dark"] .skye-speaker--on { background: #007a77; border-color: #5ed1c6; color: #fff; }
[data-bs-theme="dark"] .skye-speaker--on:hover:not(:disabled) { background: #006a67; }
[data-bs-theme="dark"] .skye-msg--failed { background: #3d2528 !important; border-color: #a76063 !important; }
[data-bs-theme="dark"] main .skye-msg--failed :is(p, li, strong, em) { color: #ffccc6 !important; }
[data-bs-theme="dark"] .perk { background: #352e1e; border-color: #78633a; color: #f6e6c4; }
[data-bs-theme="dark"] .perk summary, [data-bs-theme="dark"] .perk summary strong { color: #f6e6c4 !important; }
[data-bs-theme="dark"] .perk__star { color: #f2bd55; }
[data-bs-theme="dark"] .perk__tag { background: #483b23; border-color: #92723b; color: #f6e6c4; }
[data-bs-theme="dark"] .perk p { color: #e0d2b7; }
[data-bs-theme="dark"] .perk summary:focus-visible { outline: 3px solid #f2bd55; outline-offset: 4px; border-radius: 4px; }
[data-bs-theme="dark"] .skye-compare__notice { background: #3a2a12; color: #f6dfb4; }
[data-bs-theme="dark"] :is(.typeahead__list, .typeahead-list, .user-chip__menu, .theme-menu__list) { background: #192a39; color: #edf5f7; border-color: #354755; }
@media (max-width: 760px) {
    .mobile-navigation .theme-toggle { justify-content: flex-start; gap: 10px; width: 100%; padding-inline: 12px; border-radius: 8px; }
    .mobile-navigation .theme-menu__label { display: inline; }
    .mobile-navigation .theme-menu__list { right: auto; left: 0; }
}
/* The quote form. Its own styles are scoped to the page, so these need !important to win. */
[data-bs-theme="dark"] :is(.quote-section-icon, .traveler-number, .quote-skye) { background: #163a3a !important; color: #5ed1c6 !important; border-color: #35635f !important; }
[data-bs-theme="dark"] main :is(.quote-section-lead, .quote-optional, .quote-unit, .quote-submit-note, .quote-step-status, .quote-card__intro p, .quote-page-head p:not(.quote-eyebrow), .quote-review > p, .quote-review dt, .quote-skye > span, .traveler-remove) { color: #b2c1cc !important; }
[data-bs-theme="dark"] .quote-money > span { background: #1d3142 !important; color: #b2c1cc !important; border-color: #465c6c !important; }
[data-bs-theme="dark"] .quote-card :is(.traveler-row, .note) { background: #132330 !important; border-color: #354755 !important; color: #edf5f7 !important; }
[data-bs-theme="dark"] .traveler-row__title { color: #edf5f7 !important; }
[data-bs-theme="dark"] .traveler-remove:hover { background: #3b1f1c !important; color: #ffb4ab !important; }
[data-bs-theme="dark"] .quote-card .chip { background: #163a3a !important; border-color: #35635f !important; color: #d3eeeb !important; }
[data-bs-theme="dark"] .quote-card .chip button { color: #d3eeeb !important; }
[data-bs-theme="dark"] .quote-card .chip button:hover { background: #1d4a49 !important; }
[data-bs-theme="dark"] .quote-card :is(.typeahead__option--active, .typeahead__option:hover) { background: #163a3a !important; color: #d3eeeb !important; }
[data-bs-theme="dark"] .quote-card .destination-entry input { background: transparent !important; }
[data-bs-theme="dark"] .destination-entry { background: #101c28; border-color: #465c6c; }
