*{
    box-sizing:border-box;
}

body{
    font-family:Segoe UI, Arial, sans-serif;
    margin:0;
    background:
        linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.65)),
        url('logo_alaia.png');
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
    color:#222;
}

.login{
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:20px;
}

.box{
    width:100%;
    max-width:360px;
    background:#fff;
    border-radius:18px;
    padding:30px;
    box-shadow:0 12px 40px rgba(0,0,0,.35);
    text-align:center;
}

.box img{
    margin-bottom:10px;
}

.box h2{
    margin:10px 0 20px;
    color:#0a4d68;
}

input, select, textarea{
    width:100%;
    padding:12px 14px;
    margin:8px 0;
    border:1px solid #cfcfcf;
    border-radius:10px;
    outline:none;
    font-size:14px;
    font-family:inherit;
}

textarea{
    min-height:90px;
    resize:vertical;
}

input:focus, select:focus, textarea:focus{
    border-color:#0a4d68;
}

button{
    width:100%;
    padding:12px 16px;
    margin-top:8px;
    border:none;
    border-radius:10px;
    background:#0a4d68;
    color:#fff;
    cursor:pointer;
    font-size:14px;
    font-weight:600;
}

button:hover{
    background:#0d678c;
}

.contenedor{
    max-width:1350px;
    margin:30px auto;
    background:#fff;
    border-radius:18px;
    padding:25px;
    box-shadow:0 12px 40px rgba(0,0,0,.35);
}

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

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

.logo-titulo img{
    width:70px;
    height:auto;
}

.logo-titulo h2{
    margin:0;
    color:#0a4d68;
}

.logout{
    display:inline-block;
    background:#c62828;
    color:#fff;
    text-decoration:none;
    padding:12px 18px;
    border-radius:10px;
    font-weight:600;
}

.logout:hover{
    background:#a91f1f;
}

.info-usuario{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
    margin-bottom:20px;
}

.info-card{
    background:#f5f7fa;
    border-radius:12px;
    padding:14px;
}

.alerta-ok{
    background:#d9f8df;
    color:#18612b;
    border:1px solid #bde8c7;
    padding:12px 14px;
    border-radius:10px;
    margin-bottom:15px;
}

.alerta-error{
    background:#ffe1e1;
    color:#8b1f1f;
    border:1px solid #f2b9b9;
    padding:12px 14px;
    border-radius:10px;
    margin-bottom:15px;
}

.form-card{
    background:#f8fafc;
    border-radius:14px;
    padding:18px;
    margin-bottom:20px;
}

.form-card h3{
    margin-top:0;
    color:#0a4d68;
}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:14px;
}

.full{
    grid-column:1 / -1;
}

.btn-secundario{
    background:#b02a2a;
}

.btn-secundario:hover{
    background:#902121;
}

.table-wrap{
    overflow-x:auto;
}

.tabla{
    width:100%;
    border-collapse:collapse;
    margin-top:10px;
    min-width:2200px;
}

.tabla th{
    background:#0a4d68;
    color:#fff;
    padding:12px;
    text-align:center;
    font-size:14px;
    white-space:nowrap;
}

.tabla td{
    padding:12px 10px;
    border-bottom:1px solid #ddd;
    text-align:center;
    font-size:14px;
    vertical-align:top;
    min-width:130px;
}

.tabla tr:hover{
    background:#f7fbfd;
}

.btn-eliminar{
    background:#c62828;
    width:auto;
    margin:0;
    padding:8px 12px;
    font-size:13px;
}

.btn-eliminar:hover{
    background:#a91f1f;
}

.paginacion{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:20px;
}

.paginacion a,
.paginacion span{
    display:inline-block;
    padding:10px 14px;
    border-radius:8px;
    text-decoration:none;
    background:#eef3f7;
    color:#0a4d68;
    font-weight:600;
}

.paginacion .actual{
    background:#0a4d68;
    color:#fff;
}

footer{
    margin-top:20px;
    text-align:center;
    color:#666;
    font-size:14px;
}

@media (max-width: 800px){
    .form-grid,
    .info-usuario{
        grid-template-columns:1fr;
    }

    .contenedor{
        margin:15px;
        padding:18px;
    }

    .logo-titulo{
        align-items:flex-start;
    }
}
