:root {
    --sidebar-width: 268px;
    --topbar-h: 64px;
    --brand-900: #0f2d5c;
    --brand-700: #1e4f99;
    --brand-600: #276fd4;
    --accent-500: #00a9a5;
    --bg-100: #edf2f9;
    --text-900: #10233f;
    --text-600: #5f738f;
    --danger-500: #e05252;
}

* { box-sizing: border-box; }

body {
    background:
        radial-gradient(circle at 8% 10%, rgba(39, 111, 212, 0.15), transparent 38%),
        radial-gradient(circle at 90% 0%, rgba(0, 169, 165, 0.12), transparent 32%),
        var(--bg-100);
    color: var(--text-900);
    font-family: "Manrope", "Segoe UI", sans-serif;
    min-height: 100vh;
}

.table-container {
    overflow-x: auto;
    border-radius: 12px;
}

.table {
    border-radius: 12px;
    overflow: hidden;
}

.table thead th,
th {
    background: linear-gradient(90deg, #1b4c95, #2565be);
    color: #f4f8ff;
    border: none;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.table td {
    border-color: #e4edf8;
    vertical-align: middle;
}

.table tbody tr:hover {
    background-color: #f3f8ff;
}

.btn {
    border-radius: 10px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.btn-primary {
    background: linear-gradient(105deg, var(--brand-600), var(--brand-700));
    border: none;
}

.btn-danger {
    background: linear-gradient(105deg, #ef6666, #d84545);
    border: none;
}

.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 90px 24px 80px;
}

.login-container {
    width: 100%;
    max-width: 480px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #d8e4f4;
    border-radius: 18px;
    box-shadow: 0 20px 44px rgba(18, 44, 86, 0.1);
    padding: 30px;
}

.login-title {
    font-size: 1.7rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.login-subtitle {
    color: var(--text-600);
    margin-bottom: 20px;
}

.error-mensaje {
    color: var(--danger-500);
    font-weight: 700;
    margin-bottom: 12px;
}

.dni-box {
    background: #f3f8ff;
    border: 1px solid #d5e3f7;
    border-radius: 10px;
    color: #2157a8;
    font-weight: 700;
    margin-bottom: 12px;
    padding: 10px 14px;
}
