:root {
    --gc-bg: #eef2f8;
    --gc-bg-soft: #f8fafc;
    --gc-surface: #ffffff;
    --gc-surface-2: #f7f9fd;
    --gc-ink: #182033;
    --gc-muted: #64748b;
    --gc-primary: #102a72;
    --gc-primary-2: #1c3f98;
    --gc-accent: #0f9b8e;
    --gc-warm: #f1b75c;
    --gc-card-border: #dbe3f0;
    --gc-line: #e6edf6;
    --gc-table-head-1: #f7faff;
    --gc-table-head-2: #eaf1fb;
    --gc-table-head-ink: #2b3c5d;
    --gc-table-body: #fcfdff;
    --gc-table-row-odd: #ffffff;
    --gc-table-row-alt: #f4f8ff;
    --gc-table-row-hover: #e8f1ff;
    --gc-table-border: #e2e9f2;
    --gc-table-success-bg: #eff9f2;
    --gc-table-success-ink: #1f6b46;
    --gc-table-danger-bg: #fff1f3;
    --gc-table-danger-ink: #b24055;
    --gc-table-warning-bg: #fff8eb;
    --gc-table-warning-ink: #9a6a12;
    --gc-table-info-bg: #eefaf8;
    --gc-table-info-ink: #0d7a71;
    --gc-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
    --gc-shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.05);
}

body {
    color: var(--gc-ink);
    background:
        radial-gradient(circle at top left, rgba(28, 63, 152, 0.08), transparent 24%),
        linear-gradient(180deg, #f8fbff 0%, var(--gc-bg) 100%);
}

.content-wrapper {
    background:
        radial-gradient(circle at right top, rgba(15, 155, 142, 0.08), transparent 22%),
        linear-gradient(180deg, #f9fbfe 0%, #eef3f9 100%);
}

.main-sidebar {
    background:
        linear-gradient(180deg, #0d1b4d 0%, #102a72 52%, #163888 100%);
    box-shadow: 10px 0 28px rgba(10, 21, 53, 0.16);
}

.brand-link {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.03);
}

.brand-text {
    color: #ffffff !important;
    font-weight: 800 !important;
    letter-spacing: 0.015em;
}

.main-sidebar .nav-link {
    border-radius: 12px;
    margin: 0.18rem 0.55rem;
    color: rgba(255, 255, 255, 0.9) !important;
    padding-top: 0.72rem;
    padding-bottom: 0.72rem;
    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.main-sidebar .nav-link.active {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.12)) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.16),
        0 8px 18px rgba(5, 14, 41, 0.2);
}

.main-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.13) !important;
    transform: translateX(2px);
}

.main-sidebar .nav-header {
    color: rgba(255, 255, 255, 0.66) !important;
    font-weight: 700;
    letter-spacing: 0.08em;
    font-size: 0.73rem;
    text-transform: uppercase;
}

.main-header.navbar {
    background: rgba(255, 255, 255, 0.92) !important;
    border-bottom: 1px solid var(--gc-line);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(8px);
}

.main-header .nav-link,
.main-header .navbar-nav .nav-link {
    color: #31415f !important;
}

.main-header .nav-link:hover,
.main-header .navbar-nav .nav-link:hover {
    color: var(--gc-primary) !important;
}

.content-header h1,
.content-header h2,
.content-header h3 {
    font-weight: 800;
    color: #0f172a;
}

.content-header {
    padding-bottom: 0.35rem;
}

.content-header .breadcrumb {
    background: transparent;
    margin-bottom: 0;
}

.content-header .breadcrumb-item,
.content-header .breadcrumb-item a {
    color: var(--gc-muted);
}

.card {
    border: 1px solid var(--gc-card-border);
    background: rgba(255, 255, 255, 0.96);
    border-radius: 18px;
    box-shadow: var(--gc-shadow);
    overflow: hidden;
}

.card-header {
    border-bottom: 1px solid var(--gc-line);
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.card-title {
    font-weight: 700;
    color: #18284b;
}

.card-footer {
    border-top: 1px solid var(--gc-line);
    background: var(--gc-surface-2);
}

.btn {
    border-radius: 10px;
    font-weight: 600;
    box-shadow: var(--gc-shadow-soft);
}

.btn-primary {
    background: linear-gradient(135deg, #374151 0%, #4b5563 100%);
    border-color: #374151;
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #2f3744 0%, #414b5a 100%);
    border-color: #2f3744;
    color: #ffffff;
}

.btn-info {
    background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%);
    border-color: #0f766e;
    color: #ffffff;
}

.btn-info:hover,
.btn-info:focus {
    background: linear-gradient(135deg, #0d675f 0%, #0b7f75 100%);
    border-color: #0d675f;
    color: #ffffff;
}

.btn-success {
    background: linear-gradient(135deg, #2f6f3e 0%, #3f8b52 100%);
    border-color: #2f6f3e;
    color: #ffffff;
}

.btn-success:hover,
.btn-success:focus {
    background: linear-gradient(135deg, #295f36 0%, #387a49 100%);
    border-color: #295f36;
    color: #ffffff;
}

.form-control,
.custom-select,
.custom-file-label {
    border-radius: 10px;
    border-color: #d3deec;
    background: #fcfdff;
}

.form-control:focus,
.custom-select:focus {
    border-color: var(--gc-primary-2);
    box-shadow: 0 0 0 0.2rem rgba(28, 63, 152, 0.14);
}

.table {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    border-radius: 14px;
    color: #24324a;
    overflow: hidden;
}

.table thead th {
    background: linear-gradient(180deg, var(--gc-table-head-1) 0%, var(--gc-table-head-2) 100%);
    border-bottom: 1px solid var(--gc-table-border);
    border-top: 0;
    color: var(--gc-table-head-ink);
    font-weight: 800;
    letter-spacing: 0.01em;
}

.table td,
.table th {
    vertical-align: middle;
    border-top-color: #e8eef6;
    padding-top: 0.78rem;
    padding-bottom: 0.78rem;
}

.table tbody td {
    background: var(--gc-table-body);
}

.table tbody tr:nth-child(odd) td {
    background: var(--gc-table-row-odd);
}

.table tbody tr:nth-child(even) td {
    background: var(--gc-table-row-alt);
}

.table-hover tbody tr:hover td {
    background: var(--gc-table-row-hover);
}

.table-responsive {
    background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
    border-radius: 14px;
}

.table-bordered {
    border-color: #dfe7f1;
}

.table-bordered td,
.table-bordered th {
    border-color: var(--gc-table-border);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(16, 42, 114, 0.028);
}

.table .badge {
    box-shadow: none;
}

.table-success,
.table-success > th,
.table-success > td {
    background: var(--gc-table-success-bg) !important;
    color: var(--gc-table-success-ink);
}

.table-danger,
.table-danger > th,
.table-danger > td {
    background: var(--gc-table-danger-bg) !important;
    color: var(--gc-table-danger-ink);
}

.table-warning,
.table-warning > th,
.table-warning > td {
    background: var(--gc-table-warning-bg) !important;
    color: var(--gc-table-warning-ink);
}

.table-info,
.table-info > th,
.table-info > td {
    background: var(--gc-table-info-bg) !important;
    color: var(--gc-table-info-ink);
}

.table thead.thead-dark th,
.table thead.thead-light th {
    background: linear-gradient(180deg, var(--gc-table-head-1) 0%, var(--gc-table-head-2) 100%);
    color: var(--gc-table-head-ink);
    border-color: var(--gc-table-border);
}

.alert {
    border-radius: 14px;
    border: 1px solid transparent;
    box-shadow: var(--gc-shadow-soft);
}

.small-box {
    border-radius: 18px;
    box-shadow: var(--gc-shadow);
}

.small-box .small-box-footer {
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
}

.small-box.bg-info,
.small-box.bg-success,
.small-box.bg-warning,
.small-box.bg-danger,
.small-box.bg-primary {
    color: #ffffff !important;
}

.info-box {
    border-radius: 16px;
    border: 1px solid var(--gc-card-border);
    box-shadow: var(--gc-shadow-soft);
}

.page-item.active .page-link {
    background-color: var(--gc-primary);
    border-color: var(--gc-primary);
}

.page-link {
    color: var(--gc-primary);
    border-radius: 10px !important;
    margin: 0 0.12rem;
}

.page-link:hover {
    color: var(--gc-primary-2);
    background: #edf3ff;
    border-color: #d5e0f1;
}

a {
    color: var(--gc-primary);
}

a:hover {
    color: var(--gc-primary-2);
}

@media (max-width: 767.98px) {
    .content-header {
        padding-top: 0.75rem;
    }

    .main-sidebar .nav-link:hover {
        transform: none;
    }
}
