﻿/* =========================
   🎨 Variables Globales
   ========================= */
:root {
    --bg-main: #191B1F;
    --bg-card: #23252B;
    --border-main: #232323;
    --text-main: #E0E0E0;
    --text-soft: #BFBFBF;
    --bg-navbar: #1A1A1A;
    --bg-dropdown: #282828;
    --accent: #2F80ED;
    --danger: #EB5757;
    --warning: #F2C94C;
    --success: #27AE60;
    --font-main: 'Montserrat', Arial, sans-serif;
}

/* =========================
   🌑 Base
   ========================= */
body {
    background: var(--bg-main);
    color: var(--text-main);
    font-family: var(--font-main);
    margin: 0;
    min-height: 100vh;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    margin: 0;
    color: var(--text-main);
}

p {
    margin: 0 0 12px;
    color: var(--text-soft);
}

/* Links */
a {
    color: var(--accent);
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

/* =========================
   📦 Componentes comunes
   ========================= */

/* Botones principales */
.btn-main {
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
}

    .btn-main:hover {
        background: #1864c7;
    }

/* Botón peligro */
.btn-danger {
    background: var(--danger);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
}

    .btn-danger:hover {
        background: #c52222;
    }

/* Tarjetas */
.card {
    background: var(--bg-card);
    border-radius: 15px;
    box-shadow: 0 4px 16px #10101480;
    border: 1px solid var(--border-main);
    padding: 28px 22px;
    min-height: 120px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: box-shadow .17s;
}

    .card:hover {
        box-shadow: 0 6px 24px #2F80ED15;
    }

.card-title {
    color: var(--text-main);
    font-size: 1.15rem;
    font-weight: 600;
}

.card-value {
    font-size: 2.2rem;
    color: var(--accent);
    font-weight: 800;
}

.card-footer {
    color: var(--text-soft);
    font-size: .95rem;
}

.card-alert .card-value {
    color: var(--warning);
}

/* =========================
   📱 Responsive
   ========================= */
@media (max-width: 600px) {
    body {
        font-size: 15px;
    }

    .btn-main, .btn-danger {
        width: 100%;
        text-align: center;
    }
}

/* =========================
   🎚️ Scrollbar Dark
   ========================= */
::-webkit-scrollbar {
    width: 10px;
    background: var(--bg-main);
}

::-webkit-scrollbar-thumb {
    background: #35363A;
    border-radius: 6px;
}

    ::-webkit-scrollbar-thumb:hover {
        background: var(--accent);
    }
/* =========================
   📝 Formularios
   ========================= */
input, select, textarea {
    width: 100%;
    padding: 10px 14px;
    margin-bottom: 14px;
    border-radius: 8px;
    border: 1px solid #333;
    background: #1F2025;
    color: var(--text-main);
    font-family: var(--font-main);
    font-size: 0.95rem;
    transition: border .2s, background .2s;
}

    input:focus, select:focus, textarea:focus {
        outline: none;
        border-color: var(--accent);
        background: #2A2B31;
        box-shadow: 0 0 6px #2F80ED44;
    }

    /* Placeholder */
    input::placeholder, textarea::placeholder {
        color: var(--text-soft);
    }

/* Labels */
label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.92rem;
    color: var(--text-soft);
    font-weight: 500;
}

/* Botones dentro de formularios */
form .btn-main,
form .btn-danger {
    margin-top: 8px;
}

/* =========================
   🔘 Checkbox & Radios
   ========================= */
input[type="checkbox"], input[type="radio"] {
    accent-color: var(--accent);
    width: 18px;
    height: 18px;
    cursor: pointer;
    margin-right: 6px;
}

.form-check {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: var(--text-main);
    font-size: 0.92rem;
}

/* =========================
   ⬇️ Selects
   ========================= */
select {
    appearance: none;
    background: #1F2025 url("data:image/svg+xml;utf8,<svg fill='%23BFBFBF' height='20' viewBox='0 0 24 24' width='20'><path d='M7 10l5 5 5-5z'/></svg>") no-repeat right 12px center;
    background-size: 16px 16px;
    padding-right: 40px;
}

/* =========================
   📦 Form Containers
   ========================= */
.form-card {
    background: var(--bg-card);
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 3px 12px #00000040;
    border: 1px solid var(--border-main);
}

    .form-card h2 {
        margin-bottom: 20px;
        font-size: 1.4rem;
        font-weight: 600;
        color: var(--text-main);
    }
body {
    background: var(--bg-main) !important;
    color: var(--text-main) !important;
}

.modal-content {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
}
.alert {
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 0.95rem;
    font-weight: 500;
}

    .alert.success {
        background: #1d3f29;
        border: 1px solid var(--success);
        color: var(--success);
    }

    .alert.danger {
        background: #3a1e1e;
        border: 1px solid var(--danger);
        color: var(--danger);
    }
.table td, .table th {
    vertical-align: middle !important;
    text-align: center;
}

.semaforo-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-block;
}

.btn-main {
    background-color: var(--accent, #0d6efd);
    color: white;
    border: none;
    border-radius: 8px;
    padding: 8px 14px;
    transition: background 0.2s;
}

    .btn-main:hover {
        background-color: #0b5ed7;
    }
.progress {
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
}

.progress-bar {
    font-weight: 600;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
    font-size: 0.85rem;
}
form.row.g-2 label {
    font-size: 0.9rem;
    color: #555;
}

form.row.g-2 select, form.row.g-2 button, form.row.g-2 a {
    font-size: 0.9rem;
}
/* ==== Estilo unificado para tablas oscuras ==== */
.table-dark {
    background-color: #2a2b31 !important;
    color: var(--text-main, #fff);
    border-color: #3a3b41 !important;
}

    .table-dark th {
        background-color: #1f2024 !important;
        color: #f1f1f1 !important;
        text-transform: uppercase;
        font-weight: 600;
        font-size: 0.85rem;
    }

    .table-dark td {
        color: #ddd !important;
        border-color: #3a3b41 !important;
    }

    .table-dark tr:hover {
        background-color: #34363c !important;
        transition: background 0.2s ease;
    }

/* Botones del modo oscuro */
.btn-main {
    background: #0d6efd;
    border: none;
    color: #fff;
    border-radius: 8px;
    padding: 8px 14px;
    transition: background 0.2s;
}

    .btn-main:hover {
        background: #0b5ed7;
    }

/* Encabezado de secciones */
h2, h3 {
    color: var(--text-main, #fff);
}

/* Ajuste de fondo general para contenido */
.content {
    background-color: var(--bg-card, #1e1f23);
    color: var(--text-main, #fff);
    padding: 20px;
    border-radius: 12px;
}
