        :root {
            --principal: #078e96;
            --principal-oscuro: #08747b;
            --verde: #75ad58;
            --fondo: #f4f7f8;
            --texto: #19343b;
            --secundario: #65777c;
            --borde: #dfe8ea;
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            padding: 0;
            font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
            font-size: 14px;
            color: var(--texto);
            background: var(--fondo);
        }

        button,
        input,
        select,
        textarea {
            font: inherit;
        }

        button {
            cursor: pointer;
            padding: 10px 14px;
            border: none;
            border-radius: 10px;
            background: var(--principal);
            color: white;
            font-weight: 700;
            margin: 4px;
        }

        button:hover {
            background: var(--principal-oscuro);
        }

        button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

        input:not([type="checkbox"]),
        select,
        textarea {
            padding: 11px;
            border: 1px solid #cad8db;
            border-radius: 10px;
            background: white;
            max-width: 100%;
        }

        input:focus,
        select:focus,
        textarea:focus {
            outline: 2px solid var(--principal);
            outline-offset: 1px;
        }

        #pantallaLogin {
            min-height: 100vh;
            padding: 24px;
            background: var(--fondo);
        }

        #pantallaLogin form {
            max-width: 430px;
            margin: 40px auto;
            padding: 28px;
            background: white;
            border: 1px solid var(--borde);
            border-radius: 17px;
            box-shadow: 0 4px 18px #173b420d;
        }

        #pantallaLogin h2,
        #pantallaLogin h3 {
            text-align: center;
        }

        #pantallaLogin input {
            display: block;
            width: 100%;
            margin: 8px 0 16px;
        }

        #pantallaLogin button {
            width: 100%;
            margin: 8px 0;
        }

        #errorLogin {
            text-align: center;
            color: #a94343;
        }


        #contenidoSistema {
            padding: 0;
            max-width: 1400px;
            margin: 0 auto;
        }

        #resultado {
            background: white;
            border: 1px solid var(--borde);
            border-radius: 17px;
            padding: 20px;
            margin-top: 20px;
            min-height: 120px;
            box-shadow: 0 4px 18px #173b420d;
            overflow-x: auto;
        }

        #resultado:empty {
            display: none;
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        th,
        td {
            padding: 12px;
            border-bottom: 1px solid var(--borde);
            text-align: left;
        }

        th {
            background: #f8fbfb;
            color: var(--secundario);
        }

        @media (max-width: 800px) {
            #contenidoSistema {
                padding: 15px;
            }

            #resultado {
                padding: 12px;
            }
        }


        /* Menú lateral principal */

        #menuLateral {
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            width: 245px;
            background: #ffffff;
            border-right: 1px solid var(--borde);
            padding: 22px 14px;
            overflow-y: auto;
            z-index: 10;
        }

        .marcaMenu {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 35px;
        }

        .marcaMenu img {
            width: 52px;
            height: 52px;
            object-fit: contain;
            border-radius: 10px;
        }

        .marcaMenu strong {
            display: block;
            color: var(--principal-oscuro);
            font-size: 17px;
        }

        .marcaMenu small {
            color: var(--secundario);
        }

        #menuLateral h3 {
            font-size: 12px;
            color: var(--secundario);
            text-transform: uppercase;
            margin: 0 10px 14px;
        }

        #menuLateral button {
            display: block;
            width: 100%;
            margin: 4px 0;
            padding: 12px;
            text-align: left;
            background: transparent;
            color: #455e65;
            font-weight: 500;
        }

        #menuLateral button:hover {
            background: #e9f7f6;
            color: var(--principal-oscuro);
        }

        #contenidoSistema {
            max-width: none;
            margin-left: 245px;
        }

        @media (max-width: 800px) {
            #menuLateral {
                position: static;
                width: 100%;
                border-right: none;
                border-bottom: 1px solid var(--borde);
            }

            #contenidoSistema {
                margin-left: 0;
            }
        }


        /* Encabezado y área principal - Paso 44 */

        #encabezadoSistema {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            background: #ffffff;
            border-bottom: 1px solid var(--borde);
            padding: 18px 25px;
        }

        #encabezadoSistema h1 {
            font-size: 21px;
            margin: 0;
            color: var(--texto);
        }

        #encabezadoSistema p {
            margin: 5px 0 0;
            color: var(--secundario);
        }

        .sesionSistema {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .sesionSistema strong,
        .sesionSistema small {
            display: block;
            text-align: right;
        }

        .sesionSistema small {
            margin-top: 4px;
            color: var(--secundario);
        }

        #btnCerrarSesion {
            background: #edf4f4;
            color: var(--principal-oscuro);
        }

        #btnCerrarSesion:hover {
            background: #dcebec;
        }

        #areaPrincipal {
            padding: 16px;
        }

        #panelBusqueda {
            background: #ffffff;
            border: 1px solid var(--borde);
            border-radius: 16px;
            padding: 22px;
        }

        .tituloPanel {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 15px;
            margin-bottom: 20px;
        }

        .tituloPanel h2 {
            margin: 0;
            font-size: 21px;
        }

        .tituloPanel p {
            margin: 6px 0 0;
            color: var(--secundario);
        }

        .controlesBusqueda {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px;
        }

        #buscarPaciente {
            flex: 1;
            min-width: 210px;
        }

        .botonesInternos {
            display: none;
        }

        #resultado {
            margin-top: 20px;
        }

        @media (max-width: 800px) {

            #encabezadoSistema,
            .tituloPanel {
                flex-direction: column;
                align-items: flex-start;
            }

            .sesionSistema {
                width: 100%;
                justify-content: space-between;
            }

            .sesionSistema strong,
            .sesionSistema small {
                text-align: left;
            }

            #areaPrincipal {
                padding: 15px 0;
            }
        }

        /* Paso 46: opción activa del menú */


        /* Menú lateral: opción seleccionada */

        #menuLateral button.menuActivo,
        #menuLateral button.menuActivo:hover,
        #menuLateral button.menuActivo:focus {
            background-color: #e9f7f6 !important;
            color: #08747b !important;
            font-weight: 700;
            border-left: 4px solid #078e96;
            padding-left: 8px;
            border-radius: 10px;
        }


        #menuLateral button.menuActivo:hover {
            background: #d8f0ee;
        }


        /* Paso 47: Tabla de pacientes */

        .tablaPacientesContenedor {
            width: 100%;
            overflow-x: auto;
            background: white;
            border: 1px solid #dfe8ea;
            border-radius: 12px;
            margin-top: 18px;
        }

        .tablaPacientes {
            width: 100%;
            border-collapse: collapse;
            min-width: 560px;
        }

        .tablaPacientes th {
            background: #f4f7f8;
            color: #455e65;
            text-align: left;
            padding: 14px 16px;
            font-size: 13px;
        }

        .tablaPacientes td {
            padding: 14px 16px;
            border-top: 1px solid #e7edef;
            color: #19343b;
        }

        .tablaPacientes tbody tr:hover {
            background: #f8fbfb;
        }

        .estadoPaciente {
            display: inline-block;
            padding: 5px 11px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
        }

        .estadoPaciente.activo {
            background: #e8f5e9;
            color: #2e7d32;
        }

        .estadoPaciente.inactivo {
            background: #fcebea;
            color: #b4453d;
        }

        .botonVerExpediente {
            background: #078e96;
            color: white;
            border: none;
            border-radius: 8px;
            padding: 9px 14px;
            cursor: pointer;
        }

        .botonVerExpediente:hover {
            background: #08747b;
        }


        /* Paso 48.2: Encabezado del expediente clínico */

        .botonVolverExpediente {
            background: transparent;
            color: #078e96;
            border: none;
            padding: 8px 0;
            margin-bottom: 12px;
            font-weight: 700;
            cursor: pointer;
        }

        .botonVolverExpediente:hover {
            color: #08747b;
            text-decoration: underline;
        }

        .fichaPaciente {
            background: #ffffff;
            border: 1px solid #dfe8ea;
            border-radius: 15px;
            padding: 20px;
            margin-bottom: 20px;
        }

        .encabezadoPaciente {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
        }

        .encabezadoPaciente h2 {
            margin: 0;
            color: #19343b;
            font-size: 24px;
        }

        .datosGeneralesPaciente {
            color: #65777c;
            margin: 8px 0 16px;
            font-size: 14px;
        }

        .alertasPaciente {
            background: #fff3d2;
            border: 1px solid #f1ce73;
            border-radius: 12px;
            padding: 15px;
        }

        .alertasPaciente strong {
            color: #946500;
            font-size: 12px;
        }

        .alertasPaciente p {
            margin: 6px 0 0;
            color: #19343b;
            font-size: 14px;
        }


        /* Paso 48.3: Distribución del expediente */

        .encabezadoPaciente {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
        }

        .accionesPaciente {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 8px;
            margin-left: auto;
        }

        .accionesPaciente button {
            padding: 9px 12px;
            font-size: 12px;
            border-radius: 8px;
            white-space: nowrap;
        }

        /* Aprovechar mejor el espacio horizontal */
        #areaPrincipal {
            max-width: none;
            width: 100%;
            box-sizing: border-box;
        }

        #resultado {
            width: 100%;
            max-width: none;
            box-sizing: border-box;
        }

        /* Evitar márgenes acumulados en la ficha */
        .fichaPaciente {
            margin-left: 0;
            margin-right: 0;
        }

        /* Adaptación a pantallas pequeñas */
        @media (max-width: 900px) {
            .accionesPaciente {
                width: 100%;
                margin-left: 0;
            }

            .accionesPaciente button {
                white-space: normal;
            }
        }

        /* PASOS 48.4 Y 48.5 - Agregar al FINAL de public/styles.css */

        .resumenExpediente {
            display: grid;
            grid-template-columns: minmax(160px, 1fr) minmax(0, 2.5fr);
            gap: 14px;
            margin-top: 16px;
            align-items: stretch;
        }

        .resumenSesiones {
            background: #f4f7f8;
            border: 1px solid #dfe8ea;
            border-radius: 12px;
            padding: 15px;
        }

        .resumenSesiones>strong {
            font-size: 12px;
            color: #65777c;
        }

        .numeroSesiones {
            font-size: 30px;
            font-weight: 700;
            color: #08747b;
            margin-top: 8px;
        }

        .resumenExpediente .alertasPaciente {
            margin: 0;
            height: 100%;
            box-sizing: border-box;
        }

        .tarjetaConsulta {
            background: #ffffff;
            border: 1px solid #dfe8ea;
            border-left: 4px solid #078e96;
            border-radius: 11px;
            padding: 15px 16px;
            margin-bottom: 10px;
        }

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

        .encabezadoConsulta strong {
            color: #19343b;
            font-size: 14px;
        }

        .encabezadoConsulta span {
            color: #455e65;
            font-size: 13px;
        }

        .descripcionConsulta {
            margin: 14px 0;
            color: #19343b;
            font-size: 14px;
            line-height: 1.5;
            white-space: pre-wrap;
        }

        .editarConsulta {
            background: transparent !important;
            color: #078e96 !important;
            border: none !important;
            padding: 4px 6px !important;
            font-weight: 700;
            cursor: pointer;
        }

        .editarConsulta:hover {
            text-decoration: underline;
        }

        @media (max-width: 700px) {
            .resumenExpediente {
                grid-template-columns: 1fr;
            }
        }

        
/* Paso 49: Buscador automático */

.controlesBusqueda {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}

#buscarPaciente {
    width: 100%;
    min-width: 0;
    flex: none;
}

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

.opcionesBusqueda label {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}

#btnNuevoPaciente {
    margin: 0;
}

#btnPacientes[hidden] {
    display: none !important;
}

@media (max-width: 600px) {
    .opcionesBusqueda {
        flex-wrap: wrap;
    }
}


/* Paso 49.2: Tabla de pacientes como en la demo */

/* Quitar la tarjeta exterior de los resultados */
#resultado:has(.tablaPacientesContenedor) {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin-top: 16px;
}

/* La tabla será la única tarjeta visible */
.tablaPacientesContenedor {
    background: #ffffff;
    border: none;
    border-radius: 14px;
    overflow-x: auto;
    margin-top: 0;
}

/* Encabezado claro */
.tablaPacientes th {
    background: #f8fbfb;
    color: #455e65;
    font-size: 12px;
    font-weight: 700;
    padding: 14px 16px;
}

/* Filas compactas */
.tablaPacientes td {
    padding: 12px 16px;
    border-top: 1px solid #e5edef;
}

/* Nombre del paciente destacado */
.tablaPacientes td:first-child {
    color: #078e96;
    font-weight: 700;
}

/* Ver expediente como enlace, igual que en la demo */
.tablaPacientes .botonVerExpediente {
    background: transparent !important;
    color: #078e96 !important;
    border: none !important;
    padding: 4px 6px;
    font-weight: 700;
    box-shadow: none !important;
}

.tablaPacientes .botonVerExpediente:hover {
    background: transparent !important;
    color: #08747b !important;
    text-decoration: underline;
}


/* Paso 50: Cerrar sesión en el menú lateral */

#menuLateral {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    min-height: 100vh;
}

.pieMenuLateral {
    margin-top: auto;
    padding: 16px 8px 20px;
    border-top: 1px solid #dfe8ea;
}

#menuLateral .pieMenuLateral #btnCerrarSesion {
    display: block;
    width: 100%;
    text-align: left;
    padding: 12px 14px;
    background: #f0f5f5;
    color: #08747b;
    border: none;
    border-radius: 9px;
    font-weight: 700;
    cursor: pointer;
}

#menuLateral .pieMenuLateral #btnCerrarSesion:hover {
    background: #e0eeee;
}

/* Evitar que el menú móvil ocupe una altura excesiva */
@media (max-width: 768px) {
    #menuLateral {
        min-height: auto;
    }

    .pieMenuLateral {
        margin-top: 16px;
    }
}

/* Paso 51 definitivo: estructura limpia del expediente */
.fichaPaciente {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    grid-template-rows: auto auto auto;
    column-gap: 22px;
    row-gap: 10px;
    align-items: start;
    min-height: 0;
}

.fichaPaciente .encabezadoPaciente {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-width: 0;
}

.fichaPaciente .encabezadoPaciente h2 {
    margin: 0;
    min-width: 0;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.fichaPaciente .encabezadoPaciente .estadoPaciente {
    position: static;
    margin: 0;
    transform: none;
    flex: 0 0 auto;
}

.fichaPaciente .datosGeneralesPaciente {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
}

.fichaPaciente > .alertasPaciente {
    grid-column: 1;
    grid-row: 3;
    width: 50%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.fichaPaciente .accionesPaciente {
    grid-column: 2;
    grid-row: 1 / span 3;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: start;
    gap: 8px;
    width: 180px;
    margin: 0;
}

.fichaPaciente .accionesPaciente button {
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    text-align: center;
    font-size: 12px;
    white-space: normal;
}

.fichaPaciente .accionesPaciente .botonCambiarEstadoPaciente.desactivar {
    background: #fff0ed;
    color: #b34335;
    border: 1px solid #d98275;
}

.fichaPaciente .accionesPaciente .botonCambiarEstadoPaciente.desactivar:hover {
    background: #ffe0da;
}

.fichaPaciente .accionesPaciente .botonCambiarEstadoPaciente.reactivar {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a4d3ac;
}

.fichaPaciente .accionesPaciente .botonCambiarEstadoPaciente.reactivar:hover {
    background: #d7efdb;
}

@media (max-width: 700px) {
    .fichaPaciente {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
        gap: 12px;
    }

    .fichaPaciente .encabezadoPaciente,
    .fichaPaciente .datosGeneralesPaciente,
    .fichaPaciente > .alertasPaciente,
    .fichaPaciente .accionesPaciente {
        grid-column: 1;
        grid-row: auto;
    }

    .fichaPaciente > .alertasPaciente {
        width: 100%;
    }

    .fichaPaciente .accionesPaciente {
        width: 100%;
    }
}


/* Paso 52: Modal de nuevo paciente, diseño Demo v5 */
body.modalPacienteAbierto {
    overflow: hidden;
}

.fondoModalPaciente {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(25, 52, 59, 0.53);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

.ventanaNuevoPaciente {
    width: min(620px, 100%);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    background: #fff;
    border-radius: 18px;
    padding: 22px;
    box-sizing: border-box;
    box-shadow: 0 16px 55px rgba(0, 0, 0, 0.16);
}

.ventanaNuevoPaciente h2 {
    font-size: 17px;
    margin: 0 0 26px;
    color: #19343b;
}

.camposNuevoPaciente {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px 12px;
}

.campoNuevoPaciente {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 6px;
}

.campoNuevoPaciente label {
    color: #19343b;
    font-size: 12px;
    font-weight: 700;
}

.campoNuevoPaciente input,
.campoNuevoPaciente textarea {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
    border: 1px solid #c8d9de;
    border-radius: 11px;
    background: #fff;
    padding: 12px;
    font: inherit;
    color: #19343b;
    margin: 0;
}

.campoNuevoPaciente input {
    height: 44px;
}

.campoNuevoPaciente textarea {
    min-height: 80px;
    resize: vertical;
}

.campoNuevoPaciente small {
    font-size: 11px;
    color: #65777c;
}

.campoNuevoPaciente.campoAncho {
    grid-column: 1 / -1;
}

.accionesNuevoPaciente {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 18px;
}

.accionesNuevoPaciente button {
    padding: 11px 15px;
    border-radius: 10px;
    margin: 0;
    font-weight: 700;
}

.accionesNuevoPaciente .cancelarNuevoPaciente {
    background: #eaf3f3;
    color: #08747b;
    border: none;
}

.accionesNuevoPaciente .guardarNuevoPaciente {
    background: #078e96;
    color: #fff;
    border: none;
}

@media (max-width: 540px) {
    .ventanaNuevoPaciente {
        padding: 18px;
    }

    .camposNuevoPaciente {
        grid-template-columns: 1fr;
    }
}


/* Paso 53: Modales de editar paciente y nueva consulta */
#modalNuevaConsulta .ventanaNuevoPaciente,
#modalEditarPaciente .ventanaNuevoPaciente {
    width: min(620px, 100%);
}
#modalNuevaConsulta .ventanaNuevoPaciente {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
#modalNuevaConsulta .ventanaNuevoPaciente h2 {
    margin: 0 0 2px;
}
#modalNuevaConsulta .accionesNuevoPaciente {
    margin-top: 2px;
}
.avisoConsulta {
    background: #f1f9fa;
    border: 1px dashed #9acdd2;
    border-radius: 12px;
    padding: 13px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #19343b;
    font-size: 13px;
}
.avisoConsulta span {
    font-size: 13px;
}


/* Paso 54: módulo de Consultas y reportes */
#resultado:has(.moduloConsultas) {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    overflow: visible;
}
.moduloConsultas {
    background: #fff;
    border: 1px solid #dfe8ea;
    border-radius: 16px;
    padding: 22px;
}
.moduloConsultas h2 {
    font-size: 16px;
    color: #19343b;
    margin: 0 0 16px;
}
.ayudaConsultas {
    color: #65777c;
    font-size: 13px;
    margin: 0 0 26px;
}
.filtrosConsultas {
    display: grid;
    grid-template-columns: minmax(180px, 1.5fr) minmax(135px, 1fr) minmax(135px, 1fr) auto;
    align-items: end;
    gap: 10px;
}
.campoConsulta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.campoConsulta label {
    color: #19343b;
    font-size: 12px;
    font-weight: 700;
}
.campoConsulta input {
    width: 100%;
    height: 44px;
    box-sizing: border-box;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #c8d9de;
    border-radius: 10px;
    background: #fff;
    color: #19343b;
    font: inherit;
}
.moduloConsultas .buscarConsultasBoton {
    height: 42px;
    margin: 0;
    padding: 0 15px;
    border-radius: 10px;
    background: #078e96;
    color: white;
    border: 0;
    font-weight: 700;
}
.barraResultadosConsultas {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 15px 0 16px;
    font-size: 13px;
}
.accionesResultadosConsultas {
    display: flex;
    gap: 8px;
}
.moduloConsultas .botonClaroConsultas {
    margin: 0;
    border: 0;
    background: #eaf3f3;
    color: #08747b;
    padding: 11px 14px;
    border-radius: 10px;
    font-weight: 700;
}
.moduloConsultas .botonClaroConsultas:disabled {
    opacity: .48;
    cursor: not-allowed;
}
.tablaConsultasContenedor {
    width: 100%;
    overflow-x: auto;
    border-radius: 13px;
}
.tablaConsultas {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.tablaConsultas th {
    background: #f5f8f9;
    color: #65777c;
    font-size: 10px;
    font-weight: 700;
    padding: 15px 12px;
    white-space: nowrap;
}
.tablaConsultas td {
    background: #fff;
    color: #19343b;
    padding: 14px 12px;
    border-bottom: 1px solid #dfe8ea;
    vertical-align: top;
}
.tablaConsultas .nombreEnTablaConsultas {
    color: #078e96;
    font-weight: 700;
}
.tablaConsultas .editarEnTablaConsultas {
    background: transparent !important;
    border: 0 !important;
    color: #08747b !important;
    font-weight: 700;
    padding: 0;
    margin: 0;
    box-shadow: none;
}
.tablaConsultas .editarEnTablaConsultas:hover {
    text-decoration: underline;
}
.mensajeConsultas {
    color: #65777c;
    font-size: 13px;
    padding: 18px 0;
}
@media (max-width: 850px) {
    .filtrosConsultas {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .filtrosConsultas .pacienteConsulta {
        grid-column: 1 / -1;
    }
    .filtrosConsultas .buscarConsultasBoton {
        grid-column: 1 / -1;
    }
}
@media (max-width: 500px) {
    .moduloConsultas { padding: 14px; }
    .filtrosConsultas { grid-template-columns: 1fr; }
    .filtrosConsultas .pacienteConsulta { grid-column: auto; }
    .filtrosConsultas .buscarConsultasBoton { grid-column: auto; }
}

/* Paso 55: editar consulta con el mismo modal de la demo */
#modalEditarConsulta .ventanaNuevoPaciente {
    width: min(620px, 100%);
    display: flex;
    flex-direction: column;
    gap: 14px;
}
#modalEditarConsulta .ventanaNuevoPaciente h2 { margin: 0 0 2px; }
#modalEditarConsulta .accionesNuevoPaciente { margin-top: 2px; }

/* Paso 56: Administración de usuarios estilo Demo v5 */
#resultado:has(.moduloUsuarios) {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.moduloUsuarios { width: 100%; }
.usuariosBarra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.usuariosIntro { margin: 0; color: #65777c; font-size: 13px; }
.usuariosBarraAcciones { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.usuariosBarraAcciones button { margin: 0 !important; }
.usuariosActualizar {
    background: #eaf3f3 !important;
    color: #08747b !important;
    border: none !important;
}
.usuariosTablaContenedor { width: 100%; overflow-x: auto; border-radius: 14px; }
.usuariosTabla {
    width: 100%;
    border-collapse: collapse;
    background: white;
    font-size: 13px;
}
.usuariosTabla th {
    text-align: left;
    padding: 14px;
    background: #f7fafb;
    color: #65777c;
    font-size: 11px;
    font-weight: 700;
}
.usuariosTabla td {
    padding: 13px 14px;
    border-top: 1px solid #e2eaec;
    vertical-align: middle;
}
.usuarioEstado {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 700;
}
.usuarioEstado.activo { background: #e7f5eb; color: #247847; }
.usuarioEstado.inactivo { background: #f0f1f2; color: #65777c; }
.usuariosAcciones { white-space: nowrap; }
.usuariosAcciones button { margin: 2px 5px 2px 0 !important; }
.usuariosAcciones .usuarioAccionEnlace {
    background: transparent !important;
    color: #078e96 !important;
    border: none !important;
    padding: 6px 4px;
    font-weight: 700;
    box-shadow: none !important;
}
.usuariosAcciones .usuarioAccionEnlace:hover {
    color: #08747b !important;
    text-decoration: underline;
}
.usuariosAcciones .usuarioAccionEstado {
    border-radius: 9px;
    padding: 9px 11px;
    font-weight: 700;
}
.usuariosAcciones .usuarioAccionEstado.desactivar {
    background: #fff0ed !important;
    color: #b34335 !important;
    border: 1px solid #d98275 !important;
}
.usuariosAcciones .usuarioAccionEstado.reactivar {
    background: #e8f5e9 !important;
    color: #2e7d32 !important;
    border: 1px solid #a4d3ac !important;
}
.usuariosAcciones .usuarioAccionEstado:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.ventanaUsuario { width: min(520px, 100%); }
.formularioUsuario {
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.formularioUsuario > p {
    display: block;
    margin: 0;
}
.formularioUsuario > p label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #19343b;
    font-size: 12px;
    font-weight: 700;
}
.formularioUsuario input, .formularioUsuario select {
    display: block;
    width: 100%;
    height: 44px;
    padding: 10px 12px;
    box-sizing: border-box;
    border: 1px solid #c8d9de;
    border-radius: 11px;
    background: white;
    color: #19343b;
    font: inherit;
}
.formularioUsuario .accionesNuevoPaciente { margin-top: 8px; }
@media (max-width: 700px) {
    .usuariosBarra { align-items: flex-start; flex-direction: column; }
    .usuariosTabla { min-width: 720px; }
}

/* Paso 57: Historial de movimientos */
#resultado:has(.moduloAuditoria) {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.moduloAuditoria {
    background: #fff;
    border: 1px solid #dfe8ea;
    border-radius: 15px;
    padding: 22px;
}
.moduloAuditoria > h2 { margin: 0 0 20px; }
.filtrosAuditoria {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.filtrosAuditoria > p {
    margin: 0 !important;
    flex: 0 1 190px;
    min-width: 150px;
}
.filtrosAuditoria > p label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #19343b;
}
.filtrosAuditoria input,
.filtrosAuditoria select {
    width: 100%;
    height: 43px;
    box-sizing: border-box;
    border: 1px solid #c8d9de;
    border-radius: 10px;
    background: #fff;
    color: #19343b;
    padding: 9px 11px;
    font: inherit;
}
.filtrosAuditoria .botonBuscarAuditoria {
    margin: 0 !important;
    height: 43px;
    white-space: nowrap;
}
.listadoAuditoria > p { margin: 12px 0; }
.auditoriaTablaContenedor { width: 100%; overflow-x: auto; }
.auditoriaTabla {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    font-size: 13px;
}
.auditoriaTabla > tr:first-child,
.auditoriaTabla thead tr:first-child {
    background: #f6f9fa;
}
.auditoriaTabla th {
    text-align: left;
    color: #455e65;
    font-size: 12px;
    font-weight: 700;
}
.auditoriaTabla td, .auditoriaTabla th {
    border-bottom: 1px solid #dfe8ea !important;
    padding: 12px !important;
    vertical-align: top;
}
.auditoriaTabla > tr:nth-child(even):not(:has(.auditoriaDetalle)) {
    background: #fbfcfd;
}
.auditoriaDetalle {
    border: 1px solid #dfe8ea !important;
    background: #fff !important;
    border-radius: 12px !important;
    padding: 16px !important;
}
.auditoriaDetalle h3 { margin: 0 0 12px; }
.auditoriaResumen { margin-bottom: 20px; }
.auditoriaResumen th { width: 160px; background: #f7fafb; }
.auditoriaCambios th { background: #f7fafb; }
.auditoriaCambios td:last-child { background: #e8f5e9; }
@media (max-width: 650px) {
    .moduloAuditoria { padding: 14px; }
    .filtrosAuditoria > p { flex: 1 1 100%; }
    .filtrosAuditoria .botonBuscarAuditoria { width: 100%; }
    .auditoriaTablaContenedor > .auditoriaTabla { min-width: 740px; }
}

/* Paso 58: Inicio de sesión estilo Demo v5, sin modificar HTML ni JavaScript */
#pantallaLogin {
    min-height: 100vh;
    box-sizing: border-box;
    padding: 20px 16px;
    background: #f4f7f8;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
#pantallaLogin > h2,
#pantallaLogin > h3 { display: none; }
#pantallaLogin form {
    width: min(100%, 430px);
    max-width: 430px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 28px;
    background: white;
    border: 1px solid #dfe8ea;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(25,52,59,.055);
}
#pantallaLogin form::before {
    content: "Consultorios Salud y Vida\A Sistema de gestión de pacientes";
    display: block;
    min-height: 56px;
    padding: 5px 0 0 78px;
    margin-bottom: 24px;
    box-sizing: border-box;
    background: url('/logo.png') no-repeat left center / 64px 64px;
    white-space: pre-line;
    font-size: 17px;
    line-height: 1.65;
    font-weight: 700;
    color: #08747b;
}
#pantallaLogin form label {
    display: block;
    margin: 12px 0 6px;
    color: #19343b;
    font-size: 12px;
    font-weight: 700;
}
#pantallaLogin form input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    margin: 0 0 15px;
    padding: 10px 12px;
    border: 1px solid #c8d9de;
    border-radius: 11px;
    background: #fff;
}
#pantallaLogin form button[type="submit"] {
    width: 100%;
    min-height: 42px;
    margin: 4px 0 0;
    background: #078e96;
    color: #fff;
    border: none;
    border-radius: 10px;
    font-weight: 700;
}
#pantallaLogin form button[type="submit"]:hover {
    background: #08747b;
    color: #fff;
}
#pantallaLogin #errorLogin {
    margin: 12px auto 0;
    max-width: 430px;
}
@media (max-width: 480px) {
    #pantallaLogin form { padding: 22px 18px; }
    #pantallaLogin form::before {
        padding-left: 66px;
        background-size: 55px 55px;
        font-size: 15px;
    }
}
