@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
    --bg-base: #070912;
    --card-grad: linear-gradient(145deg, #0f1423, #12192c);
    --text-primary: #e7ecff;
    --text-muted: #a1adcb;
    --accent-1: #7c5cff;
    --accent-2: #1fd1f9;
    --border: #1f2738;
    --danger: #ff5c8d;
    --success: #41d3a2;
    --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
    --input-bg: rgba(255, 255, 255, 0.04);
}

* {
    font-family: 'Space Grotesk', sans-serif !important;
}

body {
    background: radial-gradient(circle at 10% 10%, rgba(124, 92, 255, 0.28), transparent 30%),
                radial-gradient(circle at 90% 0%, rgba(31, 209, 249, 0.28), transparent 28%),
                var(--bg-base);
    color: var(--text-primary);
    min-height: 100vh;
}

.card {
    background: rgba(15, 20, 35, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    box-shadow: var(--shadow);
    color: var(--text-primary);
}

.card .text-muted {
    color: var(--text-muted) !important;
}

.btn-primary {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2));
    border: none;
    color: #0c0c12;
    font-weight: 700;
    box-shadow: 0 10px 30px rgba(124, 92, 255, 0.35);
    border-radius: 14px;
    letter-spacing: 0.2px;
}

.btn-primary:hover {
    filter: brightness(1.05);
}

.btn-primary:active,
.btn-primary:focus {
    box-shadow: 0 0 0 0.2rem rgba(124, 92, 255, 0.35);
}

.form-control,
.form-select {
    background: rgba(15, 20, 35, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
    border-radius: 12px;
}

.form-control:focus,
.form-select:focus {
    background: rgba(15, 20, 35, 0.7);
    color: var(--text-primary);
    border-color: rgba(124, 92, 255, 0.35);
    box-shadow: 0 0 0 0.2rem rgba(124, 92, 255, 0.25);
}

.form-control::placeholder {
    color: var(--text-muted);
}

.modal-content {
    background: rgba(15, 20, 35, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 22px;
    color: var(--text-primary);
    box-shadow: var(--shadow);
}

/* DataTables */
table.dataTable {
    background: transparent;
    color: var(--text-primary);
}

table.dataTable thead {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
}

table.dataTable tbody tr {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
}

table.dataTable tbody tr:hover {
    background: rgba(124, 92, 255, 0.08);
}

table.dataTable td, table.dataTable th {
    border-color: rgba(255, 255, 255, 0.08) !important;
    vertical-align: middle;
}

.dataTables_filter input {
    background: var(--input-bg);
    border: 1px solid var(--border);
    color: var(--text-primary);
}

.dataTables_length select,
.dataTables_filter input {
    border-radius: 10px;
}

.dataTables_paginate .paginate_button {
    background: var(--input-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
}

.dataTables_paginate .paginate_button.current {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2)) !important;
    color: #0c0c12 !important;
    border: none !important;
}

/* Pills de estado */
.pill-status {
    border-radius: 999px;
    padding: 4px 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-weight: 600;
    font-size: 0.8rem;
    min-width: 96px;
}

.pill-on {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2));
    color: #0c0c12;
}

.pill-off {
    background: transparent;
    color: var(--text-muted);
}

/* Tabs estilo glass/pill */
.glass-pills .nav-link {
    border-radius: 999px;
    padding: 10px 16px;
    margin-right: 8px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-muted);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

.glass-pills .nav-link.active {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2));
    color: #0c0c12;
    border: none;
}

.glass-pills .nav-link:hover:not(.active) {
    color: var(--text-primary);
}

/* File input dark */
.file-dark {
    background: rgba(15, 20, 35, 0.7);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.file-dark::file-selector-button {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2));
    color: #0c0c12;
    border: none;
    padding: 6px 12px;
    border-radius: 10px;
    margin-right: 10px;
    cursor: pointer;
}

/* Vencido */
.vencido {
    border-left: 3px solid #ffae00;
    background: rgba(255, 174, 0, 0.05) !important;
}

/* Tablas generales (Bootstrap) */
.table {
    color: var(--text-primary);
    background: transparent;
}

.table thead th {
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.04);
}

.table tbody td {
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.02);
}

.table-hover tbody tr:hover td {
    background: rgba(124, 92, 255, 0.08);
}

/* SweetAlert2 */
.swal2-popup {
    background: #12192c !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 16px !important;
}

.swal2-title {
    color: var(--text-primary) !important;
}

.swal2-html-container {
    color: var(--text-muted) !important;
}

.swal2-confirm {
    background: linear-gradient(120deg, var(--accent-1), var(--accent-2)) !important;
    color: #0c0c12 !important;
    font-weight: 700 !important;
    border: none !important;
    box-shadow: 0 10px 30px rgba(124, 92, 255, 0.35) !important;
}

.swal2-cancel {
    background: transparent !important;
    border: 1px solid var(--border) !important;
    color: var(--text-primary) !important;
}

.swal2-input {
    background: var(--input-bg) !important;
    border: 1px solid var(--border) !important;
    color: var(--text-primary) !important;
}
