/* ==========================================================================
   FEED FULLSCREEN — MORITA NAILS
   ========================================================================== */

/* Tokens de color alineados con la galería (violeta / plum / rose) */
:root {
    --primary-color: #373b4d;
    --secondary-color: #6c757d;
    --accent-violet: #da3b85;
    --accent-plum: #d07ea7;
    --accent-rose: #fd1c79;
    --accent-blue: #204e5b;
    --accent-brown: #333233;
    --bg-white: #fff;
    --bg-corn-silk: #f8f6f4;
    --bg-alice-blue: #f0f0f2;
    --bg-honey-dew: #f7f5f3;
    --bg-white-smoke: #f5f1f2;
    --text-color: #6c757d;
    --title-color: #373b4d;
    --shadow-light: rgba(96, 96, 96, 0.1);
    --shadow-medium: rgba(0, 0, 0, 0.1);
    --shadow-dark: rgba(0, 0, 0, 0.2);
    
    /* Acentos secundarios = misma familia que la galería */
    --pink-primary: var(--accent-rose);
    --pink-secondary: var(--accent-plum);
    --gray-light: #f8f9fa;
    --gray-medium: #e9ecef;
    --gray-dark: #495057;
    --border-color: #f0f0f0;
    --placeholder-color: #adb5bd;
    
    /* Variables de espaciado */
    --spacing-xs: 5px;
    --spacing-sm: 10px;
    --spacing-md: 15px;
    --spacing-lg: 20px;
    --spacing-xl: 30px;
    --spacing-xxl: 40px;
    
    /* Variables de transiciones */
    --transition-fast: all 0.2s ease;
    --transition-normal: all 0.3s ease;
    --transition-slow: all 0.4s ease;

    --morita-img-vivid-filter: saturate(1.16) brightness(1.05) contrast(1.04);
    --morita-img-vivid-filter-hover: saturate(1.24) brightness(1.08) contrast(1.06);

    /*
     * Barra inferior fija (Feed / Perfil): reserva coherente + safe-area (iPhone/Android).
     * Evita que el scroll del contenido quede oculto bajo la nav.
     */
    --feed-bottom-safe: env(safe-area-inset-bottom, 0px);
    /* Altura aproximada del contenido de la nav (padding + iconos + texto), sin contar el safe-area */
    --feed-bottom-nav-core: 5.25rem;
    /*
     * Espacio bajo los paneles fijos. Fallback si aún no corrió feed.js.
     * En runtime feed.js pisa --feed-bottom-offset en <html> con el alto real de .bottom-nav
     * (evita solape sin usar max(rem) que dejaba una franja entre panel y barra).
     */
    --feed-bottom-offset: calc(var(--feed-bottom-nav-core) + var(--feed-bottom-safe));
    /* Padding extra al final del contenido desplazable dentro de cada panel */
    --feed-scroll-pad-bottom: calc(var(--spacing-xl) + var(--feed-bottom-safe));
    /* Indicadores horizontales: por encima de nav vertical + barra inferior */
    --gallery-indicators-bottom: calc(var(--feed-bottom-offset) + 7.25rem);

    /*
     * Transiciones de la galería (alineadas al prototipo feed-gsap-prototype.html).
     * public/js/feed.js usa los mismos valores en ms: FEED_GALLERY_VERTICAL_MS / FEED_GALLERY_HORIZONTAL_MS.
     */
    --feed-trans-vertical: 0.38s;
    --feed-trans-horizontal: 0.28s;
    --feed-ease-vertical: cubic-bezier(0.65, 0, 0.35, 1);
    --feed-ease-horizontal: cubic-bezier(0.33, 1, 0.68, 1);
    --feed-gallery-overlay-fade: var(--feed-trans-vertical);
}

/* ==========================================================================
   ADMIN (SPA) — solo contenedores feed
   ========================================================================== */
.admin-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 8px 2px 14px;
    flex-shrink: 0;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scroll-snap-type: x proximity;
}
.admin-tab {
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 700;
    color: #373b4d;
    white-space: nowrap;
    flex-shrink: 0;
    scroll-snap-align: start;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
.admin-tab.active {
    background: var(--accent-violet);
    color: #fff;
    border-color: transparent;
}
.admin-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 6px 0 12px;
}
.admin-container .mis-citas-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.admin-panels {
    flex: 1 1 auto;
    min-height: 0;
    padding-bottom: 0.5rem;
}
.admin-panel:not([hidden]) {
    display: block;
}
.admin-panel__header--sub h5 {
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
    color: #373b4d;
}
.admin-web-section {
    margin-bottom: 1.25rem;
}

.admin-web-collapse {
    margin-top: 1rem;
    border: 1px solid #e8e8ef;
    border-radius: 12px;
    background: #fafafc;
    overflow: hidden;
}

.admin-web-collapse:first-of-type {
    margin-top: 0.75rem;
}

.admin-web-collapse__summary {
    list-style: none;
    cursor: pointer;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    user-select: none;
    font-family: 'Catamaran', sans-serif;
    color: var(--title-color);
}

.admin-web-collapse__summary::-webkit-details-marker {
    display: none;
}

.admin-web-collapse__summary::marker {
    content: '';
}

.admin-web-collapse__summary-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    text-align: left;
    min-width: 0;
}

.admin-web-collapse__title {
    font-size: 1rem;
    font-weight: 900;
    color: #373b4d;
    line-height: 1.2;
}

.admin-web-collapse__hint {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6b6b7a;
    line-height: 1.35;
}

.admin-web-collapse__badges {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.admin-web-collapse__chev {
    font-size: 0.75rem;
    color: var(--accent-violet);
    transition: transform 0.2s ease;
}

.admin-web-collapse[open] .admin-web-collapse__chev {
    transform: rotate(180deg);
}

.admin-web-collapse--dirty .admin-web-collapse__summary {
    background: rgba(218, 59, 133, 0.05);
}

.admin-web-dirty-badge {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a12d66;
    background: rgba(218, 59, 133, 0.12);
    border: 1px solid rgba(218, 59, 133, 0.22);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    white-space: nowrap;
}

.admin-web-dirty-badge[hidden] {
    display: none !important;
}

.admin-web-collapse__body {
    padding: 0 14px 14px;
    border-top: 1px solid #ececf2;
    background: #fff;
}

.admin-web-collapse__footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 12px;
    margin-top: 1rem;
    padding: 12px 0 2px;
    background: linear-gradient(to top, #fff 65%, rgba(255, 255, 255, 0));
    border-top: 1px solid #ececf2;
}

.admin-web-collapse__footer-hint {
    flex: 1 1 140px;
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #7a7a8c;
}

.admin-web-collapse__footer .mis-cita-btn {
    flex: 1 1 auto;
    min-width: 0;
}

.admin-web-collapse--dirty .admin-web-collapse__footer {
    border-top-color: #e8d4f0;
    background: linear-gradient(to top, #fdf9fe 65%, rgba(253, 249, 254, 0));
}

@media (min-width: 480px) {
    .admin-web-collapse__footer {
        justify-content: flex-end;
    }

    .admin-web-collapse__footer-hint {
        text-align: right;
        flex: 1 1 auto;
    }

    .admin-web-collapse__footer .mis-cita-btn {
        flex: 0 0 auto;
    }
}
.admin-row--stack {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}
.admin-row--stack > .admin-toolbar {
    width: 100%;
    justify-content: stretch;
}
.admin-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.admin-field__label {
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(55, 59, 77, 0.72);
}

.admin-field__help {
    font-size: 0.72rem;
    line-height: 1.4;
    font-weight: 600;
    color: #7a7a8c;
}

.admin-field__help strong {
    font-weight: 800;
    color: #5b6470;
}

.admin-level-form__intro {
    margin: 0 0 12px;
}

.admin-level-form__section + .admin-level-form__section {
    margin-top: 1rem;
}

.admin-level-form__section > .admin-row__title {
    margin-bottom: 8px;
}

.admin-level-form__actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.admin-level-preview {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #ececf2;
    border-radius: 12px;
    background: #fafafc;
}

.admin-level-preview__title {
    margin: 0 0 8px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6f2cf4;
}

.admin-level-preview__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
}

.admin-level-preview__badge {
    font-weight: 900;
    color: #373b4d;
}

.admin-level-preview__name {
    font-weight: 800;
    color: #373b4d;
}

.admin-level-preview__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.admin-promo-form__intro {
    margin: 0 0 12px;
}

.admin-promo-form__section + .admin-promo-form__section {
    margin-top: 1rem;
}

.admin-promo-form__section > .admin-row__title {
    margin-bottom: 8px;
}

.admin-promo-form__web-toggle {
    margin-bottom: 4px;
}

.admin-promo-form__web-fields.is-disabled {
    opacity: 0.45;
    pointer-events: none;
}

.admin-promo-form__actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.admin-servicio-form__intro {
    margin: 0 0 12px;
}

.admin-servicio-form__section + .admin-servicio-form__section {
    margin-top: 1rem;
}

.admin-servicio-form__section > .admin-row__title {
    margin-bottom: 8px;
}

.admin-servicio-form__actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.admin-servicio-form__image-preview {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.admin-servicio-form__image-preview img {
    max-width: 120px;
    max-height: 120px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.admin-user-form__intro {
    margin: 0 0 12px;
}

.admin-user-form__section + .admin-user-form__section {
    margin-top: 1rem;
}

.admin-user-form__section > .admin-row__title {
    margin-bottom: 8px;
}

.admin-user-form__actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.admin-user-form__image-preview {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.admin-user-form__image-preview img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.admin-user-form__points {
    margin: 0 0 8px;
}

.admin-row.admin-user-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px 12px;
    align-items: center;
}

.admin-row.admin-user-row .admin-row__actions {
    align-self: center;
    flex-shrink: 0;
}

.admin-row.admin-user-row .admin-row__main {
    min-width: 0;
}

.admin-user-row__thumb {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.admin-user-row__thumb--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.35);
    font-size: 1rem;
}

.admin-user-row__headline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
}

.admin-user-row__headline .badge {
    flex-shrink: 0;
}

.admin-user-row__note {
    margin: 6px 0 0;
    font-size: 0.78rem;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 6px;
}

.admin-user-row__note--warn {
    color: #9a6700;
}

.admin-user-row__link {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    color: #c2185b;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.admin-user-row__link:hover {
    color: #9a1450;
}

.admin-citas-user-filter {
    margin: 0 0 10px;
}

.admin-citas-user-filter__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(194, 24, 91, 0.08);
    border: 1px solid rgba(194, 24, 91, 0.14);
}

.admin-citas-user-filter__label {
    font-size: 0.85rem;
    color: #373b4d;
}

.admin-user-form__activity {
    margin-bottom: 10px;
}

.admin-user-form__last-admin {
    color: #9a6700;
}

@media (max-width: 520px) {
    .admin-row.admin-user-row {
        grid-template-columns: auto 1fr;
    }

    .admin-row.admin-user-row .admin-row__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

.admin-row.admin-servicio-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px 12px;
    align-items: center;
}

.admin-row.admin-servicio-row .admin-row__actions {
    align-self: center;
    flex-shrink: 0;
}

.admin-row.admin-servicio-row .admin-row__main {
    min-width: 0;
}

.admin-servicio-row__thumb {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid rgba(0, 0, 0, 0.06);
    background: #fafafc;
}

.admin-servicio-row__thumb--empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #9a9aad;
    font-size: 0.95rem;
}

.admin-servicio-row__headline {
    line-height: 1.25;
}

.admin-servicio-row__headline .badge {
    margin-left: 6px;
    vertical-align: middle;
    font-size: 0.68rem;
}

.admin-servicio-row__desc {
    margin: 6px 0 0;
    font-size: 0.72rem;
    line-height: 1.4;
    font-weight: 600;
    color: #7a8194;
}

.admin-servicio-row__note {
    margin: 6px 0 0;
    font-size: 0.72rem;
    line-height: 1.4;
    font-weight: 600;
    color: #8a6a00;
}

.admin-servicio-form__promos {
    margin-top: 1rem;
    padding: 12px;
    border-radius: 10px;
    background: rgba(255, 193, 7, 0.08);
    border: 1px solid rgba(255, 193, 7, 0.2);
}

.admin-servicio-form__promos > .admin-row__title {
    margin-bottom: 6px;
}

.admin-servicio-form__promos-list {
    margin: 8px 0 0;
    padding-left: 1.1rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #373b4d;
}

.admin-servicio-form__promo-muted {
    font-weight: 600;
    color: #7a8194;
}

.admin-icon-btn[disabled] {
    opacity: 0.35;
    pointer-events: none;
}

@media (max-width: 640px) {
    .admin-row.admin-servicio-row {
        grid-template-columns: auto 1fr;
    }

    .admin-row.admin-servicio-row .admin-row__actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

.admin-servicios-group + .admin-servicios-group {
    margin-top: 14px;
}

.admin-row__subline {
    display: block;
    margin: 2px 0 6px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #5b6470;
}

.admin-row__subline--muted {
    color: #9a9aad;
    font-weight: 600;
}

.admin-promo-notes {
    margin: 6px 0 0;
    padding-left: 18px;
    font-size: 0.72rem;
    line-height: 1.45;
    font-weight: 600;
    color: #8a6a00;
}

.admin-promo-notes li + li {
    margin-top: 2px;
}

.admin-promos-summary {
    margin: 0 0 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(111, 44, 244, 0.06);
    border: 1px solid rgba(111, 44, 244, 0.12);
}

.admin-promos-summary__inner {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.admin-promos-summary__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #373b4d;
}

.admin-promos-summary__stat--muted {
    color: #7a8194;
}

.admin-promos-summary__queue {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    font-size: 0.76rem;
    line-height: 1.4;
}

.admin-promos-summary__queue--empty {
    color: #9a9aad;
    font-weight: 600;
}

.admin-promos-summary__label {
    font-weight: 800;
    color: #6f2cf4;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.68rem;
}

.admin-promos-summary__queue-items {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.admin-promos-summary__queue-item {
    padding: 3px 8px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    font-weight: 600;
    color: #5b6470;
}

.admin-promos-summary__queue-item strong {
    color: #6f2cf4;
}

.admin-promos-group {
    margin-bottom: 14px;
}

.admin-promos-group__header {
    margin: 0 0 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 12px;
}

.admin-promos-group__title {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 800;
    color: #373b4d;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.admin-promos-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(111, 44, 244, 0.12);
    color: #6f2cf4;
    font-size: 0.72rem;
}

.admin-promos-group__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.admin-promos-app-list {
    margin-top: 4px;
    padding-top: 4px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.admin-row.admin-promo-row--home {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px 12px;
    align-items: center;
    justify-content: initial;
}

.admin-row.admin-promo-row--home.admin-row--drag {
    grid-template-columns: auto auto 1fr auto;
}

.admin-promo-row__drag {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 2rem;
    color: #9a9aad;
    cursor: grab;
    flex-shrink: 0;
}

.admin-row.admin-promo-row--home .admin-row__actions {
    align-self: center;
    flex-shrink: 0;
}

.admin-row.admin-promo-row--home .admin-row__main {
    min-width: 0;
}

.admin-row--drag.is-dragging {
    opacity: 0.55;
}

.admin-promos-group__hint {
    font-size: 0.72rem;
    font-weight: 700;
    color: #6f2cf4;
}

.admin-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 10px;
}

.admin-filter-chips--sub {
    margin-top: -4px;
}

.admin-filter-chip {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: #fff;
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 0.76rem;
    font-weight: 800;
    color: #5b6470;
    cursor: pointer;
}

.admin-filter-chip.is-active {
    background: rgba(111, 44, 244, 0.12);
    border-color: rgba(111, 44, 244, 0.25);
    color: #6f2cf4;
}

.admin-promo-templates {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
}

.admin-promo-templates__label {
    font-size: 0.72rem;
    font-weight: 800;
    color: #7a8194;
    margin-right: 2px;
}

.admin-promo-form--stepper .admin-promo-form__panel[hidden] {
    display: none !important;
}

.admin-promo-stepper {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 14px;
}

.admin-promo-stepper__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 6px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    color: #7a8194;
    cursor: pointer;
}

.admin-promo-stepper__item.is-active {
    background: rgba(111, 44, 244, 0.1);
    border-color: rgba(111, 44, 244, 0.25);
    color: #6f2cf4;
}

.admin-promo-stepper__item.is-done {
    color: #373b4d;
}

.admin-promo-stepper__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.06);
    font-size: 0.72rem;
}

.admin-promo-stepper__item.is-active .admin-promo-stepper__num {
    background: #6f2cf4;
    color: #fff;
}

.admin-promo-form__actions--stepper {
    position: sticky;
    bottom: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 24%);
    padding-top: 10px;
}

.admin-promo-review-wrap {
    margin-bottom: 12px;
}

.admin-promo-review {
    margin: 0;
    padding: 12px;
    border-radius: 10px;
    background: #fafafc;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.admin-promo-review__row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 8px;
    padding: 4px 0;
    font-size: 0.78rem;
}

.admin-promo-review__row + .admin-promo-review__row {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.admin-promo-review__row dt {
    margin: 0;
    font-weight: 800;
    color: #7a8194;
}

.admin-promo-review__row dd {
    margin: 0;
    font-weight: 700;
    color: #373b4d;
}

.admin-promo-form__active-toggle {
    margin-top: 8px;
}

@media (max-width: 640px) {
    .admin-promo-stepper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-promo-review__row {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}

.admin-promo-row__order {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: rgba(111, 44, 244, 0.12);
    color: #6f2cf4;
    font-weight: 900;
    font-size: 0.9rem;
    flex-shrink: 0;
    line-height: 1;
}

.admin-promo-row__headline {
    line-height: 1.25;
}

.admin-promo-row__note {
    margin: 6px 0 0;
    font-size: 0.72rem;
    line-height: 1.4;
    font-weight: 600;
    color: #8a6a00;
}

.admin-empty--inline {
    padding: 12px;
    font-size: 0.82rem;
}

.admin-promo-preview-wrap {
    margin-top: 1rem;
}

.admin-promo-preview-wrap h5 {
    margin: 0 0 8px;
    font-size: 0.84rem;
    font-weight: 800;
    color: #373b4d;
}

.admin-promo-preview {
    padding: 14px 16px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(111, 44, 244, 0.08), rgba(255, 105, 180, 0.06));
    border: 1px solid rgba(111, 44, 244, 0.15);
}

.admin-promo-preview h3 {
    margin: 0 0 4px;
    font-size: 1.1rem;
    font-weight: 900;
    color: #373b4d;
}

.admin-promo-preview p {
    margin: 0 0 6px;
    font-size: 0.86rem;
    font-weight: 700;
    color: #5b6470;
}

.admin-promo-preview__condicion {
    font-size: 0.76rem !important;
    font-weight: 600 !important;
    color: #6f2cf4 !important;
}

.admin-promo-preview__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 8px;
}

.admin-promo-preview__badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(111, 44, 244, 0.2);
    font-size: 0.68rem;
    font-weight: 800;
    color: #6f2cf4;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.admin-promo-preview small {
    display: block;
    font-size: 0.72rem;
    line-height: 1.45;
    color: #7a8194;
}

.admin-promo-preview__visibility {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(255, 193, 7, 0.12);
    border: 1px solid rgba(255, 193, 7, 0.35);
    font-size: 0.72rem;
    font-weight: 700;
    color: #8a6a00;
    line-height: 1.4;
}

.admin-promo-home-hints {
    margin-top: 4px;
}

.admin-promo-condicion-explain {
    margin: 8px 0 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(111, 44, 244, 0.06);
    border: 1px solid rgba(111, 44, 244, 0.12);
}

.admin-promo-condicion-explain__summary {
    margin: 0 0 4px;
    font-weight: 800;
    color: #373b4d;
    font-size: 0.84rem;
}

.admin-promo-condicion-explain__text {
    margin: 0 0 6px;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #5b6470;
}

.admin-promo-condicion-tips {
    margin: 0;
    padding-left: 18px;
    font-size: 0.72rem;
    line-height: 1.45;
    color: #6f2cf4;
}

.admin-promo-condicion-tips li + li {
    margin-top: 3px;
}

.admin-promo-condicion-fields {
    margin-top: 8px;
}

.admin-promo-condicion-info {
    padding: 10px 12px;
    border-radius: 10px;
    background: #fafafc;
    border: 1px dashed rgba(0, 0, 0, 0.1);
    font-size: 0.78rem;
    line-height: 1.45;
    color: #5b6470;
}

.admin-promo-dias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 6px;
}

.admin-promo-dia {
    padding: 6px 8px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.admin-promo-servicios-list {
    max-height: 220px;
    overflow: auto;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    padding: 8px;
    background: #fff;
}

.admin-promo-servicios-group + .admin-promo-servicios-group {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.admin-promo-servicios-group__title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6f2cf4;
    margin-bottom: 4px;
}

.admin-promo-servicio-item {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 4px 0;
    font-size: 0.82rem;
}

.admin-promo-servicio-item small {
    color: #9a9aad;
}
.admin-field-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
}
.admin-field-group__label {
    font-size: 0.82rem;
    font-weight: 800;
    color: #373b4d;
}
.admin-field-pair {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 8px;
    width: 100%;
}
.admin-field-pair .admin-field--code {
    flex: 0 0 72px;
    width: 72px;
    max-width: 28%;
}
.admin-field-pair .admin-field--number {
    flex: 1 1 0;
    min-width: 0;
}
.admin-field-pair .admin-field--equal {
    flex: 1 1 0;
    min-width: 0;
}
.admin-field-pair .admin-field--suffix {
    flex: 0 0 72px;
    width: 72px;
    max-width: 28%;
}
.admin-pricing-section + .admin-pricing-section {
    margin-top: 1rem;
}

.admin-pricing-section__title {
    margin: 0 0 8px;
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6f2cf4;
}

.admin-pricing-section__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-pricing-section__list .admin-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 6.25rem auto;
    align-items: center;
    column-gap: 10px;
    row-gap: 4px;
}

.admin-pricing-section__list .admin-row__main {
    grid-column: 1;
    min-width: 0;
}

.admin-pricing-section__list .admin-pricing-row__price,
.admin-pricing-section__list .admin-row__right {
    grid-column: 2;
    justify-self: stretch;
    text-align: right;
    align-self: center;
}

.admin-pricing-section__list .admin-row__actions {
    grid-column: 3;
    justify-self: end;
    flex-wrap: nowrap;
}

.admin-pricing-row__price {
    font-weight: 800;
    color: #373b4d;
    white-space: nowrap;
    font-size: 0.86rem;
    line-height: 1.2;
}

@media (max-width: 420px) {
    .admin-pricing-section__list .admin-row {
        grid-template-columns: minmax(0, 1fr) 5.5rem auto;
        column-gap: 8px;
    }

    .admin-pricing-row__price {
        font-size: 0.8rem;
    }
}

.admin-price-type {
    display: flex;
    gap: 8px;
    width: 100%;
}

.admin-price-type__option {
    flex: 1 1 0;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    background: #fff;
    font-size: 0.86rem;
    font-weight: 700;
    color: #373b4d;
    cursor: pointer;
}

.admin-price-type__option:has(input:checked) {
    border-color: rgba(120, 58, 240, 0.45);
    background: rgba(120, 58, 240, 0.08);
    color: #5b21b6;
}

.admin-price-type__option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.admin-pricing-preview {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #ececf2;
    border-radius: 12px;
    background: #fafafc;
}

.admin-pricing-preview__line {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.admin-pricing-preview__name {
    flex: 0 1 auto;
    font-weight: 800;
    color: #373b4d;
}

.admin-pricing-preview__dots {
    flex: 1 1 auto;
    min-width: 12px;
    border-bottom: 2px dotted rgba(55, 59, 77, 0.25);
    transform: translateY(-2px);
}

.admin-pricing-preview__price {
    flex: 0 0 auto;
    font-weight: 800;
    color: #373b4d;
    white-space: nowrap;
}

.admin-pricing-preview__desc {
    margin: 6px 0 0;
    font-size: 0.84rem;
    line-height: 1.4;
    color: #6b6f82;
}

.admin-pricing-preview__desc--empty {
    font-style: italic;
    opacity: 0.75;
}

.admin-web-collapse__footer--hint-only {
    justify-content: center;
}

.admin-web-collapse__footer--hint-only .admin-web-collapse__footer-hint {
    flex: 1 1 100%;
    text-align: center;
}
.admin-input-affix {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-height: 34px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
}
.admin-input-affix__text {
    flex: none;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 0 0 0 10px;
    font-size: 0.92rem;
    font-weight: 700;
    color: rgba(55, 59, 77, 0.55);
    white-space: nowrap;
    user-select: none;
    pointer-events: none;
}
.admin-input-affix .admin-input,
.admin-input-affix .admin-input:focus,
.admin-input-affix .admin-input:focus-visible {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0 10px 0 4px;
    box-shadow: none;
    outline: none;
}
.admin-input-affix:focus-within {
    border-color: rgba(120, 58, 240, 0.45);
    box-shadow: 0 0 0 2px rgba(120, 58, 240, 0.12);
}
.admin-field .admin-input {
    flex: none;
}
.admin-row--stack .admin-toolbar--stack .admin-field .admin-input {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    min-height: 34px;
    padding: 6px 10px;
    font-size: 0.92rem;
    line-height: 1.25;
}
.admin-row--stack .admin-toolbar--stack .admin-field textarea.admin-input {
    min-height: 72px;
    padding: 8px 10px;
}
.admin-field-pair .admin-input:not(.admin-input--with-prefix) {
    min-height: 32px;
    padding-top: 5px;
    padding-bottom: 5px;
}
.admin-input--code {
    text-align: center;
    padding-left: 6px;
    padding-right: 6px;
}
.admin-row--stack .admin-toolbar--wrap {
    flex-direction: column;
    align-items: stretch;
}
.admin-row--stack .admin-toolbar--wrap .admin-input {
    width: 100%;
    min-width: 0;
    flex: none;
    height: 34px;
    min-height: 34px;
    max-height: 34px;
    padding: 0 10px;
    line-height: 1.25;
    box-sizing: border-box;
}
.admin-toolbar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
}
.admin-input {
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 10px;
    padding: 7px 10px;
    min-height: 34px;
    background: #fff;
    box-sizing: border-box;
    line-height: 1.25;
}
.admin-check {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    font-weight: 700;
    color: #373b4d;
}
.admin-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}
.admin-metric {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 14px;
    padding: 10px;
    display: grid;
    gap: 2px;
}
.admin-metric {
    grid-template-columns: auto 1fr;
    column-gap: 10px;
    align-items: center;
}
.admin-metric strong,
.admin-metric span { grid-column: 2; }
.admin-metric__icon {
    grid-row: 1 / span 2;
    font-size: 14px;
    opacity: .95;
}

.admin-metric--total { background: rgba(120, 58, 240, .08); border-color: rgba(120, 58, 240, .18); }
.admin-metric--total .admin-metric__icon { color: #6f2cf4; }

.admin-metric--pending { background: rgba(255, 193, 7, .14); border-color: rgba(255, 193, 7, .22); }
.admin-metric--pending .admin-metric__icon { color: #8a6a00; }

.admin-metric--confirmed { background: rgba(13, 110, 253, .08); border-color: rgba(13, 110, 253, .18); }
.admin-metric--confirmed .admin-metric__icon { color: #0b5ed7; }

.admin-metric--cancelled { background: rgba(179, 22, 90, .08); border-color: rgba(179, 22, 90, .18); }
.admin-metric--cancelled .admin-metric__icon { color: #b3165a; }

.admin-metric--completed { background: rgba(0, 140, 80, .08); border-color: rgba(0, 140, 80, .18); }
.admin-metric--completed .admin-metric__icon { color: #0a6b3c; }

.admin-metric--images { background: rgba(13, 110, 253, .06); border-color: rgba(13, 110, 253, .16); }
.admin-metric--images .admin-metric__icon { color: #0b5ed7; }

.admin-metric--warn { background: rgba(255, 193, 7, .12); border-color: rgba(255, 193, 7, .28); }
.admin-metric--warn .admin-metric__icon { color: #9a6700; }

.admin-metric--clients { background: rgba(108, 117, 125, .10); border-color: rgba(108, 117, 125, .18); }
.admin-metric--clients .admin-metric__icon { color: #5b6470; }

.admin-metric--clickable {
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.admin-metric--clickable:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.admin-overview-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.admin-overview-card__head h5 {
    margin: 0;
}

.admin-overview-card__link {
    border: none;
    background: transparent;
    color: #6f2cf4;
    font-size: 0.76rem;
    font-weight: 800;
    cursor: pointer;
    padding: 0;
}

.admin-overview-grid {
    display: grid;
    gap: 10px;
}

@media (min-width: 720px) {
    .admin-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.admin-overview-collapse {
    margin: 0;
}

.admin-overview-collapse__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
    list-style: none;
    font-weight: 900;
    color: #373b4d;
    margin: 0 0 10px;
}

.admin-overview-collapse__summary::-webkit-details-marker {
    display: none;
}

.admin-overview-collapse__summary::before {
    content: '▸';
    margin-right: 8px;
    color: #6f2cf4;
    font-size: 0.85rem;
}

.admin-overview-collapse[open] .admin-overview-collapse__summary::before {
    content: '▾';
}

.admin-overview-collapse__title {
    flex: 1;
}

.admin-overview-collapse__body .admin-overview-cita-row:first-of-type {
    border-top: none;
}

.admin-overview-cita-row .admin-row__actions {
    flex-wrap: nowrap;
}

.admin-overview-destacadas {
    margin-top: 0;
}

.admin-overview-destacadas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
}

.admin-img--overview-destacada img {
    height: 120px;
    object-fit: cover;
}

.admin-img--overview-destacada .admin-img__who {
    font-size: 0.72rem;
    font-weight: 800;
    color: #5b6470;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-metric--clients.admin-metric--clickable:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.admin-card--danger {
    border-color: rgba(179, 22, 90, 0.2);
    background: rgba(179, 22, 90, 0.04);
}

.admin-mini-btn--ghost {
    background: transparent;
    border: 1px dashed rgba(111, 44, 244, 0.35);
    color: #6f2cf4;
}

.admin-mini-btn--ghost:hover {
    background: rgba(111, 44, 244, 0.06);
}
.admin-metric strong { font-size: 18px; line-height: 1.1; }
.admin-metric span { color: #6c757d; font-weight: 800; font-size: 12px; }

@media (max-width: 520px) {
    .admin-metrics {
        gap: 6px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-bottom: 10px;
    }
    .admin-metric { padding: 6px 7px; border-radius: 10px; column-gap: 8px; }
    .admin-metric__icon { font-size: 13px; }
    .admin-metric strong { font-size: 14px; letter-spacing: -0.01em; }
    .admin-metric span { font-size: 11px; font-weight: 700; color: #5b6470; }
}
.admin-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 14px;
    padding: 12px;
    margin: 10px 0;
}
.admin-card h5 { margin: 0 0 10px; font-weight: 900; color: #373b4d; }
.admin-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    justify-content: space-between;
    padding: 10px 0;
    border-top: 1px solid rgba(0,0,0,.06);
}
.admin-row:first-of-type { border-top: none; }
.admin-row__title { font-weight: 900; color: #373b4d; }
.admin-row__sub { color: #6c757d; font-weight: 700; font-size: 13px; margin-top: 2px; }
.admin-row__right { font-weight: 900; color: #373b4d; white-space: nowrap; }
.admin-row__actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.admin-subchips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.admin-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid rgba(55, 59, 77, .12);
    background: rgba(55, 59, 77, .06);
    color: #373b4d;
    font-weight: 900;
    font-size: 12px;
    line-height: 1.2;
}
.admin-pill i { font-size: 12px; opacity: .9; }
.admin-pill--muted { background: rgba(108, 117, 125, .10); color: #5b6470; border-color: rgba(108, 117, 125, .16); }
.admin-pill--info { background: rgba(13, 110, 253, .10); color: #0b5ed7; border-color: rgba(13, 110, 253, .16); }
.admin-pill--primary { background: rgba(120, 58, 240, .10); color: #6f2cf4; border-color: rgba(120, 58, 240, .16); }
.admin-pill--ok { background: rgba(0, 140, 80, .10); color: #0a6b3c; border-color: rgba(0, 140, 80, .16); }
.admin-pill--warn { background: rgba(255, 193, 7, .16); color: #8a6a00; border-color: rgba(255, 193, 7, .20); }
.admin-pill--danger { background: rgba(179, 22, 90, .10); color: #b3165a; border-color: rgba(179, 22, 90, .16); }
.admin-mini-btn {
    border: 1px solid rgba(0,0,0,.12);
    background: #fff;
    border-radius: 10px;
    padding: 8px 10px;
    font-weight: 800;
}
.admin-mini-btn--primary {
    background: var(--accent-violet);
    color: #fff;
    border-color: transparent;
}

.admin-mini-btn--danger {
    border-color: rgba(179,22,90,.35);
    color: #b3165a;
}
.admin-icon-btn {
    border: 1px solid rgba(0,0,0,.12);
    background: #fff;
    border-radius: 10px;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-weight: 900;
    line-height: 1;
}
.admin-icon-btn i { font-size: 15px; }
.admin-icon-btn--danger { border-color: rgba(179,22,90,.35); color: #b3165a; }
.admin-icon-btn--ok { border-color: rgba(0, 140, 80, .25); color: #0a6b3c; }
.admin-icon-btn--star { border-color: rgba(234, 179, 0, .4); color: #ca8a04; background: rgba(250, 204, 21, .12); }
.admin-icon-btn--primary { border-color: rgba(120, 58, 240, .25); color: var(--accent-violet); }
.admin-compact-btn { padding: 8px 10px; }

@media (max-width: 520px) {
    .admin-btn-text { display: none; }
    .admin-compact-btn { padding: 8px 10px; }
    .admin-row__actions { gap: 4px; }
}
.admin-empty { color: #6c757d; font-weight: 800; padding: 10px 0; }
.admin-loading { color: #5b6470; font-weight: 900; padding: 10px 0; }

.admin-overview-skeleton {
    animation: adminSkeletonPulse 1.2s ease-in-out infinite;
}

.admin-metrics.admin-overview-skeleton .admin-skeleton-metric {
    pointer-events: none;
}

@keyframes adminSkeletonPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.68; }
}

@media (prefers-reduced-motion: reduce) {
    .admin-overview-skeleton {
        animation: none;
    }
}

.admin-skeleton {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, #eceff3 0%, #f5f6f8 45%, #eceff3 100%);
    background-size: 200% 100%;
}

.admin-skeleton-metric {
    pointer-events: none;
}

.admin-skeleton--icon {
    grid-row: 1 / span 2;
    width: 18px;
    height: 18px;
    border-radius: 6px;
}

.admin-skeleton--line {
    height: 12px;
    margin-bottom: 4px;
}

.admin-skeleton--line.lg { width: 52%; }
.admin-skeleton--line.sm { width: 38%; }
.admin-skeleton--line.md { width: 42%; height: 14px; margin-bottom: 10px; }

.admin-skeleton--row {
    height: 44px;
    border-radius: 10px;
    margin-bottom: 6px;
}

.admin-skeleton--row:last-child {
    margin-bottom: 0;
}

.admin-skeleton-card {
    pointer-events: none;
}

.admin-skeleton--destacada {
    height: 120px;
    border-radius: 12px;
}
.admin-row.is-busy { opacity: .65; pointer-events: none; }

.admin-pagination { margin: 10px 0 6px; }
.admin-pagination__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
    border-radius: 14px;
}
.admin-pagination__label { color: #5b6470; font-weight: 800; font-size: 13px; }
.admin-pagination .admin-icon-btn[disabled] { opacity: .45; }
.badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(55, 59, 77, .08);
    color: #373b4d;
    border: 1px solid rgba(55, 59, 77, .10);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: .01em;
}
.badge--muted { background: rgba(108, 117, 125, .12); color: #5b6470; border-color: rgba(108, 117, 125, .18); }
.badge--info { background: rgba(13, 110, 253, .12); color: #0b5ed7; border-color: rgba(13, 110, 253, .18); }
.badge--primary { background: rgba(120, 58, 240, .12); color: #6f2cf4; border-color: rgba(120, 58, 240, .18); }
.badge--ok { background: rgba(0, 140, 80, .12); color: #0a6b3c; border-color: rgba(0, 140, 80, .18); }
.badge--warn { background: rgba(255, 193, 7, .18); color: #8a6a00; border-color: rgba(255, 193, 7, .22); }
.badge--danger { background: rgba(179, 22, 90, .12); color: #b3165a; border-color: rgba(179, 22, 90, .18); }
.admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.admin-grid--mini { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.admin-img--mini img { height: 92px; }
.admin-img--mini .admin-img__meta { padding: 8px; gap: 6px; }
.admin-img--mini .admin-img__who { font-size: 12px; }
.admin-img--mini .admin-img__actions { gap: 6px; }
.admin-img { border-radius: 14px; overflow: hidden; border: 1px solid rgba(0,0,0,.08); background:#fff; }
.admin-img img { width: 100%; height: 110px; object-fit: cover; display:block; }
.admin-img__meta { padding: 10px; display:grid; gap: 8px; }
.admin-img__who { font-weight: 900; color:#373b4d; font-size: 13px; }
.admin-img__actions { display:flex; gap:6px; flex-wrap: wrap; }

/* Galería admin: fila por cita + strip horizontal (orden carrusel feed) */
.admin-cita-imagenes-row {
    display: block;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: #fff;
    margin-bottom: 10px;
}

.admin-cita-imagenes-row.is-highlight {
    border-color: rgba(194, 24, 91, 0.45);
    box-shadow: 0 0 0 3px rgba(194, 24, 91, 0.12);
}

.admin-row.admin-cita-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px 12px;
    align-items: start;
}

.admin-row.admin-cita-row .admin-row__actions {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
}

.admin-cita-row__note {
    margin: 8px 0 0;
    font-size: 0.82rem;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.admin-cita-row__note--warn {
    color: #9a6700;
}

@media (max-width: 520px) {
    .admin-row.admin-cita-row {
        grid-template-columns: 1fr;
    }

    .admin-row.admin-cita-row .admin-row__actions {
        grid-column: 1 / -1;
        grid-row: auto;
        justify-content: flex-end;
    }
}

.admin-cita-imagenes-row__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px 12px;
    margin-bottom: 8px;
}

.admin-cita-imagenes-row__hint {
    display: block;
    font-size: 0.78rem;
    color: #6b7280;
    margin-bottom: 8px;
}

.admin-cita-imagenes-row--modal {
    border: none;
    padding: 0;
    margin-bottom: 0;
    background: transparent;
}

.admin-cita-form__grid {
    display: grid;
    gap: 12px;
}

.admin-cita-form__actions {
    margin-top: 12px;
}

.admin-field--block {
    grid-column: 1 / -1;
}

.admin-input--textarea {
    min-height: 88px;
    resize: vertical;
}

.admin-img-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
}

.admin-img-strip--draggable {
    cursor: grab;
}

.admin-img--strip {
    flex: 0 0 124px;
    max-width: 124px;
    position: relative;
}

.admin-img--strip .admin-img__meta--actions-row {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 4px;
    gap: 0;
}

.admin-img--strip .admin-img__actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
}

.admin-img--strip .admin-icon-btn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    flex-shrink: 0;
}

.admin-img--strip .admin-icon-btn i {
    font-size: 13px;
}

.admin-img--strip img {
    height: 100px;
}

.admin-img--strip-draggable.is-dragging {
    opacity: 0.55;
}

.admin-img-strip__drag {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.92);
    color: #373b4d;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
    pointer-events: none;
}

.admin-upload { display:flex; gap:8px; flex-wrap: wrap; align-items: center; margin: 10px 0; }
.admin-upload__msg { color:#6c757d; font-weight: 800; }
.admin-hint { color:#6c757d; font-weight: 800; margin-bottom: 8px; }

/*
 * Modales dentro de contenedores del feed (admin, mis citas, perfil…)
 * -------------------------------------------------------------------
 * Esos paneles son position:fixed con overflow-y:auto en el PROPIO contenedor,
 * no en document.body. Por eso:
 * 1) El modal se teleporta a document.body al abrir (JS en feed-admin.js).
 * 2) Mientras el modal está abierto, el contenedor activo recibe
 *    .feed-overlay--modal-open para anular su scrollbar.
 * Si añades modales en otro contenedor, reutiliza window.MoritaFeedOverlayModal.
 */
body.feed-overlay--modal-open {
    overflow: hidden;
}

.user-screen-container.feed-overlay--modal-open,
.mis-citas-container.feed-overlay--modal-open,
.admin-container.feed-overlay--modal-open,
.editar-perfil-container.feed-overlay--modal-open,
.mi-perfil-container.feed-overlay--modal-open,
.reservar-cita-container.feed-overlay--modal-open {
    overflow: hidden !important;
    overscroll-behavior: contain;
    touch-action: none;
}

.admin-modal {
    position: fixed;
    inset: 0;
    z-index: 10100;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: calc(18px + env(safe-area-inset-top, 0px)) 18px calc(18px + env(safe-area-inset-bottom, 0px));
    margin: 0;
    border: 0;
    background: transparent;
    pointer-events: none;
}

.admin-modal[hidden] {
    display: none !important;
}

.admin-modal__overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(0, 0, 0, 0.45);
    pointer-events: auto;
}

.admin-modal__panel {
    position: relative;
    z-index: 1;
    flex: 0 1 auto;
    width: min(720px, calc(100vw - 36px));
    max-width: 100%;
    max-height: min(85vh, 85dvh);
    margin: 0;
    overflow: auto;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
    pointer-events: auto;
}
.admin-modal__header { display:flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid rgba(0,0,0,.08); }
.admin-modal__title { margin:0; font-weight: 900; color:#373b4d; }
.admin-modal__close { border: 0; background: transparent; font-size: 16px; }
.admin-modal__body { padding: 14px; }

.feed-dialog-modal {
    position: fixed;
    inset: 0;
    z-index: 2400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    pointer-events: none;
}

.feed-dialog-modal[hidden] {
    display: none !important;
}

.feed-dialog-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(17, 17, 24, 0.55);
    pointer-events: auto;
}

.feed-dialog-modal__panel {
    position: relative;
    z-index: 1;
    width: min(100%, 420px);
    max-height: min(88vh, 640px);
    overflow: auto;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(17, 17, 24, 0.22);
    pointer-events: auto;
}

.feed-dialog-modal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.feed-dialog-modal__title {
    margin: 0;
    font-weight: 900;
    color: #373b4d;
    font-size: 1rem;
}

.feed-dialog-modal__close {
    border: 0;
    background: transparent;
    font-size: 16px;
    color: #6c757d;
    cursor: pointer;
}

.feed-dialog-modal__body {
    padding: 14px;
}

.feed-dialog-modal__message {
    margin: 0;
    color: #373b4d;
    font-weight: 700;
    line-height: 1.45;
}

.feed-dialog-modal__actions {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.feed-dialog-btn {
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: #fff;
    border-radius: 10px;
    padding: 8px 12px;
    font-weight: 800;
    color: #373b4d;
    cursor: pointer;
}

.feed-dialog-btn--primary {
    background: var(--accent-violet);
    color: #fff;
    border-color: transparent;
}

.feed-dialog-btn--danger {
    border-color: rgba(179, 22, 90, 0.35);
    color: #b3165a;
}

@media (max-width: 520px) {
    .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-grid--mini { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --feed-trans-vertical: 0.01s;
        --feed-trans-horizontal: 0.01s;
        --feed-gallery-overlay-fade: 0.01s;
    }
}

/*
 * Capas z-index en el feed (referencia rápida):
 * ~10 — overlays de galería, flechas, indicadores horizontales
 * 1000 — logo flotante
 * 1500 — paneles de perfil / reserva (deslizables)
 * 2000 — barra inferior Feed/Perfil
 * 2050 — coachmark de gestos (#feedGestureHint)
 * 9999 — modal de opciones del wizard (.modal-overlay en cita.css)
 * 10000 — toasts / notificaciones (.gallery-notification)
 */

/* Toast del feed: encima de la barra inferior, centrado (evita “flotar” a media pantalla) */
.gallery-notification {
    position: fixed;
    z-index: 10000;
    left: 1rem;
    right: 1rem;
    bottom: calc(var(--feed-bottom-offset, 4.75rem) + 0.5rem + env(safe-area-inset-bottom, 0px));
    margin: 0 auto;
    max-width: min(28rem, calc(100vw - 2rem));
    padding: 0.75rem 1rem;
    background: rgba(55, 59, 77, 0.96);
    color: #fff;
    border-radius: 0.75rem;
    font-size: 0.9rem;
    line-height: 1.4;
    text-align: center;
    box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.28);
    transform: translateY(calc(100% + 1.25rem));
    opacity: 0;
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.3s ease;
    pointer-events: none;
}

.gallery-notification.gallery-notification--visible {
    transform: translateY(0);
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .gallery-notification {
        transition-duration: 0.01ms;
    }
}

/* ==========================================================================
   GENERAL STYLES
   ========================================================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    height: 100%;
    /* Evita que el “último pixel” quede bajo la barra del sistema al hacer scroll */
    scroll-padding-bottom: var(--feed-bottom-offset);
}

body {
    font-family: 'Catamaran', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: var(--text-color);
    font-weight: 400;
    background-color: var(--bg-corn-silk);
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--title-color);
    font-family: 'Lora', serif;
    line-height: 1.3;
    font-weight: 600;
    letter-spacing: -0.015625rem;
}

/* ==========================================================================
   FLOATING LOGO
   ========================================================================== */

.floating-logo {
    position: fixed;
    top: 30px;
    left: 30px;
    z-index: 1000;
    pointer-events: none;
    animation: logoFloat 6s ease-in-out infinite;
}

/* En reposo (opacidad baja) se detiene el “rebote” para no distraer */
.floating-logo.floating-logo--idle {
    animation: none;
}

.logo-image {
    height: 60px;
    width: auto;
    opacity: 1;
    /* Fundido muy lento para que casi no se perciba el cambio de opacidad */
    transition: opacity 3.2s cubic-bezier(0.22, 0.61, 0.36, 1);
    filter: drop-shadow(1px 1px 3px rgba(0, 0, 0, 0.45));
}

.floating-logo:hover .logo-image {
    opacity: 1;
    transform: scale(1.05);
}

/* Animación sutil del logo */
@keyframes logoFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-3px);
    }
}

/* ==========================================================================
   GALLERY CONTAINER
   ========================================================================== */

.gallery-container {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-plum) 50%, var(--accent-rose) 100%);
    margin-top: 0;
}

.gallery-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

/*
 * Durante el cambio vertical, la salida anima opacity a 0: si el fondo del
 * wrapper es transparente se ve el degradado rosa del .gallery-container.
 * Fondo neutro + velo oscuro (similar al gesto “hacia atrás”).
 */
.gallery-wrapper.transitioning {
    background-color: rgb(14, 12, 16);
}

/* Overlay oscuro encima del fondo del wrapper (por debajo de los slides, z-index 0) */
.gallery-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    z-index: 0;
    pointer-events: none;
    transition: opacity var(--feed-gallery-overlay-fade) var(--feed-ease-vertical);
}

/* Mostrar velo durante transiciones verticales */
.gallery-wrapper.transitioning::before {
    opacity: 1;
}

/* ==========================================================================
   GALLERY ITEMS
   ========================================================================== */

.gallery-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: translateY(100%);
    transition:
        transform var(--feed-trans-vertical) var(--feed-ease-vertical),
        opacity var(--feed-trans-vertical) var(--feed-ease-vertical);
    z-index: 2;
    will-change: transform, opacity;
}

.gallery-item.active {
    opacity: 1;
    transform: translateY(0);
    z-index: 3;
}

.gallery-item.prev {
    opacity: 0;
    transform: translateY(-100%);
    z-index: 1;
    transition:
        transform var(--feed-trans-vertical) var(--feed-ease-vertical),
        opacity var(--feed-trans-vertical) var(--feed-ease-vertical);
}

.gallery-item.next {
    opacity: 0;
    transform: translateY(100%);
    z-index: 1;
    transition:
        transform var(--feed-trans-vertical) var(--feed-ease-vertical),
        opacity var(--feed-trans-vertical) var(--feed-ease-vertical);
}

.gallery-image-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Mismo criterio que .gallery-wrapper.transitioning: evita el degradado rosa al animar opacity/transform entre fotos */
.gallery-image-container.horizontal-transitioning {
    background-color: rgb(14, 12, 16);
}

.gallery-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: translateX(100%);
    transition:
        transform var(--feed-trans-horizontal) var(--feed-ease-horizontal),
        opacity var(--feed-trans-horizontal) var(--feed-ease-horizontal);
    will-change: transform, opacity;
}

.gallery-image.active {
    opacity: 1;
    transform: translateX(0);
}

.gallery-image.prev {
    opacity: 0;
    transform: translateX(-100%);
    transition:
        transform var(--feed-trans-horizontal) var(--feed-ease-horizontal),
        opacity var(--feed-trans-horizontal) var(--feed-ease-horizontal);
}

.gallery-image.next {
    opacity: 0;
    transform: translateX(100%);
    transition:
        transform var(--feed-trans-horizontal) var(--feed-ease-horizontal),
        opacity var(--feed-trans-horizontal) var(--feed-ease-horizontal);
}

.gallery-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease, filter 0.35s ease;
    transform-style: preserve-3d;
    will-change: transform;
    /* Mejorar el manejo de imágenes de diferentes proporciones */
    min-height: 100%;
    min-width: 100%;
}

/* Feed, perfil y mis citas — más color y brillo (solo visual) */
#feedGalleryRoot .gallery-image img,
.mi-perfil-container .imagen-container img,
.mis-citas-container .mis-cita-card__thumb img,
.mis-citas-container .mis-cita-foto-thumb img {
    filter: var(--morita-img-vivid-filter);
}

/* Efecto de giroscopio para móviles */
.gallery-image.gyroscope-enabled img {
    transition: transform 0.1s ease-out;
}

/* Alternativa para imágenes que no necesiten recortarse tanto */
.gallery-image.contain-fit img {
    object-fit: contain;
    background-color: rgba(0, 0, 0, 0.1);
}

/* Para imágenes panorámicas */
.gallery-image.panoramic img {
    object-position: center 30%;
}

/* Para imágenes cuadradas optimizadas */
.gallery-image.contain-fit img {
    object-fit: contain;
    background-color: rgba(0, 0, 0, 0.1);
}

/* Para imágenes normales (retratos y paisajes) */
.gallery-image.normal img {
    object-fit: cover;
    object-position: center center;
}

#feedGalleryRoot .gallery-item:hover .gallery-image img {
    transform: scale(1.05);
    filter: var(--morita-img-vivid-filter-hover);
}

/* ==========================================================================
   GALLERY OVERLAY
   ========================================================================== */

.gallery-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.72));
    color: var(--bg-white);
    /* Una sola reserva para la barra inferior; el margen del bloque de texto no debe duplicar --feed-bottom-offset */
    padding: 32px 30px calc(6px + var(--feed-bottom-offset));
    transform: translateY(100%);
    transition: transform var(--feed-trans-vertical) var(--feed-ease-vertical);
}

.gallery-item.active .gallery-overlay {
    transform: translateY(0);
}

.gallery-info {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

/* ==========================================================================
   USER INFO
   ========================================================================== */

.user-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

/* Avatares con características comunes */
.user-avatar,
.user-avatar-large,
.current-avatar,
.profile-avatar-large {
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Imágenes de avatares comunes */
.user-avatar img,
.user-avatar-large img,
.current-avatar img,
.profile-avatar-large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Estilos específicos para user-avatar del feed */
.user-avatar {
    width: 50px;
    height: 50px;
    border: 3px solid var(--bg-white);
    box-shadow: 0 2px 10px var(--shadow-dark);
}

.user-details {
    display: flex;
    flex-direction: column;
}

.user-name {
    color: var(--bg-white);
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 5px;
    font-family: 'Catamaran', sans-serif;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75);
}

.post-date {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.9rem;
    font-weight: 400;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
}

/* ==========================================================================
   GALLERY ACTIONS
   ========================================================================== */

.gallery-actions {
    display: flex;
    gap: 20px;
    align-items: center;
}

.like-button,
.share-button {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 15px;
    margin: 0;
    background-color: rgba(255, 255, 255, 0.2);
    border: none;
    border-radius: 25px;
    cursor: pointer;
    transition: all 0.2s ease;
    backdrop-filter: blur(10px);
    font: inherit;
    color: inherit;
    -webkit-appearance: none;
    appearance: none;
}

.like-button:hover, .share-button:hover {
    background-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
}

.like-button i {
    color: var(--accent-rose);
    font-size: 1.2rem;
    transition: transform 0.2s ease;
}

.like-button:hover i {
    transform: scale(1.2);
}

.like-count {
    color: var(--bg-white);
    font-weight: 600;
    font-size: 0.95rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
}

.share-button i {
    color: var(--bg-white);
    font-size: 1.1rem;
}

/* ==========================================================================
   GALLERY DESCRIPTION
   ========================================================================== */

.gallery-description {
    margin-top: 8px;
    /* Espacio hasta las flechas verticales (posicionadas encima de la barra inferior) */
    margin-bottom: 2rem;
}

.gallery-description p {
    color: rgba(255, 255, 255, 0.95);
    font-size: 1rem;
    line-height: 1.6;
    font-weight: 400;
    margin: 0;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.85);
}



/* ==========================================================================
   HORIZONTAL INDICATORS
   ========================================================================== */

.horizontal-indicators {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--gallery-indicators-bottom);
    display: flex;
    flex-direction: row;
    gap: var(--spacing-md);
    z-index: 10;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.horizontal-indicators.visible {
    opacity: 1;
}

.horizontal-indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid transparent;
}

.horizontal-indicator:hover {
    background-color: rgba(255, 255, 255, 0.6);
    transform: scale(1.2);
}

.horizontal-indicator.active {
    background-color: var(--accent-violet);
    border-color: var(--bg-white);
    box-shadow: 0 0 10px rgba(218, 59, 133, 0.5);
}

button.horizontal-indicator {
    display: block;
    padding: 0;
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid transparent;
    font: inherit;
    color: transparent;
    -webkit-tap-highlight-color: transparent;
}

/* Indicador de navegación horizontal - REMOVIDO */

/* ==========================================================================
   HORIZONTAL NAVIGATION BUTTONS
   ========================================================================== */

.horizontal-nav-left-container {
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.horizontal-nav-left-container.visible {
    opacity: 1;
    pointer-events: auto;
}

.horizontal-nav-right-container {
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.horizontal-nav-right-container.visible {
    opacity: 1;
    pointer-events: auto;
}

/* Estilos específicos para horizontal-nav-btn si los hay */

.horizontal-nav-btn:hover {
    background-color: var(--accent-violet);
    border-color: var(--accent-violet);
    transform: translateX(-3px);
    box-shadow: 0 5px 15px rgba(218, 59, 133, 0.4);
}

.horizontal-nav-btn i {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.horizontal-nav-btn:hover i {
    transform: scale(1.1);
}

/* Estilos específicos para botón izquierdo */
.horizontal-nav-left:hover {
    transform: translateX(3px);
}

/* ==========================================================================
   NAVIGATION ARROWS
   ========================================================================== */

.gallery-nav {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(var(--feed-bottom-offset) + 6px);
    display: flex;
    gap: 20px;
    z-index: 10;
}

/* Botones de navegación con características comunes */
.nav-btn,
.horizontal-nav-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: var(--bg-white);
    cursor: pointer;
    transition: var(--transition-normal);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-btn:hover {
    background-color: var(--accent-violet);
    border-color: var(--accent-violet);
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(218, 59, 133, 0.4);
}

.nav-btn i {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.nav-btn:hover i {
    transform: scale(1.1);
}

.nav-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.nav-btn:disabled:hover {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.3);
    transform: none;
    box-shadow: none;
}

/* ==========================================================================
   AUTOPLAY TOGGLE
   ========================================================================== */

.autoplay-toggle {
    position: absolute;
    top: 30px;
    right: 30px;
    z-index: 10;
}

/* Estilos específicos para autoplay-btn */
.autoplay-btn {
    width: auto;
    height: auto;
    border-radius: 25px;
    background-color: rgba(255, 255, 255, 0.18);
    border: 2px solid rgba(255, 255, 255, 0.28);
    color: var(--bg-white);
    cursor: pointer;
    transition: var(--transition-normal);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    font-family: 'Catamaran', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    opacity: 0.9;
}

.autoplay-btn:hover {
    background-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.autoplay-btn.active {
    background-color: var(--accent-violet);
    border-color: var(--accent-violet);
}

.autoplay-btn.active i {
    animation: pulse 2s ease-in-out infinite;
}

.autoplay-btn i {
    font-size: 1rem;
    transition: var(--transition-normal);
}

.autoplay-text {
    font-weight: 600;
}

/* ==========================================================================
   ANIMATIONS
   ========================================================================== */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

.gallery-item.active .gallery-overlay {
    animation: fadeInUp 0.6s ease forwards;
}

.like-button.liked i {
    animation: pulse 0.6s ease;
}

/* ==========================================================================
   LOADING STATES
   ========================================================================== */

.gallery-item.loading {
    opacity: 0.7;
}

#feedGalleryRoot .gallery-item.loading .gallery-image img {
    filter: blur(2px);
}

/* ==========================================================================
   SHARE MENU (estructura desde feed.js)
   ========================================================================== */

.share-overlay {
    animation: fadeIn 0.3s ease;
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
}

.share-menu {
    animation: slideUp 0.3s ease;
    background: var(--bg-white);
    border-radius: 15px;
    padding: 25px;
    max-width: 400px;
    width: 90%;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.share-menu__title {
    margin: 0 0 20px 0;
    color: var(--primary-color);
    font-family: 'Lora', serif;
    font-size: 1.3rem;
}

.share-menu__preview {
    width: 100px;
    height: 100px;
    margin: 0 auto 20px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--gray-medium);
}

.share-menu__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.share-menu__actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    margin-bottom: 20px;
}

.share-menu__action {
    padding: 12px 15px;
    border: none;
    border-radius: 8px;
    background: var(--accent-violet);
    color: var(--bg-white);
    cursor: pointer;
    font-family: 'Catamaran', sans-serif;
    font-weight: 500;
    transition: var(--transition-normal);
}

.share-menu__action:hover {
    background: var(--accent-rose);
    transform: translateY(-2px);
}

.share-menu__close {
    padding: 10px 20px;
    border: 2px solid var(--accent-violet);
    border-radius: 8px;
    background: transparent;
    color: var(--accent-violet);
    cursor: pointer;
    font-family: 'Catamaran', sans-serif;
    font-weight: 500;
    transition: var(--transition-normal);
}

.share-menu__close:hover {
    background: var(--accent-violet);
    color: var(--bg-white);
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   ACCESSIBILITY
   ========================================================================== */

.nav-btn:focus,
.horizontal-nav-btn:focus,
.autoplay-btn:focus,
.like-button:focus,
.share-button:focus,
.share-menu__action:focus,
.share-menu__close:focus {
    outline: 2px solid var(--accent-violet);
    outline-offset: 2px;
}

/* ==========================================================================
   NO IMAGES PLACEHOLDER
   ========================================================================== */

.no-images-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-plum) 50%, var(--accent-rose) 100%);
    color: white;
    text-align: center;
    padding: 2rem;
}

.no-images-placeholder i {
    margin-bottom: 1rem;
    opacity: 0.7;
}

.no-images-placeholder h3 {
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    font-weight: 600;
}

.no-images-placeholder p {
    font-size: 1rem;
    opacity: 0.8;
    max-width: 300px;
    line-height: 1.5;
}

/* ==========================================================================
   LIKE BUTTON STYLES
   ========================================================================== */

.like-button.liked i {
    color: var(--accent-rose) !important;
    animation: pulse 0.6s ease;
}

.like-button:not(.liked) i {
    color: white;
    opacity: 0.8;
}

.like-button:hover i {
    opacity: 1;
    transform: scale(1.1);
}

/* Estilo para botones de like deshabilitados (imágenes propias o ya con like) */
.like-button.disabled {
    cursor: not-allowed;
    opacity: 0.8;
    pointer-events: none; /* Prevenir completamente los clicks */
}

.like-button.disabled i {
    cursor: not-allowed;
}

.like-button.disabled:hover i {
    opacity: 1;
    transform: none;
}

/* Estilo específico para botones con like (rojos) */
.like-button.liked.disabled {
    opacity: 1;
}

.like-button.liked.disabled i {
    color: var(--accent-rose) !important;
}

/* ==========================================================================
   BOTTOM NAVIGATION BAR (TIKTOK STYLE)
   ========================================================================== */

.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(20px);
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 10px 0 calc(10px + var(--feed-bottom-safe));
    z-index: 2000; /* Z-index más alto para estar siempre visible */
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition-normal);
    color: rgba(255, 255, 255, 0.7);
    flex: 1 1 0;
    min-width: 0;
    max-width: 50%;
    appearance: none;
    -webkit-appearance: none;
    border: none;
    background: transparent;
    font: inherit;
    margin: 0;
}

.nav-item i {
    font-size: 1.2rem;
    transition: var(--transition-normal);
}

.nav-item span {
    font-size: 0.75rem;
    font-weight: 500;
    transition: var(--transition-normal);
}

/* Texto más largo cuando aún no hay sesión */
#userNavBtn:not(.logged-in) span {
    font-size: 0.68rem;
    line-height: 1.2;
    max-width: 5.5rem;
    text-align: center;
}

.nav-item:hover {
    color: var(--accent-rose);
    transform: translateY(-2px);
}

.nav-item.active {
    color: var(--accent-rose);
}

.nav-item.active i {
    transform: scale(1.1);
}

.nav-item.logged-in {
    color: var(--accent-violet);
}

.nav-item.logged-in i {
    color: var(--accent-violet);
}

/* Regla específica para cuando el botón de usuario está activo y logueado */
.nav-item.logged-in.active {
    color: var(--accent-rose) !important;
}

.nav-item.logged-in.active i {
    color: var(--accent-rose) !important;
}

/* Regla para cuando el botón de usuario está logueado pero NO activo */
.nav-item.logged-in:not(.active) {
    color: rgba(255, 255, 255, 0.7) !important;
}

.nav-item.logged-in:not(.active) i {
    color: rgba(255, 255, 255, 0.7) !important;
}

.feed-gesture-hint {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(var(--feed-bottom-offset) + 12px);
    z-index: 2050;
    max-width: min(22rem, calc(100vw - 2rem));
    padding: 12px 14px;
    background: rgba(55, 59, 77, 0.96);
    color: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    text-align: center;
}

.feed-gesture-hint-text {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.4;
}

.feed-gesture-hint .feed-gesture-hint-dismiss {
    align-self: center;
}

/* ==========================================================================
   USER SCREEN - CONTENEDOR SEPARADO (ESTILO TIKTOK)
   ========================================================================== */

/* Contenedores con características comunes */
.user-screen-container,
.mis-citas-container,
.admin-container,
.editar-perfil-container,
.mi-perfil-container,
.reservar-cita-container {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: var(--feed-bottom-offset);
    background: #ffffff; /* Fondo blanco estilo TikTok */
    z-index: 1500; /* Por debajo de la barra de navegación */
    transform: translateX(100%);
    transition: var(--transition-fast);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    scroll-padding-bottom: var(--feed-scroll-pad-bottom);
    -webkit-overflow-scrolling: touch;
}

.user-screen-container.active,
.mis-citas-container.active,
.admin-container.active,
.editar-perfil-container.active,
.mi-perfil-container.active,
.reservar-cita-container.active {
    transform: translateX(0);
}

/* Admin usa display toggling en vez de .active, pero necesita el mismo "bottom offset" del feed */
.admin-container {
    transform: none;
}

/* ==========================================================================
   MIS CITAS CONTAINER
   ========================================================================== */

/* Estilos específicos para mis-citas-container si los hay */

/* Contenidos con características comunes */
.mis-citas-content,
.editar-perfil-content,
.mi-perfil-content,
.reservar-cita-content {
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: var(--spacing-lg) var(--spacing-lg) var(--feed-scroll-pad-bottom);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

/* Headers con características comunes */
.mis-citas-header,
.editar-perfil-header,
.reservar-cita-header,
.mi-perfil-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
    padding-bottom: var(--spacing-lg);
    border-bottom: 1px solid var(--border-color);
}

.mi-perfil-header {
    min-height: 44px;
}

.mi-perfil-header .back-to-profile-btn {
    flex-shrink: 0;
}

.mi-perfil-header .mi-perfil-title {
    flex: 1 1 auto;
    margin: 0;
    text-align: left;
    min-width: 0;
}

.mi-perfil-header-actions {
    flex-shrink: 0;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
}

.mi-perfil-icon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--gray-medium);
    background: var(--bg-white);
    color: var(--title-color);
    cursor: pointer;
    transition: var(--transition-normal);
}

.mi-perfil-icon-btn:hover {
    border-color: var(--accent-violet);
    color: var(--accent-violet);
}

.mi-perfil-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 16px;
    margin-bottom: var(--spacing-lg);
    text-align: center;
    background: #fff5f5;
    border: 1px solid #fecaca;
    border-radius: 12px;
    color: #991b1b;
}

.mi-perfil-error[hidden] {
    display: none !important;
}

.mi-perfil-retry-btn {
    padding: 8px 18px;
    border-radius: 999px;
    border: none;
    background: var(--accent-violet);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    font-family: 'Catamaran', sans-serif;
}

.back-to-profile-btn {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    font-size: 1.1rem;
    color: #6c757d;
    cursor: pointer;
    padding: 10px;
    border-radius: 50%;
    transition: var(--transition-normal);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
}

.back-to-profile-btn:hover {
    background: #e9ecef;
    color: #495057;
    transform: scale(1.05);
}

/* Headers H3 con características comunes */
.mis-citas-header h3,
.editar-perfil-header h3,
.mi-perfil-header h3,
.reservar-cita-header h3 {
    color: var(--title-color);
    font-size: 1.8rem;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
    font-weight: 700;
}

/* Loading States con características comunes */
.citas-loading,
.editar-perfil-loading,
.mi-perfil-loading,
.reservar-cita-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
}

.citas-loading i {
    font-size: 2rem;
    color: var(--accent-rose);
    margin-bottom: 15px;
}

.citas-loading p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
}

/* No Citas State */
.no-citas {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
}

.no-citas i {
    font-size: 3rem;
    color: #adb5bd;
    margin-bottom: 20px;
}

.no-citas h4 {
    color: #1a1a1a;
    font-size: 1.5rem;
    margin-bottom: 10px;
    font-family: 'Catamaran', sans-serif;
    font-weight: 600;
}

.no-citas p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
    line-height: 1.5;
}

/* Citas List */
.citas-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cita-item {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 12px;
    padding: var(--spacing-lg);
    transition: var(--transition-normal);
}

.cita-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    border-color: var(--accent-rose);
}

.cita-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.cita-fecha {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #495057;
    font-weight: 500;
}

.cita-fecha i {
    color: var(--accent-rose);
    font-size: 1rem;
}

.cita-estado {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
}

.cita-estado.pendiente {
    background: #fff3cd;
    color: #856404;
}

.cita-estado.confirmada,
.cita-estado.confirmado {
    background: #d1edff;
    color: #0c5460;
}

.cita-estado.completada,
.cita-estado.completado {
    background: #d4edda;
    color: #155724;
}

.cita-estado.cancelada,
.cita-estado.cancelado {
    background: #f8d7da;
    color: #721c24;
}

.cita-servicios {
    margin-bottom: 15px;
}

.cita-servicios h4 {
    color: #1a1a1a;
    font-size: 1rem;
    margin-bottom: 8px;
    font-weight: 600;
}

.cita-servicios ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.cita-servicios li {
    color: #495057;
    font-size: 0.9rem;
    padding: 4px 0;
    border-bottom: 1px solid #f0f0f0;
}

.cita-servicios li:last-child {
    border-bottom: none;
}

.cita-precio {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid #e9ecef;
}

.precio-label {
    color: #495057;
    font-weight: 500;
}

.precio-valor {
    color: var(--accent-rose);
    font-size: 1.2rem;
    font-weight: 700;
}

/* Mis citas (app): tarjeta cita = publicación */
.mis-cita-card {
    overflow: hidden;
}

.mis-cita-card__body--stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-self: stretch;
}

/* Fecha y hora: esquina superior derecha de la miniatura, una sola línea */
.mis-cita-card__fecha-overlay {
    position: absolute;
    z-index: 3;
    top: 6px;
    right: 6px;
    left: 6px;
    bottom: auto;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    pointer-events: none;
}

.mis-cita-card__fecha-overlay-inner {
    display: block;
    max-width: 100%;
    padding: 5px 7px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.93);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    text-align: right;
}

.mis-cita-card__fecha-line {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.68rem;
    font-weight: 700;
    color: #3a2f45;
    letter-spacing: 0.01em;
}

.mis-cita-card__fecha-sep {
    color: #9a8a9e;
    font-weight: 600;
}

.mis-cita-card__fecha-hora {
    color: var(--accent-rose);
    font-weight: 800;
}

.mis-cita-accordion {
    border: 1px solid #e8e8ef;
    border-radius: 12px;
    background: #fafafc;
    overflow: hidden;
}

.mis-cita-accordion__summary {
    list-style: none;
    cursor: pointer;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    user-select: none;
    font-family: 'Catamaran', sans-serif;
    color: var(--title-color);
}

.mis-cita-accordion__summary::-webkit-details-marker {
    display: none;
}

.mis-cita-accordion__summary::marker {
    content: '';
}

.mis-cita-accordion__summary-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    text-align: left;
    min-width: 0;
}

.mis-cita-accordion__summary-main {
    font-size: 0.95rem;
    font-weight: 700;
}

.mis-cita-accordion__summary-sub {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6b6b7a;
    line-height: 1.3;
}

.mis-cita-accordion--publicacion .mis-cita-accordion__summary-sub {
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.35;
    color: #5c6470;
}

.mis-cita-accordion__chev {
    flex-shrink: 0;
    font-size: 0.75rem;
    color: var(--accent-violet);
    transition: transform 0.2s ease;
}

.mis-cita-accordion[open] .mis-cita-accordion__chev {
    transform: rotate(180deg);
}

.mis-cita-accordion__body {
    padding: 0 14px 14px;
    border-top: 1px solid #ececf2;
    background: #fff;
}

.mis-cita-accordion__body--publicacion {
    padding: 12px 14px 16px;
    border-top: 1px solid #f0f0f5;
    background: #fdfdfe;
}

.mis-cita-accordion__body > .mis-cita-chips:first-child {
    margin-top: 10px;
}

.mis-cita-accordion__body .mis-cita-publicacion {
    margin-top: 0;
    margin-bottom: 10px;
}

.mis-cita-accordion__body .mis-cita-card__cta:first-of-type {
    margin-top: 0;
}

/* Panel «Publicación»: ritmo vertical unificado, sin márgenes extra entre bloques */
.mis-cita-pub-panel {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mis-cita-pub-panel > .mis-cita-card__cta,
.mis-cita-pub-panel > .mis-cita-pub-footer {
    margin-top: 0;
}

.mis-cita-pub-section {
    margin: 0;
}

.mis-cita-pub-section-head {
    margin-bottom: 8px;
}

.mis-cita-pub-section--titulo .mis-cita-pub-section-head {
    margin-bottom: 4px;
}

.mis-cita-pub-panel .mis-cita-pub-section--titulo + .mis-cita-fotos {
    margin-top: -4px;
}

.mis-cita-pub-panel .mis-cita-pub-section--titulo .mis-cita-publicacion-desc-msg {
    margin-top: 2px;
    min-height: 1em;
}

.mis-cita-pub-section-kicker {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7a7589;
}

.mis-cita-pub-footer {
    margin: 0;
    padding: 0;
    text-align: center;
}

.mis-cita-pub-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--accent-violet);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.mis-cita-pub-link:hover {
    color: var(--accent-plum);
}

.mis-cita-fotos-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 12px;
    width: 100%;
}

.mis-cita-fotos-pub-hint {
    font-size: 0.72rem;
    font-weight: 600;
    color: #198754;
    white-space: nowrap;
    max-width: 100%;
    text-align: right;
}

@media (max-width: 420px) {
    .mis-cita-fotos-pub-hint {
        white-space: normal;
        text-align: left;
        flex: 1 1 100%;
    }
}

.mis-cita-card__layout {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.mis-cita-card__thumb {
    position: relative;
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(145deg, #f0e6ff 0%, #fde8ef 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Estado superpuesto sobre la miniatura (por encima de la fecha) */
.mis-cita-card__estado {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    margin: 0;
    padding: 5px 8px 6px;
    text-align: center;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.12);
}

.mis-cita-card__thumb img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mis-cita-card__thumb-placeholder {
    color: var(--accent-violet);
    font-size: 1.75rem;
    opacity: 0.85;
}

.mis-cita-card__body {
    flex: 1;
    min-width: 0;
}

.mis-cita-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.mis-cita-chip {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(218, 59, 133, 0.12);
    color: #a12d66;
}

.mis-cita-card__header {
    margin-bottom: 10px;
}

.mis-cita-duracion {
    margin: 0 0 10px;
    font-size: 0.85rem;
    color: #5c5c6e;
    display: flex;
    align-items: center;
    gap: 6px;
}

.mis-cita-duracion i {
    color: var(--accent-rose);
    font-size: 0.9rem;
}

.mis-cita-servicios ul {
    margin: 0;
}

.mis-cita-servicios-more {
    color: #888 !important;
    font-size: 0.85rem !important;
    font-style: italic;
    border-bottom: none !important;
}

.mis-cita-notas {
    margin: 12px 0;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 10px;
    border: 1px solid #eee;
}

.mis-cita-notas-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #888;
    margin-bottom: 4px;
}

.mis-cita-notas p {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: #444;
}

.mis-cita-notas--detalle {
    margin-top: 14px;
}

.mis-cita-notas-body {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: #444;
    white-space: pre-wrap;
    word-break: break-word;
}

.mis-cita-detalle-block-title {
    margin: 0 0 8px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #3a2f45;
}

/* Jerarquía tipo wizard: categoría → ms-3 (indent-1) → ms-5 (indent-2) */
.mis-cita-detalle-hier {
    font-size: 0.875rem;
}

.mis-cita-detalle-hier-cat-title {
    font-weight: 700;
    color: #1f2330;
    margin-bottom: 8px;
    font-size: 0.9rem;
}

.mis-cita-detalle-hier-subtitle {
    font-weight: 600;
    margin-top: 8px;
    margin-bottom: 4px;
    color: #333;
    font-size: 0.8rem;
}

.mis-cita-detalle-hier-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 4px;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
}

.mis-cita-detalle-hier-indent-1 {
    padding-left: 0.75rem;
}

.mis-cita-detalle-hier-indent-2 {
    padding-left: 1.75rem;
}

.mis-cita-detalle-hier-main {
    flex: 1;
    min-width: 0;
    color: #333;
}

.mis-cita-detalle-hier-meta {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8b7c94;
}

.mis-cita-detalle-hier-precio {
    flex-shrink: 0;
    font-weight: 600;
    color: #3a2f45;
}

.mis-cita-detalle-hier-desc {
    font-size: 0.78rem;
    color: #666;
    margin-bottom: 6px;
    margin-top: -2px;
}

.mis-cita-detalle-servicios,
.mis-cita-detalle-opciones {
    margin-top: 12px;
}

.mis-cita-detalle-grupo {
    margin-bottom: 10px;
}

.mis-cita-detalle-sub {
    margin: 0 0 6px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #7a6b82;
}

.mis-cita-detalle-sub--success {
    color: #1e6b3a;
    display: flex;
    align-items: center;
    gap: 6px;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.82rem;
}

.mis-cita-detalle-list {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.mis-cita-detalle-list > li {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.mis-cita-detalle-list > li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.mis-cita-detalle-line {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    font-size: 0.86rem;
    line-height: 1.4;
}

.mis-cita-detalle-line-main {
    flex: 1;
    min-width: 0;
    color: #333;
}

.mis-cita-detalle-meta {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    color: #8b7c94;
    margin-right: 2px;
}

.mis-cita-detalle-meta--inline {
    font-weight: 500;
    color: #888;
}

.mis-cita-detalle-qty {
    font-weight: 600;
    color: #666;
}

.mis-cita-detalle-desc {
    margin-top: 4px;
    font-size: 0.78rem;
    color: #777;
    line-height: 1.35;
}

.mis-cita-detalle-precio {
    flex-shrink: 0;
    font-weight: 600;
    color: #3a2f45;
    font-variant-numeric: tabular-nums;
}

.mis-cita-detalle-precio--success {
    color: #1e6b3a;
}

.mis-cita-detalle-totales {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.mis-cita-detalle-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.86rem;
    margin-bottom: 6px;
    gap: 10px;
}

.mis-cita-detalle-row--descuento {
    color: #1e6b3a;
}

.mis-cita-detalle-row--total {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    font-size: 0.92rem;
}

.mis-cita-detalle-descuentos-aplicados {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed rgba(30, 107, 58, 0.25);
}

.mis-cita-detalle-descuentos-list {
    margin: 6px 0 0;
    padding-left: 0;
    list-style: none;
}

.mis-cita-detalle-descuentos-list > li {
    margin-bottom: 6px;
}

.mis-cita-detalle-descuentos-list > li:last-child {
    margin-bottom: 0;
}

.mis-cita-publicacion {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(212, 237, 218, 0.45);
    border: 1px solid rgba(21, 87, 36, 0.2);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mis-cita-publicacion-title {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #155724;
    display: flex;
    align-items: center;
    gap: 6px;
}

.mis-cita-publicacion-meta {
    font-size: 0.85rem;
    color: #1e4d2a;
}

.mis-cita-precio {
    margin-top: 8px;
    padding-top: 12px;
}

.mis-cita-hint {
    margin: 12px 0 0;
    font-size: 0.82rem;
    color: #666;
    line-height: 1.4;
}

.mis-cita-card__cta {
    margin-top: 14px;
}

.mis-cita-card__cta--highlight {
    padding: 14px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(218, 59, 133, 0.1) 0%, rgba(138, 92, 246, 0.12) 100%);
    border: 1px solid rgba(218, 59, 133, 0.28);
}

.mis-cita-card__cta-text {
    margin: 0 0 12px;
    font-size: 0.9rem;
    line-height: 1.45;
    color: #3a2f45;
}

.mis-cita-card__cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.mis-cita-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    font-family: 'Catamaran', sans-serif;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.mis-cita-btn--primary {
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-rose) 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(218, 59, 133, 0.35);
}

.mis-cita-btn--primary:hover {
    color: #fff;
    transform: translateY(-1px);
}

.mis-cita-btn--secondary {
    background: #fff;
    color: var(--accent-violet);
    border: 2px solid rgba(138, 92, 246, 0.45);
}

.mis-cita-btn--ghost {
    background: transparent;
    color: #555;
    border: 1px solid #ddd;
}

.mis-cita-btn--ghost:hover {
    background: #f8f9fa;
}

.no-citas .mis-cita-btn {
    margin-top: 18px;
}

.mis-cita-card.mis-cita-card--cancelada {
    opacity: 0.88;
}

/* ==========================================================================
   EDITAR PERFIL CONTAINER
   ========================================================================== */

/* Estilos específicos para editar-perfil-container si los hay */

/* Estilos específicos para editar-perfil-content si los hay */

/* Estilos específicos para editar-perfil-header si los hay */

/* Estilos específicos para editar-perfil-header h3 si los hay */

/* Estilos específicos para editar-perfil-loading si los hay */

.editar-perfil-loading i {
    font-size: 2rem;
    color: var(--accent-rose);
    margin-bottom: 15px;
}

.editar-perfil-loading p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
}

/* Form Styles */
.editar-perfil-form {
    max-width: 500px;
    margin: 0 auto;
    width: 100%;
}

.profile-avatar-section {
    text-align: center;
    margin-bottom: 30px;
    padding: var(--spacing-lg);
    background: #f8f9fa;
    border-radius: 16px;
    border: 2px dashed #e9ecef;
}

/* Estilos específicos para current-avatar */
.current-avatar {
    position: relative;
    width: 100px;
    height: 100px;
    margin: 0 auto 15px;
    cursor: pointer;
    transition: var(--transition-normal);
}

.current-avatar:hover {
    transform: scale(1.05);
}

/* Estilos específicos para current-avatar img */

.avatar-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.current-avatar:hover .avatar-overlay {
    opacity: 1;
}

.avatar-overlay i {
    color: white;
    font-size: 1.5rem;
}

.change-photo-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: var(--accent-violet);
    color: white;
    border: none;
    border-radius: 25px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-normal);
}

.change-photo-btn:hover {
    background: var(--accent-plum);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(254, 44, 85, 0.3);
}

/* Estilos específicos para textarea */
.form-group textarea {
    resize: vertical;
    min-height: 80px;
}

/* ==========================================================================
   MI PERFIL CONTAINER
   ========================================================================== */

/* Estilos específicos para mi-perfil-container si los hay */

/* Estilos específicos para mi-perfil-content si los hay */

/* Estilos específicos para mi-perfil-header si los hay */

/* Estilos específicos para mi-perfil-header h3 si los hay */

/* Estilos específicos para mi-perfil-loading si los hay */

.mi-perfil-loading i {
    font-size: 2rem;
    color: var(--accent-rose);
    margin-bottom: 15px;
}

.mi-perfil-loading p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
}

/* Profile Header */
.profile-header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-plum) 100%);
    color: white;
}

/* Estilos específicos para profile-avatar-large */
.profile-avatar-large {
    width: 80px;
    height: 80px;
    border: 3px solid rgba(255, 255, 255, 0.3);
    flex-shrink: 0;
}

/* Estilos específicos para profile-avatar-large img */

.profile-stats {
    display: flex;
    gap: 20px;
    flex: 1;
}

.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.stat-number {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.stat-label {
    font-size: 0.8rem;
    opacity: 0.9;
}

/* Profile Details */
.profile-details {
    padding: var(--spacing-lg);
    background: #ffffff;
    border-bottom: 1px solid #f0f0f0;
}

.profile-name-row,
.profile-username-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
}

.profile-name-row {
    margin-bottom: 4px;
}

.profile-username-row {
    margin-bottom: 10px;
}

.profile-details.profile-details--no-bio .profile-username-row {
    margin-bottom: 4px;
}

.profile-name {
    color: #1a1a1a;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
}

.profile-username {
    color: #666666;
    font-size: 1rem;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
}

.profile-level {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 15px;
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 20px;
    width: fit-content;
}

.profile-level--inline {
    margin-bottom: 0;
    flex-shrink: 0;
}

.profile-level i {
    color: #ffc107;
    font-size: 0.9rem;
}

.profile-level span {
    color: #1a1a1a;
    font-size: 0.9rem;
    font-weight: 600;
}

.profile-bio {
    color: #666666;
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
}

/* Profile Tabs */
.profile-tabs {
    display: flex;
    background: #ffffff;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 60px;
    z-index: 5;
}

.tab-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px;
    background: none;
    border: none;
    color: #666666;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-normal);
    border-bottom: 2px solid transparent;
}

.tab-btn:hover {
    color: var(--accent-rose);
    background: #f8f9fa;
}

.tab-btn.active {
    color: var(--accent-rose);
    border-bottom-color: var(--accent-rose);
}

.tab-btn i {
    font-size: 1rem;
}

/* Tab Content */
.tab-content {

}

.tab-pane {
    display: none;

}

.tab-pane.active {
    display: block;
}

/* Images Loading and No Images */
.images-loading,
.no-images {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
}

.images-loading i,
.no-images i {
    font-size: 2rem;
    color: var(--accent-rose);
    margin-bottom: 15px;
}

.images-loading p,
.no-images p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
}

.no-images h4 {
    color: #1a1a1a;
    font-size: 1.2rem;
    margin: 0 0 10px 0;
    font-weight: 600;
}

/* Fotos por cita (Mis Citas): sin card gris envolvente; solo el bloque de subida lleva énfasis visual */
.mis-cita-fotos {
    margin-top: 4px;
    padding: 0;
    border: none;
    background: transparent;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mis-cita-fotos-header {
    margin: 0;
    padding: 0;
}

.mis-cita-publicacion-desc-wrap {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #ececf2;
}

.mis-cita-pub-panel .mis-cita-publicacion-desc-wrap--standalone,
.mis-cita-publicacion-desc-wrap--standalone {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    margin-bottom: 0;
}

.mis-cita-publicacion-desc-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--title-color);
    margin-bottom: 6px;
}

.mis-cita-publicacion-desc-msg {
    margin: 6px 0 0;
    min-height: 1.1rem;
    font-size: 0.72rem;
    color: #6b6578;
}

.mis-cita-pub-panel .mis-cita-publicacion-desc {
    border-radius: 10px;
    border: 1px solid #e6e4ed;
    background: #fff;
    font-size: 0.88rem;
    line-height: 1.35;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

.mis-cita-pub-panel .mis-cita-publicacion-desc:focus {
    border-color: rgba(218, 59, 133, 0.45);
    box-shadow: 0 0 0 3px rgba(218, 59, 133, 0.12);
}

.mis-cita-fotos-help {
    margin: 0;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.45;
}

.mis-cita-fotos-empty {
    margin: 0;
    font-size: 0.82rem;
    color: #777;
    font-style: normal;
    line-height: 1.4;
}

.mis-cita-fotos-list-inner {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}

.mis-cita-foto-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    padding: 6px 8px;
    background: #fff;
    border-radius: 10px;
    border: 1px solid #ececf2;
}

.mis-cita-foto-thumb {
    width: 56px;
    height: 56px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

.mis-cita-foto-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mis-cita-foto-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.mis-cita-fotos-upload {
    margin-top: 2px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid #e8e6ef;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
}

.mis-cita-fotos-upload-lead {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}

.mis-cita-fotos-upload-icon {
    flex-shrink: 0;
    font-size: 1.15rem;
    line-height: 1;
    color: #9a92ae;
    margin-top: 3px;
}

.mis-cita-fotos-upload-lead-text {
    min-width: 0;
}

.mis-cita-fotos-upload-title {
    display: block;
    font-size: 0.88rem;
    font-weight: 700;
    color: #2f2840;
    letter-spacing: -0.01em;
}

.mis-cita-fotos-upload-caption {
    display: block;
    margin-top: 2px;
    font-size: 0.72rem;
    color: #8a8499;
    line-height: 1.35;
}

.mis-cita-fotos-upload-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.mis-cita-fotos-file-btn {
    flex-shrink: 0;
    cursor: pointer;
    margin: 0;
}

.mis-cita-fotos-upload-actions .mis-cita-fotos-send {
    flex-shrink: 0;
}

@media (max-width: 420px) {
    .mis-cita-fotos-upload-actions .mis-cita-fotos-send {
        flex: 1 1 100%;
        max-width: none;
    }
}

.mis-cita-fotos-msg {
    margin: 8px 0 0;
    font-size: 0.82rem;
    color: #c0392b;
    min-height: 1.2em;
}

/* Ocultar input file pero mantener foco/etiqueta (respaldo si falta .visually-hidden del tema) */
.mis-cita-fotos .mis-cita-fotos-file.visually-hidden,
.mis-cita-pub-panel .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.mis-cita-card__cta--compact {
    margin-top: 10px;
    padding-top: 0;
    border-top: none;
}

/* Images Grid for Mi Perfil */
.mi-perfil-container .images-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    padding: 0;
}

.mi-perfil-container button.imagen-item--open-feed {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: inherit;
    -webkit-appearance: none;
    appearance: none;
}

.mi-perfil-container button.imagen-item--open-feed:focus-visible {
    outline: 2px solid var(--accent-rose);
    outline-offset: 2px;
}

.mi-perfil-container .imagen-item {
    aspect-ratio: 1;
    position: relative;
    overflow: hidden;
}

.mi-perfil-container .imagen-container {
    width: 100%;
    height: 100%;
    position: relative;
}

.mi-perfil-container .imagen-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease, filter 0.35s ease;
}

.mi-perfil-container .imagen-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 50%);
    display: flex;
    align-items: flex-end;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.mi-perfil-container .imagen-item:hover .imagen-overlay {
    opacity: 1;
}

.mi-perfil-container .imagen-item:hover .imagen-container img {
    transform: scale(1.05);
    filter: var(--morita-img-vivid-filter-hover);
}

.mi-perfil-container .imagen-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px;
    width: 100%;
    color: white;
    font-size: 0.7rem;
}

.mi-perfil-container .imagen-fecha,
.mi-perfil-container .imagen-likes {
    display: flex;
    align-items: center;
    gap: 4px;
}

.mi-perfil-container .imagen-likes i {
    color: var(--accent-rose);
    font-size: 0.8rem;
}

.mi-perfil-container .imagen-item__stack-badge {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 3;
    min-width: 26px;
    height: 26px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: rgba(0, 0, 0, 0.75);
    color: #fff;
    border-radius: 13px;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.mi-perfil-container .imagen-item__stack-badge i {
    font-size: 0.7rem;
    opacity: 0.95;
}

.mi-perfil-container .imagen-item-hint {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    pointer-events: none;
}

.mi-perfil-content {
    position: relative;
    touch-action: pan-y;
}

.mi-perfil-pull-indicator {
    position: absolute;
    top: 52px;
    left: 50%;
    transform: translateX(-50%) translateY(-120%);
    z-index: 5;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--accent-violet);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
}

.mi-perfil-pull-indicator--visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.mi-perfil-skeleton {
    padding: 16px;
    animation: miPerfilSkeletonPulse 1.2s ease-in-out infinite;
}

@keyframes miPerfilSkeletonPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.65; }
}

.mi-perfil-skeleton-header {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 20px;
}

.mi-perfil-skeleton-avatar {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #e9ecef;
    flex-shrink: 0;
}

.mi-perfil-skeleton-stats {
    flex: 1;
    display: flex;
    gap: 12px;
}

.mi-perfil-skeleton-stats span {
    flex: 1;
    height: 40px;
    border-radius: 8px;
    background: #e9ecef;
}

.mi-perfil-skeleton-lines {
    margin-bottom: 20px;
}

.mi-perfil-skeleton-line {
    display: block;
    height: 14px;
    border-radius: 6px;
    background: #e9ecef;
    margin-bottom: 10px;
}

.mi-perfil-skeleton-line.lg { width: 70%; }
.mi-perfil-skeleton-line.sm { width: 40%; }

.mi-perfil-skeleton-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
}

.mi-perfil-skeleton-grid span {
    aspect-ratio: 1;
    border-radius: 4px;
    background: #e9ecef;
}

.mi-perfil-empty-cta {
    margin-top: 12px;
}

.mi-perfil-share-sheet[hidden],
.mi-perfil-qr-modal[hidden] {
    display: none !important;
}

.mi-perfil-share-sheet,
.mi-perfil-qr-modal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.mi-perfil-qr-modal {
    align-items: center;
}

.mi-perfil-share-sheet-backdrop,
.mi-perfil-qr-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}

.mi-perfil-share-sheet-panel {
    position: relative;
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 16px 16px 0 0;
    padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
}

.mi-perfil-share-sheet-panel h4 {
    margin: 0 0 12px;
    font-size: 1.1rem;
}

.mi-perfil-share-sheet-action {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: #fff;
    margin-bottom: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 1rem;
    text-align: left;
}

.mi-perfil-share-sheet-close {
    width: 100%;
    margin-top: 8px;
    padding: 10px;
    border: none;
    background: transparent;
    color: var(--accent-violet);
    font-weight: 600;
    cursor: pointer;
}

.mi-perfil-qr-panel {
    position: relative;
    background: #fff;
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    max-width: 90vw;
}

.mi-perfil-qr-panel h4 {
    margin: 0 0 12px;
}

.mi-perfil-qr-hint {
    font-size: 0.85rem;
    color: #666;
    margin: 12px 0;
}

.profile-viewer-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    touch-action: none;
    z-index: 10050 !important; /* Por encima de hojas compartir/QR (2200) y share-overlay del feed */
    transform: none !important;
    transition: none !important;
    background: #000;
    /* Ajuste fino sobre la línea del feed (negativo = un poco más abajo) */
    --profile-viewer-dots-extra: -0.35rem;
}

.profile-viewer-overlay .gallery-overlay {
    pointer-events: auto;
    z-index: 5;
    /* Pantalla completa: no reservar alto de la barra del feed; pegar controles al borde inferior */
    padding: 16px 22px calc(10px + env(safe-area-inset-bottom, 0px));
}

.profile-viewer-overlay .gallery-info {
    margin-bottom: 8px;
}

.profile-viewer-overlay .gallery-description {
    margin-top: 4px;
    margin-bottom: 0;
}

/* Puntos: misma línea base que #horizontalIndicators del feed + un poco por encima del bloque del usuario */
.profile-viewer-overlay .horizontal-indicators {
    bottom: calc(
        var(--gallery-indicators-bottom) + var(--profile-viewer-dots-extra) + env(safe-area-inset-bottom, 0px)
    );
    z-index: 2140;
}

.profile-viewer-scroll-hint {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2130;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px 14px 8px;
    max-width: min(20rem, calc(100vw - 2rem));
    pointer-events: none;
    text-align: center;
    color: rgba(255, 255, 255, 0.95);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85);
}

/* Misma referencia vertical que el feed; un poco más abajo que los puntos */
.profile-viewer-overlay .profile-viewer-scroll-hint {
    bottom: calc(
        max(0.5rem, var(--gallery-indicators-bottom) - 3.25rem) + env(safe-area-inset-bottom, 0px)
    );
}

.profile-viewer-scroll-hint[hidden] {
    display: none !important;
}

.profile-viewer-scroll-hint-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    line-height: 1;
    animation: profileViewerScrollHintBounce 1.35s ease-in-out infinite;
}

.profile-viewer-scroll-hint-label {
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: 0.01em;
    opacity: 0.92;
}

@keyframes profileViewerScrollHintBounce {
    0%, 100% {
        transform: translateY(0);
        opacity: 0.85;
    }
    50% {
        transform: translateY(6px);
        opacity: 1;
    }
}

.profile-viewer-overlay[hidden] {
    display: none !important;
}

body.profile-viewer-open #scrollUp {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.profile-viewer-close {
    position: absolute;
    top: calc(12px + env(safe-area-inset-top));
    right: 12px;
    z-index: 2200;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 1.25rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.profile-viewer-overlay .gallery-wrapper {
    height: 100%;
}

/* Flechas del feed principal eliminadas del visor de perfil: solo gestos / teclado / rueda */

.editar-perfil-privacy-wrap {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border-color);
}

.editar-perfil-privacy-title {
    margin: 0 0 var(--spacing-md);
    font-size: 1.1rem;
    font-weight: 700;
    font-family: 'Catamaran', sans-serif;
    color: var(--title-color);
}

.privacidad-intro {
    color: #555;
    margin-bottom: 20px;
}

.privacidad-field {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}

.privacidad-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.privacidad-label {
    font-weight: 600;
    color: var(--title-color);
    cursor: pointer;
}

.privacidad-switch {
    width: 48px;
    height: 28px;
    accent-color: var(--accent-violet);
    cursor: pointer;
}

.privacidad-help {
    margin: 8px 0 0;
    font-size: 0.88rem;
    color: #666;
}

.privacidad-status {
    min-height: 1.25rem;
    font-size: 0.9rem;
    color: var(--accent-violet);
}

.profile-details .profile-bio.placeholder-muted,
.profile-name.placeholder-muted {
    color: #9ca3af;
    font-style: italic;
}

/* Estilos generales para imágenes (necesarios para Mi Perfil) */
.imagen-item {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: var(--transition-normal);
    aspect-ratio: 1;
}

.imagen-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.imagen-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.imagen-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.imagen-item:hover .imagen-container img {
    transform: scale(1.05);
}

.imagen-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    padding: 15px 10px 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.imagen-item:hover .imagen-overlay {
    opacity: 1;
}

.imagen-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: white;
    font-size: 0.8rem;
}

.imagen-fecha {
    display: flex;
    align-items: center;
    gap: 5px;
}

.imagen-fecha i {
    font-size: 0.7rem;
}

.imagen-likes {
    display: flex;
    align-items: center;
    gap: 5px;
}

.imagen-likes i {
    color: var(--accent-rose);
    font-size: 0.8rem;
}



/* Contenido del User Screen */
.user-screen-container .auth-section,
.user-screen-container .login-form,
.user-screen-container .register-form,
.user-screen-container .user-profile-section {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--spacing-lg) var(--spacing-lg) var(--feed-scroll-pad-bottom);
    min-height: calc(100vh - var(--feed-bottom-offset) - 1rem);
    min-height: calc(100dvh - var(--feed-bottom-offset) - 1rem);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

/* Auth Section */
.auth-section {
    padding: 40px 30px;
    text-align: center;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f0f0;
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
}

.auth-header h3 {
    color: #1a1a1a;
    font-size: 2.2rem;
    margin-bottom: 12px;
    font-family: 'Catamaran', sans-serif;
    font-weight: 700;
}

.auth-header p {
    color: #666666;
    font-size: 1rem;
    margin-bottom: 40px;
    line-height: 1.5;
}

.auth-buttons {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.auth-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 24px;
    border: none;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-normal);
    font-family: 'Catamaran', sans-serif;
    color: white;
    width: 100%;
    max-width: 300px;
    position: relative;
    overflow: hidden;
}

.login-btn {
    background: linear-gradient(135deg, var(--pink-primary) 0%, var(--pink-secondary) 100%);
    box-shadow: 0 4px 15px rgba(254, 44, 85, 0.3);
}

.login-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(253, 28, 121, 0.35);
    background: linear-gradient(135deg, var(--accent-plum) 0%, var(--accent-rose) 100%);
}

.register-btn {
    background: var(--bg-white);
    color: var(--title-color);
    border: 2px solid var(--gray-medium);
    box-shadow: 0 1px 3px var(--shadow-light);
}

.register-btn:hover {
    transform: translateY(-2px);
    background: var(--bg-corn-silk);
    border-color: var(--accent-violet);
    color: var(--accent-violet);
    box-shadow: 0 4px 16px rgba(218, 59, 133, 0.12);
}

/* Form Styles */
.login-form, .register-form {
    padding: 40px 30px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f0f0;
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
}

.form-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-bottom: 30px;
}

.back-btn {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    font-size: 1.1rem;
    color: #6c757d;
    cursor: pointer;
    padding: 0;
    border-radius: 50%;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}

.back-btn:hover {
    background: #e9ecef;
    color: #495057;
    transform: translateY(-50%) scale(1.05);
}

.auth-btn:focus-visible,
.menu-item:focus-visible,
.back-btn:focus-visible,
.bottom-nav .nav-item:focus-visible,
.back-to-profile-btn:focus-visible,
.horizontal-nav-btn:focus-visible,
.autoplay-btn:focus-visible,
.nav-btn:focus-visible {
    outline: 2px solid var(--accent-rose);
    outline-offset: 2px;
}

button.horizontal-indicator:focus-visible {
    outline: 2px solid var(--bg-white);
    outline-offset: 2px;
}

.form-header h3 {
    color: #1a1a1a;
    font-size: 1.8rem;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
    font-weight: 700;
    text-align: center;
    width: 100%;
    padding: 0 48px;
    box-sizing: border-box;
}

.form-group {
    margin-bottom: 24px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    color: #495057;
    font-weight: 600;
    font-size: 0.9rem;
    font-family: 'Catamaran', sans-serif;
}

/* Formularios con características comunes */
.form-group input,
.form-group textarea,
.reservar-cita-form .form-control {
    width: 100%;
    padding: 16px 18px;
    border: 2px solid var(--gray-medium);
    border-radius: 12px;
    font-size: 1rem;
    transition: var(--transition-normal);
    font-family: 'Catamaran', sans-serif;
    background: var(--bg-white);
    color: var(--title-color);
    box-sizing: border-box;
}

/* Placeholders comunes */
.form-group input::placeholder,
.form-group textarea::placeholder {
    color: var(--placeholder-color);
}

/* Focus states comunes */
.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--pink-primary);
    box-shadow: 0 0 0 3px rgba(254, 44, 85, 0.1);
    background: var(--bg-white);
}

.submit-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 24px;
    border: none;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-normal);
    font-family: 'Catamaran', sans-serif;
    background: linear-gradient(135deg, var(--pink-primary) 0%, var(--pink-secondary) 100%);
    color: white;
    box-shadow: 0 4px 15px rgba(254, 44, 85, 0.3);
}

.submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(253, 28, 121, 0.35);
    background: linear-gradient(135deg, var(--accent-plum) 0%, var(--accent-rose) 100%);
}

/* User Profile Section */
.user-profile-section {
    padding: 40px 30px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #f0f0f0;
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
}

.user-profile-header {
    text-align: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}

/* Estilos específicos para user-avatar-large */
.user-avatar-large {
    width: 100px;
    height: 100px;
    margin: 0 auto 20px;
    border: 4px solid #f8f9fa;
    background: #f8f9fa;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Estilos específicos para user-avatar-large img */

.user-avatar-large i {
    font-size: 3rem;
    color: #6c757d;
}

.user-name-large {
    color: #1a1a1a;
    font-size: 1.8rem;
    margin: 0;
    font-family: 'Catamaran', sans-serif;
    font-weight: 700;
}

.user-menu {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.menu-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: 16px 20px;
    border: 1px solid #f0f0f0;
    background: #ffffff;
    width: 100%;
    text-align: left;
    border-radius: 12px;
    cursor: pointer;
    transition: var(--transition-normal);
    text-decoration: none;
    color: #1a1a1a;
    font-family: 'Catamaran', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.menu-item:hover {
    background: #f8f9fa;
    border-color: #e9ecef;
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.menu-item.menu-item--reservar-cita {
    border: 2px solid var(--accent-violet);
    background: rgba(218, 59, 133, 0.06);
    box-shadow: 0 2px 12px rgba(218, 59, 133, 0.15);
}

.menu-item.menu-item--reservar-cita:hover {
    background: rgba(218, 59, 133, 0.1);
    border-color: var(--accent-violet);
}

.menu-item.menu-item--reservar-cita i:first-child {
    color: var(--accent-violet);
}

.menu-item i:first-child {
    color: #6c757d;
    font-size: 1.2rem;
    width: 25px;
}

.menu-item span {
    flex: 1;
    font-weight: 500;
}

.menu-item i:last-child {
    color: #adb5bd;
    font-size: 0.9rem;
}

.logout-btn {
    color: #dc3545 !important;
    border-top: 1px solid #f0f0f0;
    margin-top: 15px;
    padding-top: 20px;
}

.logout-btn i:first-child {
    color: #dc3545 !important;
}

.logout-btn:hover {
    background: #fff5f5 !important;
    border-color: #dc3545;
    color: #dc3545 !important;
}

/* Responsive adjustments - MOVED TO CONSOLIDATED MEDIA QUERIES */



/* ==========================================================================
   CLICKABLE USER NAMES
   ========================================================================== */

.user-name.clickable {
    cursor: pointer;
    transition: var(--transition-normal);
    position: relative;
}

.user-name.clickable:hover {
    color: var(--accent-rose);
    transform: translateY(-1px);
}

/* ==========================================================================
   RESERVAR CITA CONTAINER
   ========================================================================== */

.reservar-cita-loading i {
    font-size: 2rem;
    color: var(--accent-rose);
    margin-bottom: 15px;
}

.reservar-cita-loading p {
    color: #666666;
    font-size: 1rem;
    margin: 0;
}

.reservar-cita-form {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    position: relative;
}

/* NOTA: Los estilos específicos del formulario se han movido a cita.css para evitar duplicaciones */

.reservar-cita-form .card-header {
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-plum) 100%);
    color: white;
    border: none;
    padding: 15px 20px;
    font-weight: 600;
}

.reservar-cita-form .card-body {
    padding: var(--spacing-lg);
}

/* Estilos específicos para reservar-cita-form */
.reservar-cita-form .form-control {
    border-radius: 10px;
    padding: 12px 15px;
}

.reservar-cita-form .form-control:focus {
    border-color: var(--accent-violet);
    box-shadow: 0 0 0 0.2rem rgba(218, 59, 133, 0.25);
}

.reservar-cita-form .btn {
    border-radius: 10px;
    padding: 12px 25px;
    font-weight: 600;
    transition: var(--transition-normal);
    border: none;
}

.reservar-cita-form .violet-red--btn {
    background: linear-gradient(135deg, var(--accent-violet) 0%, var(--accent-plum) 100%);
    color: white;
}

.reservar-cita-form .violet-red--btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(218, 59, 133, 0.3);
}

.reservar-cita-form .tra-black--hover:hover {
    background: linear-gradient(135deg, var(--accent-plum) 0%, var(--accent-violet) 100%);
}

/* Estilos para las manos interactivas */


.reservar-cita-form .seleccion-info {
    background: rgba(218, 59, 133, 0.1);
    border-radius: 10px;
    padding: 15px;
    margin-top: 15px;
}

.reservar-cita-form .seleccion-info h6 {
    color: var(--accent-violet);
    margin-bottom: 10px;
    font-weight: 600;
}

/* Responsive para el formulario de reserva - MOVED TO CONSOLIDATED MEDIA QUERIES */

/* NOTA: Los estilos de combinacion-btn se han movido a cita.css para evitar duplicaciones */

/* Estilos para las tarjetas de la columna derecha */
.col-md-4 .card {
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    border: none;
    border-radius: 8px;
}

.col-md-4 .card-header {
    border-radius: 8px 8px 0 0 !important;
    border-bottom: none;
}

.col-md-4 .card-body {
    padding: 1.25rem;
}

/* Estilos específicos para el textarea de notas */
#notas {
    resize: vertical;
    min-height: 80px;
}

/* Estilos para los botones */
.col-md-4 .btn {
    border-radius: 6px;
    font-weight: 500;
    padding: 0.75rem 1rem;
}

/* Responsive - ELIMINADO (duplicado) */

/* ==========================================================================
   CONSOLIDATED MEDIA QUERIES
   ========================================================================== */

/* Tablet and smaller (768px and down) */
@media (max-width: 768px) {
    :root {
        --gallery-indicators-bottom: calc(var(--feed-bottom-offset) + 6.5rem);
    }

    /* Flechas arriba/abajo: solo en escritorio; en táctil se usa swipe / rueda */
    .gallery-nav {
        display: none;
    }

    /* Gallery adjustments */
    .floating-logo {
        top: 20px;
        left: 20px;
    }
    
    .logo-image {
        height: 50px;
    }
    
    .autoplay-toggle {
        top: 20px;
        right: 20px;
    }
    
    .autoplay-btn {
        padding: 10px 15px;
        font-size: 0.85rem;
    }
    
    .gallery-container {
        margin-top: 0;
    }
    
    .gallery-overlay {
        padding: 26px 20px calc(5px + var(--feed-bottom-offset));
    }
    
    .gallery-info {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: var(--spacing-md);
    }
    
    .gallery-actions {
        flex-shrink: 0;
    }
    
    .gallery-description {
        margin-bottom: 1.75rem;
    }
    
    .user-avatar {
        width: 40px;
        height: 40px;
    }
    
    .user-name {
        font-size: 1rem;
    }
    
    .like-button, .share-button {
        padding: 8px 12px;
    }
    
    .horizontal-indicators {
        gap: 12px;
    }
    
    .horizontal-indicator {
        width: 10px;
        height: 10px;
    }
    
    .horizontal-nav-left-container {
        left: 20px;
    }
    
    .horizontal-nav-right-container {
        right: 20px;
    }
    
    .horizontal-nav-btn {
        width: 45px;
        height: 45px;
    }
    
    /* Misma reserva que escritorio: la nav + safe-area no debe tapar el scroll */
    .user-screen-container,
    .mis-citas-container,
    .editar-perfil-container,
    .mi-perfil-container,
    .reservar-cita-container {
        bottom: var(--feed-bottom-offset);
    }
    
    .user-screen-container .auth-section,
    .user-screen-container .login-form,
    .user-screen-container .register-form,
    .user-screen-container .user-profile-section,
    .mis-citas-content,
    .editar-perfil-content,
    .mi-perfil-content,
    .reservar-cita-content,
    .admin-container .mis-citas-content {
        padding: 30px 15px var(--feed-scroll-pad-bottom);
        min-height: calc(100vh - var(--feed-bottom-offset) - 1rem);
        min-height: calc(100dvh - var(--feed-bottom-offset) - 1rem);
    }
    
    .auth-section,
    .login-form,
    .register-form,
    .user-profile-section {
        padding: 30px 20px;
        max-width: 350px;
        margin: 0 auto;
    }
    
    .editar-perfil-form {
        max-width: 400px;
    }
    
    .cita-item {
        padding: 15px;
    }
    
    .cita-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .mis-cita-card__layout {
        flex-direction: column;
        align-items: stretch;
    }

    .mis-cita-card__thumb {
        flex: none;
        width: 100%;
        height: 140px;
    }
    
    .imagenes-grid {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 12px;
    }
    
    .profile-header {
        padding: 15px;
        gap: var(--spacing-md);
    }
    
    .profile-avatar-large {
        width: 70px;
        height: 70px;
    }
    
    .profile-stats {
        gap: var(--spacing-md);
    }
    
    .stat-number {
        font-size: 1.3rem;
    }
    
    .stat-label {
        font-size: 0.7rem;
    }
    
    .profile-name {
        font-size: 1.3rem;
    }
    
    .mi-perfil-container .images-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Form adjustments */
    .reservar-cita-form {
        padding: 15px;
    }
    
    .reservar-cita-form .card-body {
        padding: 15px;
    }
    
    .reservar-cita-form .btn {
        padding: 10px 20px;
        font-size: 0.9rem;
    }
    
    .reservar-cita-form .svg-container {
        max-width: 250px;
    }
}

/* Mobile (480px and down) */
@media (max-width: 480px) {
    :root {
        --gallery-indicators-bottom: calc(var(--feed-bottom-offset) + 5.5rem);
    }

    /* Gallery adjustments */
    .floating-logo {
        top: 15px;
        left: 15px;
    }
    
    .logo-image {
        height: 40px;
    }
    
    .autoplay-toggle {
        top: 15px;
        right: 15px;
    }
    
    .autoplay-btn {
        padding: 8px 12px;
        font-size: 0.8rem;
    }
    
    .autoplay-text {
        display: none;
    }
    
    .gallery-overlay {
        padding: 20px 15px calc(4px + var(--feed-bottom-offset));
    }
    
    .gallery-info {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
    }
    
    .user-info {
        gap: 12px;
        flex-shrink: 0;
    }
    
    .gallery-actions {
        flex-shrink: 0;
        gap: var(--spacing-md);
    }
    
    .user-avatar {
        width: 35px;
        height: 35px;
    }
    
    .like-button, .share-button {
        padding: 6px 10px;
    }
    
    .like-count {
        font-size: 0.9rem;
    }
    
    .gallery-description {
        margin-bottom: 1.5rem;
    }
    
    .gallery-description p {
        font-size: 0.95rem;
    }
    
    .horizontal-indicators {
        gap: 10px;
    }
    
    .horizontal-indicator {
        width: 8px;
        height: 8px;
    }
    
    .horizontal-nav-left-container {
        left: 15px;
    }
    
    .horizontal-nav-right-container {
        right: 15px;
    }
    
    .horizontal-nav-btn {
        width: 40px;
        height: 40px;
    }
    
    .horizontal-nav-btn i {
        font-size: 1rem;
    }
    
    /* Navigation adjustments */
    .bottom-nav {
        padding: 8px 0 calc(8px + var(--feed-bottom-safe));
    }
    
    .nav-item {
        padding: 6px 12px;
    }
    
    .nav-item i {
        font-size: 1.1rem;
    }
    
    .nav-item span {
        font-size: 0.7rem;
    }
    
    .user-screen-container,
    .mis-citas-container,
    .editar-perfil-container,
    .mi-perfil-container,
    .reservar-cita-container {
        bottom: var(--feed-bottom-offset);
    }
    
    .user-screen-container .auth-section,
    .user-screen-container .login-form,
    .user-screen-container .register-form,
    .user-screen-container .user-profile-section,
    .mis-citas-content,
    .editar-perfil-content,
    .mi-perfil-content,
    .reservar-cita-content,
    .admin-container .mis-citas-content {
        padding: 20px 10px var(--feed-scroll-pad-bottom);
        min-height: calc(100vh - var(--feed-bottom-offset) - 1rem);
        min-height: calc(100dvh - var(--feed-bottom-offset) - 1rem);
    }
    
    .auth-section,
    .login-form,
    .register-form,
    .user-profile-section {
        padding: 25px 15px;
        max-width: 320px;
        margin: 0 auto;
    }
    
    .editar-perfil-form {
        max-width: 300px;
    }
    
    .auth-header h3 {
        font-size: 1.8rem;
    }
    
    .form-header h3 {
        font-size: 1.5rem;
    }
    
    .user-name-large {
        font-size: 1.5rem;
    }
    
    .mis-citas-header h3,
    .editar-perfil-header h3,
    .mi-perfil-header h3 {
        font-size: 1.5rem;
    }
    
    .cita-item {
        padding: 12px;
    }
    
    .cita-servicios h4 {
        font-size: 0.9rem;
    }
    
    .cita-servicios li {
        font-size: 0.8rem;
    }
    
    .imagenes-grid {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 10px;
    }
    
    .imagen-info {
        font-size: 0.7rem;
    }
    
    .current-avatar {
        width: 80px;
        height: 80px;
    }
    
    .change-photo-btn {
        padding: 8px 16px;
        font-size: 0.8rem;
    }
    
    .profile-header {
        padding: 12px;
        gap: 12px;
    }
    
    .profile-avatar-large {
        width: 60px;
        height: 60px;
    }
    
    .profile-stats {
        gap: 12px;
    }
    
    .stat-number {
        font-size: 1.1rem;
    }
    
    .stat-label {
        font-size: 0.6rem;
    }
    
    .profile-name {
        font-size: 1.2rem;
    }
    
    .profile-username {
        font-size: 0.9rem;
    }
    
    .profile-level {
        padding: 6px 10px;
        font-size: 0.8rem;
    }
    
    .profile-bio {
        font-size: 0.9rem;
    }
    
    .tab-btn {
        padding: 12px;
        font-size: 0.8rem;
    }
    
    .tab-btn i {
        font-size: 0.9rem;
    }
    
    .mi-perfil-container .images-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .mi-perfil-container .imagen-info {
        font-size: 0.6rem;
        padding: 6px;
    }
    
    /* Form adjustments */
    .reservar-cita-header {
        padding: 15px;
    }
    
    .reservar-cita-header h3 {
        font-size: 1.3rem;
    }
    
    .reservar-cita-form {
        padding: 10px;
    }
    
    .reservar-cita-form .card-body {
        padding: 12px;
    }
    
    .reservar-cita-form .btn {
        padding: 8px 16px;
        font-size: 0.8rem;
    }
    
    .reservar-cita-form .svg-container {
        max-width: 200px;
    }
}

/* Accessibility - Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .floating-logo {
        animation: none !important;
    }

    .logo-image {
        transition-duration: 0.01ms !important;
    }
}

/* NOTA: Todos los estilos de Bootstrap han sido eliminados. Ahora se usa Bootstrap real. */