:root {
    --if-primary: #5b21b6;
    --if-primary-strong: #4c1d95;
    --if-primary-soft: #7c3aed;
    --if-secondary: #ede9fe;
    --if-accent: #c4b5fd;
    --if-surface: #ffffff;
    --if-surface-muted: #f6f3ff;
    --if-border: rgba(91, 33, 182, 0.14);
    --if-text: #1f1637;
    --if-text-soft: #6f6590;
    --if-sidebar: #160924;
    --if-sidebar-soft: #25103d;
    --if-success: #0f9f6e;
    --if-shadow: 0 18px 45px rgba(76, 29, 149, 0.10);
    --if-radius-lg: 20px;
    --if-radius-md: 16px;
    --if-radius-sm: 12px;
}

html[data-bs-theme="dark"] {
    --if-surface: #160f24;
    --if-surface-muted: #1c1430;
    --if-text: #f3efff;
    --if-text-soft: #c7bbec;
    --if-border: rgba(196, 181, 253, 0.15);
}

body {
    background:
        radial-gradient(circle at top left, rgba(124, 58, 237, 0.10), transparent 28%),
        radial-gradient(circle at bottom right, rgba(91, 33, 182, 0.10), transparent 25%),
        #f7f5fc;
    color: var(--if-text);
}

.authentication-bg,
.infinity-auth-page {
    background:
        radial-gradient(circle at top left, rgba(124, 58, 237, 0.30), transparent 26%),
        radial-gradient(circle at bottom right, rgba(91, 33, 182, 0.20), transparent 24%),
        linear-gradient(135deg, #12071f 0%, #1f0d33 45%, #3b126d 100%) !important;
}

.loader {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
}

.loader::after {
    border-top-color: var(--if-primary);
}

.navbar-custom {
    background: rgba(255, 255, 255, 0.90);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--if-border);
    box-shadow: 0 8px 28px rgba(36, 15, 80, 0.06);
}

.leftside-menu {
    background:
        linear-gradient(180deg, rgba(34, 12, 66, 0.98) 0%, rgba(18, 7, 31, 0.98) 100%),
        var(--if-sidebar) !important;
    box-shadow: 10px 0 30px rgba(10, 5, 20, 0.14);
}

.leftbar-user {
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.28), rgba(91, 33, 182, 0.10));
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 18px;
    margin: 14px 14px 10px;
}

.side-nav {
    padding: 6px 12px 20px;
}

.side-nav-title {
    color: rgba(255, 255, 255, 0.58) !important;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .72rem;
    margin: 16px 8px 10px !important;
}

.side-nav .side-nav-link,
.side-nav-second-level li a,
.side-nav-third-level li a {
    border-radius: 14px;
}

.side-nav .side-nav-link {
    color: rgba(255, 255, 255, 0.86) !important;
    margin-bottom: 4px;
    transition: all .22s ease;
}

.side-nav .side-nav-link:hover,
.side-nav .side-nav-link[aria-expanded="true"] {
    background: rgba(196, 181, 253, 0.10) !important;
    color: #fff !important;
}

.side-nav-second-level li a,
.side-nav-third-level li a {
    color: rgba(232, 224, 255, 0.78) !important;
    padding: 10px 14px;
    margin-bottom: 3px;
}

.side-nav-second-level li a:hover,
.side-nav-third-level li a:hover,
.side-nav-second-level li.mm-active > a,
.side-nav-third-level li.mm-active > a {
    background: rgba(124, 58, 237, 0.16);
    color: #fff !important;
}

.logo-topbar img,
.leftside-menu .logo img {
    max-height: 56px;
    width: auto;
    object-fit: contain;
}

.logo-topbar .logo-lg img {
    max-height: 44px;
}

.logo-painel {
    width: auto;
    height: 88px;
    margin-top: 0;
}

.content-page {
    background: transparent;
}

.card,
.modal-content,
.dropdown-menu,
.list-group-item,
.fc .fc-scrollgrid,
.select2-dropdown,
.table thead th {
    border-color: var(--if-border) !important;
}

.card,
.modal-content,
.dropdown-menu {
    border-radius: var(--if-radius-lg);
    box-shadow: var(--if-shadow);
    border: 1px solid var(--if-border);
}

.card {
    background: rgba(255, 255, 255, 0.94);
}

.card .card-header,
.table-light {
    background: linear-gradient(180deg, rgba(124, 58, 237, 0.04), rgba(255,255,255,0.65));
    border-bottom: 1px solid var(--if-border);
}

.page-title,
.card-title,
.card-header h4,
.card-header h5,
h1, h2, h3, h4, h5 {
    color: var(--if-text);
}

.text-muted,
.form-text,
.form-check-label,
small {
    color: var(--if-text-soft) !important;
}

.btn {
    border-radius: 14px;
    font-weight: 600;
    box-shadow: none;
}

.btn-primary,
.bg-primary,
.badge.bg-primary {
    background: linear-gradient(135deg, var(--if-primary), var(--if-primary-soft)) !important;
    border-color: transparent !important;
}

.btn-primary:hover,
.btn-primary:focus {
    filter: brightness(1.03);
    transform: translateY(-1px);
}

.btn-outline-primary {
    color: var(--if-primary);
    border-color: rgba(91, 33, 182, 0.35);
}

.btn-outline-primary:hover {
    background: var(--if-primary);
    border-color: var(--if-primary);
}

.bg-success,
.badge.bg-success,
.text-bg-success {
    background: linear-gradient(135deg, #16a34a, #0f9f6e) !important;
    color: #fff !important;
}

.bg-danger,
.badge.bg-danger,
.text-bg-danger {
    background: linear-gradient(135deg, #dc2626, #ef4444) !important;
    color: #fff !important;
}

.bg-info,
.badge.bg-info,
.text-bg-info {
    background: linear-gradient(135deg, #2563eb, #38bdf8) !important;
    color: #fff !important;
}

.bg-warning,
.badge.bg-warning,
.text-bg-warning {
    background: linear-gradient(135deg, #d97706, #f59e0b) !important;
    color: #fff !important;
}

.bg-dark,
.badge.bg-dark,
.text-bg-dark {
    background: linear-gradient(135deg, #332152, #1f1637) !important;
    color: #fff !important;
}

.form-control,
.form-select,
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
    border-radius: 14px !important;
    border: 1px solid rgba(91, 33, 182, 0.16) !important;
    min-height: 46px;
    background: #fff;
    box-shadow: none !important;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(91, 33, 182, 0.45) !important;
    box-shadow: 0 0 0 .25rem rgba(124, 58, 237, 0.12) !important;
}

.table > :not(caption) > * > * {
    border-bottom-color: rgba(91, 33, 182, 0.08);
}

.table thead th {
    background: #f5f0ff !important;
    color: var(--if-primary-strong);
    font-weight: 700;
}

.pagination .page-link {
    color: var(--if-primary);
    border-radius: 12px !important;
    margin: 0 3px;
    border-color: var(--if-border);
}

.pagination .active > .page-link {
    background: linear-gradient(135deg, var(--if-primary), var(--if-primary-soft));
    border-color: transparent;
}

.footer {
    background: transparent;
    color: var(--if-text-soft);
}

.alert {
    border-radius: 16px;
    border: 1px solid transparent;
}

.auth-fluid {
    min-height: 100vh;
}

.auth-fluid .auth-fluid-right {
    background:
        radial-gradient(circle at top, rgba(196, 181, 253, 0.20), transparent 28%),
        linear-gradient(135deg, rgba(45, 17, 82, 0.86), rgba(18, 7, 31, 0.92));
    position: relative;
    overflow: hidden;
}

.auth-fluid .auth-fluid-right::before,
.auth-fluid .auth-fluid-right::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    background: rgba(255,255,255,0.07);
    filter: blur(2px);
}

.auth-fluid .auth-fluid-right::before {
    width: 280px;
    height: 280px;
    top: -80px;
    right: -60px;
}

.auth-fluid .auth-fluid-right::after {
    width: 220px;
    height: 220px;
    bottom: -70px;
    left: -60px;
}

.infinity-auth-box {
    max-width: 560px;
    margin: 0 auto;
    padding: 28px 24px;
}

.infinity-auth-card {
    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(124, 58, 237, 0.10);
    border-radius: 28px;
    box-shadow: 0 24px 60px rgba(15, 6, 35, 0.18);
    overflow: hidden;
}

.infinity-auth-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.infinity-auth-brand img {
    max-width: 280px;
    height: auto;
}

.infinity-auth-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #f5f0ff;
    color: var(--if-primary-strong);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.infinity-auth-highlight {
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.09), rgba(91, 33, 182, 0.04));
    border: 1px solid rgba(124, 58, 237, 0.10);
    border-radius: 22px;
    padding: 20px;
}

.infinity-auth-benefits {
    display: grid;
    gap: 12px;
    margin-top: 24px;
}

.infinity-auth-benefits .benefit-item {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,0.92);
}

.infinity-auth-benefits .benefit-item i {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.10);
    color: #fff;
}

.infinity-brand-hero {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(196, 181, 253, 0.30), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #f8f4ff 60%, #efe7ff 100%);
    border: 1px solid rgba(124, 58, 237, 0.10);
    box-shadow: var(--if-shadow);
}

.infinity-brand-hero::after {
    content: "";
    position: absolute;
    inset: auto -80px -110px auto;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: rgba(124, 58, 237, 0.10);
    filter: blur(0px);
}

.infinity-brand-hero .hero-logo {
    max-width: 280px;
    width: 100%;
    height: auto;
}

.infinity-brand-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(91, 33, 182, 0.08);
    color: var(--if-primary-strong);
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.infinity-metric-card .avatar-title {
    background: rgba(255,255,255,0.20) !important;
    border: 1px solid rgba(255,255,255,0.16);
}

.infinity-soft-card {
    border-radius: 22px;
    border: 1px solid rgba(124, 58, 237, 0.10);
    background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(247,245,252,0.98));
}

.dropdown-item.active,
.dropdown-item:active {
    background: rgba(91, 33, 182, 0.10);
    color: var(--if-primary-strong);
}

@media (max-width: 991.98px) {
    .infinity-auth-box {
        padding: 18px 16px 24px;
    }

    .infinity-brand-hero .hero-logo,
    .infinity-auth-brand img {
        max-width: 220px;
    }

    .auth-fluid .auth-fluid-right {
        display: none;
    }

    .logo-painel {
        height: 72px;
    }
}
