.explorar-ruta-contenedor {
    width: 100%;
    max-width: 960px;
    margin: 30px auto;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.12);
    padding: 20px;
    box-sizing: border-box;
    text-align: left;
    font-family: Arial, sans-serif;
}

.explorar-ruta-header {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    background: #009fe3;
    color: #ffffff;
    padding: 16px 20px;
    border-radius: 6px;
}

.explorar-ruta-header h2 {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: 22px !important;
    line-height: 1.2;
    font-weight: 700 !important;
}

.explorar-ruta-buscador {
    padding: 6px 10px !important;
    border-radius: 4px !important;
    border: none !important;
    outline: none !important;
    min-width: 180px;
    max-width: 280px;
    box-sizing: border-box;
    font-size: 14px !important;
    color: #333 !important;
    background: #fff !important;
}

.explorar-ruta-arbol {
    margin-top: 20px;
    text-align: left;
}

/* Reset base */
.explorar-ruta-root,
.explorar-ruta-root li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.explorar-ruta-root ul {
    list-style: none !important;
    margin: 0 !important;
}

/* La escalera solo la hacen las carpetas hijas */
.explorar-ruta-root ul.er-children {
    display: none;
    padding-left: 32px !important;
    margin: 0 !important;
}

.er-folder.is-open > .er-children {
    display: block;
}

/* CARPETAS */
.er-folder {
    margin: 0 !important;
    padding: 0 !important;
}

.er-folder-row {
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 3px 0;
    padding-right: 8px;
    background: transparent;
    transition: background 0.2s ease;
}

/* Franja azul solo abierta */
.er-folder.is-open > .er-folder-row {
    background: #bfe7f8;
}

.er-toggle {
    width: 100%;
    display: flex !important;
    align-items: center;
    gap: 10px;
    background: transparent !important;
    border: 0 !important;
    padding: 4px 10px !important;
    margin: 0 !important;
    text-align: left;
    cursor: pointer;
    box-shadow: none !important;
    outline: none !important;
}

.er-toggle:focus,
.er-toggle:active {
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
}

.er-folder-title {
    font-weight: 700 !important;
    color: #003366 !important;
    font-size: 16px !important;
    line-height: 1.35;
    word-break: break-word;
}

.er-folder-download {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    margin-left: 10px;
    font-size: 16px;
    color: #0077cc;
    flex-shrink: 0;
}

/* ARCHIVOS */
.er-file {
    margin: 0 !important;
    padding: 0 !important;
}

.er-file-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 4px 0 !important;
    margin: 0 !important;
}

/* Archivos del nivel principal alineados con carpetas principales */
.explorar-ruta-root > li.er-file > .er-file-row {
    padding-left: 10px !important;
}

/* Archivos dentro de carpetas alineados al nivel actual */
.explorar-ruta-root ul.er-children > li.er-file > .er-file-row {
    padding-left: 0 !important;
}

/* Nombre archivo sin negrita */
.er-file-name {
    font-weight: 400 !important;
    font-size: 15px !important;
    color: #1f1f1f !important;
    line-height: 1.45;
    word-break: break-word;
}

.er-action {
    display: inline-block;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    margin-left: 2px;
}

.er-open {
    color: #0073ff !important;
}

.er-download {
    color: #0073ff !important;
}

/* Mensajes */
.er-empty,
.er-error {
    color: #a00 !important;
    font-weight: 400 !important;
    padding: 6px 0 6px 10px !important;
    font-size: 14px !important;
}

/* Iconos */
.descargar-icono {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    margin-left: 8px;
    font-size: 16px;
    color: #0077cc;
}

.descargar-icono::after {
    content: '⬇️';
}

.descargar-icono.carpeta::after {
    content: '📚️';
}

/* Colores por tipo */
.er-ext-pdf .er-file-name {
    color: #c62828 !important;
}

.er-ext-word .er-file-name {
    color: #1976d2 !important;
}

.er-ext-excel .er-file-name {
    color: #2e7d32 !important;
}

.er-ext-zip .er-file-name,
.er-ext-rar .er-file-name,
.er-ext-7z .er-file-name {
    color: #6a1b9a !important;
}

.er-ext-image .er-file-name {
    color: #6d4c41 !important;
}

.er-ext-default .er-file-name {
    color: #1f1f1f !important;
}

.er-file[data-extension="txt"] .er-file-name {
    color: #455a64 !important;
}

.er-file[data-extension="csv"] .er-file-name {
    color: #00897b !important;
}

.er-file[data-extension="ppt"] .er-file-name,
.er-file[data-extension="pptx"] .er-file-name {
    color: #ef6c00 !important;
}

.er-file[data-extension="xml"] .er-file-name,
.er-file[data-extension="json"] .er-file-name,
.er-file[data-extension="html"] .er-file-name,
.er-file[data-extension="css"] .er-file-name,
.er-file[data-extension="js"] .er-file-name,
.er-file[data-extension="php"] .er-file-name {
    color: #5e35b1 !important;
}

.er-file[data-extension="mp4"] .er-file-name,
.er-file[data-extension="avi"] .er-file-name,
.er-file[data-extension="mov"] .er-file-name {
    color: #00838f !important;
}

.er-file[data-extension="mp3"] .er-file-name,
.er-file[data-extension="wav"] .er-file-name {
    color: #ad1457 !important;
}

.er-folder-row:hover {
    background: #eef8fd;
}

.er-folder.is-open > .er-folder-row:hover {
    background: #b7e2f4;
}

.er-file-row:hover .er-file-name {
    opacity: 0.9;
}

@media (max-width: 768px) {
    .explorar-ruta-contenedor {
        margin: 15px auto;
        padding: 15px;
    }

    .explorar-ruta-header {
        gap: 12px;
        padding: 14px 16px;
    }

    .explorar-ruta-header h2 {
        font-size: 20px !important;
    }

    .explorar-ruta-buscador {
        width: 100%;
        max-width: 100%;
    }

    .explorar-ruta-root ul.er-children {
        padding-left: 20px !important;
    }

    .explorar-ruta-root > li.er-file > .er-file-row {
        padding-left: 10px !important;
    }
}