:root {
    --azul-institucional: #003b78;
    --azul-profundo: #002b5c;
    --azul-claro: #0d6efd;
    --texto-principal: #062b63;
    --texto-secundario: #52627a;
    --borde-suave: #dbe6f5;
    --fondo-general: #f5f8fc;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Segoe UI", Arial, sans-serif;
    background: var(--fondo-general);
    color: var(--texto-principal);
}
.header-servicios {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.14) 0%, transparent 32%),
        radial-gradient(circle at bottom left, rgba(255,255,255,.10) 0%, transparent 35%),
        linear-gradient(135deg, #012b63 0%, #01458f 40%, #0b67c1 72%, #1b84dd 100%);
    min-height: 95px;
    display: flex;
    align-items: center;
    padding: 0 30px;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
}

.header-brand {
    display: flex;
    align-items: center;
    gap: 18px;
}

.logo-header {
    height: 60px;
    width: auto;
    display: block;
}

.header-brand h1 {
    margin: 0;
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.portal-main {
    padding-top: 42px;
    padding-bottom: 42px;
}

.portal-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 32px;
    margin-bottom: 24px;
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff, #eef6ff);
    border: 1px solid #dbe6f5;
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.10);
}

.etiqueta-ciclo {
    display: inline-block;
    margin-bottom: 10px;
    padding: 7px 16px;
    border-radius: 999px;
    background: #e5f0ff;
    color: #003b78;
    font-weight: 800;
    font-size: .9rem;
}

.portal-hero h2 {
    margin: 0;
    font-weight: 850;
    color: #062b63;
}

.portal-hero p {
    margin: 8px 0 0;
    color: #52627a;
}

.btn-salir {
    border-radius: 10px;
    padding: 11px 20px;
    background: #003b78;
    color: #fff;
    font-weight: 700;
}

.btn-salir:hover {
    background: #002b5c;
    color: #fff;
}

.credencial-alumno {
    display: grid;
    grid-template-columns: 1.2fr 2fr;
    gap: 22px;
    margin-bottom: 34px;
}

.credencial-principal,
.credencial-datos {
    padding: 28px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.credencial-principal {
    display: flex;
    align-items: center;
    gap: 18px;
}

.avatar-alumno {
    width: 78px;
    height: 78px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eaf2fd;
    color: #003b78;
    font-size: 2.6rem;
}

.credencial-principal span,
.credencial-datos span {
    display: block;
    color: #52627a;
    font-size: .9rem;
    margin-bottom: 4px;
}

.credencial-principal h3 {
    margin: 0;
    color: #062b63;
    font-weight: 850;
}

.credencial-datos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.credencial-datos strong {
    color: #062b63;
    font-size: 1.05rem;
}

.servicios-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.servicio-card-moderno {
    position: relative;
    min-height: 315px;
    padding: 30px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.10);
    transition: .2s ease;
}

.servicio-card-moderno:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(20, 55, 100, 0.16);
}

.btn-info-servicio {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: #eef6ff;
    color: #003b78;
    font-size: 1.2rem;
}

.btn-info-servicio:hover {
    background: #003b78;
    color: #fff;
}

.servicio-card-icon {
    width: 72px;
    height: 72px;
    margin-bottom: 22px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.servicio-card-icon i {
    font-size: 2.25rem;
}

.servicio-card-icon.azul {
    background: #e7f1ff;
    color: #0d6efd;
}

.servicio-card-icon.verde {
    background: #e9f9f0;
    color: #17985c;
}

.servicio-card-icon.morado {
    background: #f1eaff;
    color: #7b3ff2;
}

.servicio-card-moderno h3 {
    margin-bottom: 10px;
    color: #062b63;
    font-weight: 850;
}

.servicio-card-moderno p {
    color: #52627a;
    margin-bottom: 18px;
}

.fecha-activacion {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 22px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f3f8ff;
    color: #004c9b;
    font-size: .88rem;
    font-weight: 700;
}

.btn-servicio {
    width: 100%;
    padding: 12px;
    margin-bottom: 5px;
    border-radius: 12px;
    background: linear-gradient(135deg, #004c9b, #006be6);
    color: #ffffff;
    font-weight: 800;
    border: none;
}

.btn-servicio:hover {
    background: linear-gradient(135deg, #003f82, #005ac4);
    color: #ffffff;
}

.btn-servicio.disabled {
    background: #d9e1ec;
    color: #7a8699;
    opacity: 1;
}

.servicio-card-moderno.deshabilitado {
    opacity: .72;
}

.modal-info-content {
    background: #f5f8fc;
}

.modal-info-header {
    background:
        linear-gradient(135deg, #012b63 0%, #01458f 40%, #0b67c1 72%, #1b84dd 100%);
    color: #ffffff;
    border: none;
    padding: 20px 28px;
}

.modal-info-header h5 {
    font-weight: 800;
}

.modal-info-body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.modal-info-body img {
    max-width: 100%;
    max-height: calc(100vh - 120px);
    object-fit: contain;
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(20, 55, 100, 0.18);
    background: #ffffff;
}

.footer-servicios {
    padding: 18px;
    background: #002b5c;
    color: #ffffff;
    text-align: center;
    font-size: .9rem;
}

@media (max-width: 991px) {
    .credencial-alumno {
        grid-template-columns: 1fr;
    }

    .credencial-datos {
        grid-template-columns: repeat(2, 1fr);
    }

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

@media (max-width: 768px) {
    .header-servicios {
        padding: 0 18px;
        min-height: 82px;
    }

    .logo-header {
        height: 46px;
    }

    .header-brand h1 {
        font-size: 1.35rem;
    }

    .portal-hero {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
    }
}

@media (max-width: 575px) {
    .credencial-datos {
        grid-template-columns: 1fr;
    }

    .credencial-principal {
        flex-direction: column;
        align-items: flex-start;
    }

    .servicio-card-moderno {
        min-height: auto;
        padding: 24px;
    }
}

/*
.header-servicios{

    background:
        radial-gradient(circle at top right,
            rgba(255,255,255,.12) 0%,
            transparent 30%),

        radial-gradient(circle at bottom left,
            rgba(255,255,255,.08) 0%,
            transparent 35%),

        linear-gradient(135deg,
            #012b63 0%,
            #01458f 40%,
            #0b67c1 72%,
            #1b84dd 100%);

    min-height:95px;

    display:flex;
    align-items:center;

    padding:0 30px;

    box-shadow:0 6px 18px rgba(0,0,0,.18);

}

.header-brand{

    display:flex;
    align-items:center;
    gap:18px;

}

.logo-header{

    height:60px;
    width:auto;
    display:block;

}

.titulo-header{

    display:flex;
    align-items:center;

}

.titulo-header h1{

    margin:0;

    color:#FFF;

    font-size:2rem;

    font-weight:700;

    line-height:1;

    white-space:nowrap;

}
*/

.main-servicios {
    padding: 42px 24px 34px;
}

.card-login,
.card-info {
    height: 100%;
    background: rgba(255,255,255,0.96);
    border: 1px solid var(--borde-suave);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(20, 55, 100, 0.10);
    padding: 42px;
}

.card-login {
    text-align: center;
}

.icon-login {
    width: 96px;
    height: 96px;
    margin: 0 auto 26px;
    border-radius: 50%;
    background: #eaf2fd;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-login i {
    font-size: 3rem;
    color: var(--azul-institucional);
}

.card-login h2,
.card-info h2 {
    color: var(--texto-principal);
    font-weight: 800;
}

.texto-login {
    max-width: 430px;
    margin: 12px auto 30px;
    color: var(--texto-secundario);
    font-size: 1.05rem;
}

.card-login form {
    text-align: left;
}

.form-label {
    color: var(--texto-principal);
    font-weight: 700;
}

.input-matricula .input-group-text {
    background: #ffffff;
    border-right: 0;
    color: #667085;
    font-size: 1.4rem;
}

.input-matricula .form-control {
    height: 58px;
    border-left: 0;
    font-size: 1.05rem;
}

.input-matricula .form-control:focus {
    box-shadow: none;
    border-color: #ced4da;
}

.form-text {
    display: block;
    margin-top: 10px;
    color: var(--texto-secundario);
}

.btn-ingresar {
    height: 58px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, #004c9b, #006be6);
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(0, 75, 155, 0.22);
}

.btn-ingresar:hover {
    background: linear-gradient(135deg, #003f82, #005ac4);
    color: #ffffff;
}

.nota-login {
    margin-top: 28px;
    padding: 16px 18px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border-radius: 10px;
    background: #eef6ff;
    color: #184b8f;
    text-align: left;
}

.nota-login i {
    font-size: 1.4rem;
}

.datos-protegidos {
    margin-top: 34px;
    display: flex;
    justify-content: center;
    gap: 10px;
    color: #69758b;
}

.datos-protegidos i {
    font-size: 1.4rem;
}

.titulo-info {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 34px;
}

.icon-info {
    min-width: 74px;
    height: 74px;
    border-radius: 50%;
    background: #e4f0ff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-info i {
    font-size: 2.3rem;
    color: var(--azul-institucional);
}

.titulo-info p {
    margin: 4px 0 0;
    color: var(--texto-secundario);
}

.servicio-item {
    display: grid;
    grid-template-columns: 74px 1fr 160px;
    gap: 20px;
    align-items: center;
    padding: 24px;
    margin-bottom: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #ffffff;
}

.servicio-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.servicio-icon i {
    font-size: 2rem;
}

.servicio-icon.azul {
    background: #e7f1ff;
    color: #0d6efd;
}

.servicio-icon.verde {
    background: #e9f9f0;
    color: #17985c;
}

.servicio-icon.morado {
    background: #f1eaff;
    color: #7b3ff2;
}

.servicio-texto h3 {
    margin: 0 0 8px;
    font-size: 1.15rem;
    color: var(--texto-principal);
    font-weight: 800;
}

.servicio-texto p {
    margin: 0;
    color: var(--texto-secundario);
}

.fecha-servicio {
    padding: 14px;
    border-radius: 10px;
    border: 1px solid #cfe1ff;
    background: #f3f8ff;
    text-align: center;
    color: #004c9b;
}

.fecha-servicio.verde {
    border-color: #ccefdc;
    background: #f1fbf6;
    color: #087443;
}

.fecha-servicio.morado {
    border-color: #ddd0ff;
    background: #f8f4ff;
    color: #6430c8;
}

.fecha-servicio i {
    display: block;
    font-size: 1.3rem;
    margin-bottom: 4px;
}

.fecha-servicio span {
    display: block;
    font-size: .82rem;
}

.fecha-servicio strong {
    display: block;
    font-size: .95rem;
}

.nota-fechas {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 26px;
    padding: 18px;
    border-radius: 12px;
    border: 1px solid #ffe1a6;
    background: #fff8e8;
    color: #795700;
}

.nota-fechas i {
    font-size: 1.7rem;
    color: #d69500;
}

.footer-servicios {
    padding: 18px;
    background: var(--azul-profundo);
    color: #ffffff;
    text-align: center;
    font-size: .9rem;
}

@media (max-width:768px){

    .header-servicios{

        padding:0 18px;
        min-height:80px;

    }

    .logo-header{

        height:46px;

    }

    .titulo-header h1{

        font-size:1.4rem;

    }

}

@media (max-width: 991px) {   

    .card-login,
    .card-info {
        padding: 28px;
    }

    .servicio-item {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .servicio-icon {
        margin: auto;
    }

    .fecha-servicio {
        width: 100%;
    }
}

.portal-main {
    padding-top: 42px;
    padding-bottom: 42px;
}

.bienvenida-card {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    padding: 34px;
    margin-bottom: 28px;
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #eef6ff);
    border: 1px solid var(--borde-suave);
    box-shadow: 0 8px 24px rgba(20, 55, 100, 0.10);
}

.etiqueta-ciclo {
    display: inline-block;
    margin-bottom: 10px;
    padding: 6px 14px;
    border-radius: 999px;
    background: #e5f0ff;
    color: var(--azul-institucional);
    font-weight: 700;
    font-size: .9rem;
}

.bienvenida-card h2 {
    margin: 0;
    font-weight: 800;
    color: var(--texto-principal);
}

.bienvenida-card p {
    margin: 8px 0 0;
    color: var(--texto-secundario);
}

.btn-salir {
    border-radius: 8px;
    padding: 10px 18px;
    background: var(--azul-institucional);
    color: #ffffff;
    font-weight: 700;
}

.btn-salir:hover {
    background: var(--azul-profundo);
    color: #ffffff;
}

.datos-alumno {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 34px;
}

.dato-item {
    padding: 22px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid var(--borde-suave);
    box-shadow: 0 6px 16px rgba(20, 55, 100, 0.08);
}

.dato-item i {
    font-size: 1.8rem;
    color: var(--azul-institucional);
}

.dato-item span {
    display: block;
    margin-top: 12px;
    color: var(--texto-secundario);
    font-size: .9rem;
}

.dato-item strong {
    display: block;
    margin-top: 4px;
    color: var(--texto-principal);
    font-size: 1.05rem;
}

.servicios-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.servicio-card {
    min-height: 245px;
    padding: 28px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid var(--borde-suave);
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.10);
    text-decoration: none;
    color: var(--texto-principal);
    transition: .2s ease;
}

.servicio-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(20, 55, 100, 0.15);
}

.servicio-card-icon {
    width: 66px;
    height: 66px;
    margin-bottom: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.servicio-card-icon i {
    font-size: 2rem;
}

.servicio-card-icon.azul {
    background: #e7f1ff;
    color: #0d6efd;
}

.servicio-card-icon.verde {
    background: #e9f9f0;
    color: #17985c;
}

.servicio-card-icon.morado {
    background: #f1eaff;
    color: #7b3ff2;
}

.servicio-card-icon.gris {
    background: #f1f3f5;
    color: #8a94a6;
}

.servicio-card h3 {
    font-weight: 800;
    margin-bottom: 10px;
}

.servicio-card p {
    color: var(--texto-secundario);
    margin-bottom: 24px;
}

.servicio-link {
    color: var(--azul-institucional);
    font-weight: 800;
}

.servicio-card.deshabilitado {
    opacity: .72;
    cursor: not-allowed;
}

.servicio-card.deshabilitado:hover {
    transform: none;
}

.servicio-card.deshabilitado .servicio-link {
    color: #8a94a6;
}

@media (max-width: 991px) {
    .datos-alumno {
        grid-template-columns: repeat(2, 1fr);
    }

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

@media (max-width: 575px) {
    .bienvenida-card {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
    }

    .datos-alumno {
        grid-template-columns: 1fr;
    }

    .servicio-card {
        min-height: auto;
    }
}

@media (max-width: 575px) {
    .header-servicios .container-fluid {
        flex-direction: column-reverse;
        gap: 14px;
        align-items: flex-start !important;
    }

    .header-servicios h1 {
        font-size: 1.7rem;
    }

    .main-servicios {
        padding: 24px 14px;
    }

    .card-login,
    .card-info {
        padding: 24px 18px;
    }
}

.layout-utiles {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 24px;
    align-items: start;
}

.lista-utiles {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.bloque-tipo {
    border-radius: 22px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.bloque-tipo-header {
    padding: 18px 24px;
    background: linear-gradient(135deg, #012b63, #01458f, #0b67c1);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.bloque-tipo-header h3 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 850;
}

.bloque-tipo-header span {
    background: rgba(255,255,255,.18);
    padding: 5px 12px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 700;
}

.articulo-card {
    display: grid;
    grid-template-columns: 44px 1fr 95px 110px;
    gap: 16px;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #edf1f7;
}

.articulo-card:last-child {
    border-bottom: none;
}

.articulo-check {
    display: flex;
    align-items: center;
    justify-content: center;
}

.articulo-check input {
    width: 20px;
    height: 20px;
    cursor: pointer;
}

.articulo-check i {
    color: #6c7a90;
    font-size: 1.25rem;
}

.articulo-main h4 {
    margin: 0;
    color: #062b63;
    font-size: 1rem;
    font-weight: 800;
}

.articulo-main p {
    margin: 6px 0 0;
    color: #52627a;
    font-size: .9rem;
}

.articulo-cantidad span {
    display: block;
    color: #52627a;
    font-size: .8rem;
}

.articulo-cantidad strong {
    color: #062b63;
}

.articulo-precio {
    font-weight: 850;
    color: #003b78;
    text-align: right;
}

.articulo-precio span {
    color: #8a94a6;
    font-size: .85rem;
}

.articulo-info {
    background: #f8fafc;
}

.resumen-pedido {
    position: sticky;
    top: 24px;
}

.resumen-card {
    padding: 26px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.12);
}

.resumen-card h3 {
    color: #062b63;
    font-weight: 850;
    margin-bottom: 22px;
}

.resumen-linea {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    color: #52627a;
}

.resumen-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 18px;
    border-top: 1px solid #edf1f7;
}

.resumen-total span {
    color: #52627a;
}

.resumen-total strong {
    color: #003b78;
    font-size: 1.6rem;
}

.resumen-nota {
    margin: 16px 0 0;
    color: #7a8699;
    font-size: .88rem;
}

.pedido-status-card {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 28px;
}

.pedido-status-card > div {
    padding: 24px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.pedido-status-card span {
    display: block;
    color: #52627a;
    margin-bottom: 6px;
}

.pedido-status-card h3 {
    margin: 0;
    color: #062b63;
    font-size: 1.25rem;
    font-weight: 850;
}

.estado-solicitado {
    color: #0d6efd !important;
}

.estado-preparacion {
    color: #d69500 !important;
}

.estado-listo {
    color: #17985c !important;
}

.estado-entregado {
    color: #087443 !important;
}

.estado-cancelado {
    color: #c0392b !important;
}

.timeline-pedido {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 30px;
}

.timeline-pedido .paso {
    padding: 18px;
    border-radius: 18px;
    background: #eef2f7;
    color: #8a94a6;
    text-align: center;
    font-weight: 800;
}

.timeline-pedido .paso i {
    display: block;
    font-size: 1.8rem;
    margin-bottom: 8px;
}

.timeline-pedido .paso.activo {
    background: #e7f1ff;
    color: #003b78;
}

.detalle-pedido-card {
    padding: 28px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.detalle-pedido-card h3 {
    color: #062b63;
    font-weight: 850;
    margin-bottom: 20px;
}

.total-final-pedido {
    text-align: right;
    font-size: 1.4rem;
    font-weight: 850;
    color: #003b78;
}

@media (max-width: 991px) {
    .layout-utiles {
        grid-template-columns: 1fr;
    }

    .resumen-pedido {
        position: static;
    }

    .pedido-status-card {
        grid-template-columns: 1fr;
    }

    .timeline-pedido {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 575px) {
    .articulo-card {
        grid-template-columns: 38px 1fr;
    }

    .articulo-cantidad,
    .articulo-precio {
        grid-column: 2;
        text-align: left;
    }

    .timeline-pedido {
        grid-template-columns: 1fr;
    }
}

.info-lista-utiles {
    color: #002b5c;
    font-weight: 700;
}

.info-lista-utiles strong {
    color: #002b5c;
    font-weight: 850;
}

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

.print-header {
    display: none;
}

@media print {

    body {
        background: #ffffff !important;
        font-size: 11px;
    }

    .header-servicios,
    .portal-hero,
    .resumen-pedido,
    .footer-servicios,
    .no-print,
    .articulo-check,
    .modal {
        display: none !important;
    }

    .portal-main {
        padding: 0 !important;
        max-width: 100% !important;
    }

    .print-header {
        display: block;
        margin-bottom: 18px;
        text-align: center;
    }

    .print-header h1 {
        margin: 0 0 6px;
        color: #002b5c;
        font-size: 18px;
        font-weight: 800;
    }

    .print-header p {
        margin: 0;
        color: #002b5c;
        font-size: 12px;
    }

    .layout-utiles {
        display: block !important;
    }

    .lista-utiles {
        gap: 12px !important;
    }

    .bloque-tipo {
        box-shadow: none !important;
        border: 1px solid #cccccc !important;
        border-radius: 0 !important;
        margin-bottom: 12px;
        page-break-inside: avoid;
    }

    .bloque-tipo-header {
        padding: 6px 10px !important;
        background: #002b5c !important;
        color: #ffffff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .bloque-tipo-header h3 {
        font-size: 13px !important;
    }

    .bloque-tipo-header span {
        display: none !important;
    }

    .articulo-card {
        display: grid !important;
        grid-template-columns: 1fr 55px 70px !important;
        gap: 8px !important;
        padding: 5px 8px !important;
        border-bottom: 1px solid #dddddd !important;
        page-break-inside: avoid;
    }

    .articulo-main h4 {
        font-size: 10.5px !important;
        margin: 0 !important;
        font-weight: 600 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .articulo-main p {
        display: none !important;
    }

    .articulo-cantidad {
        text-align: center !important;
    }

    .articulo-cantidad span {
        display: none !important;
    }

    .articulo-cantidad strong {
        font-size: 10.5px !important;
    }

    .articulo-precio {
        font-size: 10.5px !important;
        text-align: right !important;
    }

    .articulo-info {
        background: #ffffff !important;
    }
}

.print-pedido-header {
    display: none;
}

@media print {

    body {
        background: #ffffff !important;
        font-size: 11px;
    }

    .header-servicios,
    .portal-hero,
    .pedido-status-card,
    .timeline-pedido,
    .footer-servicios,
    .no-print {
        display: none !important;
    }

    .portal-main {
        padding: 0 !important;
        max-width: 100% !important;
    }

    .print-pedido-header {
        display: block !important;
        margin-bottom: 18px;
        text-align: center;
    }

    .print-pedido-header h1 {
        margin: 0 0 10px;
        color: #002b5c;
        font-size: 18px;
        font-weight: 800;
    }

    .print-pedido-datos {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4px 20px;
        text-align: left;
        margin-bottom: 14px;
        border: 1px solid #cccccc;
        padding: 10px;
    }

    .print-pedido-datos p {
        margin: 0;
        font-size: 11px;
    }

    .detalle-pedido-card {
        display: block !important;
        box-shadow: none !important;
        border: 1px solid #cccccc !important;
        border-radius: 0 !important;
        padding: 10px !important;
    }

    .detalle-pedido-card h3 {
        color: #002b5c !important;
        font-size: 14px !important;
        margin-bottom: 10px !important;
    }

    .detalle-pedido-card table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 10.5px !important;
    }

    .detalle-pedido-card th,
    .detalle-pedido-card td {
        border: 1px solid #cccccc !important;
        padding: 5px !important;
    }

    .detalle-pedido-card th {
        background: #002b5c !important;
        color: #ffffff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .total-final-pedido {
        margin-top: 10px !important;
        text-align: right !important;
        font-size: 13px !important;
        color: #002b5c !important;
        font-weight: 800 !important;
    }
}

.alerta-utiles{

    display:flex;
    gap:20px;

    margin:25px 0 35px;

    padding:22px 24px;

    background:#fff8e8;

    border-left:6px solid #d89a00;

    border-radius:16px;

    box-shadow:0 6px 18px rgba(0,0,0,.08);

}

.alerta-icono{

    width:60px;
    min-width:60px;
    height:60px;

    border-radius:50%;

    background:#ffe7a6;

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

}

.alerta-icono i{

    font-size:2rem;

    color:#c27d00;

}

.alerta-texto h5{

    margin-bottom:8px;

    color:#002b5c;

    font-weight:800;

}

.alerta-texto p{

    margin-bottom:10px;

    color:#39495f;

}

.alerta-texto ul{

    margin:0;
    padding-left:20px;

}

.alerta-texto li{

    margin-bottom:6px;

    color:#39495f;

}

.btn-ver-listado {
    font-weight: 800;
    border-radius: 10px;
    padding: 10px 18px;
}

.btn-ver-listado i {
    margin-right: 6px;
}

.grupo-listado-utiles {
    margin-bottom: 28px;
}

.grupo-listado-utiles h4 {
    margin-bottom: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: #eef6ff;
    color: #002b5c;
    font-weight: 850;
    font-size: 1rem;
}

.tabla-listado-utiles th {
    color: #002b5c;
    font-weight: 850;
}

.tabla-listado-utiles td {
    vertical-align: middle;
}

.nota-comprobante {
    margin-top: 12px;
    padding: 10px;
    border: 1px solid #dbe6f5;
    background: #f5f8fc;
    color: #39495f;
    font-size: .9rem;
    text-align: left;
}

@media print {

    .header-servicios,
    .portal-hero,
    .footer-servicios,
    .no-print {
        display: none !important;
    }

    .portal-main {
        padding: 0 !important;
        max-width: 100% !important;
    }

    .print-pedido-header {
        display: block !important;
        margin-bottom: 16px;
        text-align: center;
    }

    .print-pedido-header h1 {
        margin: 0 0 10px;
        color: #002b5c;
        font-size: 18px;
        font-weight: 800;
    }

    .print-pedido-datos {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4px 20px;
        text-align: left;
        margin-bottom: 12px;
        border: 1px solid #cccccc;
        padding: 10px;
    }

    .print-pedido-datos p {
        margin: 0;
        font-size: 11px;
    }

    .nota-comprobante {
        font-size: 10.5px;
        margin-bottom: 12px;
    }

    .detalle-pedido-card {
        box-shadow: none !important;
        border: 1px solid #cccccc !important;
        border-radius: 0 !important;
        padding: 10px !important;
    }

    .detalle-pedido-card h3 {
        color: #002b5c !important;
        font-size: 14px !important;
        margin-bottom: 10px !important;
    }

    .grupo-listado-utiles {
        margin-bottom: 14px !important;
        page-break-inside: avoid;
    }

    .grupo-listado-utiles h4 {
        background: #002b5c !important;
        color: #ffffff !important;
        border-radius: 0 !important;
        padding: 6px 8px !important;
        font-size: 12px !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .tabla-listado-utiles {
        font-size: 10.5px !important;
        border-collapse: collapse !important;
    }

    .tabla-listado-utiles th,
    .tabla-listado-utiles td {
        border: 1px solid #cccccc !important;
        padding: 5px !important;
    }

    .tabla-listado-utiles th {
        background: #eaf2fd !important;
        color: #002b5c !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .total-final-pedido {
        margin-top: 10px !important;
        text-align: right !important;
        font-size: 13px !important;
        color: #002b5c !important;
        font-weight: 800 !important;
    }
}

@page {
    size: Letter portrait;
    margin: 15mm;
}

@media print {

    html,
    body{

        width:100%;
        margin:0;
        padding:0;

        background:#FFF;

    }

    .portal-main{

        width:100% !important;
        max-width:none !important;

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

    }

}

.badge-ingles {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 9px 14px;
    border-radius: 999px;
    background: #eef6ff;
    color: #002b5c;
    font-weight: 700;
}

.badge-ingles i {
    font-size: 1.1rem;
}

.lockers-layout {
    display: grid;
    grid-template-columns: 310px 1fr;
    gap: 24px;
    align-items: start;
}

.lockers-resumen {
    position: sticky;
    top: 24px;
}

.lockers-listado {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.locker-fila-card {
    border-radius: 22px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.locker-fila-header {
    padding: 18px 24px;
    background: linear-gradient(135deg, #012b63, #01458f, #0b67c1);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.locker-fila-header h3 {
    margin: 0;
    font-weight: 850;
}

.locker-fila-header span {
    background: rgba(255,255,255,.18);
    padding: 5px 12px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 700;
}

.locker-nivel {
    padding: 18px 22px;
    border-bottom: 1px solid #edf1f7;
}

.locker-nivel:last-child {
    border-bottom: none;
}

.locker-nivel-titulo {
    margin-bottom: 14px;
    color: #002b5c;
    font-weight: 850;
    display: flex;
    align-items: center;
    gap: 8px;
}

.locker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
    gap: 12px;
}

.locker-btn {
    border: 1px solid #cfe1ff;
    background: #f6faff;
    color: #002b5c;
    border-radius: 14px;
    padding: 14px 10px;
    text-align: center;
    transition: .2s ease;
}

.locker-btn:hover {
    background: #003b78;
    color: #ffffff;
    transform: translateY(-2px);
}

.locker-btn i {
    display: block;
    font-size: 1.5rem;
    margin-bottom: 6px;
}

.locker-btn span {
    display: block;
    font-weight: 850;
}

.locker-btn small {
    display: block;
    font-size: .78rem;
    opacity: .85;
}

.locker-confirmacion {
    padding: 18px;
    border-radius: 16px;
    background: #f3f8ff;
    border: 1px solid #dbe6f5;
    margin: 12px 0;
}

.locker-confirmacion h3 {
    color: #002b5c;
    font-weight: 850;
}

.locker-asignado-card {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 24px;
    align-items: center;
    padding: 32px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.10);
    margin-bottom: 28px;
}

.locker-asignado-icon {
    width: 110px;
    height: 110px;
    border-radius: 28px;
    background: #e9f9f0;
    color: #17985c;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.4rem;
}

.locker-asignado-info span {
    color: #52627a;
    font-weight: 700;
}

.locker-asignado-info h2 {
    color: #002b5c;
    font-weight: 900;
    font-size: 2.4rem;
    margin: 4px 0 20px;
}

.locker-datos-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.locker-datos-grid div {
    padding: 16px;
    border-radius: 16px;
    background: #f5f8fc;
}

.locker-datos-grid small {
    display: block;
    color: #52627a;
    margin-bottom: 4px;
}

.locker-datos-grid strong {
    color: #002b5c;
    font-weight: 850;
}

@media (max-width: 991px) {
    .lockers-layout {
        grid-template-columns: 1fr;
    }

    .lockers-resumen {
        position: static;
    }

    .locker-asignado-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .locker-asignado-icon {
        margin: auto;
    }

    .locker-datos-grid {
        grid-template-columns: repeat(2, 1fr);
        text-align: left;
    }
}

@media (max-width: 575px) {
    .locker-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .locker-datos-grid {
        grid-template-columns: 1fr;
    }

    .locker-fila-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

.lockers-selector {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.locker-selector-header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 28px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.locker-selector-header h3 {
    margin: 0;
    color: #002b5c;
    font-weight: 850;
}

.locker-selector-header p {
    margin: 6px 0 0;
    color: #52627a;
}

.locker-selector-badge {
    min-width: 160px;
    padding: 14px 18px;
    border-radius: 16px;
    background: #e9f9f0;
    color: #087443;
    font-weight: 850;
    text-align: center;
}

.locker-selector-badge i {
    display: block;
    font-size: 1.8rem;
    margin-bottom: 4px;
}

.locker-step {
    padding: 28px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.locker-step > span {
    display: inline-block;
    margin-bottom: 8px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #eef6ff;
    color: #003b78;
    font-weight: 800;
    font-size: .85rem;
}

.locker-step h4 {
    color: #002b5c;
    font-weight: 850;
    margin-bottom: 20px;
}

.locker-step h4 small {
    display: block;
    margin-top: 6px;
    color: #52627a;
    font-size: .95rem;
    font-weight: 600;
}

.croquis-lockers {
    position: relative;
    display: grid;
    gap: 14px;
    padding: 24px;
    border-radius: 18px;
    background: linear-gradient(135deg, #f5f8fc, #eef6ff);
    border: 1px solid #dbe6f5;
}

.croquis-entrada {
    align-self: center;
    justify-self: end;
    padding: 10px 18px;
    border-radius: 999px;
    background: #002b5c;
    color: #ffffff;
    font-weight: 850;
    letter-spacing: .08em;
}

.croquis-fila {
    width: 100%;
    min-height: 58px;
    border: 2px solid #0b67c1;
    border-radius: 14px;
    background: #ffffff;
    color: #002b5c;
    font-size: 1.1rem;
    font-weight: 850;
    text-align: left;
    padding: 0 22px;
    transition: .2s ease;
}

.croquis-fila:hover,
.croquis-fila.activo {
    background: linear-gradient(135deg, #012b63, #01458f, #0b67c1);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.18);
}

.niveles-locker {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}

.nivel-layout {
    display: grid;
    grid-template-columns: 90px 280px 1fr;
    gap: 28px;
    align-items: stretch;
}

.nivel-orientacion {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
}

.nivel-linea {
    width: 2px;
    flex: 1;
    margin: 12px 0;
    background: linear-gradient(180deg, #0f9d58, #cbd5e1, #0f9d58);
    position: relative;
}

.nivel-linea::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 10px;
    height: 10px;
    border-right: 2px solid #94a3b8;
    border-bottom: 2px solid #94a3b8;
    transform: translateX(-50%) rotate(45deg);
}

.nivel-indicador {
    text-align: center;
    color: #087443;
    font-size: .82rem;
    font-weight: 800;
}

.nivel-icono {
    width: 42px;
    height: 42px;
    margin: 0 auto 6px;
    border-radius: 50%;
    background: #e9f9f0;
    color: #087443;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
}

.niveles-locker-vertical {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nivel-btn-vertical {
    width: 100%;
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    border: 2px solid #dbe6f5;
    border-radius: 16px;
    background: #ffffff;
    color: #002b5c;
    text-align: left;
    transition: .2s ease;
}

.nivel-btn-vertical:hover,
.nivel-btn-vertical.activo {
    background: linear-gradient(135deg, #003b78, #0b67c1);
    border-color: #003b78;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(20, 55, 100, 0.16);
}

.nivel-btn-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: #eef6ff;
    color: #003b78;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
}

.nivel-btn-vertical.activo .nivel-btn-icon,
.nivel-btn-vertical:hover .nivel-btn-icon {
    background: rgba(255,255,255,.18);
    color: #ffffff;
}

.nivel-btn-vertical strong {
    display: block;
    font-size: 1.05rem;
    font-weight: 900;
}

.nivel-disponibles {
    display: block;
    margin-top: 3px;
    font-size: .85rem;
    color: #52627a;
    font-weight: 700;
}

.nivel-btn-vertical:hover .nivel-disponibles,
.nivel-btn-vertical.activo .nivel-disponibles {
    color: rgba(255,255,255,.85);
}

.nivel-info-card {
    display: flex;
    gap: 18px;
    padding: 24px;
    border-radius: 18px;
    background: linear-gradient(135deg, #f5f8fc, #eef6ff);
    border: 1px solid #dbe6f5;
}

.nivel-info-icon {
    min-width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #dbeafe;
    color: #003b78;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
}

.nivel-info-card h5 {
    color: #002b5c;
    font-weight: 900;
    margin-bottom: 10px;
}

.nivel-info-card p {
    color: #39495f;
    margin-bottom: 12px;
}

.nivel-info-card p strong {
    color: #087443;
}

.nivel-tip {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 14px;
    padding: 14px;
    border-radius: 14px;
    background: #ffffff;
    color: #002b5c;
}

.nivel-tip i {
    color: #0b67c1;
    font-size: 1.4rem;
}

.nivel-tip span {
    color: #39495f;
    font-size: .9rem;
}

@media (max-width: 991px) {
    .nivel-layout {
        grid-template-columns: 70px 1fr;
    }

    .nivel-info-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575px) {
    .nivel-layout {
        grid-template-columns: 1fr;
    }

    .nivel-orientacion {
        flex-direction: row;
        gap: 12px;
        padding: 0;
    }

    .nivel-linea {
        height: 2px;
        width: auto;
        flex: 1;
        margin: 0;
        background: linear-gradient(90deg, #0f9d58, #cbd5e1, #0f9d58);
    }

    .nivel-linea::after {
        display: none;
    }

    .nivel-indicador {
        width: 96px;
    }

    .nivel-info-card {
        flex-direction: column;
    }
}


.nivel-btn {
    min-height: 92px;
    border: 2px solid #dbe6f5;
    border-radius: 18px;
    background: #ffffff;
    color: #002b5c;
    font-weight: 850;
    transition: .2s ease;
}

.nivel-btn i {
    display: block;
    font-size: 1.8rem;
    margin-bottom: 6px;
}

.nivel-btn:hover,
.nivel-btn.activo {
    background: #003b78;
    border-color: #003b78;
    color: #ffffff;
    transform: translateY(-2px);
}

.locker-grid-moderno {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
    gap: 14px;
}

.locker-card-btn {
    min-height: 135px;
    border: 2px solid #ccefdc;
    border-radius: 18px;
    background: #f4fff7;
    color: #002b5c;
    padding: 18px 12px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: .2s ease;
}

.locker-card-btn i {
    font-size: 2rem;
    color: #17985c;
    margin-bottom: 8px;
}

.locker-card-btn strong {
    font-size: 1.05rem;
    font-weight: 900;
}

.locker-card-btn span {
    margin-top: 4px;
    font-size: .82rem;
    color: #52627a;
}

.locker-card-btn em {
    margin-top: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #dff7e9;
    color: #087443;
    font-style: normal;
    font-size: .78rem;
    font-weight: 850;
}

.locker-card-btn:hover {
    background: #003b78;
    border-color: #003b78;
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.18);
}

.locker-card-btn:hover i,
.locker-card-btn:hover span {
    color: #ffffff;
}

.locker-card-btn:hover em {
    background: rgba(255,255,255,.18);
    color: #ffffff;
}

@media (max-width: 768px) {
    .locker-selector-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .locker-selector-badge {
        width: 100%;
    }

    .niveles-locker {
        grid-template-columns: repeat(2, 1fr);
    }

    .locker-grid-moderno {
        grid-template-columns: repeat(2, 1fr);
    }

    .croquis-entrada {
        justify-self: stretch;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .locker-grid-moderno {
        grid-template-columns: 1fr;
    }
}

.locker-grid-moderno {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: 16px;
}

.locker-card-btn {
    position: relative;
    min-height: 104px;
    border: 1px solid #dbe6f5;
    border-radius: 16px;
    background: #ffffff;
    padding: 0;
    overflow: hidden;
    display: none;
    align-items: stretch;
    box-shadow: 0 6px 16px rgba(20, 55, 100, 0.08);
    transition: .2s ease;
}

.locker-card-btn:not(.ocupado):hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(20, 55, 100, 0.16);
    border-color: #003b78;
}

.locker-card-btn.ocupado {
    opacity: .62;
    cursor: not-allowed;
    filter: grayscale(.15);
}

.locker-puerta {
    width: 54px;
    min-width: 54px;
    height: 100%;
    position: relative;
    display: block;
    border-right: 1px solid rgba(0,0,0,.12);
}

.locker-puerta::before {
    content: "";
    position: absolute;
    inset: 14px 15px 14px 15px;
    background-image: radial-gradient(circle, rgba(0,0,0,.75) 1.6px, transparent 1.8px);
    background-size: 7px 7px;
    opacity: .8;
}

.locker-puerta::after {
    content: "";
    position: absolute;
    left: 12px;
    bottom: 24px;
    width: 14px;
    height: 22px;
    border-radius: 4px;
    background: linear-gradient(180deg, #333, #111);
    box-shadow: 0 2px 4px rgba(0,0,0,.25);
}

.locker-color-azul .locker-puerta {
    background: linear-gradient(180deg, #0b67c1, #004c9b);
}

.locker-color-rojo .locker-puerta {
    background: linear-gradient(180deg, #ef3340, #b5121b);
}

.locker-color-amarillo .locker-puerta {
    background: linear-gradient(180deg, #ffd447, #e5a800);
}

.locker-color-blanco .locker-puerta {
    background: linear-gradient(180deg, #ffffff, #e9eef5);
}

.locker-card-info {
    width: 100%;
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.locker-card-info strong {
    color: #002b5c;
    font-size: 1.05rem;
    font-weight: 900;
    margin-bottom: 12px;
}

.locker-status-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.locker-status-icon.disponible {
    color: #0f9d58;
}

.locker-status-icon.no-disponible {
    color: #dc3545;
}

.locker-card-btn.ocupado .locker-card-info strong {
    color: #6c757d;
}

@media (max-width: 575px) {
    .locker-grid-moderno {
        grid-template-columns: repeat(2, 1fr);
    }

    .locker-card-btn {
        min-height: 92px;
    }

    .locker-puerta {
        width: 48px;
        min-width: 48px;
    }
}

@media (max-width: 390px) {
    .locker-grid-moderno {
        grid-template-columns: 1fr;
    }
}

.locker-selector-actions{

    display:flex;

    gap:14px;

    align-items:center;

    flex-wrap:wrap;

}

.btn-locker-guia{

    border-radius:14px;

    padding:12px 18px;

    font-weight:700;

}

.btn-locker-guia i{

    margin-right:6px;

}

.guia-locker-card{

    background:#FFF;

    border-radius:22px;

    padding:24px;

    border:1px solid #dbe6f5;

    height:100%;

    box-shadow:0 10px 26px rgba(20,55,100,.08);

}

.guia-locker-card h4{

    color:#002b5c;

    font-weight:800;

    margin-bottom:20px;

}

.guia-locker-card img{

    width:100%;

    border-radius:18px;

}

#modalGuiaLockers .modal-header{

    background:linear-gradient(135deg,#012b63,#01458f,#0b67c1);

    color:#FFF;

}

#modalGuiaLockers .btn-close{

    filter:invert(1);

}

#modalGuiaLockers .modal-body{

    background:#f5f8fc;

}

.locker-selector-actions {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.btn-locker-guia {
    border-radius: 14px;
    padding: 12px 18px;
    font-weight: 800;
}

.btn-locker-guia i {
    margin-right: 6px;
}

.modal-guia-lockers {
    background: #f5f8fc;
}

.modal-guia-header {
    background: linear-gradient(135deg, #012b63, #01458f, #0b67c1);
    color: #ffffff;
    border: none;
    padding: 20px 28px;
}

.modal-guia-header h4 {
    font-weight: 850;
}

.modal-guia-header i {
    margin-right: 8px;
}

.modal-guia-body {
    padding: 26px;
    background: #f5f8fc;
}

.guia-tabs {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
}

.guia-tabs .nav-link {
    border-radius: 999px;
    padding: 11px 22px;
    color: #002b5c;
    font-weight: 800;
    background: #ffffff;
    border: 1px solid #dbe6f5;
}

.guia-tabs .nav-link.active {
    background: #003b78;
    color: #ffffff;
}

.guia-tabs .nav-link i {
    margin-right: 6px;
}

.guia-tab-content {
    height: calc(100vh - 160px);
}

.guia-imagen-card {
    height: 100%;
    padding: 18px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 10px 26px rgba(20, 55, 100, 0.10);
    display: flex;
    align-items: center;
    justify-content: center;
}

.guia-imagen-card img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

@media (max-width: 575px) {
    .modal-guia-body {
        padding: 16px;
    }

    .guia-tabs {
        flex-direction: column;
    }

    .guia-tabs .nav-link {
        width: 100%;
    }

    .guia-tab-content {
        height: calc(100vh - 210px);
    }

    .guia-imagen-card {
        padding: 8px;
        border-radius: 16px;
    }
}
.guia-modal-footer{
    display:flex;
    justify-content:center;
    margin-top:20px;
    padding-top:20px;
    border-top:1px solid #dbe6f5;
}

.btn-cerrar-guia{

    min-width:220px;

    padding:12px 26px;

    border-radius:999px;

    font-weight:800;

    font-size:1rem;

    background:#6c757d;

    border:none;

    transition:.2s;

}

.btn-cerrar-guia:hover{

    background:#495057;

    transform:translateY(-2px);

}

.btn-cerrar-guia i{

    margin-right:8px;

}

.selector-listados {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}

.selector-seccion-card {
    padding: 26px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe6f5;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.selector-seccion-card h3 {
    margin-bottom: 18px;
    color: #002b5c;
    font-weight: 850;
}

.selector-grados {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.btn-grado-listado {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border-radius: 999px;
    background: #eef6ff;
    border: 1px solid #cfe1ff;
    color: #002b5c;
    text-decoration: none;
    font-weight: 800;
    font-size: .9rem;
}

.btn-grado-listado:hover,
.btn-grado-listado.activo {
    background: #003b78;
    color: #ffffff;
    border-color: #003b78;
}

@media (max-width: 991px) {
    .selector-listados {
        grid-template-columns: 1fr;
    }
}

.alerta-arte{

    display:flex;
    gap:20px;

    margin:20px 0 35px;

    padding:22px 24px;

    background:#eefaf2;

    border-left:6px solid #28a745;

    border-radius:16px;

    box-shadow:0 6px 18px rgba(0,0,0,.06);

}

.alerta-arte-icono{

    width:60px;
    min-width:60px;
    height:60px;

    border-radius:50%;

    background:#d9f5e2;

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

}

.alerta-arte-icono i{

    font-size:2rem;

    color:#198754;

}

.alerta-arte-texto h5{

    margin-bottom:8px;

    color:#0b5d31;

    font-weight:800;

}

.alerta-arte-texto p{

    margin:0;

    color:#355344;

    font-size:.97rem;

    line-height:1.6;

}

.alerta-arte-texto strong{

    color:#0b5d31;

}

@media (max-width:768px){

    .alerta-arte{

        flex-direction:column;
        align-items:flex-start;

    }

    .alerta-arte-icono{

        width:54px;
        height:54px;
        min-width:54px;

    }

}

.acciones-card-servicio {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: auto;
}

.acciones-card-servicio .btn {
    width: 100%;
}

.btn-calendario-venta {
    padding: 11px 14px;
    border: 1px solid #d6a900;
    border-radius: 12px;
    background: #fff8d8;
    color: #705700;
    font-weight: 800;
    transition: .2s ease;
}

.btn-calendario-venta:hover {
    background: #ffd400;
    border-color: #ffd400;
    color: #002b5c;
    transform: translateY(-2px);
}

.btn-calendario-venta i,
.btn-servicio i {
    margin-right: 7px;
}

.modal-info-footer {
    justify-content: center;
    border-top: 1px solid #dbe6f5;
    background: #ffffff;
    padding: 14px 20px;
}

.btn-cerrar-infografia {
    min-width: 190px;
    padding: 11px 24px;
    border-radius: 999px;
    font-weight: 800;
}

.contacto-pedido-card {
    margin-bottom: 28px;
    padding: 28px;
    border: 1px solid #dbe6f5;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(20, 55, 100, 0.09);
}

.contacto-pedido-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
}

.contacto-pedido-icon {
    width: 62px;
    min-width: 62px;
    height: 62px;
    border-radius: 18px;
    background: #eaf2fd;
    color: #003b78;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
}

.contacto-pedido-header h3 {
    margin: 0;
    color: #002b5c;
    font-weight: 850;
}

.contacto-pedido-header p {
    margin: 5px 0 0;
    color: #52627a;
}

.contacto-pedido-nota {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 18px;
    border-left: 5px solid #d69500;
    border-radius: 12px;
    background: #fff8e8;
    color: #684f00;
}

.contacto-pedido-nota i {
    margin-top: 2px;
    color: #d69500;
    font-size: 1.25rem;
}

.contacto-pedido-form {
    margin-top: 22px;
}

.contacto-pedido-form .form-label {
    color: #002b5c;
    font-weight: 800;
}

.contacto-pedido-form .input-group-text {
    background: #eef6ff;
    color: #003b78;
    border-color: #dbe6f5;
}

.contacto-pedido-form .form-control {
    min-height: 48px;
    border-color: #dbe6f5;
}

.btn-guardar-contacto {
    width: 100%;
    min-height: 50px;
    border: none;
    border-radius: 12px;
    background: linear-gradient(135deg, #004c9b, #006be6);
    color: #ffffff;
    font-weight: 850;
}

.btn-guardar-contacto:hover {
    background: linear-gradient(135deg, #003f82, #005ac4);
    color: #ffffff;
}

.contacto-registrado {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 22px;
}

.contacto-registrado-item {
    padding: 18px;
    border: 1px solid #dbe6f5;
    border-radius: 16px;
    background: #f7faff;
}

.contacto-registrado-item span {
    display: block;
    margin-bottom: 7px;
    color: #52627a;
    font-size: .88rem;
}

.contacto-registrado-item span i {
    margin-right: 5px;
    color: #003b78;
}

.contacto-registrado-item strong {
    display: block;
    color: #002b5c;
    overflow-wrap: anywhere;
}

.contacto-bloqueado {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding: 13px 16px;
    border-radius: 12px;
    background: #eefaf2;
    color: #0b5d31;
    font-weight: 700;
}

@media (max-width: 767px) {
    .contacto-pedido-card {
        padding: 22px 18px;
    }

    .contacto-pedido-header {
        align-items: flex-start;
    }

    .contacto-registrado {
        grid-template-columns: 1fr;
    }
}