/* =============================================================================
   CENTRAL CONTROL MOTION
   Existing hooks are adapters to preserve sizes, typography and responsive
   behavior. Their page CSS owns placement/visibility only. New shared Blade
   buttons use btn-component presets. Semantic paint follows this section.
   ============================================================================= */

/* Geometry adapter: public/assets/css/style.css */
.btn:hover {
    transform: translateY(-1px);
}

/* Geometry adapter: public/assets/css/auth-core.css */
.auth-modern-page .field-toggle {
    transform: translateY(-50%);
}

.auth-modern-page .btn-spinner {
    animation: auth-core-spin .7s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
    .auth-modern-page .btn-spinner {
        animation: none;
    }
}

/* Geometry adapter: public/assets/css/auth-modern.css */
.auth-modern-page .social-auth__button:hover {
    transform: translateY(-1px);
}

.auth-modern-page .auth-modern__action:hover,
.auth-modern-page .auth-flow-nav .btn-primary:hover {
    transform: translateY(-1px);
}

.auth-modern-page .auth-modern__action:active,
.auth-modern-page .auth-flow-nav .btn-primary:active {
    transform: translateY(0) scale(.995);
}

/* Geometry adapter: public/assets/css/auth-compact.css */
.auth-modern-page .auth-email-toggle:hover {
    transform: translateY(-1px);
}

/* Geometry adapter: public/admin/css/admin-shell.css */
.admin-app .menu-link {
    transform: none;
}

.admin-app .menu-link:hover {
    transform: translateX(-1px);
}

.admin-app .add-btn:hover {
    transform: none;
}

.admin-app .sidebar-toggle:hover,
.admin-app .admin-navbar-icon-btn:hover,
.admin-app .admin-user-trigger:hover {
    transform: none;
}

@media (hover: none) {
    .admin-app .menu-link:hover,
    .admin-app .admin-nav-button:hover,
    .admin-app .sidebar-toggle:hover,
    .admin-app .admin-navbar-icon-btn:hover,
    .admin-app .admin-user-trigger:hover {
        transform: none;
    }
}

/* Geometry adapter: public/admin/css/las-patterns.css */
.admin-app .las-card-carousel__control {
    transform: translateY(-50%);
}

/* Geometry adapter: public/admin/css/navbar-popovers.css */
.admin-navbar .admin-dropdown-item:is(:hover, :focus-visible) {
    transform: translateX(-2px);
}

@media (prefers-reduced-motion: reduce) {
    .admin-navbar :is(.admin-dropdown.show, .admin-notif-dropdown, .admin-notif-item, .admin-dropdown-item) {
        animation: none;
    }
}

/* Geometry adapter: public/assets/css/homepage.css */
.homepage-button:hover,
.homepage-button:focus-visible {
    transform: translateY(-1px);
}

/* Geometry adapter: public/assets/css/shot-carousel.css */
.shot-carousel__control {
    opacity: 0;
    transform: translateY(-50%) scale(.92);
}

.shot-carousel__control:focus-visible {
    opacity: 1;
}

.shot-carousel:hover .shot-carousel__control,
.shot-carousel:focus-within .shot-carousel__control {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}

/* Geometry adapter: public/assets/css/add-to-collection.css */
.gallery-card-save-button {
    opacity: .74;
}

.gallery-card-save-button:hover,
.gallery-card-save-button:focus-visible {
    opacity: .92;
}

.gallery-card-save-button.saving-default {
    opacity: .45;
}

.gallery-card-save-button.is-saved {
    opacity: .94;
}

.lamha-save-confirmation__undo[aria-busy="true"] {
    opacity: .55;
}

/* Geometry adapter: public/assets/css/collection.css */
.collection-action:hover,
.collection-empty__action:hover {
    transform: translateY(-1px);
}

.collection-shot-remove {
    opacity: 0;
    transform: translateY(-3px);
}

@media (hover: hover) and (pointer: fine) {
    .collection-shot-shell:hover .collection-shot-remove,
    .collection-shot-remove:focus-visible {
        opacity: 1;
        transform: translateY(0);
    }
}

.collection-dialog__button:hover {
    transform: translateY(-1px);
}

.collection-dialog__button.is-loading {
    opacity: .72;
}

@media (max-width: 767.98px) {
    .collection-shot-remove {
        opacity: 1;
        transform: none;
    }
}

/* Geometry adapter: public/assets/css/collections-index.css */
.collections-library__create:hover,
.collections-library__upgrade:hover,
.collection-empty__action:hover,
.collection-create-dialog__button:hover {
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
    .collections-library__create,
    .collections-library__upgrade,
    .collection-empty__action {
        animation: none;
    }
}

/* Geometry adapter: public/assets/css/profile-owner.css */
.profile-owner-action:is(:hover, :focus-visible),
.profile-owner-privacy > summary:is(:hover, :focus-visible) {
    transform: translateY(-1px);
}

/* Geometry adapter: public/assets/css/settings-modern.css */
.settings-password-toggle {
    transform: translateY(-50%);
}

@media (prefers-reduced-motion: reduce) {
    .settings-btn {
        animation: none;
    }
}

/* Geometry adapter: public/assets/css/settings-pro.css */
.pro-page .lamha-pro-badge-option:hover {
    transform: translateY(-1px);
}

/* Geometry adapter: public/assets/css/reels.css */
.reels-picker__close:active {
    transform: scale(0.96);
}

.reels-cat-card:active {
    transform: scale(0.96);
}

.reels-picker__cta:active {
    transform: scale(0.98);
}

.reels-icon-btn:active {
    transform: scale(0.92);
}

/* Geometry adapter: public/assets/css/reels-states.css */
.reels-error__retry:active {
    transform: scale(0.98);
}

/* Geometry adapter: public/assets/css/reels-app.css */
.reels-collection-item.is-pending {
    opacity: 0.58;
}

/* Geometry adapter: public/assets/css/toast.css */
.lamha-pro-badge-option:hover,
.lamha-pro-badge-option.is-selected {
    transform: translateY(-2px) scale(1.04);
}

.lamha-pro-action:hover {
    transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
    .lamha-pro-badge-option,
    .lamha-pro-action {
        animation: none !important;
    }
}

/* Geometry adapter: public/assets/css/show-shot.css */
.sv-icon-btn:hover,
.sv-viewer-control:hover {
    transform: scale(1.04);
}

.sv-viewer-control {
    opacity: 0;
    transform: translateY(-50%) scale(.94);
}

.sv-viewer:hover .sv-viewer-control,
.sv-viewer:focus-within .sv-viewer-control {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}

.sv-load-more:hover {
    transform: translateY(-1px);
}

.sv-viewer-back:hover {
    transform: translateY(-1px);
}

.sv-shot-action:hover,
.sv-shot-more > summary:hover {
    transform: translateY(-1px);
}

@media (max-width: 767.98px) {
    .sv-shot-action:hover,
    .sv-shot-more > summary:hover {
        transform: none;
    }
}

.sv-shot-action:hover,
.sv-shot-action:active,
.sv-shot-more > summary:hover,
.sv-shot-more > summary:active {
    transform: none;
}

.sv-shot-action.is-click-like {
    animation: svLikeClick 420ms cubic-bezier(.2,.8,.2,1);
}

.sv-shot-action.is-click-download {
    animation: svDownloadClick 420ms cubic-bezier(.2,.8,.2,1);
}

.sv-shot-action.is-click-share {
    animation: svShareClick 440ms cubic-bezier(.2,.8,.2,1);
}

.sv-shot-action.is-click-copy {
    animation: svCopyClick 380ms cubic-bezier(.2,.8,.2,1);
}

.sv-shot-more > summary.is-click-more {
    animation: svMoreClick 400ms cubic-bezier(.2,.8,.2,1);
}

@media (prefers-reduced-motion: reduce) {
    .sv-shot-action,
    .sv-shot-more > summary,
    .sv-shot-action.is-click-like,
    .sv-shot-action.is-click-download,
    .sv-shot-action.is-click-share,
    .sv-shot-action.is-click-copy,
    .sv-shot-more > summary.is-click-more {
        animation: none !important;
    }
}

/* Geometry adapter: public/assets/css/shot-discovery-layout.css */
.sv-discovery-header .gallery-layout-button:active {
    transform: scale(.94);
}

@media (prefers-reduced-motion: reduce) {
    .sv-discovery-header .gallery-layout-button {
        transform: none;
    }
}

/* Geometry adapter: public/admin/css/admin-pagination.css */
.admin-app .admin-pagination-mobile__action.is-disabled {
    opacity: .58;
}

/* Geometry adapter: public/assets/css/content-removal.css */
.cr-btn:hover {
    transform: translateY(-1px);
}

/* Geometry adapter: public/assets/css/errors-modern.css */
.error-page .button:hover {
    transform: translateY(-1px);
}

.error-page .button:active {
    transform: translateY(0) scale(.995);
}

/* Geometry adapter: public/assets/css/guest-discovery-gate.css */
.guest-discovery-gate__button:hover {
    transform: translateY(-2px);
}

/* Geometry adapter: public/assets/css/home-grainient-hero.css */
.home-experience--landing .home-hero__cta:active {
    transform: translateY(1px) scale(.985);
}

@media (hover: hover) and (pointer: fine) {
    .home-experience--landing .home-hero__cta:hover {
        transform: translateY(-2px);
    }
}

/* Geometry adapter: public/assets/css/inspiration-activation-journey.css */
.lamha-journey-card__action:hover {
    transform: translateY(-1px);
}

.lamha-journey-card__action:active {
    transform: scale(.985);
}

/* Geometry adapter: public/assets/css/mobile-interactions.css */
@media (max-width: 767.98px), (hover: none) and (pointer: coarse) {
    :is(
            button,
            .btn,
            [role="button"],
            input[type="button"],
            input[type="submit"],
            input[type="reset"],
            a.btn
        ):active {
        transform: none !important;
        translate: none !important;
        scale: none !important;
        rotate: none !important;
        opacity: 1 !important;
        animation: none !important;
    }
}

/* Geometry adapter: public/assets/css/mobile-search-overlay.css */
.mobile-search-btn:active {
    transform: scale(.94);
}

@media (prefers-reduced-motion: reduce) {
    .mobile-search-btn {
        transform: none !important;
    }
}

/* Geometry adapter: public/assets/css/navbar-unified.css */
#navbar .gallery-layout-button:active {
    transform: scale(.94);
}

#navbar .dropdown-item-custom:hover {
    transform: translateX(-2px);
}

@media (prefers-reduced-motion: reduce) {
    #navbar :is(.notif-dropdown, .dropdown-menu-custom, .notif-list > .notif-item, .dropdown-item-custom, .gallery-layout-button, .theme-toggle-switch, .theme-toggle-switch__thumb) {
        transform: none;
    }
}

/* Geometry adapter: public/assets/css/shot-download-dialog.css */
.sv-download-option:hover {
    transform: translateY(-1px);
}

/* Geometry adapter: resources/views/inspirations.blade.php */
.gallery-layout-button:active {
    transform: scale(.94);
}

.category-entity-jump:hover {
    transform: translateY(-1px);
}

.inspiration-discovery__more:hover {
    transform: translateX(-2px);
}

/* Geometry adapter: public/assets/css/modal-system.css */
:is(
    .lamha-modal__close,
    .profile-collection-dialog__close,
    .collection-dialog__close,
    .settings-dialog__close,
    .collection-modal .modal-close
):active {
    transform: scale(.94);
}

.collection-modal .collection-item:is(:hover, :focus-visible) {
    transform: translateY(-1px);
}

.collection-modal .collection-item.processing {
    opacity: .58;
}

/* =============================================================================
   CENTRAL CONTROL GEOMETRY
   Existing hooks are adapters to preserve sizes, typography and responsive
   behavior. Their page CSS owns placement/visibility only. New shared Blade
   buttons use btn-component presets. Semantic paint follows this section.
   ============================================================================= */

/* Geometry adapter: public/assets/css/style.css */
@media (max-width: 768px) {
    .search-form .btn {
        width: 100%;
    }
}

button,
input[type="button"],
.btn {
    border-radius: var(--radius-full) !important;
}

.btn {
    min-height: 46px;
    min-width: fit-content;
    padding: var(--space-3) var(--space-5);
    justify-content: center;
    align-items: center;
    gap: var(--space-2);
    border: none;
    font-family: var(--font-family-base), serif;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    line-height: 1;
    cursor: pointer;
    transition:
        transform var(--duration-fast) var(--ease-out),
        filter var(--duration-fast) var(--ease-out),
        box-shadow var(--duration-fast) var(--ease-out),
        background-color var(--duration-fast) var(--ease-out),
        border-color var(--duration-fast) var(--ease-out),
        color var(--duration-fast) var(--ease-out);
}

.btn.btn-sm {
    min-height: 40px;
    padding-inline: var(--space-4);
    font-size: var(--text-sm);
}

.btn.btn-lg {
    min-height: 54px;
    padding-inline: var(--space-6);
    font-size: var(--text-base);
}

@media (prefers-reduced-motion: reduce) {
    .btn {
        transition: none !important;
    }
}

/* Geometry adapter: public/assets/css/auth-core.css */
.auth-modern-page button {
    font: inherit;
}

.auth-modern-page .field-toggle {
    border: 0;
    cursor: pointer;
}

.auth-modern-page .btn {
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-4);
    border: 0;
    cursor: pointer;
}

.auth-modern-page .btn:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.auth-modern-page .btn-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-radius: var(--radius-full);
}

.auth-modern-page .social-auth__button {
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: 0 var(--space-4);
    border-width: 1px;
    border-style: solid;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    transition: var(--transition-fast);
}

/* Geometry adapter: public/assets/css/auth-modern.css */
.auth-modern-page .social-auth__button {
    min-height: 50px;
    border-radius: var(--radius-full);
}

.auth-modern-page .field-toggle {
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: var(--radius-full);
    transition: color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);
}

.auth-modern-page .auth-modern__action,
.auth-modern-page .auth-flow-nav .btn-primary {
    min-height: 54px;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    transition: transform var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}

/* Geometry adapter: public/assets/css/auth-modern-states.css */
.auth-modern-page .auth-state-actions .btn,
.auth-modern-page .auth-state-actions form > .btn {
    width: 100%;
}

.auth-modern-page .auth-modern__action--compact {
    min-height: 50px;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    transition: var(--transition-fast);
}

.auth-modern-page .auth-state-details > summary {
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    cursor: pointer;
    font-size: var(--text-sm);
}

.auth-modern-page .auth-state-logout {
    width: 100%;
    padding: var(--space-2);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

.auth-modern-page .auth-onboarding-actions .btn {
    width: 100%;
}

/* Geometry adapter: public/assets/css/auth-compact.css */
:is(.auth-modern-page--login, .auth-modern-page--register, .auth-modern-page--state) .social-auth__button {
    min-height: 46px;
    font-size: var(--text-sm);
}

:is(.auth-modern-page--login, .auth-modern-page--register, .auth-modern-page--state) .field-toggle {
    width: 31px;
    height: 31px;
}

:is(.auth-modern-page--login, .auth-modern-page--register, .auth-modern-page--state) .auth-modern__action--prominent {
    min-height: 48px;
    font-size: var(--text-sm);
}

.auth-modern-page--state .auth-state-details summary {
    min-height: 44px;
    padding: 10px 13px;
}

.auth-modern-page .auth-email-toggle {
    width: 100%;
    min-height: 46px;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
}

@media (max-width: 760px) {
    :is(.auth-modern-page--login, .auth-modern-page--register, .auth-modern-page--state) .auth-modern__action--prominent {
        min-height: 46px;
        height: 46px;
    }
}

@media (max-width: 760px) {
    :is(.auth-modern-page--login, .auth-modern-page--register, .auth-modern-page--state) .social-auth__button {
        min-height: 44px;
    }
}

@media (max-width: 760px) {
    :is(.auth-modern-page--login, .auth-modern-page--register) .auth-email-toggle {
        min-height: 46px;
    }
}

/* Geometry adapter: public/admin/css/las.css */
.admin-app .las-button,
.admin-app .las-icon-button {
    border-width: 1px;
    border-style: solid;
    font-family: inherit;
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--las-transition);
}

.admin-app .las-button {
    max-width: 100%;
    min-height: var(--las-control-height);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--las-radius-control);
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
}

.admin-app .las-button:disabled,
.admin-app .las-icon-button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.admin-app .las-icon-button {
    width: var(--las-control-height-compact);
    height: var(--las-control-height-compact);
    padding: 0;
    border-radius: var(--las-radius-control);
}

@media (max-width: 767.98px) {
    .admin-app .las-callout .las-button {
        width: 100%;
    }
}

/* Geometry adapter: public/admin/css/admin-shell.css */
.admin-app .menu-link {
    min-height: 44px;
    align-items: center;
    gap: 11px;
    padding: 9px 11px;
    border: 1px solid transparent;
    border-radius: var(--las-radius-control);
    font-size: var(--text-sm);
    transition:
        background-color var(--duration-fast) var(--ease-default),
        border-color var(--duration-fast) var(--ease-default),
        color var(--duration-fast) var(--ease-default),
        transform var(--duration-fast) var(--ease-default);
}

.admin-app .add-btn {
    width: 38px;
    height: 38px;
    min-width: 38px;
    min-height: 38px;
    border-width: 1px;
    border-style: solid;
    border-radius: 11px;
}

.admin-app .sidebar-footer-link,
.admin-app .sidebar-footer-logout {
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-width: 1px;
    border-style: solid;
    border-radius: 12px;
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    transition: var(--las-transition);
}

.admin-app .sidebar-footer-logout {
    width: 44px;
}

.admin-app .sidebar.collapsed .menu-link {
    justify-content: center;
    padding-inline: 8px;
}

.admin-app .sidebar.collapsed .sidebar-footer-link,
.admin-app .sidebar.collapsed .sidebar-footer-logout {
    width: 44px;
}

.admin-app .sidebar-toggle,
.admin-app .admin-navbar-icon-btn,
.admin-app .admin-user-trigger {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: 12px;
    cursor: pointer;
    transition: var(--las-transition);
}

.admin-app .admin-nav-button {
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: 12px;
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    transition: var(--las-transition);
}

@media (max-width: 991.98px) {
    .admin-app .admin-nav-button.btn-secondary {
        width: 42px;
        min-width: 42px;
        padding: 0;
    }
}

@media (max-width: 767.98px) {
    .admin-app .sidebar-toggle,
    .admin-app .admin-navbar-icon-btn,
    .admin-app .admin-user-trigger,
    .admin-app .admin-nav-button.btn-primary {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        border-radius: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-app .menu-link,
    .admin-app .add-btn,
    .admin-app .sidebar-toggle,
    .admin-app .admin-navbar-icon-btn,
    .admin-app .admin-user-trigger,
    .admin-app .admin-nav-button {
        transition: none !important;
    }
}

/* Geometry adapter: public/admin/css/las-patterns.css */
.admin-app .las-filter-toggle {
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-1) var(--space-2);
    border: 0;
}

.admin-app .las-media-card__actions .las-button {
    min-width: 92px;
}

.admin-app .las-card-carousel__control,
.admin-app .las-card-carousel__remove {
    border-width: 1px;
    border-style: solid;
}

.admin-app .las-card-carousel__control {
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: var(--radius-full);
}

.admin-app .las-card-carousel__remove {
    padding: var(--space-1) var(--space-2);
    border-radius: var(--las-radius-control);
    font-size: 11px;
}

.admin-app .las-selection-check {
    align-items: center;
    gap: var(--space-2);
    padding: 0;
    border: 0;
}

/* Geometry adapter: public/admin/css/las-upload.css */
.admin-app .las-upload-delete {
    min-height: var(--las-control-height-compact);
    padding: var(--space-1) var(--space-2);
    align-items: center;
    gap: var(--space-1);
    border: 1px solid transparent;
    border-radius: var(--las-radius-control);
    font: inherit;
    font-size: var(--text-xs);
    cursor: pointer;
}

@media (max-width: 767.98px) {
    .admin-app .las-upload-mobile-submit .las-button {
        width: 100%;
    }
}

.admin-app .las-upload-submit-bar .las-button {
    min-width: 160px;
    min-height: 44px;
}

@media (max-width: 767.98px) {
    .admin-app .las-upload-submit-bar .las-button {
        width: 100%;
    }
}

.admin-app .las-upload-disclosure summary {
    min-height: 48px;
    padding-block: var(--space-3);
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    cursor: pointer;
}

.admin-app .las-upload-item-settings>summary {
    min-height:42px;
    padding:var(--space-2) var(--space-3);
    align-items:center;
    justify-content:space-between;
    gap:var(--space-2);
    font-size:var(--text-xs);
    font-weight:var(--font-medium);
    cursor:pointer;
}

@media (max-width:767.98px) {
    .admin-app .las-upload-item-settings>summary {
        min-height:44px;
    }
}

@media (max-width:767.98px) {
    .admin-app .las-upload-submit-bar .las-button {
        width:100%;
        min-height:48px;
    }
}

/* Geometry adapter: public/admin/css/navbar-popovers.css */
.admin-app .verification-alert-bar__dismiss {
    display: inline-grid;
    place-items: center;
}

.admin-app .las-selection-check {
    display: flex;
}

.admin-app .las-selection-check__box {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--las-text-inverse);
    border-radius: var(--las-radius-control);
    background: color-mix(in srgb, var(--las-overlay) 82%, transparent);
    color: transparent;
    box-shadow: var(--las-shadow-soft);
}

.admin-app .las-selection-check__order {
    display: none;
    min-width: 26px;
    min-height: 26px;
    padding-inline: var(--space-2);
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: var(--las-surface-raised);
    color: var(--las-text);
    font-size: 11px;
    font-weight: var(--font-semibold);
    box-shadow: var(--las-shadow-soft);
}

.admin-app .las-media-card.is-selected .las-selection-check__box {
    border-color: var(--las-action);
    background: var(--las-action);
    color: var(--las-text-inverse);
}

.admin-app .las-media-card.is-selected .las-selection-check__order {
    display: inline-flex;
}

@media (max-width: 767.98px) {
    .admin-app .las-button {
        white-space: normal;
        text-align: center;
    }
}

.admin-navbar :is(.admin-navbar-icon-btn, .admin-user-trigger) {
    align-items: center;
    justify-content: center;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    transition:
        background-color var(--duration-fast) var(--ease-default),
        border-color var(--duration-fast) var(--ease-default),
        color var(--duration-fast) var(--ease-default);
}

.admin-navbar .admin-navbar-icon-btn {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
}

.admin-navbar .admin-user-trigger {
    min-height: 42px;
    padding: var(--space-1);
    border-radius: var(--radius-lg);
}

.admin-navbar .admin-dropdown-text-action {
    padding: var(--space-1) var(--space-2);
    border: 0;
    border-radius: var(--radius-md);
    font: inherit;
    font-size: var(--text-xs);
    cursor: pointer;
    transition: var(--transition-fast);
}

.admin-navbar .admin-dropdown-item {
    width: 100%;
    min-height: 46px;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius-lg);
    font: inherit;
    font-size: 13px;
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--transition-fast);
}

@media (prefers-reduced-motion: reduce) {
    .admin-navbar :is(.admin-dropdown.show, .admin-notif-dropdown, .admin-notif-item, .admin-dropdown-item) {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/home-hero-motion.css */
button {
    border-radius: var(--radius-full);
}

button {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button {
    text-transform: none;
}

[role="button"] {
    cursor: pointer;
}

[type="button"]:not(:disabled),
button:not(:disabled) {
    cursor: pointer;
}

/* Geometry adapter: public/assets/css/homepage.css */
@media (hover: hover) and (pointer: fine) {
    .lamha-homepage.is-pointer-active button,
    .lamha-homepage.is-pointer-active [role="button"],
    body:has(.lamha-homepage.is-pointer-active) #navbar button,
    body:has(.lamha-homepage.is-pointer-active) #navbar [role="button"] {
        cursor: none;
    }
}

.homepage-search-examples button {
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    padding: var(--space-2) var(--space-4);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: var(--transition-fast);
}

.homepage-button {
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 46px;
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-full);
    font-weight: var(--font-semibold);
    transition: transform var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out);
}

@media (max-width: 767.98px) {
    .homepage-search-examples button {
        min-height: 38px;
        padding: 8px 14px;
        border-radius: var(--radius-full);
        font-size: 13px;
        line-height: 1.1;
    }
}

/* Geometry adapter: public/assets/css/shot-carousel.css */
.shot-carousel__control {
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    transition: opacity 160ms ease, transform 160ms ease, background-color 160ms ease;
    cursor: pointer;
}

.shot-carousel__dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    transition: width 160ms ease, background-color 160ms ease;
    cursor: pointer;
}

.shot-carousel__dot.is-active {
    width: 16px;
    border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
    .shot-carousel__control,
    .shot-carousel__dot {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/add-to-collection.css */
.gallery-card-save-button {
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: opacity 140ms ease, background-color 140ms ease, color 140ms ease;
}

.gallery-card-save-button.saving-default {
    cursor: progress;
}

.lamha-save-confirmation__action {
    padding: 6px 8px;
    border: 0;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.lamha-save-confirmation__undo[aria-busy="true"] {
    cursor: progress;
}

@media (max-width: 420px) {
    .gallery-card-save-button {
        width: 30px;
        height: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-card-save-button {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/collection.css */
.collection-action,
.collection-empty__action {
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--transition-fast);
}

.collection-shot-remove {
    width: 32px;
    height: 32px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: var(--transition-fast);
}

.collection-dialog__close {
    width: 36px;
    height: 36px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: var(--transition-fast);
}

.collection-dialog__button {
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 14px;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--transition-fast);
}

.collection-dialog__button--link {
    padding-inline: 12px;
}

@media (max-width: 575.98px) {
    .collection-action {
        width: 100%;
        padding-inline: 10px;
    }
}

@media (max-width: 575.98px) {
    .collection-shot-remove {
        width: 30px;
        height: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .collection-action,
    .collection-shot-remove {
        transition: none !important;
    }
}

/* Geometry adapter: public/assets/css/collections-index.css */
.collections-library__create,
.collections-library__upgrade,
.collection-empty__action,
.collection-create-dialog__button {
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), opacity var(--duration-fast) var(--ease-default);
}

.collections-library__filter {
    min-height: 38px;
    padding: 7px 11px;
    border-width: 1px;
    border-style: solid;
    border-radius: 12px;
    font: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-semibold);
    cursor: pointer;
}

.collection-create-dialog__close {
    width: 36px;
    height: 36px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
}

.collection-create-dialog__optional summary {
    font-size: var(--text-xs);
    cursor: pointer;
}

.collection-create-dialog__button:disabled {
    opacity: .45;
    cursor: wait;
    transform: none;
}

@media (max-width: 640px) {
    .collections-library__create,
    .collections-library__upgrade {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .collection-create-dialog__button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .collections-library__create,
    .collections-library__upgrade,
    .collection-empty__action {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/profile-owner.css */
.profile-owner-action,
.profile-owner-privacy > summary {
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--transition-fast);
}

.profile-owner-privacy__option {
    width: 100%;
    min-height: 58px;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: var(--transition-fast);
}

@media (max-width: 767.98px) {
    .profile-owner-action,
    .profile-owner-privacy > summary {
        width: 100%;
    }
}

/* Compact owner profile geometry.
   Page CSS owns placement only; interactive control geometry stays centralized. */
.profile-owner-privacy--inline > summary {
    width: auto;
    min-width: fit-content;
    min-height: var(--space-8);
    justify-content: center;
    gap: var(--space-1);
    padding: 0 var(--space-3);
    font-size: var(--text-xs);
}

.profile-owner-privacy--inline > summary :is(svg, i) {
    width: var(--space-4);
    height: var(--space-4);
}

/* Geometry adapter: public/assets/css/settings-modern.css */
.settings-btn {
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 16px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), opacity var(--duration-fast) var(--ease-default);
}

.settings-btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.settings-btn:disabled {
    opacity: .42;
    cursor: not-allowed;
}

.settings-password-toggle {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
}

.settings-dialog__close {
    width: 36px;
    height: 36px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
}

@media (max-width: 640px) {
    .settings-panel__footer .settings-btn,
    .settings-dialog__footer .settings-btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .settings-btn {
        transition: none;
    }
}

@media (max-width: 640px) {
    .settings-panel__footer .settings-btn,
    .settings-action-row .settings-btn {
        width: 100%;
        min-height: 48px;
    }
}

@media (max-width: 640px) {
    .settings-dialog__footer .settings-btn {
        width: 100%;
        min-height: 48px;
    }
}

@media (max-width: 640px) {
    .settings-dialog__close {
        width: 40px;
        height: 40px;
    }
}

.settings-two-factor-key button {
    width: 38px;
    height: 38px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
}

@media (max-width: 640px) {
    .settings-two-factor-confirm .settings-btn {
        width: 100%;
        min-height: 48px;
    }
}

/* Geometry adapter: public/assets/css/settings-pro.css */
.pro-btn {
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), opacity var(--duration-fast) var(--ease-default);
}

.pro-btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.pro-btn:disabled {
    opacity: .42;
    cursor: not-allowed;
}

.pro-page .lamha-pro-badge-option {
    width: 100%;
    min-height: 48px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: 15px;
    font-size: 1.2rem;
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default);
}

.pro-faq-list summary {
    padding: 15px 17px;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
}

@media (max-width: 640px) {
    .pro-btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pro-btn,
    .pro-page .lamha-pro-badge-option {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/settings-preferences.css */
@media (max-width: 767.98px) {
    .preferences-device-actions .settings-btn {
        width: 100%;
    }
}

/* Geometry adapter: public/assets/css/settings-refinement.css */
.settings-btn {
    min-height: 40px;
    padding: 8px 16px;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
}

@media (max-width: 767.98px) {
    .settings-notification-actions .settings-btn {
        width: 100%;
    }
}

/* Geometry adapter: public/assets/css/reels.css */
.reels-picker__close {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: var(--text-base);
    transition: background var(--duration-fast) var(--ease-default),
                transform 100ms var(--ease-default);
}

.reels-cat-card {
    height: var(--space-24);
    border-radius: var(--radius-sm);
    cursor: pointer;
    border: 2px solid var(--border-subtle);
    transition: border-color 200ms var(--ease-default),
                transform var(--duration-fast) var(--ease-default),
                box-shadow var(--duration-fast) var(--ease-default);
}

.reels-picker__cta {
    width: 100%;
    padding: var(--space-4);
    font-family: var(--font-family-base), serif;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: opacity var(--duration-fast) var(--ease-default),
                transform 100ms var(--ease-default);
    letter-spacing: -0.01em;
}

.reels-picker__cta:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.reels-picker__all {
    width: 100%;
    padding: 0.85rem;
    font-family: var(--font-family-base), serif;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: background var(--duration-fast) var(--ease-default),
                border-color var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default);
}

.reels-slide__tap-prev,
.reels-slide__tap-next {
    width: 15%;
    padding: 0;
    border: 0;
}

.reels-icon-btn {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: var(--text-base);
    transition: background var(--duration-fast) var(--ease-default),
                border-color var(--duration-fast) var(--ease-default),
                transform 100ms var(--ease-default);
}

.reels-rail-btn {
    align-items: center;
    gap: var(--space-1);
    cursor: pointer;
}

.reels-empty__btn {
    padding: var(--space-3) var(--space-6);
    font-size: 0.9rem;
    font-weight: var(--font-semibold);
    cursor: pointer;
    font-family: var(--font-family-base);
}

/* Geometry adapter: public/assets/css/reels-states.css */
.reels-error__retry {
    min-width: 140px;
    min-height: 44px;
    padding: 0.72rem 1.2rem;
    font: inherit;
    font-size: 0.86rem;
    font-weight: var(--font-semibold);
    cursor: pointer;
}

.reels-load-more-error__retry {
    padding: 0.4rem 0.68rem;
    font: inherit;
    font-weight: var(--font-semibold);
    cursor: pointer;
}

/* Geometry adapter: public/assets/css/reels-app.css */
.reels-sheet-backdrop {
    border: 0;
    padding: 0;
}

.reels-picker__close {
    border-width: 1px;
    border-style: solid;
}

.reels-picker__cta {
    min-height: var(--space-12);
    font-weight: var(--font-semibold);
}

.reels-picker__all {
    min-height: 44px;
}

.reels-picker__cancel {
    width: 100%;
    padding: 0.7rem;
    font: inherit;
    cursor: pointer;
}

.reels-rail-btn {
    border: 0;
    padding: 0;
    font: inherit;
}

.reels-sheet-close {
    width: 36px;
    height: 36px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
}

.reels-collection-item {
    width: 100%;
    align-items: center;
    gap: 10px;
    padding: var(--space-2);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
}

.reels-collection-create button {
    height: 44px;
    padding: 0 var(--space-4);
    font: inherit;
    font-weight: var(--font-semibold);
}

.reels-collection-create button:disabled {
    opacity: 0.5;
}

/* Geometry adapter: public/assets/css/reels-navigation.css */
.reels-page button {
    font: inherit;
}

@media (min-width: 700px) {
    .reels-page button {
        cursor: default;
    }
}

@media (min-width: 700px) {
    .reels-page button,
    .reels-cat-card,
    .reels-collection-item {
        cursor: pointer;
    }
}

/* Geometry adapter: public/assets/css/toast.css */
.toast-action {
    padding: 0;
    border: 0;
    font: inherit;
    font-size: var(--text-xs);
    font-weight: 700;
    cursor: pointer;
}

.toast-close {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.lamha-pro-badge-option {
    width: 42px;
    height: 42px;
    border-width: 1px;
    border-style: solid;
    border-radius: 999px;
    font-size: 1.2rem;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.lamha-pro-action {
    border: 0;
    border-radius: var(--radius-full);
    padding: .85rem 1.15rem;
    font-weight: 700;
    transition: transform .18s ease, opacity .18s ease;
}

@media (max-width: 768px) {
    .toast-close {
        width: 16px;
        height: 16px;
    }
}

@media (max-width: 576px) {
    .lamha-pro-action {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lamha-pro-badge-option,
    .lamha-pro-action {
        transition: none !important;
    }
}

/* Geometry adapter: public/assets/css/show-shot.css */
.sv-icon-btn,
.sv-viewer-control {
    align-items: center;
    justify-content: center;
    border: 0;
    cursor: pointer;
    transition: transform 160ms ease, background 160ms ease, opacity 160ms ease;
}

.sv-icon-btn {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
}

.sv-viewer-control {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
}

.sv-viewer-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: width 160ms ease, background 160ms ease;
}

.sv-viewer-dot.is-active {
    width: 20px;
}

.sv-rights-details summary,
.sv-reference-details summary {
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    cursor: pointer;
}

.sv-rights-details summary {
    padding: .9rem 1rem;
    font-size: var(--text-sm);
}

.sv-reference-details summary {
    min-height: 68px;
    padding: .7rem .2rem;
}

.sv-sidebar-footer button,
.sv-sidebar-footer a {
    align-items: center;
    gap: .4rem;
}

.sv-sidebar-footer button,
.sv-sidebar-footer a {
    padding: 0;
    border: 0;
    font: inherit;
    cursor: pointer;
}

.sv-mobile-more__menu a,
.sv-mobile-more__menu button {
    align-items: center;
    width: 100%;
    gap: .65rem;
    min-height: 40px;
    padding: .55rem .7rem;
    border: 0;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

.sv-load-more {
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    padding: .65rem 1.1rem;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

@media (prefers-reduced-motion: reduce) {
    .sv-viewer-control,
    .sv-viewer-dot,
    .sv-load-more {
        transition: none;
    }
}

.sv-viewer-back {
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    padding: 0;
    border-width: 1px;
    border-style: solid;
    cursor: pointer;
    transition: transform 160ms ease, background 160ms ease;
}

.sv-shot-action,
.sv-shot-more > summary {
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: color 150ms ease, border-color 150ms ease, background 150ms ease, transform 150ms ease;
}

.sv-shot-action--like {
    min-width: 92px;
}

/* Icon-only shot actions share one central sizing contract across viewports. */
.sv-shot-action--icon-only {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    gap: 0;
}
.sv-shot-action--icon-only .sv-action-label,
.sv-shot-action--icon-only .sv-action-like-count {
    display: none;
}


.sv-shot-more > summary {
    width: 48px;
    padding: 0;
}

.sv-shot-more__menu a,
.sv-shot-more__menu button {
    align-items: center;
    width: 100%;
    min-height: 42px;
    gap: 10px;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

@media (min-width: 768px) {
    .sv-page .sv-sidebar .sv-rights-details summary {
        min-height: 58px;
        padding: 0 14px;
        font-size: var(--text-sm);
        font-weight: var(--font-semibold);
    }
}

@media (max-width: 767.98px) {
    .sv-viewer-back {
        width: 46px;
        height: 46px;
        border-radius: var(--radius-full);
    }
}

@media (max-width: 767.98px) {
    .sv-shot-action,
    .sv-shot-more > summary {
        min-width: 48px;
        min-height: 50px;
        padding: 0 10px;
        border: 0;
        border-radius: var(--radius-full);
    }
}

@media (max-width: 767.98px) {
    .sv-shot-action:hover,
    .sv-shot-more > summary:hover {
        border: 0;
    }
}

@media (max-width: 767.98px) {
    .sv-shot-action--like {
        min-width: 74px;
        gap: 7px;
    }
}

@media (max-width: 390px) {
    .sv-shot-action,
    .sv-shot-more > summary {
        min-width: 44px;
        min-height: 46px;
        padding-inline: 7px;
    }
}

@media (max-width: 390px) {
    .sv-shot-action--like {
        min-width: 68px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sv-viewer-back,
    .sv-shot-action,
    .sv-shot-more > summary {
        transition: none;
    }
}

.sv-shot-action,
.sv-shot-more > summary {
    transition: none !important;
}

.sv-viewer-control:disabled,
.shot-carousel__control:disabled {
    opacity: .22 !important;
}

@media (max-width: 767.98px) {
    .sv-viewer-back {
        width: 38px !important;
        height: 38px !important;
        border-width: 1px;
        border-style: solid;
        border-radius: var(--radius-full) !important;
    }
}

@media (max-width: 767.98px) {
    .sv-shot-action,
    .sv-shot-more > summary {
        min-width: 42px !important;
        min-height: 42px !important;
        padding: 0 8px !important;
        border: 0 !important;
        border-radius: var(--radius-full) !important;
    }
}

@media (max-width: 767.98px) {
    .sv-shot-action--like {
        min-width: 62px !important;
        gap: 5px !important;
    }
}

@media (max-width: 767.98px) {
    .sv-viewer-dot {
        width: 6px !important;
        height: 6px !important;
    }
}

@media (max-width: 767.98px) {
    .sv-viewer-dot.is-active {
        width: 17px !important;
    }
}

@media (max-width: 767.98px) {
    .sv-mobile-reference .sv-rights-details > summary {
        min-height: 52px;
        padding: .8rem .9rem;
    }
}

@media (max-width: 390px) {
    .sv-shot-action,
    .sv-shot-more > summary {
        min-width: 39px !important;
        min-height: 40px !important;
        padding-inline: 6px !important;
    }
}

@media (max-width: 390px) {
    .sv-shot-action--like {
        min-width: 58px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sv-shot-action,
    .sv-shot-more > summary,
    .sv-shot-action.is-click-like,
    .sv-shot-action.is-click-download,
    .sv-shot-action.is-click-share,
    .sv-shot-action.is-click-copy,
    .sv-shot-more > summary.is-click-more {
        transition: none !important;
    }
}

/* Geometry adapter: public/assets/css/shot-discovery-layout.css */
.sv-discovery-header .gallery-layout-button {
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition:
        background-color var(--duration-fast) var(--ease-default),
        color var(--duration-fast) var(--ease-default),
        transform var(--duration-fast) var(--ease-default),
        box-shadow var(--duration-fast) var(--ease-default);
}

@media (prefers-reduced-motion: reduce) {
    .sv-discovery-header .gallery-layout-button {
        transition: none;
    }
}

/* Geometry adapter: public/admin/css/admin-navbar-responsive.css */
@media (max-width: 767.98px) {
    .admin-app .admin-nav-button.btn-secondary {
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        border-radius: 14px;
    }
}

/* Geometry adapter: public/admin/css/admin-pagination.css */
.admin-app .admin-pagination .page-link {
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-2);
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    align-items: center;
    justify-content: center;
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    transition: background-color var(--duration-fast) var(--ease-default),
                border-color var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default),
                box-shadow var(--duration-fast) var(--ease-default);
}

.admin-app .admin-pagination .page-item.active .page-link {
    font-weight: var(--font-semibold);
}

.admin-app .admin-pagination .page-item.disabled .page-link {
    cursor: not-allowed;
    opacity: .58;
}

.admin-app .admin-pagination .page-ellipsis .page-link {
    min-width: 28px;
    padding-inline: var(--space-1);
    cursor: default;
}

.admin-app .admin-pagination-mobile__action {
    min-width: 0;
    min-height: 44px;
    padding: var(--space-2) var(--space-3);
    border: 1px solid transparent;
    border-radius: var(--las-radius-control);
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    transition: var(--las-transition);
}

.admin-app .admin-pagination-mobile__action.is-disabled {
    cursor: not-allowed;
}

@media (pointer: coarse) and (min-width: 768px) {
    .admin-app .admin-pagination .page-link {
        min-width: 44px;
        min-height: 44px;
    }
}

@media (prefers-contrast: high) {
    .admin-app .admin-pagination-mobile__action {
        border-width: 2px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-app .admin-pagination .page-link,
    .admin-app .admin-pagination-mobile__action {
        transition: none;
    }
}

/* Geometry adapter: public/admin/css/las-data-viz.css */
.admin-app .las-chart-tab {
    min-height: var(--las-control-height-compact);
    padding: var(--space-2) var(--space-3);
    align-items: center;
    gap: var(--space-2);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: var(--las-transition);
}

.admin-app .las-comparison-card {
    min-width: 0;
    padding: var(--space-4);
    gap: var(--space-3);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--las-radius-card);
    font-family: inherit;
    cursor: pointer;
    transition: var(--las-transition);
}

.admin-app .las-comparison-card--compact {
    min-height: 126px;
}

/* Geometry adapter: public/admin/css/las-feedback.css */
.admin-app .verification-alert-bar__dismiss {
    width: var(--las-control-height-compact);
    height: var(--las-control-height-compact);
    border: 0;
    border-radius: var(--las-radius-control);
    cursor: pointer;
}

@media (max-width: 767.98px) {
    .admin-app .verification-alert-bar__actions .las-button {
        width: 100%;
    }
}

/* Geometry adapter: public/admin/css/las-responsive.css */
@media (max-width: 767.98px) {
    .admin-app :is(.las-icon-button, .las-card-carousel__control) {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
    }
}

@media (max-width: 767.98px) {
    .admin-app .las-selection-check {
        min-width: 44px;
        min-height: 44px;
        align-items: flex-start;
    }
}

@media (max-width: 767.98px) {
    .admin-app :is(.las-filter-reset, .las-chart-tab) {
        min-height: 44px;
    }
}

@media (max-width: 767.98px) {
    .admin-app .admin-pagination .page-link {
        min-width: 44px;
        height: 44px;
    }
}

@media (pointer: coarse) and (min-width: 768px) {
    .admin-app :is(.las-icon-button, .las-card-carousel__control) {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
    }
}

@media (pointer: coarse) and (min-width: 768px) {
    .admin-app :is(.las-filter-reset, .las-chart-tab) {
        min-height: 44px;
    }
}

@media (pointer: coarse) and (min-width: 768px) {
    .admin-app .admin-pagination .page-link {
        min-width: 44px;
        min-height: 44px;
    }
}

/* Geometry adapter: public/assets/css/auth-taste-onboarding.css */
.taste-onboarding-page .taste-onboarding__skip {
    min-height: 38px;
    padding: 0 13px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
}

.taste-onboarding-page .taste-action {
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    cursor: pointer;
    transition: border-color 150ms var(--ease-out), background 150ms var(--ease-out);
}

.taste-onboarding-page .taste-action:disabled {
    opacity: 1;
    cursor: wait;
}

@media (max-height: 720px) {
    .taste-onboarding-page .taste-action {
        min-height: 54px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .taste-onboarding-page .taste-action {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/content-removal.css */
.cr-btn {
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default);
}

@media (max-width: 640px) {
    .cr-btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cr-btn {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/dashboard.css */
.tab-btn {
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: var(--text-base);
    font-weight: 500;
}

/* Geometry adapter: public/assets/css/errors-modern.css */
.error-page .button {
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-6);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    cursor: pointer;
    transition:
        transform var(--duration-fast) var(--ease-out),
        border-color var(--duration-fast) var(--ease-out),
        background var(--duration-fast) var(--ease-out),
        color var(--duration-fast) var(--ease-out),
        box-shadow var(--duration-fast) var(--ease-out),
        filter var(--duration-fast) var(--ease-out);
}

@media (max-width: 560px) {
    .error-page .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .error-page .button {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/guest-discovery-gate.css */
.guest-discovery-gate__button {
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 11px 18px;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-size: 13px;
    font-weight: 700;
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

@media (max-width: 575.98px) {
    .guest-discovery-gate__button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .guest-discovery-gate__button {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/home-grainient-hero.css */
.home-experience--landing .home-hero__cta {
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 12px 28px;
    border-radius: var(--radius-full);
    font-size: 16px;
    font-weight: var(--font-semibold);
    line-height: 1;
    letter-spacing: 0;
    transition:
        transform var(--duration-fast) var(--ease-out),
        border-color var(--duration-fast) var(--ease-out),
        background-color var(--duration-fast) var(--ease-out),
        box-shadow var(--duration-fast) var(--ease-out);
}

@media (max-width: 767.98px) {
    .home-experience--landing .home-hero__cta {
        gap: 14px;
        min-width: 154px;
        min-height: 50px;
        padding: 0 16px;
        border-radius: var(--radius-full);
        font-size: 14px;
    }
}

/* Geometry adapter: public/assets/css/inspiration-activation-journey.css */
.lamha-journey-card__action,
.lamha-journey-card__skip {
    min-height: 40px;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.lamha-journey-card__action {
    padding: 9px 15px;
    transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, opacity 160ms ease;
}

.lamha-journey-card__skip {
    border-width: 1px;
    border-style: solid;
    padding: 8px 13px;
}

@media (prefers-reduced-motion: reduce) {
    .lamha-journey-card__action {
        transition: none !important;
    }
}

@media (max-width: 420px) {
    .lamha-journey-card__skip {
        width: 100%;
    }
}

/* Geometry adapter: public/assets/css/legal.css */
.legal-tabs .tab-btn {
    cursor: pointer;
}

/* Geometry adapter: public/assets/css/likes-index.css */
.likes-library__filter {
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    transition: var(--transition-fast);
}

.likes-library__empty-action {
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
}

/* Geometry adapter: public/assets/css/mobile-interactions.css */
@media (max-width: 767.98px), (hover: none) and (pointer: coarse) {
    :is(
            button,
            .btn,
            [role="button"],
            input[type="button"],
            input[type="submit"],
            input[type="reset"],
            a.btn
        ) {
        font-size: var(--text-xs) !important;
    }
}

@media (max-width: 767.98px), (hover: none) and (pointer: coarse) {
    :is(
            button,
            .btn,
            [role="button"],
            input[type="button"],
            input[type="submit"],
            input[type="reset"],
            a.btn
        ):active {
        transition-duration: 0s !important;
    }
}

/* Geometry adapter: public/assets/css/mobile-search-overlay.css */
.mobile-search-btn {
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition:
        color var(--duration-fast) var(--ease-default),
        border-color var(--duration-fast) var(--ease-default),
        background-color var(--duration-fast) var(--ease-default),
        transform var(--duration-fast) var(--ease-default);
}

.mso-clear,
.mso-cancel {
    border: 0;
    font-family: var(--font-family-base);
    cursor: pointer;
}

.mso-clear {
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: var(--radius-full);
    transition: color var(--duration-fast) var(--ease-default), background var(--duration-fast) var(--ease-default);
}

.mso-cancel {
    min-height: 40px;
    padding: var(--space-2) var(--space-3);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    transition: color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background var(--duration-fast) var(--ease-default);
}

@media (max-width: 420px) {
    .mso-cancel {
        padding-inline: var(--space-2);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-search-btn {
        transition: none !important;
    }
}

/* Geometry adapter: public/assets/css/navbar-unified.css */
#navbar .gallery-layout-button {
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: background-color var(--duration-fast) var(--ease-default),
    color var(--duration-fast) var(--ease-default),
    transform var(--duration-fast) var(--ease-default),
    box-shadow var(--duration-fast) var(--ease-default);
}

#navbar .notif-btn,
#navbar .user-btn {
    border-width: 1px;
    border-style: solid;
    transition: background-color var(--duration-fast) var(--ease-default),
    border-color var(--duration-fast) var(--ease-default),
    color var(--duration-fast) var(--ease-default),
    transform var(--duration-fast) var(--ease-default);
}

#navbar .notif-btn {
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
}

#navbar .user-btn {
    align-items: center;
    gap: var(--space-2);
    min-height: 42px;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-full);
    cursor: pointer;
}

#navbar .dropdown-item-custom {
    align-items: center;
    width: 100%;
    min-height: 46px;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius-lg);
    font-size: 13px;
    font-weight: var(--font-medium);
    cursor: pointer;
    transition: background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), transform var(--duration-fast) var(--ease-default);
}

#navbar .theme-toggle-item {
    align-items: center;
}

@media (max-width: 768px) {
    #navbar .user-btn {
        padding: var(--space-1);
    }
}

@media (prefers-reduced-motion: reduce) {
    #navbar :is(.notif-dropdown, .dropdown-menu-custom, .notif-list > .notif-item, .dropdown-item-custom, .gallery-layout-button, .theme-toggle-switch, .theme-toggle-switch__thumb) {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/profile-public.css */
@media (max-width: 767.98px) {
    .profile-section--public .profile-owner-action {
        min-width: 0;
    }
}

/* Geometry adapter: public/assets/css/shot-download-dialog.css */
.sv-download-dialog__close {
    width: 38px;
    height: 38px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: var(--transition-fast);
}

.sv-download-option {
    width: 100%;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font: inherit;
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default);
}

@media (max-width: 640px) {
    .sv-download-option {
        gap: var(--space-3);
        padding: var(--space-3);
        border-radius: var(--radius-full);
    }
}

@media (prefers-reduced-motion: reduce) {
    .sv-download-option,
    .sv-download-dialog__close {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/unified-search.css */
.usb-submit {
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    padding: var(--space-1);
    align-items: center;
    transition: color 0.15s;
}

.usb-language-trigger {
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 58px;
    height: 34px;
    padding: 0 9px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full, 999px);
    font: inherit;
    font-size: 11px;
    font-weight: var(--font-semibold, 600);
    line-height: 1;
    cursor: pointer;
    transition:
        color var(--duration-fast, 150ms) ease,
        border-color var(--duration-fast, 150ms) ease,
        background-color var(--duration-fast, 150ms) ease,
        transform var(--duration-fast, 150ms) ease;
}

.usb-language-option {
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 48px;
    padding: 6px 9px;
    border: 0;
    border-radius: var(--radius-full);
    font: inherit;
    cursor: pointer;
    transition:
        background-color var(--duration-fast, 150ms) ease,
        color var(--duration-fast, 150ms) ease,
        transform var(--duration-fast, 150ms) ease;
}

@media (max-width: 1120px) and (min-width: 992px) {
    .usb-language-trigger {
        min-width: 36px;
        width: 36px;
        padding: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .usb-language-trigger,
    .usb-language-option {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/workspace-library.css */
.workspace-collection-item[disabled] {
    cursor:not-allowed;
    opacity:.58;
}

.workspace-collection-item[disabled]:hover {
    transform:none;
}

/* Geometry adapter: public/assets/css/workspaces.css */
.workspace-switcher__item {
    min-height:38px;
    border:0;
    padding:7px 10px;
    border-radius:var(--radius-full);
    align-items:center;
    gap:6px;
    font-size:.82rem;
}

.workspace-page .btn {
    min-height:40px;
    border-radius:var(--radius-full);
    padding:8px 13px;
    font-size:.82rem;
}

.workspace-page .btn-sm {
    min-height:34px;
    padding:6px 10px;
    font-size:.75rem;
}

@media(max-width:800px) {
    .workspace-page .btn {
        min-height:38px;
    }
}

@media(max-width:480px) {
    .workspace-page__actions .btn {
        width:100%;
    }
}

/* Geometry adapter: resources/views/inspiration-tag.blade.php */
.gallery-layout-button {
    align-items:center;
    justify-content:center;
    border:0;
    cursor:pointer;
}

/* Geometry adapter: resources/views/inspirations.blade.php */
.gallery-layout-button {
    align-items: center;
    justify-content: center;
    border: 0;
    cursor: pointer;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.category-entity-jump {
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 12px;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 700;
    transition: border-color 160ms ease, transform 160ms ease;
}

.category-entity-more summary {
    width: max-content;
    cursor: pointer;
    font-size: 11px;
}

.inspiration-discovery__more {
    width: 34px;
    height: 34px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

@media (prefers-reduced-motion: reduce) {
    .inspiration-discovery__more,
    .category-entity-jump {
        transition: none;
    }
}

/* Geometry adapter: public/assets/css/modal-system.css */
:is(
    .lamha-modal__close,
    .profile-collection-dialog__close,
    .collection-dialog__close,
    .settings-dialog__close,
    .collection-modal .modal-close
) {
    width: 38px;
    height: 38px;
    padding: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: border-color var(--duration-fast) var(--ease-default),
                background-color var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default),
                transform var(--duration-fast) var(--ease-default);
}

:is(
    .lamha-modal__button,
    .collection-dialog__button,
    .settings-dialog__footer .settings-btn
) {
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 15px;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: transform var(--duration-fast) var(--ease-default),
                border-color var(--duration-fast) var(--ease-default),
                background-color var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default),
                opacity var(--duration-fast) var(--ease-default);
}

:is(
    .collection-dialog__button,
    .settings-dialog__footer .settings-btn
):hover:not(:disabled) {
    transform: translateY(-1px);
}

.profile-collection-optional > summary {
    width: fit-content;
    align-items: center;
    gap: 7px;
    font-size: var(--text-xs);
    cursor: pointer;
}

.collection-modal .quick-create-btn {
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 14px;
    border-width: 1px;
    border-style: dashed;
    border-radius: var(--radius-full);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: border-color var(--duration-fast) var(--ease-default),
                background-color var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default);
}

.collection-modal .form-actions .btn {
    min-height: 40px;
    padding-inline: 14px;
    border-radius: var(--radius-full);
    font-family: inherit;
}

.collection-modal .collection-item {
    width: 100%;
    min-height: 64px;
    align-items: center;
    gap: 11px;
    padding: 9px 10px;
    border-width: 1px;
    border-style: solid;
    border-radius: 16px;
    font: inherit;
    cursor: pointer;
    transition: border-color var(--duration-fast) var(--ease-default),
                background-color var(--duration-fast) var(--ease-default),
                transform var(--duration-fast) var(--ease-default),
                opacity var(--duration-fast) var(--ease-default);
}

@media (max-width: 767.98px) {
    :is(
            .lamha-modal__close,
            .profile-collection-dialog__close,
            .collection-dialog__close,
            .settings-dialog__close,
            .collection-modal .modal-close
        ) {
        width: 42px;
        height: 42px;
    }
}

@media (max-width: 767.98px) {
    :is(
            .collection-dialog__button,
            .settings-dialog__footer .settings-btn
        ) {
        width: 100%;
        min-height: 50px;
    }
}

@media (max-width: 767.98px) {
    .collection-modal .quick-create-btn {
        min-height: 50px;
    }
}

@media (max-width: 767.98px) {
    .collection-modal .collection-item {
        min-height: 62px;
        padding: 8px 9px;
    }
}

@media (max-width: 767.98px) {
    .collection-modal .form-actions .btn {
        width: 100%;
        min-height: 46px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(
            .lamha-modal__close,
            .profile-collection-dialog__close,
            .collection-dialog__close,
            .settings-dialog__close,
            .collection-modal .modal-close,
            .collection-modal .collection-item,
            .collection-modal .quick-create-btn
        ) {
        transition: none !important;
    }
}

/* Responsive social-provider and pending-follow geometry. */
@media (max-width: 760px) {
    :is(.auth-modern-page--login, .auth-modern-page--register) .social-auth__button--google.social-auth__button--prominent {
        min-height: 46px;
    }
}
.profile-section--public .profile-public-action--follow[aria-busy="true"] { cursor: wait; opacity: .72; }

/* =============================================================================
   LAMHA — SEMANTIC BUTTON SYSTEM

   One owner for semantic tone, presentation, focus and disabled states.
   Page/component CSS owns placement and visibility; it must not override button
   paint or assign --btn-* properties. Shared Blade buttons use btn-component.
   See docs/frontend/button-system.md for the ownership contract.
   ============================================================================= */

.btn-primary {
    border-color: var(--btn-primary-border, var(--button-primary-border)) !important;
    background: var(--btn-primary-bg, var(--button-primary-bg)) !important;
    color: var(--btn-primary-color, var(--button-primary-text)) !important;
    box-shadow: var(--btn-primary-shadow, var(--button-primary-shadow)) !important;
}

.btn-primary:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-primary-border-hover, var(--button-primary-bg-hover)) !important;
    background: var(--btn-primary-bg-hover, var(--button-primary-bg-hover)) !important;
    color: var(--btn-primary-color-hover, var(--btn-primary-color, var(--button-primary-text))) !important;
    box-shadow: var(--btn-primary-shadow-hover, var(--btn-primary-shadow, var(--button-primary-shadow))) !important;
}

.btn-primary:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-primary-border-active, var(--button-primary-bg-active)) !important;
    background: var(--btn-primary-bg-active, var(--button-primary-bg-active)) !important;
    color: var(--btn-primary-color-active, var(--btn-primary-color, var(--button-primary-text))) !important;
    box-shadow: var(--btn-primary-shadow-active, var(--btn-primary-shadow, var(--button-primary-shadow))) !important;
}

.btn-secondary {
    border-color: var(--border-subtle) !important;
    background: var(--bg-secondary) !important;
    color: var(--text-secondary) !important;
    box-shadow: none !important;
}

.btn-secondary:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-secondary:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--border-default) !important;
    background: var(--bg-elevated) !important;
    color: var(--text-primary) !important;
}

.btn-success {
    border-color: var(--success-border) !important;
    background: var(--success-bg) !important;
    color: var(--success) !important;
    box-shadow: none !important;
}

.btn-success:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-success:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--success) 42%, var(--success-border)) !important;
    background: color-mix(in srgb, var(--success-bg) 82%, var(--success)) !important;
    color: var(--success) !important;
}

.btn-info {
    border-color: var(--info-border) !important;
    background: var(--info-bg) !important;
    color: var(--info) !important;
    box-shadow: none !important;
}

.btn-info:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-info:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--info) 42%, var(--info-border)) !important;
    background: color-mix(in srgb, var(--info-bg) 82%, var(--info)) !important;
    color: var(--info) !important;
}

.btn-warning {
    border-color: var(--warning-border) !important;
    background: var(--warning-bg) !important;
    color: var(--warning) !important;
    box-shadow: none !important;
}

.btn-warning:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-warning:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--warning) 42%, var(--warning-border)) !important;
    background: color-mix(in srgb, var(--warning-bg) 82%, var(--warning)) !important;
    color: var(--warning) !important;
}

.btn-danger {
    border-color: var(--danger-border) !important;
    background: var(--danger-bg) !important;
    color: var(--danger) !important;
    box-shadow: none !important;
}

.btn-danger:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-danger:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--danger) 46%, var(--danger-border)) !important;
    background: color-mix(in srgb, var(--danger-bg) 82%, var(--danger)) !important;
    color: var(--danger) !important;
}

.btn-solid.btn-danger {
    border-color: var(--danger) !important;
    background: var(--danger) !important;
    color: var(--color-white) !important;
}

.btn-solid.btn-danger:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--danger) !important;
    background: var(--danger) !important;
    color: var(--color-white) !important;
    filter: brightness(1.04);
}

.btn-secondary.btn-ghost {
    background: transparent !important;
    box-shadow: none !important;
}

.btn-secondary.btn-ghost:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    background: var(--bg-elevated) !important;
}

.btn-danger.btn-ghost {
    border-color: color-mix(in srgb, var(--danger) 30%, var(--border-subtle)) !important;
    background: color-mix(in srgb, var(--danger) 6%, transparent) !important;
    color: var(--danger) !important;
    box-shadow: none !important;
}

.btn-danger.btn-ghost:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--danger) 48%, var(--border-default)) !important;
    background: color-mix(in srgb, var(--danger) 11%, transparent) !important;
    color: var(--danger) !important;
}

.btn-chrome-none {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.btn-chrome-none:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: transparent !important;
    background: var(--bg-elevated) !important;
}

.btn-secondary:is(.is-active, .is-current, .is-selected, .selected, .active),
.btn-secondary[aria-pressed="true"],
.btn-secondary[aria-selected="true"],
.btn-secondary[aria-current="page"] {
    border-color: var(--border-focus) !important;
    background: var(--accent-secondary-muted) !important;
    color: var(--text-primary) !important;
    box-shadow: none !important;
}

.btn-secondary:is(.is-active, .is-current, .is-selected, .selected, .active):hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-secondary[aria-pressed="true"]:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-secondary[aria-selected="true"]:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-secondary[aria-current="page"]:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--border-focus) !important;
    background: var(--accent-secondary-muted) !important;
    color: var(--text-primary) !important;
}

.btn-on-media {
    border-color: var(--btn-on-media-border, var(--border-on-media)) !important;
    background: var(--btn-on-media-bg, var(--surface-on-media)) !important;
    color: var(--btn-on-media-color, var(--text-on-media)) !important;
    box-shadow: var(--btn-on-media-shadow, var(--shadow-xs)) !important;
}

.btn-on-media:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-on-media:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-on-media-border-hover, var(--btn-on-media-border, var(--border-on-media))) !important;
    background: var(--btn-on-media-bg-hover, color-mix(in srgb, var(--surface-on-media) 72%, var(--control-on-media-bg))) !important;
    color: var(--btn-on-media-color-hover, var(--btn-on-media-color, var(--text-on-media))) !important;
    box-shadow: var(--btn-on-media-shadow-hover, var(--btn-on-media-shadow, var(--shadow-xs))) !important;
}

.btn-secondary.btn-toggle {
    border-color: var(--btn-toggle-border, transparent) !important;
    background: var(--btn-toggle-bg, transparent) !important;
    color: var(--btn-toggle-color, var(--text-muted)) !important;
    box-shadow: var(--btn-toggle-shadow, none) !important;
}

.btn-secondary.btn-toggle:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-toggle-border-hover, var(--btn-toggle-border, transparent)) !important;
    background: var(--btn-toggle-bg-hover, var(--bg-elevated)) !important;
    color: var(--btn-toggle-color-hover, var(--text-primary)) !important;
    box-shadow: var(--btn-toggle-shadow-hover, var(--btn-toggle-shadow, none)) !important;
}

.btn-secondary.btn-toggle:is(.is-active, .is-current, .is-selected, .selected, .active),
.btn-secondary.btn-toggle[aria-pressed="true"],
.btn-secondary.btn-toggle[aria-current="page"] {
    border-color: var(--btn-toggle-border-active, var(--btn-toggle-border, transparent)) !important;
    background: var(--btn-toggle-bg-active, var(--text-primary)) !important;
    color: var(--btn-toggle-color-active, var(--text-inverse)) !important;
    box-shadow: var(--btn-toggle-shadow-active, var(--btn-toggle-shadow, none)) !important;
}

.btn-secondary.btn-surface {
    border-color: var(--btn-surface-border, var(--border-default)) !important;
    background: var(--btn-surface-bg, var(--bg-surface)) !important;
    color: var(--btn-surface-color, var(--text-secondary)) !important;
    box-shadow: var(--btn-surface-shadow, none) !important;
}

.btn-secondary.btn-surface:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-surface-border-hover, var(--border-strong)) !important;
    background: var(--btn-surface-bg-hover, var(--bg-secondary)) !important;
    color: var(--btn-surface-color-hover, var(--text-primary)) !important;
    box-shadow: var(--btn-surface-shadow-hover, var(--btn-surface-shadow, none)) !important;
}

.btn-secondary.btn-surface:focus-visible {
    border-color: var(--btn-surface-border-focus, var(--btn-surface-border-hover, var(--border-strong))) !important;
    background: var(--btn-surface-bg-focus, var(--btn-surface-bg-hover, var(--bg-secondary))) !important;
    color: var(--btn-surface-color-focus, var(--btn-surface-color-hover, var(--text-primary))) !important;
}

.btn-secondary.btn-surface:is(.is-active, .is-current, .is-selected, .selected, .active),
.btn-secondary.btn-surface[aria-pressed="true"],
.btn-secondary.btn-surface[aria-current="page"] {
    border-color: var(--btn-surface-border-active, var(--border-focus)) !important;
    background: var(--btn-surface-bg-active, var(--accent-secondary-muted)) !important;
    color: var(--btn-surface-color-active, var(--text-primary)) !important;
    box-shadow: var(--btn-surface-shadow-active, var(--btn-surface-shadow, none)) !important;
}

.btn-on-media-soft {
    border-color: var(--btn-on-media-soft-border, transparent) !important;
    background: var(--btn-on-media-soft-bg, rgba(13, 18, 28, .34)) !important;
    color: var(--btn-on-media-soft-color, rgba(255, 255, 255, .76)) !important;
    box-shadow: var(--btn-on-media-soft-shadow, none) !important;
}

.btn-on-media-soft:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-on-media-soft:focus-visible {
    border-color: var(--btn-on-media-soft-border-hover, var(--btn-on-media-soft-border, transparent)) !important;
    background: var(--btn-on-media-soft-bg-hover, rgba(13, 18, 28, .48)) !important;
    color: var(--btn-on-media-soft-color-hover, rgba(255, 255, 255, .94)) !important;
    box-shadow: var(--btn-on-media-soft-shadow-hover, var(--btn-on-media-soft-shadow, none)) !important;
}

.btn-on-media-soft:is(.is-saved, .is-active, .is-current, .selected),
.btn-on-media-soft[aria-pressed="true"] {
    border-color: var(--btn-on-media-soft-border-active, var(--btn-on-media-soft-border, transparent)) !important;
    background: var(--btn-on-media-soft-bg-active, rgba(13, 18, 28, .52)) !important;
    color: var(--btn-on-media-soft-color-active, rgba(255, 255, 255, .96)) !important;
    box-shadow: var(--btn-on-media-soft-shadow-active, var(--btn-on-media-soft-shadow, none)) !important;
}

.btn-on-media-light {
    border-color: var(--btn-on-media-light-border, rgba(255, 255, 255, .36)) !important;
    background: var(--btn-on-media-light-bg, rgba(255, 255, 255, .86)) !important;
    color: var(--btn-on-media-light-color, #111827) !important;
    box-shadow: var(--btn-on-media-light-shadow, 0 8px 24px rgba(0, 0, 0, .12)) !important;
}

.btn-on-media-light:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-on-media-light-border-hover, rgba(255, 255, 255, .5)) !important;
    background: var(--btn-on-media-light-bg-hover, rgba(255, 255, 255, .96)) !important;
    color: var(--btn-on-media-light-color-hover, var(--btn-on-media-light-color, #111827)) !important;
    box-shadow: var(--btn-on-media-light-shadow-hover, var(--btn-on-media-light-shadow, 0 8px 24px rgba(0, 0, 0, .12))) !important;
}

.btn-indicator {
    border-color: var(--btn-indicator-border, transparent) !important;
    background: var(--btn-indicator-bg, rgba(255, 255, 255, .55)) !important;
    color: var(--btn-indicator-color, transparent) !important;
    box-shadow: var(--btn-indicator-shadow, none) !important;
}

.btn-indicator:is(.is-active, .is-current, .selected),
.btn-indicator[aria-current="true"],
.btn-indicator[aria-pressed="true"] {
    border-color: var(--btn-indicator-border-active, var(--btn-indicator-border, transparent)) !important;
    background: var(--btn-indicator-bg-active, #fff) !important;
    color: var(--btn-indicator-color-active, var(--btn-indicator-color, transparent)) !important;
    box-shadow: var(--btn-indicator-shadow-active, var(--btn-indicator-shadow, none)) !important;
}

.btn-hit-area {
    border-color: var(--btn-hit-area-border, transparent) !important;
    background: var(--btn-hit-area-bg, transparent) !important;
    color: var(--btn-hit-area-color, inherit) !important;
    box-shadow: var(--btn-hit-area-shadow, none) !important;
}

.btn-hit-area:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-hit-area:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: var(--btn-hit-area-border-hover, var(--btn-hit-area-border, transparent)) !important;
    background: var(--btn-hit-area-bg-hover, var(--btn-hit-area-bg, transparent)) !important;
    color: var(--btn-hit-area-color-hover, var(--btn-hit-area-color, inherit)) !important;
    box-shadow: var(--btn-hit-area-shadow-hover, var(--btn-hit-area-shadow, none)) !important;
}

.btn-profile-control {
    border-color: var(--border-subtle) !important;
    background: var(--profile-control-surface, rgba(15, 19, 22, .68)) !important;
    color: var(--text-secondary) !important;
    box-shadow: none !important;
}

.btn-profile-control:is(:hover, :focus-visible),
details[open] > .btn-profile-control {
    border-color: var(--border-focus) !important;
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.btn-state-liked {
    border-color: color-mix(in srgb, var(--danger) 32%, var(--border-default)) !important;
    color: var(--danger) !important;
}

/* Shared semantic saved state, independent of the current theme. */
.btn-state-saved {
    border-color: var(--button-primary-border) !important;
    background: var(--button-primary-bg) !important;
    color: var(--button-primary-text) !important;
}
.btn-state-saved:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-state-saved:focus-visible {
    border-color: var(--button-primary-border) !important;
    background: var(--button-primary-bg-hover) !important;
    color: var(--button-primary-text) !important;
}

.btn-state-liked:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]),
.btn-state-liked:active:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    border-color: color-mix(in srgb, var(--danger) 42%, var(--border-default)) !important;
    color: var(--danger) !important;
}


/* Shot engagement states outrank the generic btn-surface pressed state.
   Keep semantic paint in the centralized button system for both themes. */
.sv-shot-action--like.btn-secondary.btn-surface.btn-state-liked[aria-pressed="true"],
.sv-shot-action--like.btn-secondary.btn-surface.btn-state-liked:is(:hover, :focus-visible, :active) {
    border-color: var(--danger-border) !important;
    background: var(--danger-bg) !important;
    color: var(--danger) !important;
}
.sv-shot-action--collection.btn-secondary.btn-surface.btn-state-saved[aria-pressed="true"],
.sv-shot-action--collection.btn-secondary.btn-surface.btn-state-saved:is(:hover, :focus-visible, :active) {
    border-color: var(--button-primary-border) !important;
    background: var(--button-primary-bg) !important;
    color: var(--button-primary-text) !important;
}

/* Reusable presentation contracts. Page CSS must not assign --btn-* values. */

.btn-hit-muted {
    --btn-hit-area-color: var(--text-muted);
}

.btn-toggle-document {
    --btn-toggle-color: var(--text-secondary);
    --btn-toggle-bg-hover: var(--bg-primary);
    --btn-toggle-color-hover: #fff;
    --btn-toggle-bg-active: var(--bg-primary);
    --btn-toggle-color-active: #fff;
}

.btn-surface-filter {
    --btn-surface-border: var(--border-subtle);
    --btn-surface-bg: var(--bg-surface);
    --btn-surface-color: var(--text-secondary);
    --btn-surface-border-hover: var(--border-focus);
    --btn-surface-bg-hover: var(--bg-elevated);
    --btn-surface-color-hover: var(--text-primary);
    --btn-surface-border-focus: var(--border-focus);
    --btn-surface-bg-focus: var(--bg-elevated);
    --btn-surface-color-focus: var(--text-primary);
    --btn-surface-border-active: var(--border-focus);
    --btn-surface-bg-active: var(--bg-elevated);
    --btn-surface-color-active: var(--text-primary);
}

.btn-hit-primary {
    --btn-hit-area-color: var(--text-primary);
}

.btn-hit-secondary {
    --btn-hit-area-color: var(--text-secondary);
}

/* Opt-in shadowless variant while retaining the standard on-media palette. */
.btn-on-media-light--flat {
    --btn-on-media-light-shadow: none;
    --btn-on-media-light-shadow-hover: none;
}

.btn-on-media-carousel {
    --btn-on-media-light-border: transparent;
    --btn-on-media-light-bg: rgba(255, 255, 255, .94);
    --btn-on-media-light-color: #111827;
    --btn-on-media-light-shadow: 0 4px 16px rgba(0, 0, 0, .22);
    --btn-on-media-light-border-hover: transparent;
    --btn-on-media-light-bg-hover: #fff;
    --btn-on-media-light-color-hover: #111827;
}

.btn-surface-content {
    --btn-surface-border: var(--border-default);
    --btn-surface-bg: var(--bg-surface);
    --btn-surface-color: var(--text-primary);
    --btn-surface-border-hover: var(--border-strong);
    --btn-surface-bg-hover: var(--bg-surface);
    --btn-surface-color-hover: var(--text-primary);
}

/* Shared Blade geometry. These presets replace duplicated Tailwind recipes.
   Context classes may position a control; semantic classes remain its paint owner. */
.btn-component {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .5rem 1rem;
    border: 1px solid;
    border-radius: .375rem;
    font-weight: 600;
    font-size: .75rem;
    line-height: 1rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    cursor: pointer;
    transition: var(--transition-fast);
}

.btn-component-prominent {
    min-height: 46px;
    gap: .5rem;
    padding-inline: 1.25rem;
    border-radius: var(--radius-full);
    font-size: .875rem;
    line-height: 1.25rem;
    text-transform: none;
    letter-spacing: normal;
}

.btn-component-prominent:hover:not(:disabled):not(.disabled):not(.is-disabled):not([aria-disabled="true"]) {
    transform: translateY(-1px);
}

.btn-component-compact {
    min-height: var(--space-10);
    gap: var(--space-2);
    padding-inline: var(--space-4);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    line-height: var(--line-height-normal);
    text-transform: none;
    letter-spacing: normal;
}

.btn-component-icon {
    width: var(--space-10);
    height: var(--space-10);
    min-width: var(--space-10);
    min-height: var(--space-10);
    display: inline-grid;
    place-items: center;
    padding: 0;
    border-radius: var(--radius-full);
    text-transform: none;
    letter-spacing: normal;
}

.btn-component-icon :is(svg, i) {
    width: var(--space-5);
    height: var(--space-5);
}

.btn-component-icon-sm {
    width: var(--space-8);
    height: var(--space-8);
    min-width: var(--space-8);
    min-height: var(--space-8);
}

.btn-component-icon-sm :is(svg, i) {
    width: var(--space-4);
    height: var(--space-4);
}

/* Admin control presentation ownership.
   Admin CSS keeps placement, responsive visibility and non-control decoration.
   Control display, typography, icon geometry and interactive presentation live here. */
.admin-app .menu-link {
    position: relative;
    display: flex;
    overflow: visible;
    text-decoration: none;
}


.admin-app .add-btn {
    display: grid;
    place-items: center;
}

.admin-app .add-btn :is(svg, i) {
    width: 15px;
    height: 15px;
}

.admin-app .sidebar-footer-link,
.admin-app .sidebar-footer-logout {
    display: inline-flex;
    text-decoration: none;
}

.admin-app .sidebar-footer-link :is(svg, i),
.admin-app .sidebar-footer-logout :is(svg, i) {
    width: 15px;
    height: 15px;
}

.admin-app .sidebar-toggle,
.admin-app .admin-navbar-icon-btn,
.admin-app .admin-user-trigger {
    display: grid;
    place-items: center;
}

.admin-app .sidebar-toggle :is(svg, i),
.admin-app .admin-navbar-icon-btn :is(svg, i) {
    width: 17px;
    height: 17px;
}

.admin-app .admin-nav-button {
    display: inline-flex;
    text-decoration: none;
    white-space: nowrap;
}

.admin-app .admin-nav-button :is(svg, i) {
    width: 15px;
    height: 15px;
}

.admin-app .admin-user-trigger {
    overflow: hidden;
}

.admin-app .las-button {
    display: inline-flex;
    text-decoration: none;
    white-space: nowrap;
}

.admin-app .las-icon-button {
    display: inline-grid;
    place-items: center;
    text-decoration: none;
}

.admin-app .las-button svg,
.admin-app .las-icon-button svg {
    width: 15px;
    height: 15px;
}

.admin-app .las-filter-toggle {
    display: flex;
    text-align: start;
}

.admin-app .las-filter-toggle__main,
.admin-app .las-filter-toggle__end {
    display: flex;
    align-items: center;
}

.admin-app .las-filter-toggle__main {
    min-width: 0;
    gap: var(--space-3);
}

.admin-app .las-filter-toggle__end {
    gap: var(--space-2);
}

.admin-app .las-filter-toggle__icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border: 1px solid var(--las-border);
    border-radius: var(--las-radius-control);
    background: var(--las-surface-subtle);
    color: var(--las-action);
}

.admin-app .las-filter-toggle__icon :is(i, svg),
.admin-app .las-filter-reset :is(i, svg) {
    width: 17px;
    height: 17px;
}

.admin-app .las-filter-toggle__copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.admin-app .las-filter-toggle__copy strong {
    color: var(--las-text);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
}

.admin-app .las-filter-toggle__copy small {
    color: var(--las-text-muted);
    font-size: 11px;
}

.admin-app .las-filter-count {
    min-width: 28px;
    min-height: 28px;
    padding-inline: var(--space-2);
    display: inline-grid;
    place-items: center;
    border-radius: var(--radius-full);
    background: var(--las-action-soft);
    color: var(--las-action);
    font-size: 11px;
    font-weight: var(--font-semibold);
}

.admin-app .las-filter-chevron {
    width: 18px;
    height: 18px;
    color: var(--las-text-muted);
    transition: transform var(--duration-fast) var(--ease-default);
}

.admin-app .las-filter-toggle[aria-expanded="true"] .las-filter-chevron {
    transform: rotate(180deg);
}

.admin-app .las-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    text-decoration: none;
    font-size: var(--text-xs);
}

.admin-app .las-card-carousel__control {
    display: grid;
    place-items: center;
    -webkit-backdrop-filter: blur(12px) saturate(110%);
    backdrop-filter: blur(12px) saturate(110%);
}

.admin-app .las-card-carousel__remove {
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.admin-app .las-card-carousel__control svg {
    width: 16px;
    height: 16px;
}

.admin-app .admin-pagination .page-link,
.admin-app .admin-pagination-mobile__action {
    display: inline-flex;
    text-decoration: none;
}

.admin-app .admin-pagination-mobile__action :is(i, svg),
.admin-app .admin-pagination .page-link :is(i, svg) {
    width: 16px;
    height: 16px;
    pointer-events: none;
}

.admin-app .admin-pagination-mobile__action :is(i, svg) {
    flex: 0 0 16px;
}

.admin-app .las-chart-tab {
    display: inline-flex;
}

.admin-app .las-chart-tab svg {
    width: 15px;
    height: 15px;
}

.admin-app .las-upload-delete {
    display: inline-flex;
}

.admin-app .las-upload-delete svg {
    width: 14px;
    height: 14px;
}

.admin-navbar :is(.admin-navbar-icon-btn, .admin-user-trigger) {
    display: inline-flex;
}

.admin-navbar .admin-navbar-icon-btn :is(i, svg) {
    width: 18px;
    height: 18px;
    stroke-width: 1.7;
}

.admin-navbar .admin-dropdown-item {
    display: flex;
    text-align: right;
    text-decoration: none;
}

.admin-navbar .admin-dropdown-item :is(i, svg) {
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    padding: 6px;
    flex: 0 0 30px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: var(--bg-secondary);
    color: var(--text-muted);
    stroke-width: 1.7;
    transition: var(--transition-fast);
}

.admin-navbar .admin-dropdown-item:is(:hover, :focus-visible) :is(i, svg) {
    border-color: var(--border-default);
    color: var(--text-primary);
}

/* Shared focus/disabled policy. Geometry and pressed state must not hide focus. */
:where(.btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger):focus-visible {
    outline: 2px solid var(--border-focus) !important;
    outline-offset: 3px;
}

:where(.btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger):is(:disabled, .disabled, .is-disabled, [aria-disabled="true"]) {
    opacity: .45 !important;
    cursor: not-allowed;
    transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .btn-component { transition: none; }
    .btn-component-prominent:hover { transform: none; }
}

/* Existing dense LAS/auth disabled contrast is a shared shell policy. */
.admin-app :where(.btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger):is(:disabled, .disabled, .is-disabled, [aria-disabled="true"]) {
    opacity: .55 !important;
}
.auth-modern-page :where(.btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger):is(:disabled, .disabled, .is-disabled, [aria-disabled="true"]) {
    opacity: .58 !important;
}

/* Keep the icon-only controls square even under compact mobile overrides. */
@media (max-width: 767.98px) {
    .sv-shot-action--icon-only,
    .sv-shot-action--icon-only.sv-shot-action--like {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px;
        min-height: 44px !important;
        padding: 0 !important;
        gap: 0 !important;
    }
}

/* Shared binary switch system — same semantic colors for public settings,
   admin upload controls, and the navbar appearance switch. */
.settings-switch,
.admin-app .toggle-switch {
    position: relative;
    width: 46px;
    height: 26px;
    flex: 0 0 46px;
}
.settings-switch input,
.admin-app .toggle-switch input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}
.settings-switch span,
.admin-app .toggle-switch .slider {
    position: absolute;
    inset: 0;
    border: 1px solid var(--switch-off-border);
    border-radius: var(--radius-full);
    background: var(--switch-off-bg);
    cursor: pointer;
    transition: background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default);
}
.settings-switch span::after,
.admin-app .toggle-switch .slider::before {
    content: '';
    position: absolute;
    top: 4px;
    right: 4px;
    left: auto;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--switch-thumb);
    box-shadow: none;
    transition: transform var(--duration-fast) var(--ease-default);
}
.settings-switch input:checked + span,
.admin-app .toggle-switch input:checked + .slider {
    border-color: var(--switch-on-border);
    background: var(--switch-on-bg);
}
.settings-switch input:checked + span::after,
.admin-app .toggle-switch input:checked + .slider::before {
    transform: translateX(-20px);
    background: var(--switch-thumb);
}
.settings-switch input:focus-visible + span,
.admin-app .toggle-switch input:focus-visible + .slider {
    outline: 2px solid var(--border-focus);
    outline-offset: 3px;
}
.settings-switch input:disabled + span,
.admin-app .toggle-switch input:disabled + .slider {
    opacity: .5;
    cursor: not-allowed;
}
#navbar .theme-toggle-switch {
    background: var(--switch-off-bg);
    border-color: var(--switch-off-border);
    box-shadow: none;
}
#navbar .theme-toggle-switch__thumb {
    background: var(--switch-thumb);
    box-shadow: none;
}
html[data-theme="light"] #navbar .theme-toggle-switch {
    background: var(--switch-on-bg);
    border-color: var(--switch-on-border);
}
html[data-theme="light"] #navbar .theme-toggle-switch__thumb {
    background: var(--switch-thumb);
}
@media (prefers-reduced-motion: reduce) {
    .settings-switch span,
    .settings-switch span::after,
    .admin-app .toggle-switch .slider,
    .admin-app .toggle-switch .slider::before,
    #navbar .theme-toggle-switch,
    #navbar .theme-toggle-switch__thumb { transition: none; }
}
