:root {
    --tvvip-black: #050505;
    --tvvip-panel: #0d0d0f;
    --tvvip-panel-2: #151518;
    --tvvip-red: #f00505;
    --tvvip-red-dark: #850000;
    --tvvip-gold: #fdc700;
    --tvvip-gold-soft: #ffc107;
    --tvvip-silver: #c2c2c2;
    --tvvip-white: #f7f7f8;
    --tvvip-border: rgba(194, 194, 194, .18);
    --tvvip-red-glow: 0 0 24px rgba(240, 5, 5, .22);
    --tvvip-gold-glow: 0 0 18px rgba(253, 199, 0, .18);
}

html[data-bs-theme="dark"],
body {
    background: var(--tvvip-black) !important;
    color: var(--tvvip-white);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background:
        radial-gradient(circle at 92% 8%, rgba(240, 5, 5, .16), transparent 28%),
        radial-gradient(circle at 6% 90%, rgba(253, 199, 0, .08), transparent 22%),
        linear-gradient(140deg, #050505 0%, #101013 45%, #050505 100%);
}

#kt_app_header,
.app-header {
    background: rgba(5, 5, 5, .92) !important;
    border-bottom: 1px solid rgba(240, 5, 5, .35) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .35);
    backdrop-filter: blur(16px);
}

#kt_app_sidebar,
.app-sidebar {
    background: linear-gradient(180deg, #080808 0%, #101012 55%, #070707 100%) !important;
    border-right: 1px solid rgba(240, 5, 5, .32) !important;
    box-shadow: var(--tvvip-red-glow);
}

#kt_app_sidebar_header {
    border-bottom: 1px solid rgba(253, 199, 0, .16);
}

#kt_app_sidebar_header img,
.app-header img[alt="Logo"] {
    object-fit: contain;
    filter: drop-shadow(0 0 12px rgba(240, 5, 5, .22));
}

.menu-heading {
    color: var(--tvvip-gold) !important;
    font-weight: 800 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.app-sidebar .menu-link {
    color: #d6d6d9 !important;
    border: 1px solid transparent;
    transition: all .18s ease;
}

.app-sidebar .menu-link:hover,
.app-sidebar .menu-link.active,
.app-sidebar .menu-item.here > .menu-link {
    color: #fff !important;
    background: linear-gradient(90deg, rgba(240, 5, 5, .2), rgba(240, 5, 5, .05)) !important;
    border-color: rgba(240, 5, 5, .35);
    box-shadow: inset 3px 0 0 var(--tvvip-red), var(--tvvip-red-glow);
}

.app-sidebar .menu-link.active .menu-title,
.app-sidebar .menu-link:hover .menu-title {
    color: #fff !important;
}

.card,
.modal-content,
.dropdown-menu,
.menu-sub-dropdown {
    background: linear-gradient(145deg, rgba(20, 20, 23, .98), rgba(10, 10, 12, .98)) !important;
    border: 1px solid var(--tvvip-border) !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .38), 0 0 0 1px rgba(240, 5, 5, .04) !important;
}

.card-header {
    border-bottom: 1px solid rgba(240, 5, 5, .2) !important;
}

.card-title,
h1, h2, h3, h4, h5, h6,
.text-gray-900,
.text-gray-800 {
    color: var(--tvvip-white) !important;
}

.text-muted,
.text-gray-500,
.text-gray-600,
.text-gray-700 {
    color: #a9a9af !important;
}

.btn-primary {
    background: linear-gradient(135deg, var(--tvvip-red), #a60000) !important;
    border-color: #ff2929 !important;
    color: #fff !important;
    box-shadow: var(--tvvip-red-glow);
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #ff2525, #c10000) !important;
    border-color: var(--tvvip-gold) !important;
    box-shadow: 0 0 0 3px rgba(253, 199, 0, .14), var(--tvvip-red-glow) !important;
}

.btn-warning,
.badge-warning,
.badge-light-warning {
    background: linear-gradient(135deg, var(--tvvip-gold), #d79e00) !important;
    color: #111 !important;
}

.form-control,
.form-select,
.input-group-text,
textarea {
    color: var(--tvvip-white) !important;
    background-color: #0a0a0c !important;
    border-color: rgba(194, 194, 194, .28) !important;
}

.form-control:focus,
.form-select:focus,
textarea:focus {
    border-color: var(--tvvip-gold) !important;
    box-shadow: 0 0 0 3px rgba(253, 199, 0, .12), var(--tvvip-gold-glow) !important;
}

.table {
    --bs-table-bg: transparent !important;
    --bs-table-color: #e9e9eb !important;
    --bs-table-border-color: rgba(194, 194, 194, .13) !important;
}

.table thead th {
    color: var(--tvvip-gold) !important;
    background: rgba(240, 5, 5, .08) !important;
    border-bottom-color: rgba(240, 5, 5, .24) !important;
}

.table tbody tr:hover td {
    background: rgba(240, 5, 5, .06) !important;
}

.pagination .page-link {
    background: #111 !important;
    border-color: var(--tvvip-border) !important;
    color: #eee !important;
}

.pagination .active > .page-link,
.pagination .page-link:hover {
    background: var(--tvvip-red) !important;
    border-color: var(--tvvip-red) !important;
}

.app-footer {
    background: rgba(7, 7, 8, .94) !important;
    border-top: 1px solid rgba(240, 5, 5, .24) !important;
}

.tvvip-status {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .8rem;
    border-radius: 999px;
    color: var(--tvvip-gold);
    background: rgba(253, 199, 0, .08);
    border: 1px solid rgba(253, 199, 0, .22);
    font-size: .82rem;
    font-weight: 700;
}

.tvvip-status::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tvvip-red);
    box-shadow: 0 0 12px rgba(240, 5, 5, .8);
}

/* Tela de acesso */
.tvvip-login-page {
    min-height: 100vh;
    background:
        linear-gradient(90deg, rgba(4, 4, 5, .96) 0%, rgba(4, 4, 5, .82) 48%, rgba(4, 4, 5, .32) 100%),
        url('../../img/bg.png') center/cover fixed;
}

.tvvip-login-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(320px, 560px) 1fr;
}

.tvvip-login-card-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
}

.tvvip-login-card {
    width: min(100%, 460px);
    padding: 34px;
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(18, 18, 21, .96), rgba(6, 6, 8, .97));
    border: 1px solid rgba(240, 5, 5, .34);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .55), var(--tvvip-red-glow);
    backdrop-filter: blur(18px);
}

.tvvip-login-logo {
    width: min(300px, 82%);
    height: auto;
    display: block;
    margin: 0 auto 20px;
    filter: drop-shadow(0 0 20px rgba(240, 5, 5, .2));
}

.tvvip-kicker {
    color: var(--tvvip-gold);
    text-transform: uppercase;
    letter-spacing: .16em;
    font-weight: 800;
    font-size: .76rem;
}

.tvvip-login-title {
    margin: .55rem 0 .3rem;
    font-weight: 900;
    font-size: clamp(1.6rem, 3vw, 2.35rem);
}

.tvvip-login-copy {
    color: #aaaab0;
    margin-bottom: 1.7rem;
}

.tvvip-hero-copy {
    align-self: center;
    max-width: 660px;
    padding: 60px;
}

.tvvip-hero-copy h2 {
    font-size: clamp(2.2rem, 5vw, 4.8rem);
    font-weight: 950;
    line-height: .98;
    text-shadow: 0 8px 30px rgba(0,0,0,.5);
}

.tvvip-hero-copy strong { color: var(--tvvip-red); }
.tvvip-hero-copy p { color: #d0d0d4; font-size: 1.05rem; max-width: 540px; }

@media (max-width: 991px) {
    .tvvip-login-shell { grid-template-columns: 1fr; }
    .tvvip-hero-copy { display: none; }
    .tvvip-login-card-wrap { padding: 20px; }
}
