/* Shared action system. Explicit component membership avoids restyling poster
   cards, navigation rows, switches and clickable content as form buttons.
   The two :is() scopes also cover body-mounted dialogs and legacy ID rules. */
html.liquid-glass.clean-ui {
    --ui-button-bg: #fff;
    --ui-button-hover: #f7f8fa;
    --ui-button-pressed: #eef0f3;
    --ui-button-border: #dfe3e8;
    --ui-button-text: #2d3d52;
    --ui-primary: var(--ui-button-bg);
    --ui-primary-hover: var(--ui-button-hover);
    --ui-primary-text: var(--ui-button-text);
    --ui-primary-border: var(--ui-button-border);
    --ui-refresh-bg: #eaf4ee;
    --ui-refresh-hover: #e0eee5;
    --ui-refresh-text: #36724f;
    --ui-refresh-border: #d4e6da;
    --ui-global-save-bg: #fff6dc;
    --ui-global-save-hover: #fff0c3;
    --ui-global-save-text: #886416;
    --ui-global-save-border: #eddfb4;
    --ui-danger: #b54750;
    --ui-danger-bg: #fbefef;
    --ui-danger-hover: #f7e4e6;
    --ui-danger-border: #efd8da;
    --ui-selected: #edf2f8;
    --ui-selected-text: #3f6093;
    --lg-action-bg: var(--ui-primary);
    --lg-action-text: var(--ui-primary-text);
    --lg-action-border: var(--ui-primary-border);
    --lg-action-shadow: none;
    --lg-control-bg: var(--ui-button-bg);
    --lg-control-border: var(--ui-button-border);
    --lg-control-edge: none;
    --lg-control-blue: var(--ui-primary);
    --lg-control-blue-edge: none;
    --lg-control-danger: var(--ui-danger);
    --primary-gradient: var(--ui-primary);
}
html.liquid-glass.clean-ui[data-theme="dark"] {
    --ui-button-bg: #2b2f35;
    --ui-button-hover: #343941;
    --ui-button-pressed: #3c424b;
    --ui-button-border: #41464f;
    --ui-button-text: #e4e7ec;
    --ui-refresh-bg: #2b4035;
    --ui-refresh-hover: #344d3f;
    --ui-refresh-text: #b6d7c2;
    --ui-refresh-border: #425e4d;
    --ui-global-save-bg: #443a26;
    --ui-global-save-hover: #51452b;
    --ui-global-save-text: #efd28d;
    --ui-global-save-border: #665633;
    --ui-danger: #f2a3ab;
    --ui-danger-bg: #442e34;
    --ui-danger-hover: #50353d;
    --ui-danger-border: #62414b;
    --ui-selected: #303b4d;
    --ui-selected-text: #b9ceeF;
}

html.liquid-glass.clean-ui:root :is(body, #env-sections) :is(
    #save-btn, .save-btn, .login-btn, .lg-ssh-page .btn, .ui-refresh-btn,
    .emby-setup-btn, .emby-config-btn, .emby-refresh-btn, .emby-live-btn,
    .proxy-settings-btn, .emby-proxy-btn, .emby-proxy-mini-btn,
    .kv-test-btn, .kv-add-btn, .vl-add-btn, .kv-delete-btn, .vl-delete-btn,
    .emby-strm-path-mapping-add, .emby-strm-path-mapping-remove,
    .organize-wash-detail-button, .organize-wash-add-button, .organize-wash-icon-button,
    .qr115-action-btn, .qr115-stop-btn, .hdhive-auth-btn, .hdhive-sub-account-btn,
    .directory-selector-mini-btn, .directory-selector-inline-btn,
    .directory-selector-refresh-btn, .directory-selector-action-btn,
    .directory-selector-pick-btn, .directory-selector-enter-btn,
    .notify-bot-inline-btn, .notify-bot-add-btn, .notify-bot-btn, .notify-bot-remove-btn,
    .pttransfer-db-inline-btn, .pttransfer-records-refresh-btn, .pttransfer-records-close-btn,
    .log-action-btn, .log-tail-button, .transfer-history-refresh-btn,
    .transfer-history-recognize-btn, .transfer-history-danger-btn,
    .organize-stop-btn, .transfer-page-btn, .transfer-source-tab-btn,
    .organize-recognize-submit-btn, .organize-recognize-link-btn,
    .organize-detail-action-btn, .organize-retag-select-btn,
    .organize-clear-calendar-action, .organize-clear-calendar-nav-btn,
    .organize-clear-cancel-btn, .organize-inline-confirm-btn,
    .ssh-save, .ssh-connect, .ssh-profile-chip, .ssh-profile-clear,
    .vf-inline-open-btn, .vf-inline-copy-btn, .vf-btn,
    .vf-scene-tab-btn, .utility-cover-mini-btn, .utility-cover-action-btn,
    .utility-cover-tab-btn, .utility-cover-choice-btn, .tbp-button,
    .vfp-primary-btn, .vfp-secondary-btn, .vfp-add-btn, .vfp-header-action,
    .vfp-back-btn, .vfp-result-add, .vfp-delete-btn, .vfp-scene-chip,
    .md-btn, .md-icon-btn, .md-work-detail-monitor-btn, .md-work-detail-back,
    .md-library-filter-reset,
    .md-tab, .md-source-tab, .md-filter-chip, .md-library-filter-chip,
    .md-resource-filter-chip, .md-ranking-type, .md-calendar-kind,
    .md-streaming-tab, .emby-trend-btn,
    .directory-selector-close-btn, .notify-bot-close-btn, .vf-close-btn,
    .vfp-dialog-close, .utility-modal-close, .organize-recognize-close-btn,
    .organize-clear-close-btn, .organize-detail-close-btn, .organize-inline-confirm-dialog-close
) {
    --button-bg: var(--ui-button-bg);
    --button-hover: var(--ui-button-hover);
    --button-pressed: var(--ui-button-pressed);
    --button-text: var(--ui-button-text);
    --button-border: var(--ui-button-border);
    box-sizing: border-box !important;
    min-height: 40px !important;
    height: auto !important;
    padding: 9px 14px !important;
    gap: 7px;
    border: 1px solid var(--button-border) !important;
    border-radius: 10px !important;
    background: var(--button-bg) !important;
    color: var(--button-text) !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    transform: none !important;
    text-shadow: none !important;
    font-family: var(--lg-font-ui) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 20px !important;
    letter-spacing: 0 !important;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease !important;

    /* Main and secondary actions use the same neutral surface. Selection and
       destructive actions retain their separate blue and red treatments. */
    &:is(.primary, .is-primary, .save-btn, .login-btn, .lg-ssh-page .btn,
        #emby-setup-save-btn, .log-action-btn-primary, .qr115-action-btn,
        .tg-scheduled-save-btn, .ssh-save, .transfer-history-refresh-btn[id$="-save-btn"],
        .vf-btn-primary, .organize-retag-select-btn,
        .organize-recognize-submit-btn, .directory-selector-action-btn.primary,
        .utility-cover-mini-btn-primary, .tbp-button-primary,
        .vfp-primary-btn, .vfp-add-btn, .vfp-result-add,
        .ssh-connect:not(.connected), #organize-run-now-btn,
        #share-strm-invalid-cleaner-run-btn, #share-strm-invalid-cleaner-save-btn,
        #emby-metadata-cleaner-clean-btn) {
        --button-bg: var(--ui-primary);
        --button-hover: var(--ui-primary-hover);
        --button-pressed: var(--ui-button-pressed);
        --button-border: var(--ui-primary-border);
        --button-text: var(--ui-primary-text);
    }
    &:is(#emby-refresh-btn, .ui-refresh-btn, .directory-selector-refresh-btn,
        .pttransfer-records-refresh-btn, .emby-refresh-btn,
        [id$="-refresh-btn"], [id$="-refresh"],
        [data-md-action^="refresh-"], [data-tg-scheduled-action="refresh"]) {
        --button-bg: var(--ui-refresh-bg);
        --button-hover: var(--ui-refresh-hover);
        --button-pressed: var(--ui-refresh-hover);
        --button-border: var(--ui-refresh-border);
        --button-text: var(--ui-refresh-text);
    }
    &:is(#proxy-settings-save-btn, .proxy-settings-save-btn) {
        --button-bg: var(--ui-global-save-bg);
        --button-hover: var(--ui-global-save-hover);
        --button-pressed: var(--ui-global-save-hover);
        --button-border: var(--ui-global-save-border);
        --button-text: var(--ui-global-save-text);
    }
    &:is(.danger, .is-danger, .vf-btn-danger, .tbp-button-danger,
        .transfer-history-danger-btn, .organize-stop-btn, .notify-bot-remove-btn,
        .kv-delete-btn, .vl-delete-btn, .emby-strm-path-mapping-remove,
        .emby-music-map-remove, .vfp-delete-btn, .ssh-connect.connected, .ssh-profile-clear,
        #emby-setup-clear-btn, #share-strm-invalid-cleaner-stop-btn,
        [data-action="delete-rule"], [data-action="remove-cover-server"]) {
        --button-bg: var(--ui-danger-bg);
        --button-hover: var(--ui-danger-hover);
        --button-pressed: var(--ui-danger-hover);
        --button-border: var(--ui-danger-border);
        --button-text: var(--ui-danger);
    }
    /* Compact choices share one treatment; active state is a quiet blue-gray. */
    &:is(.transfer-source-tab-btn, .vf-scene-tab-btn, .vfp-scene-chip, .ssh-profile-chip,
        .utility-cover-tab-btn, .utility-cover-choice-btn, .emby-trend-btn,
        .md-tab, .md-source-tab, .md-filter-chip, .md-library-filter-chip,
        .md-resource-filter-chip, .md-ranking-type, .md-calendar-kind, .md-streaming-tab) {
        min-height: 34px !important;
        padding: 6px 12px !important;
        border-radius: 8px !important;
        --button-bg: transparent;
        --button-border: transparent;
        --button-text: var(--lg-muted);
        &:is(.active, .is-active, [aria-selected="true"], [aria-pressed="true"]) {
            --button-bg: var(--ui-selected);
            --button-hover: var(--ui-selected);
            --button-pressed: var(--ui-selected);
            --button-text: var(--ui-selected-text);
            font-weight: 600 !important;
            & :is(strong, b, .md-streaming-tab-label) { font-weight: 600 !important; }
        }
    }
    /* Icon hit areas remain square, including key visibility and dialog close. */
    &:is(.organize-wash-icon-button, .kv-delete-btn, .vl-delete-btn,
        .emby-strm-path-mapping-remove, .vfp-delete-btn, .md-icon-btn,
        .notify-bot-close-btn, .vf-close-btn,
        .vfp-dialog-close, .tbp-button-close, .utility-modal-close,
        .organize-recognize-close-btn, .organize-clear-close-btn,
        .organize-detail-close-btn, .organize-inline-confirm-dialog-close,
        [data-action="toggle-key"], [data-action="toggle-cover-server-key"]) {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        padding: 7px !important;
        flex-shrink: 0;
    }
    &.login-btn {
        min-height: 46px !important;
        font-size: 14px !important;
    }
    /* The rule-row remove action uses an accessible label plus a visual ×. */
    &.vfp-delete-btn { font-size: 0 !important; }
    &:hover:not(:disabled):not([aria-disabled="true"]) {
        background: var(--button-hover) !important;
        border-color: var(--button-border) !important;
        color: var(--button-text) !important;
        box-shadow: none !important;
        transform: none !important;
        filter: none !important;
    }
    &:active:not(:disabled):not([aria-disabled="true"]) {
        background: var(--button-pressed) !important;
        box-shadow: none !important;
        transform: none !important;
    }
    &:focus-visible {
        outline: var(--ui-focus-width) solid var(--ui-focus-border) !important;
        outline-offset: var(--ui-focus-offset) !important;
        box-shadow: 0 0 0 3px var(--ui-focus-halo) !important;
    }
    &:is(:disabled, [aria-disabled="true"]) {
        opacity: .45 !important;
        cursor: not-allowed !important;
        box-shadow: none !important;
        filter: none !important;
    }
    @media (max-width: 768px), (pointer: coarse) {
        min-height: 44px !important;
        &:is(.organize-wash-icon-button, .kv-delete-btn, .vl-delete-btn,
            .emby-strm-path-mapping-remove, .vfp-delete-btn, .md-icon-btn,
            .notify-bot-close-btn, .vf-close-btn,
            .vfp-dialog-close, .tbp-button-close, .utility-modal-close,
            .organize-recognize-close-btn, .organize-clear-close-btn,
            .organize-detail-close-btn, .organize-inline-confirm-dialog-close,
            [data-action="toggle-key"], [data-action="toggle-cover-server-key"]) {
            width: 44px !important;
            min-width: 44px !important;
            height: 44px !important;
        }
    }
    @media (prefers-reduced-motion: reduce) { transition: none !important; }
}

/* In-field reveal controls and disclosure/navigation controls keep their
   component geometry, but use the same quiet material and focus treatment. */
html.liquid-glass.clean-ui:root :is(body, #env-sections) :is(.emby-setup-toggle-key,
    .config-subgroup-toggle, .md-calendar-rail-arrow) {
    background: var(--ui-button-bg) !important;
    color: var(--lg-muted) !important;
    border: 1px solid var(--ui-button-border) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
html.liquid-glass.clean-ui:root :is(body, #env-sections) .emby-setup-toggle-key {
    background: transparent !important;
    border-color: transparent !important;
}
html.liquid-glass.clean-ui:root :is(body, #env-sections) :is(.emby-setup-toggle-key,
    .config-subgroup-toggle, .md-calendar-rail-arrow):hover:not(:disabled) {
    background: var(--ui-button-hover) !important;
    color: var(--lg-text) !important;
    box-shadow: none !important;
    filter: none !important;
}
html.liquid-glass.clean-ui:root :is(body, #env-sections) :is(.emby-setup-toggle-key,
    .config-subgroup-toggle, .md-calendar-rail-arrow):focus-visible {
    outline: var(--ui-focus-width) solid var(--ui-focus-border) !important;
    outline-offset: var(--ui-focus-offset) !important;
    box-shadow: 0 0 0 3px var(--ui-focus-halo) !important;
}

html.liquid-glass.clean-ui:root body .sidebar-footer :is(.theme-toggle-btn, .logout-btn),
html.liquid-glass.clean-ui:root body .menu-toggle {
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
