/* ============================================
   Dr. Diaz App - Estilos Compartidos
   ============================================ */

/* iOS-style blur effect */
.ios-blur {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

/* Hide scrollbar */
.hide-scrollbar::-webkit-scrollbar,
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
.hide-scrollbar,
.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Material Symbols config */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.material-symbols-outlined.filled {
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Body min-height for mobile */
body {
    font-family: 'Inter', sans-serif;
    -webkit-tap-highlight-color: transparent;
    min-height: max(884px, 100dvh);
}

/* Page transitions */
.page {
    display: none;
    animation: fadeIn 0.25s ease-out;
}
.page.active {
    display: block;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Modal overlay */
.modal-overlay {
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* Modal slide-up */
.modal-sheet {
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
}
.modal-sheet.hidden-sheet {
    transform: translateY(120%);
}
.modal-sheet.visible-sheet {
    transform: translateY(0);
}

/* Message shadow */
.message-shadow {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

/* Toast notification */
.toast {
    position: fixed;
    top: 60px;
    left: 50%;
    transform: translateX(-50%) translateY(-100px);
    z-index: 100;
    transition: transform 0.3s ease;
    max-width: 90%;
}
.toast.show {
    transform: translateX(-50%) translateY(0);
}

/* Loading spinner */
.spinner {
    width: 24px;
    height: 24px;
    border: 3px solid rgba(25, 230, 25, 0.2);
    border-top-color: #19e619;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Skeleton loading */
.skeleton {
    background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s ease-in-out infinite;
    border-radius: 8px;
}
.dark .skeleton {
    background: linear-gradient(90deg, #1e293b 25%, #334155 50%, #1e293b 75%);
    background-size: 200% 100%;
}
@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Empty state */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    text-align: center;
}

/* Form validation */
input.error,
select.error {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2) !important;
}

/* Active press effect */
.press-effect {
    transition: transform 0.1s ease;
}
.press-effect:active {
    transform: scale(0.97);
}
