/*
 * Tat2OMNI shared client appearance layer.
 * Values are injected from Tat2OMNI Booking; no theme-owned color setting is
 * used here. Keep selectors focused on presentation so plugin behavior stays
 * independent from the active palette.
 */

html {
    color-scheme: var(--tat2omni-color-scheme, dark);
}

body.tat2omni-theme {
    background-color: var(--tat2omni-page-bg);
    color: var(--tat2omni-text);
}

body.tat2omni-theme ::selection {
    background: rgba(var(--tat2omni-accent-rgb), .34);
    color: var(--tat2omni-text);
}

body.tat2omni-theme ::-webkit-scrollbar-thumb {
    background: var(--tat2omni-main);
    border-radius: 999px;
}

body.tat2omni-theme,
body.tat2omni-theme p,
body.tat2omni-theme label,
body.tat2omni-theme h1,
body.tat2omni-theme h2,
body.tat2omni-theme h3,
body.tat2omni-theme h4,
body.tat2omni-theme h5,
body.tat2omni-theme h6 {
    color: var(--tat2omni-text);
}

body.tat2omni-theme a {
    color: var(--tat2omni-main);
    text-decoration-color: rgba(var(--tat2omni-main-rgb), .45);
}

body.tat2omni-theme a:hover,
body.tat2omni-theme a:focus-visible {
    color: var(--tat2omni-accent);
}

body.tat2omni-theme #ascensorBuilding,
body.tat2omni-theme #ascensorBuilding > article,
body.tat2omni-theme .page-content,
body.tat2omni-theme .page-content-small,
body.tat2omni-theme .page-content-full {
    background-color: var(--tat2omni-page-bg);
    color: var(--tat2omni-text);
}

body.tat2omni-theme-dark .page-content,
body.tat2omni-theme-dark .page-content-small,
body.tat2omni-theme-dark .page-content-full {
    background: linear-gradient(to bottom, rgba(7, 8, 11, .97), rgba(7, 8, 11, .88));
}

body.tat2omni-theme-light .page-content,
body.tat2omni-theme-light .page-content-small,
body.tat2omni-theme-light .page-content-full {
    background: linear-gradient(to bottom, rgba(255, 255, 255, .98), rgba(245, 247, 251, .94));
}

body.tat2omni-theme .page-title {
    border-bottom-color: rgba(var(--tat2omni-border-rgb), .55);
}

body.tat2omni-theme #site-header h1,
body.tat2omni-theme #mobile-menu,
body.tat2omni-theme #main-menu,
body.tat2omni-theme #sub-menu,
body.tat2omni-theme #tat2omni-menu-panel {
    background-color: var(--tat2omni-surface);
    color: var(--tat2omni-text);
}

body.tat2omni-theme #mobile-menu,
body.tat2omni-theme #main-menu,
body.tat2omni-theme #sub-menu {
    border-color: rgba(var(--tat2omni-border-rgb), .52);
}

body.tat2omni-theme .tat2omni_menu ul,
body.tat2omni-theme .tat2omni_menu li,
body.tat2omni-theme .gallery figcaption,
body.tat2omni-theme .grid figcaption a,
body.tat2omni-theme .button,
body.tat2omni-theme button.button,
body.tat2omni-theme .wp-element-button,
body.tat2omni-theme .wp-block-button__link,
body.tat2omni-theme input[type="submit"],
body.tat2omni-theme input[type="button"],
body.tat2omni-theme .read-more,
body.tat2omni-theme .active-header,
body.tat2omni-theme .accordion-header:hover,
body.tat2omni-theme .lg-progress-bar .lg-progress {
    background-color: var(--tat2omni-main);
    color: var(--tat2omni-on-main) !important;
}

body.tat2omni-theme .button,
body.tat2omni-theme button.button,
body.tat2omni-theme .wp-element-button,
body.tat2omni-theme .wp-block-button__link,
body.tat2omni-theme input[type="submit"],
body.tat2omni-theme input[type="button"],
body.tat2omni-theme .read-more {
    border: 1px solid rgba(var(--tat2omni-border-rgb), .72) !important;
    border-radius: 6px !important;
    box-shadow: 0 8px 20px rgba(var(--tat2omni-main-rgb), .2);
}

body.tat2omni-theme .button:hover,
body.tat2omni-theme button.button:hover,
body.tat2omni-theme .wp-element-button:hover,
body.tat2omni-theme .wp-block-button__link:hover,
body.tat2omni-theme input[type="submit"]:hover,
body.tat2omni-theme input[type="button"]:hover,
body.tat2omni-theme .read-more:hover,
body.tat2omni-theme .button:focus-visible,
body.tat2omni-theme button.button:focus-visible,
body.tat2omni-theme .wp-element-button:focus-visible,
body.tat2omni-theme .wp-block-button__link:focus-visible,
body.tat2omni-theme input[type="submit"]:focus-visible {
    background-color: var(--tat2omni-accent);
    color: var(--tat2omni-on-accent) !important;
    box-shadow: 0 10px 26px rgba(var(--tat2omni-accent-rgb), .28);
}

body.tat2omni-theme input[type="text"],
body.tat2omni-theme input[type="email"],
body.tat2omni-theme input[type="number"],
body.tat2omni-theme input[type="tel"],
body.tat2omni-theme input[type="url"],
body.tat2omni-theme input[type="date"],
body.tat2omni-theme input[type="time"],
body.tat2omni-theme input[type="password"],
body.tat2omni-theme input[type="search"],
body.tat2omni-theme select,
body.tat2omni-theme textarea {
    background: var(--tat2omni-input-bg);
    border: 1px solid var(--tat2omni-line);
    border-radius: 6px !important;
    color: var(--tat2omni-text);
}

body.tat2omni-theme input::placeholder,
body.tat2omni-theme textarea::placeholder {
    color: var(--tat2omni-text-muted);
    opacity: .82;
}

body.tat2omni-theme input:focus,
body.tat2omni-theme select:focus,
body.tat2omni-theme textarea:focus {
    border-color: var(--tat2omni-main) !important;
    box-shadow: 0 0 0 3px rgba(var(--tat2omni-main-rgb), .16) !important;
}

body.tat2omni-theme table:not([class]),
body.tat2omni-theme table:not([class]) th,
body.tat2omni-theme table:not([class]) td {
    border-color: var(--tat2omni-line);
}

body.tat2omni-theme table:not([class]) th {
    background: var(--tat2omni-surface-raised);
    color: var(--tat2omni-text);
}

body.tat2omni-theme blockquote {
    border-color: var(--tat2omni-border-accent);
    background: var(--tat2omni-surface-raised);
    color: var(--tat2omni-text);
}

body.tat2omni-theme .accordion-header {
    border-bottom: 1px solid var(--tat2omni-line);
    color: var(--tat2omni-text);
}

body.tat2omni-theme .accordion-content,
body.tat2omni-theme .tat2omni-login-modal__dialog {
    background: var(--tat2omni-surface);
    border: 1px solid rgba(var(--tat2omni-border-rgb), .62);
    box-shadow: var(--tat2omni-shadow);
    color: var(--tat2omni-text);
}

body.tat2omni-theme .tat2omni-login-modal__overlay {
    background: var(--tat2omni-overlay);
}

body.tat2omni-theme .tat2omni-login-modal__dialog h2,
body.tat2omni-theme .tat2omni-login-modal label,
body.tat2omni-theme .tat2omni-login-modal__close {
    color: var(--tat2omni-text);
}

body.tat2omni-theme .tat2omni-login-modal input[type="text"],
body.tat2omni-theme .tat2omni-login-modal input[type="tel"],
body.tat2omni-theme .tat2omni-login-modal input[type="password"] {
    background: var(--tat2omni-input-bg);
    border-color: var(--tat2omni-line);
    color: var(--tat2omni-text);
}

body.tat2omni-theme .tat2omni-login-modal .button,
body.tat2omni-theme .tat2omni-login-modal input[type="submit"],
body.tat2omni-theme .tat2omni-login-modal button.tat2omni-phone-login-send,
body.tat2omni-theme .tat2omni-login-modal button.tat2omni-phone-login-verify,
body.tat2omni-theme .tat2omni-login-modal button.tat2omni-sms-2fa-verify {
    background: var(--tat2omni-main);
    border-color: var(--tat2omni-border-accent);
    color: var(--tat2omni-on-main);
}

body.tat2omni-theme .floating-buttons-left a,
body.tat2omni-theme #tat2omni-share-toggle {
    background: var(--tat2omni-main) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-on-main) !important;
    box-shadow: 0 8px 24px rgba(var(--tat2omni-main-rgb), .28) !important;
}

body.tat2omni-theme .floating-buttons-left a:hover,
body.tat2omni-theme #tat2omni-share-toggle:hover {
    background: var(--tat2omni-accent) !important;
    color: var(--tat2omni-on-accent) !important;
}

body.tat2omni-theme .reviews-dropdown,
body.tat2omni-theme .tat2omni-share-modal-content {
    background: var(--tat2omni-surface) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-text) !important;
    box-shadow: var(--tat2omni-shadow) !important;
}

body.tat2omni-theme .tat2omni-share-modal {
    background: var(--tat2omni-overlay) !important;
}

body.tat2omni-theme .tat2omni-share-modal-content h3 {
    color: var(--tat2omni-text) !important;
}

body.tat2omni-theme .tat2omni-share-close {
    background: var(--tat2omni-surface-raised) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

body.tat2omni-theme .tat2omni-share-options a,
body.tat2omni-theme .tat2omni-share-options button {
    background: var(--tat2omni-main) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-on-main) !important;
}

body.tat2omni-theme .tat2omni-share-options a:hover,
body.tat2omni-theme .tat2omni-share-options button:hover,
body.tat2omni-theme .tat2omni-share-close:hover {
    background: var(--tat2omni-accent) !important;
    color: var(--tat2omni-on-accent) !important;
}

body.tat2omni-theme .tat2omni-policy-btn {
    background: var(--tat2omni-surface-raised) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-text) !important;
}

body.tat2omni-theme .tat2omni-policy-btn:hover {
    background: var(--tat2omni-main) !important;
    color: var(--tat2omni-on-main) !important;
}

/* Shared client-facing Tat2OMNI surfaces. Booking supplies these same tokens. */
body.tat2omni-theme :where(
    .tat2omni-booking,
    .tat2omni-giftcards,
    .tat2omni-client-portal,
    .tat2omni-staff-portal,
    .tat2omni-referrals,
    .tat2omni-giveaway,
    .tat2omni-consent,
    .tat2omni-theme-feature
) {
    color: var(--tat2omni-text);
}

body.tat2omni-theme :where(
    .tat2omni-booking,
    .tat2omni-giftcards,
    .tat2omni-client-portal,
    .tat2omni-staff-portal,
    .tat2omni-referrals,
    .tat2omni-giveaway,
    .tat2omni-consent
) :where(.card, .panel, .modal-content, .dialog, .table-wrap) {
    background: var(--tat2omni-surface);
    border-color: var(--tat2omni-line);
    color: var(--tat2omni-text);
}

@media (prefers-reduced-motion: reduce) {
    body.tat2omni-theme *,
    body.tat2omni-theme *::before,
    body.tat2omni-theme *::after {
        scroll-behavior: auto !important;
    }
}

/* Compact icon controls float beside the first links beneath the account header. */
#tat2omni-menu-panel .tat2omni-mode-switch { position:relative; z-index:1; float:right; display:flex; flex-direction:column; align-items:flex-end; gap:8px; width:max-content; max-width:calc(100% - 40px); margin:14px 20px 10px 12px; padding:0; }
#tat2omni-menu-panel .tat2omni-mode-switch[hidden] { display:none!important; }
/* Each link owns its available space, then returns to full width below the float. */
#tat2omni-menu-panel .tat2omni-mode-switch + #main-menu li { display:flow-root; min-width:min(100%,10em); box-sizing:border-box; overflow-wrap:anywhere; }
.tat2omni-mode-switch__buttons { display:flex; gap:4px; padding:4px; border:1px solid var(--tat2omni-line); border-radius:999px; background:var(--tat2omni-surface-raised); }
#tat2omni-menu-panel .tat2omni-mode-switch button { display:grid; place-items:center; width:40px; height:36px; min-width:40px; padding:0; margin:0; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--tat2omni-text-muted); cursor:pointer; }
#tat2omni-menu-panel .tat2omni-mode-switch button[aria-pressed=true] { color:var(--tat2omni-on-main); background:var(--tat2omni-main); border-color:var(--tat2omni-border-accent); box-shadow:0 2px 6px rgba(var(--tat2omni-main-rgb),.15); }
.tat2omni-mode-switch button svg { display:block; width:20px; height:20px; }
#tat2omni-menu-panel .tat2omni-mode-switch button:focus-visible { outline:2px solid var(--tat2omni-main); outline-offset:3px; }
.tat2omni-mode-switch[aria-busy=true] button { cursor:progress; opacity:.65; }
.tat2omni-mode-switch [data-tat2omni-mode-status]:not(.screen-reader-text) { display:block; max-width:min(240px,calc(100vw - 80px)); color:var(--tat2omni-text); font-size:var(--tat2omni-font-size-12,12px); line-height:1.5; text-align:right; }

/* The Spotify drawer owns this corner until it closes, including AJAX-driven closure. */
body.tat2omni-theme:has(#spotify-panel.open) #mobile-menu { visibility:hidden!important; pointer-events:none!important; }

/* Public studio tools share the active appearance, including their overlay panels. */
body.tat2omni-theme #spotify-panel,
body.tat2omni-theme .tat2omni-share-modal-content {
    background:var(--tat2omni-surface)!important;
    color:var(--tat2omni-text)!important;
    border-color:var(--tat2omni-border-accent)!important;
    box-shadow:var(--tat2omni-shadow)!important;
}
body.tat2omni-theme .spotify-panel-header,
body.tat2omni-theme .spotify-offline,
body.tat2omni-theme .tat2omni-share-modal-content h3 { color:var(--tat2omni-text)!important; }
body.tat2omni-theme #spotify-close,
body.tat2omni-theme .tat2omni-share-close {
    background:var(--tat2omni-surface-raised)!important;
    color:var(--tat2omni-text)!important;
    border-color:var(--tat2omni-border-accent)!important;
}
body.tat2omni-theme .spotify-offline-icon { color:var(--tat2omni-text-muted)!important; }
body.tat2omni-theme .tat2omni-share-options a,
body.tat2omni-theme .tat2omni-share-options button {
    background:var(--tat2omni-main)!important;
    color:var(--tat2omni-on-main)!important;
    border-color:var(--tat2omni-border-accent)!important;
}
body.tat2omni-theme .tat2omni-share-options a:hover,
body.tat2omni-theme .tat2omni-share-options button:hover { filter:brightness(1.08); }
