body {

    margin:0;

    font-family:Arial, sans-serif;

    background:#202020;

    color:white;

}



/* CONTENEDOR GENERAL */

.contenedor {

    display:flex;

    height:100vh;

}



/* ========================= */
/* MENU IZQUIERDO */
/* ========================= */


.menu {

    width:400px;

    padding:20px;

    box-sizing:border-box;

    overflow-y:auto;

}



.menu h1 {

    margin:0 0 15px 0;

    text-align:center;

    font-size:28px;

}



label {

    display:block;

    margin-top:8px;

    margin-bottom:3px;

    font-size:15px;

}



input,
select,
textarea {



    box-sizing: border-box;
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #cccccc;
    border-radius: 7px;
    background: #ffffff;
    color: #222222;
    font-family: inherit;
    font-size: 15px;

}

textarea{

    min-height:140px;
    resize:vertical;
    line-height:1.5;

}



input[type="file"] {

    padding:4px;

}



button {

    width:100%;

    padding:11px;

    background:#C0392B;

    color:white;

    border:none;

    font-size:17px;

    cursor:pointer;

}



button:hover {

    background:#E74C3C;

}



/* ========================= */
/* PREVIEW */
/* ========================= */


.preview {

    flex:1;

    display:flex;

    flex-direction:column;

    /*justify-content:center;*/
    margin-top: 10px;

    align-items:center;

    padding:20px;

    box-sizing:border-box;

}

.resultado {

    text-align: center;

}

.preview img {

    max-width:90%;

    max-height:72vh;

}



/* ========================= */
/* BIENVENIDA */
/* ========================= */


.bienvenida {

    text-align:center;

    color:#222;

}



.bienvenida h2 {

    font-size:50px;

    color: #333;

    margin-bottom:10px;

}



.bienvenida p {

    font-size:20px;
    color: #666;

}



/* ========================= */
/* BOTONES DESCARGA */
/* ========================= */


.acciones {

    margin-top:15px;

    display:flex;

    gap:10px;

    justify-content:center;

}



.acciones a {

    width:150px;

}



.acciones button {

    width:150px;

    margin-top:0;

}

.logo {

    text-align:center;

}


.logo img {

    width:90px;

    height:auto;

    margin-bottom:5px;

}


.logo h1 {

    margin:0;

}

/* ==========================================================
   RideStudio - Interfaz general
========================================================== */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
}

.barra-superior {
    min-height: 70px;
    padding: 0 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: #202020;
    color: #ffffff;
    position: relative;
    z-index: 1000;
}

.marca-superior {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    text-decoration: none;
    font-size: 21px;
    font-weight: bold;
}

.marca-superior img {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.navegacion {
    display: flex;
    align-items: center;
    gap: 22px;
}

.navegacion a {
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
}

.navegacion a:hover {
    text-decoration: underline;
}

.nombre-usuario {
    padding-left: 22px;
    border-left: 1px solid rgba(255, 255, 255, 0.25);
    font-size: 14px;
    color: #d8d8d8;
}

.navegacion .cerrar-sesion {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 6px;
}

.navegacion .cerrar-sesion:hover {
    background: #ffffff;
    color: #202020;
    text-decoration: none;
}

.boton-menu {
    display: none;
    padding: 7px 10px;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 25px;
    cursor: pointer;
}

.contenido-principal {
    width: 100%;
}

.mensajes {
    max-width: 1180px;
    margin: 20px auto 0;
    padding: 0 20px;
}

.mensaje {
    padding: 13px 16px;
    border-radius: 7px;
    background: #fff3cd;
    border: 1px solid #ffecb5;
    color: #664d03;
}


/* ==========================================================
   Encabezado interno
========================================================== */

.encabezado-pagina {
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 30px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.encabezado-pagina h1 {
    margin: 0 0 5px;
    font-size: 27px;
}

.encabezado-pagina p {
    margin: 0;
    color: #666666;
}

.volver-panel {
    color: #333333;
    text-decoration: none;
    font-weight: bold;
}

.volver-panel:hover {
    text-decoration: underline;
}


/* ==========================================================
   Dashboard
========================================================== */

.panel-cabecera {
    max-width: 1180px;
    margin: 0 auto;
    padding: 50px 24px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.panel-cabecera h1 {
    margin: 5px 0 10px;
    font-size: 34px;
}

.panel-cabecera p {
    margin: 0;
    color: #666666;
}

.panel-saludo {
    font-size: 14px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.7px;
}

.boton-principal,
.boton-secundario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 7px;
    text-decoration: none;
    font-weight: bold;
}

.boton-principal {
    background: #b43a2f;
    color: #ffffff;
}

.boton-principal:hover {
    background: #923027;
}

.boton-secundario {
    border: 1px solid #333333;
    color: #333333;
}

.boton-secundario:hover {
    background: #333333;
    color: #ffffff;
}

.accesos-panel {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px 34px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.tarjeta-acceso {
    min-height: 145px;
    padding: 24px;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 10px;
    color: #222222;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

a.tarjeta-acceso:hover {
    border-color: #999999;
    transform: translateY(-2px);
}

.tarjeta-acceso h2 {
    margin: 0 0 9px;
    font-size: 19px;
}

.tarjeta-acceso p {
    margin: 0;
    color: #666666;
    line-height: 1.5;
}

.tarjeta-icono {
    min-width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ece8df;
    font-size: 24px;
    font-weight: bold;
}

.tarjeta-inactiva {
    opacity: 0.65;
}

.lista-viajes {
    max-width: 1132px;
    margin: 0 auto 50px;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 10px;
    overflow: hidden;
}

.lista-encabezado {
    padding: 20px 24px;
    border-bottom: 1px solid #e2e2e2;
}

.lista-encabezado h2 {
    margin: 0;
    font-size: 20px;
}

.sin-viajes {
    padding: 55px 25px;
    text-align: center;
}

.sin-viajes img {
    width: 75px;
    margin-bottom: 12px;
}

.sin-viajes h3 {
    margin: 0 0 10px;
}

.sin-viajes p {
    margin: 0 auto 24px;
    max-width: 520px;
    color: #666666;
    line-height: 1.5;
}


/* ==========================================================
   Generador
========================================================== */

.boton-guardar-deshabilitado {
    opacity: 0.55;
    cursor: not-allowed;
}


/* ==========================================================
   Celular
========================================================== */

@media (max-width: 800px) {

    .barra-superior {
        min-height: 62px;
        padding: 0 16px;
    }

    .marca-superior img {
        width: 36px;
        height: 36px;
    }

    .boton-menu {
        display: block;
    }

    .navegacion {
        display: none;
        position: absolute;
        top: 62px;
        left: 0;
        right: 0;
        padding: 12px 16px 18px;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: #202020;
        box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
    }

    .navegacion.abierta {
        display: flex;
    }

    .navegacion a,
    .nombre-usuario {
        padding: 13px 5px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .nombre-usuario {
        border-left: 0;
        color: #bdbdbd;
    }

    .navegacion .cerrar-sesion {
        margin-top: 10px;
        border: 1px solid rgba(255, 255, 255, 0.45);
        text-align: center;
    }

    .panel-cabecera {
        padding: 32px 18px 24px;
        flex-direction: column;
        align-items: stretch;
    }

    .panel-cabecera h1 {
        font-size: 29px;
    }

    .boton-principal {
        width: 100%;
    }

    .accesos-panel {
        padding: 0 18px 28px;
        grid-template-columns: 1fr;
    }

    .lista-viajes {
        margin: 0 18px 35px;
    }

    .encabezado-pagina {
        padding: 22px 18px 8px;
        flex-direction: column;
        align-items: flex-start;
    }

}

/* ==========================================================
   Guardar viaje
========================================================== */

.formulario-guardar {
    margin: 0;
}

.boton-guardar-viaje {
    background: #2f6f45;
    color: #ffffff;
}

.boton-guardar-viaje:hover {
    background: #255a38;
}

.viaje-guardado {
    max-width: 720px;
    margin: 60px auto;
    padding: 55px 30px;
    text-align: center;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 12px;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.07);
}

.guardado-icono {
    width: 72px;
    height: 72px;
    margin: 0 auto 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #2f6f45;
    color: #ffffff;
    font-size: 38px;
    font-weight: bold;
}

.viaje-guardado h1 {
    margin: 0 0 12px;
    font-size: 30px;
}

.viaje-guardado h2 {
    margin: 0 0 18px;
    color: #b43a2f;
    font-size: 22px;
}

.viaje-guardado p {
    margin: 0 auto 28px;
    max-width: 520px;
    color: #666666;
    line-height: 1.6;
}

.guardado-acciones {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

@media (max-width: 600px) {

    .viaje-guardado {
        margin: 25px 18px;
        padding: 40px 20px;
    }

    .viaje-guardado h1 {
        font-size: 25px;
    }

    .guardado-acciones {
        flex-direction: column;
    }

    .guardado-acciones a {
        width: 100%;
    }

}

/* ==========================================================
   Listado de viajes
========================================================== */

.lista-encabezado {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.lista-encabezado p {
    margin: 6px 0 0;
    color: #777777;
    font-size: 14px;
}

.grilla-viajes {
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.tarjeta-viaje {
    min-width: 0;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.viaje-imagen {
    position: relative;
    height: 210px;
    overflow: hidden;
    background: #ece9e1;
}

.viaje-imagen > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.viaje-sin-imagen {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #777777;
}

.viaje-sin-imagen img {
    width: 65px;
    opacity: 0.7;
}

.estado-viaje {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    padding: 6px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.estado-nuevo {
    /*background: rgba(180, 58, 47, 0.94);*/
    background: #f59e0b;
    color: #ffffff;
}

.estado-borrador {
    background: rgba(40, 40, 40, 0.88);
    color: #ffffff;
}

.estado-publicado {
    background: rgba(47, 111, 69, 0.92);
    color: #ffffff;
}

.estado-proximamente {
    background: #f59e0b;
    color: #ffffff;
}

.viaje-contenido {
    padding: 20px;
}

.viaje-contenido h3 {
    margin: 0 0 7px;
    color: #777777;
    font-size: 20px;
    line-height: 1.25;
}

.viaje-subtitulo {
    margin: 0 0 15px;
    color: #777777;
    font-size: 14px;
    line-height: 1.4;
}

.viaje-datos {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: #444444;
    font-size: 14px;
}

.viaje-fecha {
    margin: 17px 0 0;
    padding-top: 14px;
    border-top: 1px solid #eeeeee;
    color: #888888;
    font-size: 12px;
}

.viaje-acciones {
    margin-top: 18px;
    display: flex;
    gap: 10px;
}

.boton-viaje {
    min-height: 39px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    border-radius: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: bold;
}

.boton-ver {
    border: 1px solid #333333;
    color: #333333;
}

.boton-ver:hover {
    background: #333333;
    color: #ffffff;
}

.boton-descargar {
    background: #b43a2f;
    color: #ffffff;
}

.boton-descargar:hover {
    background: #923027;
}

.boton-editar{
    background:#1f6fb2;
    color:#fff;
}

.boton-editar:hover{
    background:#195b91;
}


/* ==========================================================
   Listado responsive
========================================================== */

@media (max-width: 1050px) {

    .grilla-viajes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 650px) {

    .grilla-viajes {
        padding: 18px;
        grid-template-columns: 1fr;
    }

    .viaje-imagen {
        height: 230px;
    }

    .viaje-acciones {
        flex-direction: column;
    }

    .boton-viaje {
        width: 100%;
    }

}

/* ==========================================================
   Mi perfil
========================================================== */

.perfil-contenedor {
    max-width: 920px;
    margin: 20px auto 60px;
    padding: 0 24px;
}

.perfil-formulario {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.perfil-seccion {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 11px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.perfil-seccion-encabezado {
    padding: 22px 24px;
    border-bottom: 1px solid #e5e5e5;
    background: #fafafa;
}

.perfil-seccion-encabezado h2 {
    margin: 0 0 7px;
    font-size: 20px;
}

.perfil-seccion-encabezado p {
    margin: 0;
    color: #707070;
    font-size: 14px;
    line-height: 1.5;
}

.perfil-campos {
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 21px;
}

.campo-formulario {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.campo-ancho-completo {
    grid-column: 1 / -1;
}

.campo-formulario label {
    color: #333333;
    font-size: 14px;
    font-weight: bold;
}

.campo-formulario input,
.campo-formulario textarea {
    box-sizing: border-box;
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #cccccc;
    border-radius: 7px;
    background: #ffffff;
    color: #222222;
    font-family: inherit;
    font-size: 15px;
}

.campo-formulario textarea {
    min-height: 120px;
    resize: vertical;
    line-height: 1.5;
}

.campo-formulario input:focus,
.campo-formulario textarea:focus {
    outline: none;
    border-color: #b43a2f;
    box-shadow: 0 0 0 3px rgba(180, 58, 47, 0.12);
}

.campo-formulario input[readonly] {
    background: #f1f1f1;
    color: #666666;
    cursor: not-allowed;
}

.campo-formulario small {
    color: #777777;
    font-size: 12px;
    line-height: 1.4;
}

.perfil-acciones {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.boton-sin-borde {
    border: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
}


/* ==========================================================
   Mi perfil responsive
========================================================== */

@media (max-width: 650px) {

    .perfil-contenedor {
        margin-top: 14px;
        padding: 0 18px;
    }

    .perfil-campos {
        padding: 20px;
        grid-template-columns: 1fr;
    }

    .campo-ancho-completo {
        grid-column: auto;
    }

    .perfil-acciones {
        flex-direction: column-reverse;
    }

    .perfil-acciones a,
    .perfil-acciones button {
        box-sizing: border-box;
        width: 100%;
    }

}

/* ==========================================================
   Mis viajes
========================================================== */

.lista-viajes-completa {
    margin-bottom: 60px;
}

.encabezado-acciones {
    display: flex;
    align-items: center;
    gap: 14px;
}

.enlace-ver-todos {
    color: #b43a2f;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    white-space: nowrap;
}

.enlace-ver-todos:hover {
    text-decoration: underline;
}


/* ==========================================================
   Mis viajes responsive
========================================================== */

@media (max-width: 650px) {

    .encabezado-acciones {
        width: 100%;
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .encabezado-acciones a {
        box-sizing: border-box;
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    .lista-encabezado {
        align-items: flex-start;
    }

}

/* ==========================================================
   Menú de usuario
========================================================== */

.menu-usuario {
    position: relative;
    display: flex;
    align-items: center;
}

.menu-usuario-boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 12px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: 14px;
    font-weight: bold;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background-color 0.18s ease,
        color 0.18s ease;
}

.menu-usuario-boton:hover,
.menu-usuario-boton.menu-abierto {
    background: rgba(255, 255, 255, 0.12);
}

.menu-usuario-boton:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

.menu-usuario-flecha {
    display: inline-block;
    font-size: 9px;
    transition: transform 0.18s ease;
}

.menu-usuario-boton.menu-abierto .menu-usuario-flecha {
    transform: rotate(180deg);
}

.menu-usuario-dropdown {
    position: absolute;
    z-index: 1000;
    top: calc(100% + 10px);
    right: 0;
    width: 190px;
    padding: 7px;

    background-color: #ffffff;

    visibility: hidden;
    opacity: 0;
    transform: translateY(-7px);

    border: 1px solid #dddddd;
    border-radius: 9px;

    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);

    pointer-events: none;

    transition:
        opacity 0.16s ease,
        transform 0.16s ease,
        visibility 0.16s ease;
}

.menu-usuario-dropdown.menu-visible {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.menu-usuario-dropdown::before {
    content: "";
    position: absolute;
    top: -6px;
    right: 18px;

    width: 11px;
    height: 11px;

    background-color: #ffffff;

    border-top: 1px solid #dddddd;
    border-left: 1px solid #dddddd;

    transform: rotate(45deg);
}

.menu-usuario-dropdown a {
    position: relative;
    z-index: 1;

    display: block;

    padding: 11px 12px;

    border-radius: 6px;

    background-color: transparent;

    color: #000000 !important;

    font-size: 14px;
    font-weight: normal;
    text-decoration: none;

    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.menu-usuario-dropdown a:link,
.menu-usuario-dropdown a:visited,
.menu-usuario-dropdown a:active {
    color: #000000 !important;
}

.menu-usuario-dropdown a:hover,
.menu-usuario-dropdown a:focus {
    background-color: #f2f2f2;
    color: #000000 !important;
}

.menu-usuario-dropdown .menu-usuario-cerrar {
    margin-top: 5px;
    padding-top: 11px;

    border-top: 1px solid #e5e5e5;
    border-radius: 0 0 6px 6px;

    color: #000000 !important;
}

.menu-usuario-dropdown .menu-usuario-cerrar:hover,
.menu-usuario-dropdown .menu-usuario-cerrar:focus {
    background-color: #f2f2f2;
    color: #000000 !important;
}


/* ==========================================================
   Menú de usuario responsive
========================================================== */

@media (max-width: 700px) {

    .menu-usuario {
        width: 100%;
        display: block;
    }

    .menu-usuario-boton {
        width: 100%;
        justify-content: space-between;
    }

    .menu-usuario-dropdown {
        position: static;
        width: 100%;
        margin-top: 5px;
        box-sizing: border-box;
        display: none;
        visibility: visible;
        opacity: 1;
        transform: none;
        box-shadow: none;
        pointer-events: auto;
    }

    .menu-usuario-dropdown.menu-visible {
        display: block;
    }

    .menu-usuario-dropdown::before {
        display: none;
    }

}

.menu-avatar{
    width:34px;
    height:34px;
    border-radius:50%;
    overflow:hidden;
    flex:0 0 34px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#b43a2f;
    color:#fff;
    font-size:15px;
    font-weight:700;
}

.menu-avatar img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

@media (max-width:700px){

    .menu-avatar{
        width:30px;
        height:30px;
        flex-basis:30px;
    }

}

.ruta-guardada {
    margin: 5px 0 8px;
    padding: 10px 12px;
    border-radius: 6px;
    background: #e8f4ea;
    color: #2f6f45;
    font-size: 13px;
    font-weight: bold;
}

.ayuda-ruta {
    margin: 0 0 10px;
    color: #777777;
    font-size: 12px;
    line-height: 1.4;
}


/* ==========================================================
   Estado público de los viajes
========================================================== */

.formulario-estado-viaje {
    display: inline-flex;
    margin: 0;
    padding: 0;
}

.formulario-estado-viaje button {
    font-family: inherit;
    cursor: pointer;
}

.boton-publicar {
    border: 1px solid #2f6f45;
    background: #2f6f45;
    color: #ffffff;
}

.boton-publicar:hover {
    border-color: #255a38;
    background: #255a38;
    color: #ffffff;
}

.boton-borrador {
    border: 1px solid #b98218;
    background: #fff4d5;
    color: #664b0c;
}

.boton-borrador:hover {
    border-color: #96690d;
    background: #f5dfaa;
    color: #513b0b;
}

/* ==========================================================
   Acciones de viajes
========================================================== */

.viaje-acciones {
    display: flex;
    align-items: center;
    gap: 10px;
}

.viaje-acciones-panel .boton-viaje {
    width: 100%;
}

.viaje-acciones-administracion {
    position: relative;
}

.menu-acciones-viaje {
    position: relative;
}

.menu-acciones-viaje summary {
    list-style: none;
}

.menu-acciones-viaje summary::-webkit-details-marker {
    display: none;
}

.boton-acciones {
    gap: 8px;
    border: 1px solid #d4d7da;
    background: #ffffff;
    color: #30353a;
    cursor: pointer;
    user-select: none;
}

.boton-acciones::after {
    content: "▾";
    font-size: 12px;
    transition: transform 0.15s ease;
}

.menu-acciones-viaje[open] .boton-acciones::after {
    transform: rotate(180deg);
}

.boton-acciones:hover {
    border-color: #aeb3b8;
    background: #f4f5f6;
}

.menu-acciones-contenido {
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 30;

    min-width: 190px;
    padding: 7px;

    border: 1px solid #dfe2e5;
    border-radius: 9px;

    background: #ffffff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

.menu-accion {
    display: flex;
    width: 100%;
    min-height: 39px;
    padding: 9px 11px;

    align-items: center;

    border: 0;
    border-radius: 6px;

    background: transparent;
    color: #30353a;

    font-family: inherit;
    font-size: 14px;
    text-align: left;
    text-decoration: none;

    cursor: pointer;
}

.menu-accion:hover {
    background: #f1f3f4;
    color: #202428;
}

.menu-accion-formulario {
    margin: 0;
    padding: 0;
}

.menu-accion-boton {
    appearance: none;
}

@media (max-width: 560px) {

    .viaje-acciones-administracion {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .viaje-acciones-administracion > .boton-viaje,
    .viaje-acciones-administracion > .menu-acciones-viaje {
        width: 100%;
    }

    .menu-acciones-viaje .boton-acciones {
        width: 100%;
    }

}

.menu-acciones-separador {
    height: 1px;
    margin: 6px 4px;
    background: #e3e5e7;
}

.menu-accion-eliminar {
    color: #b02a37;
}

.menu-accion-eliminar:hover {
    background: #fbeaec;
    color: #8d1f2a;
}

.publico-pie a {
    color: inherit;
    text-decoration: none;
}

.publico-pie a:hover {
    text-decoration: underline;
}

.seccion-formulario{
    margin-bottom:26px;
}

.seccion-formulario-titulo{
    margin:0 0 16px;
    padding-bottom:9px;
    border-bottom:1px solid #dfe3e7;
    color:#343941;
    font-size:15px;
    font-weight:700;
}

.ayuda-campo{
    margin:7px 0 14px;
    color:#737b85;
    font-size:12px;
    line-height:1.45;
}

.tipos-camino{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    margin-top:7px;
}

.tipo-camino-opcion{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    margin:0;
    padding:10px;
    border:1px solid #dfe3e7;
    border-radius:8px;
    background:#f7f8f9;
    color:#343941;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
}

.tipo-camino-opcion:hover{
    border-color:#bfc6cd;
    background:#eef1f3;
}

.tipo-camino-opcion input{
    width:auto;
    margin:0;
    flex:0 0 auto;
}

.tipo-camino-opcion:has(input:checked){
    border-color:#1f6fb2;
    background:#edf5fb;
    color:#195b91;
}

@media (max-width:480px){

    .tipos-camino{
        grid-template-columns:1fr;
    }

}

.viaje-estadisticas-resumen{
    display:flex;
    align-items:center;
    gap:18px;

    margin-top:10px;
    margin-bottom:10px;

    font-size:.95rem;
    line-height:1;
    color:#666;
}

.viaje-estadisticas-resumen span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    line-height:1;
}



/* ==========================================================
   RideStudio - Base visual unificada
========================================================== */

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: #f2f3f5;
    color: #24272d;
    font-family: Arial, Helvetica, sans-serif;
}

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

.barra-superior {
    background: #171a1f;
}

.navegacion {
    gap: 8px;
}

.navegacion > a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 7px;
    color: #e8e9eb;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background .18s ease, color .18s ease;
}

.navegacion > a:hover,
.navegacion > a.activo {
    background: rgba(255,255,255,.09);
    color: #ffffff;
    text-decoration: none;
}

.navegacion-ingresar {
    margin-left: 4px;
    border: 1px solid rgba(255,255,255,.36);
}

.menu-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    overflow: hidden;
    border-radius: 50%;
    background: #3a414b;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
}

.menu-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.menu-usuario-boton {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #ffffff;
}

.menu-usuario-boton:hover,
.menu-usuario-boton.menu-abierto {
    color: #ffffff;
}

.feed-sobre {
    width: min(1160px, calc(100% - 40px));
    margin: 0 auto 35px;
    padding: 34px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 6px 24px rgba(0,0,0,.06);
}

.feed-sobre h2 {
    margin: 0 0 14px;
}

.feed-sobre p {
    max-width: 850px;
    margin: 0;
    color: #626872;
    font-size: 16px;
    line-height: 1.65;
}

@media (max-width: 900px) {
    .navegacion {
        gap: 4px;
    }

    .navegacion > a {
        width: 100%;
        justify-content: flex-start;
    }

    .navegacion-ingresar {
        margin-left: 0;
    }
}

@media (max-width: 700px) {
    .feed-sobre {
        width: calc(100% - 20px);
        padding: 25px 20px;
    }
}


/* ==========================================================
   Feed público
========================================================== */
.feed-contenedor{
            width:min(1160px, calc(100% - 40px));
            margin:0 auto;
            padding:38px 0 55px;
        }

        /*
        |--------------------------------------------------------------------------
        | PRESENTACIÓN
        |--------------------------------------------------------------------------
        */

        .feed-presentacion{
            padding:35px;
            border-radius:15px;
            background:#ffffff;
            box-shadow:0 8px 28px rgba(0,0,0,.07);
        }

        .feed-presentacion-texto{
            max-width:820px;
        }

        .feed-presentacion h1{
            margin:0;
            color:#202329;
            font-size:36px;
            line-height:1.18;
        }

        .feed-presentacion p{
            max-width:700px;
            margin:14px 0 0;
            color:#626872;
            font-size:17px;
            line-height:1.6;
        }

        /*
        |--------------------------------------------------------------------------
        | BUSCADOR
        |--------------------------------------------------------------------------
        */

        .feed-buscador-contenedor{
            position:relative;
            margin-top:27px;
        }

        .feed-buscador-icono{
            position:absolute;
            top:50%;
            left:17px;
            transform:translateY(-50%);
            color:#747a84;
            font-size:18px;
            pointer-events:none;
        }

        .feed-buscador{
            display:block;
            width:100%;
            min-height:54px;
            padding:14px 18px 14px 49px;
            border:1px solid #d5d9de;
            border-radius:10px;
            outline:none;
            background:#fafbfc;
            color:#282c32;
            font-size:16px;
            transition:
                border-color .18s ease,
                box-shadow .18s ease,
                background .18s ease;
        }

        .feed-buscador::placeholder{
            color:#858b94;
        }

        .feed-buscador:focus{
            border-color:#66717f;
            background:#ffffff;
            box-shadow:0 0 0 3px rgba(73,83,96,.12);
        }

        /*
        |--------------------------------------------------------------------------
        | PANEL DE FILTROS
        |--------------------------------------------------------------------------
        */

        .feed-filtros-panel{
            margin-top:25px;
            padding:28px;
            border-radius:14px;
            background:#ffffff;
            box-shadow:0 6px 24px rgba(0,0,0,.06);
        }

        .feed-filtro-seccion + .feed-filtro-seccion{
            margin-top:27px;
            padding-top:25px;
            border-top:1px solid #e4e6e9;
        }

        .feed-filtro-titulo{
            margin:0 0 14px;
            color:#30343a;
            font-size:16px;
            font-weight:700;
        }

        /*
        |--------------------------------------------------------------------------
        | CATEGORÍAS
        |--------------------------------------------------------------------------
        */

        .feed-categorias{
            display:flex;
            flex-wrap:wrap;
            gap:10px;
        }

        .feed-categoria{
            min-height:42px;
            padding:10px 17px;
            border:1px solid #d6d9de;
            border-radius:24px;
            background:#ffffff;
            color:#3f444c;
            font-size:14px;
            font-weight:600;
            cursor:pointer;
            transition:
                background .16s ease,
                border-color .16s ease,
                color .16s ease,
                transform .16s ease;
        }

        .feed-categoria:hover{
            border-color:#aeb4bc;
            background:#f4f5f7;
            transform:translateY(-1px);
        }

        .feed-categoria.activa{
            border-color:#252a31;
            background:#252a31;
            color:#ffffff;
        }

        /*
        |--------------------------------------------------------------------------
        | SELECTORES
        |--------------------------------------------------------------------------
        */

        .feed-selectores{
            display:grid;
            grid-template-columns:repeat(3, minmax(0, 1fr));
            gap:15px;
        }

        .feed-selector-grupo{
            min-width:0;
        }

        .feed-selector-grupo label{
            display:block;
            margin-bottom:7px;
            color:#656b74;
            font-size:13px;
            font-weight:600;
        }

        .feed-selector{
            display:block;
            width:100%;
            min-height:45px;
            padding:10px 38px 10px 13px;
            border:1px solid #d6d9de;
            border-radius:8px;
            outline:none;
            background:#ffffff;
            color:#34383f;
            cursor:pointer;
        }

        .feed-selector:focus{
            border-color:#66717f;
            box-shadow:0 0 0 3px rgba(73,83,96,.1);
        }

        /*
        |--------------------------------------------------------------------------
        | ENCABEZADO DEL LISTADO
        |--------------------------------------------------------------------------
        */

        .feed-listado-cabecera{
            display:flex;
            align-items:flex-end;
            justify-content:space-between;
            gap:20px;
            margin:38px 0 19px;
        }

        .feed-listado-cabecera h2{
            margin:0;
            color:#25292f;
            font-size:27px;
        }

        .feed-resultados-cantidad{
            color:#737983;
            font-size:14px;
        }

        /*
        |--------------------------------------------------------------------------
        | TARJETAS DEL FEED
        |--------------------------------------------------------------------------
        */

        .feed-listado{
            display:flex;
            flex-direction:column;
            gap:20px;
        }

        .feed-tarjeta{
            display:flex;
            min-height:245px;
            overflow:hidden;
            border-radius:13px;
            background:#ffffff;
            color:inherit;
            text-decoration:none;
            box-shadow:0 6px 22px rgba(0,0,0,.08);
            transition:
                transform .18s ease,
                box-shadow .18s ease;
        }

        .feed-tarjeta:hover{
            transform:translateY(-3px);
            box-shadow:0 11px 30px rgba(0,0,0,.12);
        }

        .feed-tarjeta-imagen{
            position:relative;
            width:330px;
            min-height:245px;
            flex:0 0 330px;
            overflow:hidden;
            background:#dfe2e6;
        }

        .feed-tarjeta-imagen img{
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
            transition:transform .28s ease;
        }

        .feed-tarjeta:hover .feed-tarjeta-imagen img{
            transform:scale(1.025);
        }

        .feed-imagen-vacia{
            width:100%;
            height:100%;
            min-height:245px;
            display:flex;
            align-items:center;
            justify-content:center;
            padding:25px;
            color:#747b84;
            font-size:14px;
            text-align:center;
        }

        .feed-tarjeta-contenido{
            min-width:0;
            flex:1;
            padding:27px 29px;
            display:flex;
            flex-direction:column;
        }

        .feed-tarjeta-titulo{
            margin:0;
            color:#24282e;
            font-size:24px;
            line-height:1.25;
        }

        .feed-tarjeta-subtitulo{
            margin:10px 0 0;
            color:#686e77;
            font-size:15px;
            line-height:1.55;
        }

        .feed-tarjeta-datos{
            display:flex;
            flex-wrap:wrap;
            gap:9px 19px;
            margin-top:20px;
            color:#555b64;
            font-size:14px;
        }

        .feed-tarjeta-dato{
            display:flex;
            align-items:center;
            gap:5px;
        }

        .feed-tarjeta-estadisticas{
            display:flex;
            flex-wrap:wrap;
            gap:18px;
            margin-top:auto;
            padding-top:21px;
            color:#555b64;
            font-size:13px;
            font-weight:600;
        }

        /*
        |--------------------------------------------------------------------------
        | SIN RESULTADOS
        |--------------------------------------------------------------------------
        */

        .feed-sin-resultados{
            display:none;
            padding:42px 25px;
            border-radius:13px;
            background:#ffffff;
            color:#6e747d;
            text-align:center;
            box-shadow:0 6px 22px rgba(0,0,0,.06);
        }

        .feed-sin-resultados strong{
            display:block;
            margin-bottom:8px;
            color:#3e434a;
            font-size:18px;
        }

        /*
        |--------------------------------------------------------------------------
        | PIE
        |--------------------------------------------------------------------------
        */

        .feed-pie{
            padding:28px 20px 35px;
            color:#737983;
            font-size:13px;
            text-align:center;
        }

        .feed-pie a{
            color:#4c525b;
            font-weight:600;
            text-decoration:none;
        }

        .feed-pie a:hover{
            text-decoration:underline;
        }

        /*
        |--------------------------------------------------------------------------
        | RESPONSIVE
        |--------------------------------------------------------------------------
        */

        @media(max-width:900px){

            .feed-selectores{
                grid-template-columns:1fr;
            }

            .feed-tarjeta-imagen{
                width:285px;
                flex-basis:285px;
            }

        }

        @media(max-width:700px){

            .feed-contenedor{
                width:calc(100% - 20px);
                padding-top:18px;
            }

            .feed-presentacion{
                padding:26px 20px;
            }

            .feed-presentacion h1{
                font-size:28px;
            }

            .feed-presentacion p{
                font-size:15px;
            }

            .feed-filtros-panel{
                padding:23px 18px;
            }

            .feed-listado-cabecera{
                align-items:flex-start;
                flex-direction:column;
                gap:7px;
            }

            .feed-tarjeta{
                min-height:0;
                flex-direction:column;
            }

            .feed-tarjeta-imagen{
                width:100%;
                height:auto;
                min-height:0;
                flex-basis:auto;
                aspect-ratio:16 / 9;
            }

            .feed-imagen-vacia{
                min-height:190px;
            }

            .feed-tarjeta-contenido{
                padding:22px 20px;
            }

            .feed-tarjeta-titulo{
                font-size:21px;
            }

            .feed-tarjeta-estadisticas{
                margin-top:20px;
            }

        }

        @media(max-width:430px){

            .feed-categorias{
                gap:8px;
            }

            .feed-categoria{
                padding:9px 13px;
                font-size:13px;
            }

            .feed-tarjeta-datos{
                align-items:flex-start;
                flex-direction:column;
                gap:9px;
            }

        }

        .feed-menu .menu-usuario-boton{
            color:#ffffff;
        }

        .feed-menu .menu-usuario-flecha{
            color:#ffffff;
        }


/* ==========================================================
   PERFIL - estilos trasladados desde la plantilla
========================================================== */

.perfil-avatar-bloque{
        display:flex;
        align-items:center;
        gap:24px;
        flex-wrap:wrap;
    }

    .perfil-avatar{
        display:flex;
        align-items:center;
        justify-content:center;
        /*width:112px;
        height:112px;
        flex:0 0 112px;*/
        width:100px;
        height:100px;
        margin-left: 5px;
        overflow:hidden;
        border-radius:50%;
        background:#252a31;
        color:#ffffff;
        font-size:44px;
        font-weight:700;
        text-transform:uppercase;
        box-shadow:0 4px 14px rgba(0,0,0,.16);
    }

    .perfil-avatar img{
        display:block;
        width:100%;
        height:100%;
        object-fit:cover;
    }

    .perfil-avatar-controles{
        flex:1;
        min-width:220px;
        padding: 10px;
    }

    .perfil-avatar-controles input[type="file"]{
        display:block;
        width:100%;
        margin-top:8px;
    }

    .perfil-avatar-ayuda{
        display:block;
        margin-top:9px;
        color:#727983;
        font-size:13px;
        line-height:1.5;
    }

    .perfil-eliminar-avatar{
        display:flex;
        align-items:center;
        gap:8px;
        margin-top:13px;
        font-size:14px;
        cursor:pointer;
    }

    .perfil-eliminar-avatar input{
        width:auto;
        margin:0;
    }


/* ==========================================================
   AUTOR PÚBLICO - estilos trasladados desde la plantilla
========================================================== */

.pagina-autor-publico * {
            box-sizing:border-box;
        }

        body.pagina-autor-publico {
            margin:0;
            background:#f2f3f5;
            color:#24272d;
            font-family:Arial, Helvetica, sans-serif;
        }

        .pagina-autor-publico .autor-cabecera {
            min-height:70px;
            padding:0 28px;
            background:#171a1f;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:20px;
        }

        .pagina-autor-publico .autor-marca {
            display:flex;
            align-items:center;
            gap:10px;
            color:#ffffff;
            font-size:20px;
            font-weight:700;
            text-decoration:none;
        }

        .pagina-autor-publico .autor-marca img {
            width:43px;
            height:43px;
            object-fit:contain;
        }

        .pagina-autor-publico .autor-ingresar {
            padding:10px 18px;
            border:1px solid rgba(255,255,255,.35);
            border-radius:7px;
            color:#ffffff;
            font-size:14px;
            font-weight:600;
            text-decoration:none;
        }

        .pagina-autor-publico .autor-ingresar:hover {
            background:rgba(255,255,255,.1);
        }

        .pagina-autor-publico .autor-contenedor {
            width:min(1180px, calc(100% - 40px));
            margin:36px auto 50px;
        }

        .pagina-autor-publico .autor-perfil {
            padding:34px;
            background:#ffffff;
            border-radius:14px;
            box-shadow:0 8px 28px rgba(0,0,0,.08);
            display:flex;
            align-items:center;
            gap:28px;
        }

        .pagina-autor-publico .autor-avatar {
            width:140px;
            height:140px;
            flex:0 0 140px;
            overflow:hidden;
            border-radius:50%;
            background:#353b44;
            display:flex;
            align-items:center;
            justify-content:center;
            color:#ffffff;
            font-size:54px;
            font-weight:700;
            text-transform:uppercase;
        }

        .pagina-autor-publico .autor-avatar img {
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
        }

        .pagina-autor-publico .autor-informacion {
            min-width:0;
            flex:1;
        }

        .pagina-autor-publico .autor-informacion h1 {
            margin:0;
            color:#202329;
            font-size:34px;
            line-height:1.15;
        }

        .pagina-autor-publico .autor-descripcion {
            max-width:760px;
            margin:15px 0 0;
            color:#5c626c;
            font-size:16px;
            line-height:1.65;
            white-space:pre-line;
        }

        .pagina-autor-publico .autor-estadisticas {
            display:flex;
            flex-wrap:wrap;
            gap:12px;
            margin-top:20px;
        }

        .pagina-autor-publico .autor-estadistica {
            padding:9px 14px;
            border-radius:20px;
            background:#eef0f3;
            color:#424750;
            font-size:14px;
            font-weight:600;
        }

        .pagina-autor-publico .autor-redes {
            display:flex;
            flex-wrap:wrap;
            gap:10px;
            margin-top:20px;
        }

        .pagina-autor-publico .autor-red {
            padding:9px 14px;
            border:1px solid #d7dbe0;
            border-radius:7px;
            color:#333840;
            font-size:14px;
            font-weight:600;
            text-decoration:none;
            background:#ffffff;
        }

        .pagina-autor-publico .autor-red:hover {
            background:#f3f4f6;
        }

        .pagina-autor-publico .viajes-seccion {
            margin-top:38px;
        }

        .pagina-autor-publico .viajes-cabecera {
            display:flex;
            align-items:flex-end;
            justify-content:space-between;
            gap:20px;
            margin-bottom:20px;
        }

        .pagina-autor-publico .viajes-cabecera h2 {
            margin:0;
            color:#24272d;
            font-size:27px;
        }

        .pagina-autor-publico .viajes-cantidad {
            color:#737983;
            font-size:14px;
        }

        .pagina-autor-publico .viajes-grilla {
            display:grid;
            grid-template-columns:repeat(3, minmax(0, 1fr));
            gap:22px;
        }

        .pagina-autor-publico .viaje-tarjeta {
            overflow:hidden;
            background:#ffffff;
            border-radius:12px;
            box-shadow:0 6px 22px rgba(0,0,0,.08);
            transition:
                transform .18s ease,
                box-shadow .18s ease;
        }

        .pagina-autor-publico .viaje-tarjeta:hover {
            transform:translateY(-3px);
            box-shadow:0 10px 28px rgba(0,0,0,.12);
        }

        .pagina-autor-publico .viaje-imagen-enlace {
            display:block;
            height:230px;
            overflow:hidden;
            background:#dfe2e6;
        }

        .pagina-autor-publico .viaje-imagen {
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
            transition:transform .25s ease;
        }

        .pagina-autor-publico .viaje-tarjeta:hover .viaje-imagen {
            transform:scale(1.025);
        }

        .pagina-autor-publico .viaje-sin-imagen {
            width:100%;
            height:100%;
            display:flex;
            align-items:center;
            justify-content:center;
            padding:25px;
            color:#767c85;
            font-size:14px;
            text-align:center;
        }

        .pagina-autor-publico .viaje-contenido {
            padding:20px;
        }

        .pagina-autor-publico .viaje-fecha {
            margin-bottom:9px;
            color:#7a8089;
            font-size:13px;
        }

        .pagina-autor-publico .viaje-titulo {
            margin:0;
            font-size:20px;
            line-height:1.25;
        }

        .pagina-autor-publico .viaje-titulo a {
            color:#23272d;
            text-decoration:none;
        }

        .pagina-autor-publico .viaje-titulo a:hover {
            text-decoration:underline;
        }

        .pagina-autor-publico .viaje-subtitulo {
            margin:10px 0 0;
            color:#666c75;
            font-size:14px;
            line-height:1.5;
        }

        .pagina-autor-publico .viaje-datos {
            display:flex;
            flex-wrap:wrap;
            gap:8px 13px;
            margin-top:16px;
            color:#555b64;
            font-size:13px;
        }

        .pagina-autor-publico .viaje-ver {
            display:inline-block;
            margin-top:18px;
            color:#252a31;
            font-size:14px;
            font-weight:700;
            text-decoration:none;
        }

        .pagina-autor-publico .viaje-ver:hover {
            text-decoration:underline;
        }

        .pagina-autor-publico .viajes-vacio {
            padding:45px 25px;
            background:#ffffff;
            border-radius:12px;
            color:#6d737c;
            text-align:center;
            box-shadow:0 6px 22px rgba(0,0,0,.06);
        }

        .pagina-autor-publico .autor-pie {
            padding:26px 20px 35px;
            color:#737983;
            font-size:13px;
            text-align:center;
        }

        .pagina-autor-publico .autor-pie a {
            color:#4c525b;
            font-weight:600;
            text-decoration:none;
        }

        .pagina-autor-publico .autor-pie a:hover {
            text-decoration:underline;
        }

        @media(max-width:950px){

            .pagina-autor-publico .viajes-grilla {
                grid-template-columns:repeat(2, minmax(0, 1fr));
            }

        }

        @media(max-width:680px){

            .pagina-autor-publico .autor-cabecera {
                padding:0 18px;
            }

            .pagina-autor-publico .autor-contenedor {
                width:calc(100% - 20px);
                margin-top:18px;
            }

            .pagina-autor-publico .autor-perfil {
                padding:25px 20px;
                flex-direction:column;
                text-align:center;
            }

            .pagina-autor-publico .autor-avatar {
                width:115px;
                height:115px;
                flex-basis:115px;
                font-size:44px;
            }

            .pagina-autor-publico .autor-informacion h1 {
                font-size:29px;
            }

            .pagina-autor-publico .autor-descripcion {
                font-size:15px;
            }

            .pagina-autor-publico .autor-estadisticas,
.pagina-autor-publico .autor-redes {
                justify-content:center;
            }

            .pagina-autor-publico .viajes-cabecera {
                align-items:flex-start;
                flex-direction:column;
                gap:6px;
            }

            .pagina-autor-publico .viajes-grilla {
                grid-template-columns:1fr;
            }

            .pagina-autor-publico .viaje-imagen-enlace {
                height:auto;
                aspect-ratio:16 / 10;
            }

        }

        .pagina-autor-publico .publico-compartir {
            display:flex;
            align-items:center;
            justify-content:center;
            width:100%;
            min-height:46px;
            margin-top:24px;
            padding:12px 16px;
            border:0;
            border-radius:9px;
            background:#1f6fb2;
            color:#ffffff;
            font-size:15px;
            font-weight:700;
            cursor:pointer;
        }

        .pagina-autor-publico .publico-compartir:hover {
            background:#195b91;
        }

        .pagina-autor-publico .mensaje-copiado {
            min-height:22px;
            margin:10px 0 0;
            color:#287638;
            font-size:13px;
            font-weight:700;
            text-align:center;
        }


/* ==========================================================
   VIAJE PÚBLICO - estilos trasladados desde la plantilla
========================================================== */

.pagina-viaje-publico * {
            box-sizing:border-box;
        }

        body.pagina-viaje-publico {
            margin:0;
            background:#f2f3f5;
            color:#24272d;
            font-family:Arial, Helvetica, sans-serif;
        }

        .pagina-viaje-publico .publico-cabecera {
            min-height:70px;
            padding:0 28px;
            background:#171a1f;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:20px;
        }

        .pagina-viaje-publico .publico-marca {
            display:flex;
            align-items:center;
            gap:10px;
            color:#ffffff;
            font-size:20px;
            font-weight:700;
            text-decoration:none;
        }

        .pagina-viaje-publico .publico-marca img {
            width:43px;
            height:43px;
            object-fit:contain;
        }

        .pagina-viaje-publico .publico-contenedor {
            width:min(1240px, calc(100% - 40px));
            margin:36px auto 58px;
        }

        .pagina-viaje-publico .aviso-borrador {
            margin-bottom:22px;
            padding:15px 18px;
            border:1px solid #e2ba5b;
            border-radius:10px;
            background:#fff4d5;
            color:#664b0c;
            font-size:14px;
            line-height:1.5;
        }

        .pagina-viaje-publico .publico-grilla {
            display:grid;
            grid-template-columns:minmax(0, 1.7fr) minmax(300px, .72fr);
            gap:30px;
            align-items:start;
        }

        .pagina-viaje-publico .publico-poster {
            overflow:hidden;
            border-radius:14px;
            background:#1c1f24;
            box-shadow:0 13px 36px rgba(0,0,0,.14);
        }

        .pagina-viaje-publico .publico-poster img {
            display:block;
            width:100%;
            height:auto;
        }

        .pagina-viaje-publico .publico-info {
            padding:27px;
            border-radius:14px;
            background:#ffffff;
            box-shadow:0 8px 28px rgba(0,0,0,.08);
        }

        .pagina-viaje-publico .publico-estado {
            display:inline-flex;
            margin-bottom:15px;
            padding:6px 11px;
            border-radius:999px;
            background:#e6f5e9;
            color:#267436;
            font-size:12px;
            font-weight:700;
            text-transform:uppercase;
            letter-spacing:.04em;
        }

        .pagina-viaje-publico .publico-estado-borrador {
            background:#fff0c8;
            color:#745306;
        }

        .pagina-viaje-publico .publico-info h1 {
            margin:0;
            font-size:clamp(29px, 4vw, 43px);
            line-height:1.08;
            overflow-wrap:anywhere;
        }

        .pagina-viaje-publico .publico-subtitulo {
            margin:13px 0 0;
            color:#68717c;
            font-size:18px;
            line-height:1.5;
        }

        .pagina-viaje-publico .publico-datos {
            display:grid;
            gap:12px;
            margin:25px 0;
            padding:20px 0;
            border-top:1px solid #e6e8eb;
            border-bottom:1px solid #e6e8eb;
        }

        .pagina-viaje-publico .publico-dato {
            display:flex;
            align-items:flex-start;
            gap:10px;
            line-height:1.45;
        }

        .pagina-viaje-publico .publico-descripcion {
            color:#545c66;
            line-height:1.65;
            white-space:pre-line;
            overflow-wrap:anywhere;
        }

        .pagina-viaje-publico .publico-dato-contenido {
            display:flex;
            flex-direction:column;
            gap:3px;
            min-width:0;
        }

        .pagina-viaje-publico .publico-dato-etiqueta {
            color:#858d97;
            font-size:11px;
            font-weight:700;
            letter-spacing:.05em;
            text-transform:uppercase;
        }

        .pagina-viaje-publico .publico-caminos {
            display:flex;
            flex-wrap:wrap;
            gap:8px;
            margin-top:5px;
        }

        .pagina-viaje-publico .publico-camino {
            display:inline-flex;
            align-items:center;
            min-height:30px;
            padding:6px 10px;
            border:1px solid #d9dee4;
            border-radius:999px;
            background:#f5f7f9;
            color:#3f4852;
            font-size:12px;
            font-weight:700;
        }

        .pagina-viaje-publico .publico-video {
            margin-top:22px;
        }

        .pagina-viaje-publico .publico-video-enlace {
            display:flex;
            align-items:center;
            gap:12px;
            width:100%;
            padding:12px;
            border:1px solid #e0e3e7;
            border-radius:10px;
            background:#f8f9fa;
            color:#24272d;
            text-decoration:none;
            transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
        }

        .pagina-viaje-publico .publico-video-enlace:hover {
            transform:translateY(-1px);
            border-color:#cdd3d9;
            box-shadow:0 7px 18px rgba(0,0,0,.08);
        }

        .pagina-viaje-publico .publico-video-miniatura {
            position:relative;
            width:112px;
            flex:0 0 112px;
            aspect-ratio:16 / 9;
            overflow:hidden;
            border-radius:7px;
            background:#202328;
        }

        .pagina-viaje-publico .publico-video-miniatura img {
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
        }

        .pagina-viaje-publico .publico-video-play {
            position:absolute;
            inset:0;
            display:flex;
            align-items:center;
            justify-content:center;
            color:#ffffff;
            font-size:27px;
            text-shadow:0 2px 7px rgba(0,0,0,.65);
        }

        .pagina-viaje-publico .publico-video-texto {
            display:flex;
            flex-direction:column;
            gap:4px;
            min-width:0;
        }

        .pagina-viaje-publico .publico-video-titulo {
            font-size:14px;
            font-weight:700;
        }

        .pagina-viaje-publico .publico-video-ayuda {
            color:#747d87;
            font-size:12px;
            line-height:1.4;
        }



        .pagina-viaje-publico .publico-descargas {
            margin-top:24px;
            padding:20px;
            border:1px solid #e0e4e8;
            border-radius:11px;
            background:#f8f9fa;
        }

        .pagina-viaje-publico .publico-descargas-titulo {
            margin:0 0 15px;
            font-size:16px;
            font-weight:700;
            color:#2a3037;
        }

        .pagina-viaje-publico .publico-descargas-botones {
            display:grid;
            grid-template-columns:repeat(2, minmax(0, 1fr));
            gap:10px;
        }

        .pagina-viaje-publico .publico-descarga-boton {
            display:flex;
            align-items:center;
            justify-content:center;
            min-height:44px;
            padding:11px 14px;
            border-radius:8px;
            font-size:14px;
            font-weight:700;
            text-decoration:none;
            transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
        }

        .pagina-viaje-publico .publico-descarga-boton:hover {
            transform:translateY(-1px);
            box-shadow:0 6px 15px rgba(0,0,0,.08);
        }

        .pagina-viaje-publico .publico-descarga-gpx {
            background:#1f6fb2;
            color:#ffffff;
        }

        .pagina-viaje-publico .publico-descarga-gpx:hover {
            background:#195b91;
        }

        .pagina-viaje-publico .publico-descarga-kml {
            border:1px solid #d5dbe1;
            background:#ffffff;
            color:#39414a;
        }

        .pagina-viaje-publico .publico-descarga-kml:hover {
            background:#f1f3f5;
        }

        .pagina-viaje-publico .publico-descargas-ayuda {
            margin:13px 0 0;
            color:#6f7882;
            font-size:12px;
            line-height:1.5;
        }

        .pagina-viaje-publico .publico-autor {
            padding: 10px;
            border:1px solid #dfe3e7;
            border-radius:8px;
            background:#ffffff;
        }

        .pagina-viaje-publico .publico-autor-etiqueta {
            margin:0 0 6px;
            color:#8a919a;
            font-size:12px;
            font-weight:700;
            text-transform:uppercase;
            letter-spacing:.06em;
        }

        .pagina-viaje-publico .publico-autor-nombre {
            margin:0;
            font-size:19px;
            font-weight:700;
        }

        .pagina-viaje-publico .publico-autor-descripcion {
            margin:10px 0 0;
            color:#69717b;
            line-height:1.55;
            white-space:pre-line;
        }

        .pagina-viaje-publico .publico-redes {
            display:flex;
            flex-wrap:wrap;
            gap:9px;
            margin-top:17px;
        }

        .pagina-viaje-publico .publico-red {
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:38px;
            padding:8px 12px;
            border:1px solid #dfe3e7;
            border-radius:8px;
            background:#f4f5f6;
            color:#30363d;
            font-size:13px;
            font-weight:700;
            text-decoration:none;
            transition:
                background .15s ease,
                border-color .15s ease,
                transform .15s ease;
        }

        .pagina-viaje-publico .publico-red:hover {
            background:#e8ebee;
            border-color:#cfd4d9;
            transform:translateY(-1px);
        }

        .pagina-viaje-publico .mensaje-copiado {
            min-height:12px;
            margin:10px 0 0;
            color:#287638;
            font-size:12px;
            font-weight:700;
            text-align:center;
        }

        .pagina-viaje-publico .publico-pie {
            padding:28px 18px;
            color:#747c86;
            text-align:center;
            font-size:13px;
        }

        /* ==========================================================
           Otros viajes del autor
        ========================================================== */

        .pagina-viaje-publico .otros-viajes {
            margin-top:26px;
            padding-top:24px;
        }

        .pagina-viaje-publico .otros-viajes-titulo {
            margin:0 0 16px;
            font-size:18px;
            font-weight:700;
            color:#24272d;
        }

        .pagina-viaje-publico .otros-viajes-grilla {
            display:grid;
            grid-template-columns:repeat(2, minmax(0, 1fr));
            gap:14px;
        }

        .pagina-viaje-publico .otro-viaje {
            overflow:hidden;
            border:1px solid #e1e4e8;
            border-radius:10px;
            background:#ffffff;
            color:#24272d;
            text-decoration:none;
            transition:
                transform .15s ease,
                box-shadow .15s ease,
                border-color .15s ease;
        }

        .pagina-viaje-publico .otro-viaje:hover {
            transform:translateY(-2px);
            border-color:#cbd1d7;
            box-shadow:0 8px 20px rgba(0,0,0,.10);
        }

        .pagina-viaje-publico .otro-viaje-imagen {
            width:100%;
            aspect-ratio:4 / 3;
            overflow:hidden;
            background:#1c1f24;
        }

        .pagina-viaje-publico .otro-viaje-imagen img {
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
        }

        .pagina-viaje-publico .otro-viaje-contenido {
            padding:12px;
        }

        .pagina-viaje-publico .otro-viaje-titulo {
            margin:0;
            font-size:14px;
            font-weight:700;
            line-height:1.35;
            overflow-wrap:anywhere;
        }

        .pagina-viaje-publico .otro-viaje-datos {
            display:flex;
            flex-wrap:wrap;
            gap:5px 9px;
            margin-top:8px;
            color:#737b85;
            font-size:12px;
            line-height:1.4;
        }

        .pagina-viaje-publico .otro-viaje-ver {
            display:block;
            margin-top:10px;
            color:#1f6fb2;
            font-size:13px;
            font-weight:700;
        }

        .pagina-viaje-publico a.otro-viaje-ver {
            text-decoration:none;
        }

        .pagina-viaje-publico a.otro-viaje-ver:hover {
            text-decoration:none;
        }

        @media (max-width:880px){

            .pagina-viaje-publico .publico-grilla {
                grid-template-columns:1fr;
            }

            .pagina-viaje-publico .publico-contenedor {
                margin-top:24px;
            }

        }

        @media (max-width:560px){

            .pagina-viaje-publico .publico-descargas-botones {
                grid-template-columns:1fr;
            }

            .pagina-viaje-publico .otros-viajes-grilla {
                grid-template-columns:1fr;
            }

            .pagina-viaje-publico .otro-viaje-imagen {
                aspect-ratio:16 / 9;
            }

            .pagina-viaje-publico .publico-cabecera {
                min-height:64px;
                padding:0 15px;
            }

            .pagina-viaje-publico .publico-marca {
                font-size:18px;
            }

            .pagina-viaje-publico .publico-marca img {
                width:38px;
                height:38px;
            }

            .pagina-viaje-publico .publico-contenedor {
                width:calc(100% - 20px);
                margin-bottom:35px;
            }

            .pagina-viaje-publico .publico-info {
                padding:21px;
            }

        }

        .pagina-viaje-publico .publico-autor-identidad {
            display:flex;
            align-items:center;
            gap:13px;
        }

        .pagina-viaje-publico .publico-autor-avatar {
            display:flex;
            align-items:center;
            justify-content:center;
            width:54px;
            height:54px;
            flex:0 0 54px;
            overflow:hidden;
            border-radius:50%;
            background:#252a31;
            color:#ffffff;
            font-size:21px;
            font-weight:700;
            text-transform:uppercase;
        }

        .pagina-viaje-publico .publico-autor-avatar img {
            display:block;
            width:100%;
            height:100%;
            object-fit:cover;
        }

        .pagina-viaje-publico .autor-ingresar {
            padding:10px 18px;
            border:1px solid rgba(255,255,255,.35);
            border-radius:7px;
            color:#ffffff;
            font-size:14px;
            font-weight:600;
            text-decoration:none;
        }

        .pagina-viaje-publico .autor-ingresar:hover {
            background:rgba(255,255,255,.1);
        }

        .pagina-viaje-publico .publico-autor-avatar-link {
            text-decoration:none;
            color:inherit;
        }

        .pagina-viaje-publico .publico-autor-datos {
            display:flex;
            flex-direction:column;
            align-items:flex-start;
        }

        .pagina-viaje-publico .publico-autor-nombre {
            color:#202124;
            font-size:16px;
            font-weight:700;
            text-decoration:none;
        }

        .pagina-viaje-publico .publico-autor-nombre:hover {
            text-decoration:underline;
        }

        .pagina-viaje-publico .publico-autor-viajes {
            margin-top:4px;
            font-size:13px;
            color:#666;
            text-decoration:none;
        }

        .pagina-viaje-publico .publico-autor-viajes:hover {
            text-decoration:underline;
        }

        .pagina-viaje-publico .detalle-ayuda {
            margin: 8px 0 0 42px;
            font-size: 13px;
            line-height: 1.5;
            color: #6b7280;
            font-style: italic;
        }

        .pagina-viaje-publico .viaje-estadisticas-contenedor {
            padding:10px;
            border:1px solid #e0e4e8;
            border-radius:11px;
            background:#f8f9fa;
            padding-top: 20px;
        }

        .pagina-viaje-publico .viaje-estadisticas {
            display:inline-flex;
            align-items:center;
            gap:18px;
            font-weight: bold;
            color:#6b7280;
            font-size:15px;
        }

        .pagina-viaje-publico .viaje-like {
            display:inline-flex;
            align-items:center;
            justify-content:flex-start;
            gap:6px;

            width:auto !important;
            min-width:0 !important;
            max-width:none !important;

            margin:0 !important;
            padding:0 !important;

            border:0 !important;
            background:none !important;
            box-shadow:none !important;

            color:inherit;
            font:inherit;
            line-height:1;

            cursor:pointer;
        }

        .pagina-viaje-publico .viaje-like:hover {
            width:auto !important;
            padding:0 !important;
            background:none !important;
            box-shadow:none !important;
            transform:none !important;
            color:#d32f2f;
        }

        .pagina-viaje-publico .viaje-like:focus,
.pagina-viaje-publico .viaje-like:active {
            outline:none;
            background:none !important;
            box-shadow:none !important;
        }

        .pagina-viaje-publico .viaje-like.activo {
            color:#d32f2f;
            font-weight:600;
        }

        .pagina-viaje-publico .viaje-vistas {
            display:inline-flex;
            align-items:center;
            gap:6px;
            line-height:1;
        }

        .pagina-viaje-publico .viaje-compartir {
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:6px;

            width:auto !important;
            min-width:0 !important;

            margin:0 !important;
            padding:0 !important;

            background:none !important;
            border:0 !important;
            box-shadow:none !important;

            color:#666;
            font:inherit;
            line-height:1;

            cursor:pointer;
        }

        .pagina-viaje-publico .viaje-compartir:hover {
            background:none !important;
            color:#222;
            transform:none !important;
        }

        .pagina-viaje-publico .viaje-compartir:focus-visible {
            outline:2px solid currentColor;
            outline-offset:4px;
            border-radius:4px;
        }

        .pagina-viaje-publico .viaje-vistas {
            display:inline-flex;
            align-items:center;
            gap:6px;
            line-height:1;
        }

        .pagina-viaje-publico .mensaje-copiado {


            text-align:center;

            color:#2d7a2d;

            opacity:0;

            transition:opacity .3s ease;
        }

        .pagina-viaje-publico .mensaje-copiado.visible {

            opacity:1;
        }


/* ==========================================================
   LOGIN - estilos trasladados desde la plantilla
========================================================== */

.pagina-login * {
            box-sizing: border-box;
        }

        body.pagina-login {
            margin: 0;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px;
            font-family: Arial, sans-serif;
            background: #ece8df;
            color: #222;
        }

        .pagina-login .login {
            width: 100%;
            max-width: 420px;
            padding: 32px;
            background: #ffffff;
            border-radius: 12px;
            box-shadow: 0 10px 35px rgba(0, 0, 0, 0.12);
        }

        .pagina-login .login-brand {
            text-align:center;
            margin-bottom:32px;
        }

        .pagina-login .login-brand img {
            display:block;
            margin:0 auto 18px;
        }

        .pagina-login .login-brand h1 {
            margin:0;
            font-size:34px;
            font-weight:700;
            color:#222;
        }

        .pagina-login .login-slogan {
            margin:14px 0 0;
            font-size:18px;
            font-weight:600;
            color:#333;
        }

        .pagina-login .login-descripcion {
            max-width:340px;
            margin:16px auto 0;
            color:#666;
            font-size:14px;
            line-height:1.6;
        }

        .pagina-login label {
            display: block;
            margin-bottom: 7px;
            font-weight: bold;
        }

        .pagina-login input {
            width: 100%;
            height: 46px;
            margin-bottom: 20px;
            padding: 0 12px;
            border: 1px solid #bbb;
            border-radius: 6px;
            font-size: 16px;
        }

        .pagina-login input:focus {
            outline: none;
            border-color: #333;
        }

        .pagina-login button {
            width: 100%;
            height: 48px;
            border: 0;
            border-radius: 6px;
            background: #222;
            color: white;
            font-size: 16px;
            font-weight: bold;
            cursor: pointer;
        }

        .pagina-login button:hover {
            background: #444;
        }

        .pagina-login .mensaje {
            margin-bottom: 20px;
            padding: 12px;
            border-radius: 6px;
            background: #f8d7da;
            color: #842029;
        }

        .pagina-login .registro-info {

            margin-top:28px;
            padding-top:22px;

            border-top:1px solid #ddd;

            text-align:center;

            font-size:14px;
            line-height:1.6;

            color:#666;
        }

        .pagina-login .registro-info a {

            color:#222;

            font-weight:bold;

            text-decoration:none;
        }

        .pagina-login .registro-info a:hover {

            text-decoration:underline;
        }

/* ==========================================================
   ETAPA 3 - NAVEGACIÓN Y PÁGINA SOBRE RIDESTUDIO
   Paleta restaurada a la versión anterior
========================================================== */

/* Mantiene la cabecera oscura original. */
.barra-superior,
.publico-cabecera,
.autor-cabecera {
    background: #202020;
    color: #ffffff;
}

.marca-superior,
.publico-marca,
.autor-marca,
.navegacion a,
.autor-ingresar {
    color: #ffffff;
}

.navegacion a.activo {
    font-weight: 700;
}

.navegacion-ingresar {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 7px;
    color: #ffffff !important;
    background: transparent;
}

.navegacion-ingresar:hover {
    background: rgba(255, 255, 255, .10);
    text-decoration: none !important;
}

/* ==========================================================
   SOBRE RIDESTUDIO
========================================================== */

.pagina-sobre {
    min-height: 100vh;
    background: #f2f3f5;
    color: #24272d;
}

.sobre-hero,
.sobre-beneficios,
.sobre-comunidad {
    width: min(1180px, calc(100% - 40px));
    margin-left: auto;
    margin-right: auto;
}

.sobre-hero {
    min-height: 500px;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    align-items: center;
    gap: 56px;
    padding: 64px 0;
}

.sobre-hero-contenido h1 {
    max-width: 820px;
    margin: 14px 0 22px;
    color: #202329;
    font-size: clamp(2.5rem, 6vw, 5rem);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.sobre-hero-contenido > p {
    max-width: 700px;
    margin: 0;
    color: #5c626c;
    font-size: 1.2rem;
    line-height: 1.7;
}

.sobre-etiqueta {
    display: inline-flex;
    padding: 8px 12px;
    border: 1px solid #e0b0aa;
    border-radius: 999px;
    color: #a73529;
    background: #f8e7e4;
    font-weight: 700;
    font-size: .84rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.sobre-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.sobre-acciones a,
.sobre-comunidad > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
}

.sobre-marca-grande{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.sobre-imagen{
    width:100%;
    max-width:620px;
    height:auto;
    display:block;
    border-radius:20px;
    box-shadow:0 18px 45px rgba(0,0,0,.25);
}

.sobre-beneficios{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

@media (max-width: 760px){

    .sobre-beneficios{
        grid-template-columns: 1fr;
    }

}

.sobre-tarjeta {
    padding: 28px;
    border: 1px solid #dddddd;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 22px rgba(0, 0, 0, .07);
}

.sobre-tarjeta > span {
    font-size: 2rem;
}

.sobre-tarjeta h2 {
    margin: 18px 0 10px;
    color: #24272d;
    font-size: 1.25rem;
}

.sobre-tarjeta p {
    margin: 0;
    color: #5c626c;
    line-height: 1.65;
}

.sobre-comunidad {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 72px;
    padding: 34px;
    border: 1px solid #dddddd;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .08);
}

.sobre-comunidad h2 {
    max-width: 760px;
    margin: 12px 0 0;
    color: #24272d;
    font-size: clamp(1.5rem, 3vw, 2.4rem);
}

@media (max-width: 800px) {
    .sobre-hero {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 48px 0;
    }

    .sobre-marca-grande {
        min-height: 240px;
    }

    .sobre-beneficios {
        grid-template-columns: 1fr;
    }

    .sobre-comunidad {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ==========================================================
   AJUSTES RESPONSIVE - MENÚ, LOGIN Y GENERADOR
========================================================== */

/* El selector global button { width:100% } no debe ensanchar
   el botón hamburguesa de la cabecera. */
.barra-superior .boton-menu {
    width: auto;
    min-width: 42px;
    max-width: 42px;
    height: 42px;
    flex: 0 0 42px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    line-height: 1;
}

/* Login dentro de base.html: la cabecera queda arriba y el formulario
   continúa centrado en el espacio disponible. */
body.pagina-login {
    display: block;
    min-height: 100vh;
    padding: 0;
    background: #ece8df;
}

.pagina-login .contenido-principal {
    min-height: calc(100vh - 70px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 20px;
}

.pagina-login .login {
    margin: 0;
}

/* Formulario Nuevo viaje / Editar viaje */
.contenedor-generador {
    min-height: calc(100vh - 150px);
}

@media (max-width: 800px) {

    .barra-superior {
        flex-wrap: nowrap;
        gap: 12px;
    }

    .marca-superior {
        min-width: 0;
        flex: 1 1 auto;
    }

    .marca-superior span {
        white-space: nowrap;
    }

    .barra-superior .boton-menu {
        display: inline-flex;
        margin-left: auto;
    }

    /* En celular el formulario deja de compartir una fila angosta
       con la vista previa y pasa a ocupar todo el ancho. */
    .contenedor-generador {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        min-height: 0;
    }

    .contenedor-generador > .menu {
        width: 100%;
        max-width: none;
        height: auto;
        overflow: visible;
        padding: 16px;
    }

    .contenedor-generador > .menu form {
        width: 100%;
    }

    .contenedor-generador .seccion-formulario {
        width: 100%;
    }

    .contenedor-generador > .preview {
        width: 100%;
        min-height: 260px;
        margin-top: 0;
        padding: 18px 16px 30px;
    }

    .contenedor-generador .preview img {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: none;
    }

    .contenedor-generador .acciones {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .contenedor-generador .acciones a,
    .contenedor-generador .acciones button,
    .contenedor-generador .formulario-guardar {
        width: 100%;
    }

    .pagina-login .contenido-principal {
        min-height: calc(100vh - 62px);
        padding: 22px 16px;
    }

    .pagina-login .login {
        max-width: 460px;
        padding: 26px 20px;
    }
}

@media (max-width: 420px) {

    .barra-superior {
        padding-left: 12px;
        padding-right: 12px;
    }

    .marca-superior {
        gap: 7px;
        font-size: 19px;
    }

    .marca-superior img {
        width: 34px;
        height: 34px;
    }

    .barra-superior .boton-menu {
        min-width: 38px;
        max-width: 38px;
        height: 38px;
        flex-basis: 38px;
        font-size: 22px;
    }

    .contenedor-generador > .menu {
        padding: 12px;
    }
}
.sobre-frase{
    max-width:520px;
    text-align:center;
    font-size:1.5rem;
    font-style:italic;
    font-weight:500;
    color:#555;
    margin-bottom:30px;
    line-height:1.5;
}

.sobre-texto{
    max-width:760px;
    margin:40px auto 0;
    text-align:center;
    line-height:1.8;
    font-size:1.1rem;
}

.sobre-texto p{
    margin-bottom:22px;
}

.filtros-feed{
    padding: 10px;
}

.filtros-feed input[type="search"]{
    width:100%;
    box-sizing:border-box;
}

.feed-filtros{
    display:flex;
    gap:10px;
    margin-top:12px;
}

.chip-filtro{
    border:1px solid #d8dde3;
    background:#ccc;
    border-radius:999px;
    padding:8px 16px;
    cursor:pointer;
    transition:.2s;
}

.chip-filtro:hover{
    background:#f3f5f7;
}

.chip-filtro.activo{
    background:#2f80ed;
    color:#fff;
    border-color:#2f80ed;
}

/* ==========================================================
   Página pública - Planificar esta ruta
   ========================================================== */

.publico-planificar {
    margin-top: 28px;
    padding: 24px;
    border: 1px solid rgba(34, 34, 34, 0.12);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

.publico-planificar-cabecera {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
}

.publico-planificar-icono {
    flex: 0 0 auto;
    font-size: 30px;
    line-height: 1;
}

.publico-planificar-cabecera h2 {
    margin: 0 0 6px;
    font-size: 24px;
    line-height: 1.2;
}

.publico-planificar-cabecera p {
    margin: 0;
    color: #666;
    line-height: 1.55;
}

.publico-planificar-bloque {
    padding: 18px 0;
    border-top: 1px solid rgba(34, 34, 34, 0.09);
}

.publico-planificar-bloque h3 {
    margin: 0 0 13px;
    font-size: 17px;
}

.publico-planificar-autonomia {
    display: flex;
    align-items: center;
    gap: 13px;
}

.publico-planificar-autonomia h3 {
    margin-bottom: 3px;
}

.publico-planificar-autonomia strong {
    font-size: 21px;
}

.publico-planificar-bloque-icono {
    font-size: 27px;
}

.publico-caminos-porcentaje {
    display: grid;
    gap: 15px;
}

.publico-camino-porcentaje-cabecera {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 7px;
    font-size: 15px;
}

.publico-camino-barra {
    width: 100%;
    height: 11px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(34, 34, 34, 0.10);
}

.publico-camino-barra span {
    display: block;
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: #c0392b;
}

.publico-planificar-texto {
    white-space: pre-line;
    color: #444;
    line-height: 1.7;
}

.publico-planificar-alerta {
    margin-top: 4px;
    padding: 16px;
    border: 1px solid rgba(192, 57, 43, 0.18);
    border-radius: 12px;
    background: rgba(192, 57, 43, 0.055);
}

.publico-planificar-alerta h3 {
    color: #9f2f24;
}

@media (max-width: 640px) {
    .publico-planificar {
        padding: 10px;
        border-radius: 15px;
    }

    .publico-planificar-cabecera h2 {
        font-size: 21px;
    }
}

@media (max-width:768px){

    .autor-estadisticas{
        display:flex;
        justify-content:center;
        align-items:center;
        gap:16px;
        flex-wrap:nowrap;
    }

    .autor-estadistica{
        white-space:nowrap;
        font-size:14px;
    }

    .solo-pc{
        display:none;
    }

}

/* ==========================================================
   Exportación de imágenes
   ========================================================== */

.modal-exportacion {
    width: min(520px, calc(100% - 32px));
    padding: 0;
    border: 0;
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.modal-exportacion::backdrop {
    background: rgba(15, 23, 42, 0.68);
}

.modal-exportacion-contenido {
    padding: 24px;
}

.modal-exportacion-cabecera {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
}

.modal-exportacion-cabecera h2 {
    margin: 0 0 5px;
}

.modal-exportacion-cabecera p {
    margin: 0;
    color: #64748b;
}

.modal-exportacion-cerrar {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.modal-exportacion fieldset {
    display: grid;
    gap: 10px;
    margin: 0 0 18px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.modal-exportacion legend {
    padding: 0 6px;
    font-weight: 700;
}

.modal-exportacion label {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
}

.modal-exportacion .boton-principal {
    width: 100%;
    justify-content: center;
}
.modal-exportacion-opciones {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 14px;
    border: 1px solid #d8d8d8;
    border-radius: 10px;
}

.modal-exportacion-opciones legend {
    padding: 0 6px;
    font-weight: 700;
}

.modal-exportacion-opcion {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 8px 4px;
    cursor: pointer;
    box-sizing: border-box;
}

.modal-exportacion-opcion + .modal-exportacion-opcion {
    border-top: 1px solid #eeeeee;
}

.modal-exportacion-opcion span {
    min-width: 0;
    line-height: 1.3;
    text-align: left;
}

.modal-exportacion-opcion input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
    cursor: pointer;
}
.modal-exportacion {
    width: min(92vw, 520px);
    padding: 0;
    border: 0;
    border-radius: 14px;
}

.modal-exportacion-contenido {
    display: flex;
    flex-direction: column;
    gap: 18px;
    width: 100%;
    padding: 22px;
    box-sizing: border-box;
}
