@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

:root {
    --icon-color: rgb(148, 67, 255) !important;
    --scrollbar-width: 0px;
    --half-scrollbar-width: 0px;
}

html,
body {
    width: 100%;
    min-width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
}

html {
    position: relative;
    min-height: 100%;
    font-size: 14px;
}

@media (min-width: 992px) {
    html {
        font-size: 15px;
    }
}

body {
    font-family: "Poppins", sans-serif;
    font-style: normal;
}

.section-full-bleed {
    width: calc(100vw - var(--scrollbar-width));
    margin-left: calc(50% - 50vw + var(--half-scrollbar-width));
    margin-right: calc(50% - 50vw + var(--half-scrollbar-width));
}

a,
img {
    -webkit-user-drag: none;
    user-select: none;
}

.text-icon-color {
    color: var(--icon-color) !important;
}

.bg-icon-color,
.bg-icon-color:active,
.bg-icon-color:focus,
.bg-icon-color.show,
.bg-icon-color[aria-expanded="true"] {
    background-color: var(--icon-color);
    background-color: color-mix(in srgb, var(--icon-color) 90%, white) !important;
}

    .bg-icon-color:hover {
        background-color: color-mix(in srgb, var(--icon-color) 75%, white) !important;
    }

.shadow-hover-effect {
    transition: box-shadow 0.28s ease;
}

    .shadow-hover-effect:hover {
        box-shadow: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.04) 0px 10px 10px -5px !important;
    }

dl dt {
    font-weight: 600;
}

.td-fit {
    width: 1%;
    white-space: nowrap;
}

.box-shadow {
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

.img-shadow {
    filter: drop-shadow(var(--bs-box-shadow-sm));
}

.noise-bg {
    position: relative;
    overflow: hidden;
}

.noise-bg {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

    .noise-bg::before {
        content: "";
        position: absolute;
        inset: 0;
        opacity: 0.15;
        background-color: #b9b2a9;
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
        mask-size: 220px 220px;
        pointer-events: none;
    }

.bg-texture-1 {
    background-color: #fff;
    background-image: url('../images/binding-light.png');
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.border-effect {
    position: relative;
    isolation: isolate;
}

    .border-effect.border-effect-first-time::before {
        content: "";
        position: absolute;
        inset: -4px;
        border-radius: 50%;
        background-color: #c87032;
        z-index: -1;
    }

    .border-effect.border-effect-not-first-time::before {
        content: "";
        position: absolute;
        inset: -4px;
        border-radius: 50%;
        background-color: #bce9b6;
        z-index: -1;
    }

.texto-com-enters {
    white-space: pre-line;
}

.texto-vermelho {
    color: var(--bs-danger);
    font-weight: 400;
}

.texto-verde {
    color: var(--bs-success);
    font-weight: 400;
}

.texto-azul {
    color: var(--bs-primary);
    font-weight: 400;
}

.texto-amarelo {
    color: #cb9617;
    font-weight: 400;
}

.no-outline,
.no-outline:focus {
    outline: none !important;
    box-shadow: none !important;
}

#pesquisaGlobalBox {
    position: absolute;
    top: calc(100% + 4px);
    background: white;
    width: 299px;
    display: none;
    z-index: 2000;
    max-height: 50vh;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
    #pesquisaGlobalBox {
        width: 100%;
    }
}

#pesquisaGlobalInput {
    width: 100%;
}

@media (min-width: 992px) {
    #pesquisaGlobalInput {
        width: 200px;
    }
}

@media (min-width: 1200px) {
    #pesquisaGlobalInput {
        width: 260px;
    }
}

#pesquisaGlobalInput::placeholder {
    font-size: 0.92rem;
    font-weight: 300;
}

.border-bottom-focus-primary:focus {
    border-bottom: 1px solid var(--bs-primary) !important;
}

#navbarSearchArea {
    width: 100%;
}

@media (min-width: 992px) {
    #navbarSearchArea {
        width: auto;
    }
}

.background-blur {
    position: relative;
    overflow: hidden;
}

    .background-blur::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: var(--bg-url);
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
        filter: blur(18px) brightness(1.05) saturate(110%);
        transform: scale(1.5);
        z-index: 0;
    }

    .background-blur > * {
        position: relative;
        z-index: 1;
    }

.notificacoes-dropdown {
    min-width: 500px;
    max-width: 80%;
    top: calc(100% + 4px) !important;
    max-height: 50vh;
    overflow-y: auto;
    overflow-x: hidden;
}

@media (max-width: 767.98px) {
    .notificacoes-dropdown.show {
        position: fixed !important;
        width: 80vw !important;
        min-width: 0 !important;
        max-width: 80vw !important;
        left: 10vw !important;
        right: auto !important;
        top: 70px !important;
        transform: none !important;
    }
}

.login-push-alert {
    min-width: 280px;
    max-width: 320px;
    padding: .85rem;
    white-space: normal;
    background: #f8f7ff;
    border-color: color-mix(in srgb, var(--icon-color) 22%, transparent);
    border-radius: 8px;
}

.login-push-alert-icon {
    color: var(--icon-color);
}

.login-push-alert-title {
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.2;
}

.login-push-alert [data-pwa-push-status] {
    line-height: 1.25;
}

.login-push-alert .form-check-input {
    cursor: pointer;
}

/* SCROLL TO TOP BUTTON */

.scroll-top-button {
    position: fixed;
    right: max( 20px, calc((100vw - 1320px) / 2 + 20px) );
    bottom: 40px;
    border-radius: 50%;
    background: #fffffffa;
    color: var(--bs-dark);
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    font-weight: bold;
    cursor: pointer;
    z-index: 9999;
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
    opacity: 0;
    pointer-events: none;
    transform: translate(0, 120px);
    transition: transform .35s ease, opacity .35s ease;
}

    .scroll-top-button.visible {
        opacity: 0.9;
        pointer-events: auto;
        transform: translate(0, 0);
    }

/* BLINK */

.blink-opacity {
    animation: blinkOpacity 1s infinite ease-in-out;
}

@keyframes blinkOpacity {
    0% {
        opacity: 0.7;
    }

    40% {
        opacity: 1;
    }

    60% {
        opacity: 1;
    }

    100% {
        opacity: 0.7;
    }
}

.icon-auto-contrast {
    color: #fff;
    mix-blend-mode: difference;
}

/* SHADOWS */

.card-shadow {
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

/* GRUPO CARD */

.grupo-card {
    /*background-color: #f6f8fa;*/
    background-color: #ffffff;
}

/* EVENTO CARD */
.evento-card .card {
    /*background-color: #f5f7f2;*/
    background-color: #ffffff;
}

.evento-card-title {
    position: sticky;
    top: var(--site-header-height, 0px);
    z-index: 1999;
    width: calc(100vw - var(--scrollbar-width));
    margin-left: calc(50% - 50vw + var(--half-scrollbar-width));
    margin-right: calc(50% - 50vw + var(--half-scrollbar-width));
    padding-left: calc((100vw - 100% - var(--scrollbar-width)) / 2);
    padding-right: calc((100vw - 100% - var(--scrollbar-width)) / 2);
    background-color: rgba(var(--bs-light-rgb), 0.88);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.bg-no-game-img {
    background: linear-gradient(to bottom, #D5DEE7 0%, #E8EBF2 50%, #E2E7ED 100%), linear-gradient(to bottom, rgba(0,0,0,0.02) 50%, rgba(255,255,255,0.02) 61%, rgba(0,0,0,0.02) 73%), linear-gradient(33deg, rgba(255,255,255,0.20) 0%, rgba(0,0,0,0.20) 100%);
    background-blend-mode: normal,color-burn;
}

/* JOGO CARD */

.jogo-card-banner {
    width: 100%;
    margin-top: auto;
    background-color: rgba(0, 0, 0, 0.3);
}

.jogo-card-title {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* SWIPER CAROUSEL */

.swiper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    padding-bottom: 40px !important;
}

    .swiper:has(.swiper-button-lock) {
        padding-bottom: 0 !important;
    }

    .swiper .swiper-button-lock {
        display: none;
    }

.swiper-wrapper {
    min-width: 0;
}

.swiper-slide {
    flex-shrink: 0;
}

.swiper-button-prev,
.swiper-button-next {
    position: absolute;
    top: auto;
    bottom: 0;
    width: 32px;
    height: 28px;
    margin-top: 0;
    color: #212121;
    background-color: #c6c6c6;
    color: #ffffff;
    border-radius: 4px;
}

.swiper-button-next {
    right: 0;
}

.swiper-button-prev {
    left: auto;
    right: 40px;
}

    .swiper-button-prev::after,
    .swiper-button-next::after {
        font-size: 16px;
        font-weight: 700;
    }

/* CALENDAR */

.calendar-view {
    display: none;
}

.calendar-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.calendar-header {
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
    text-transform: capitalize;
}

.calendar-nav-btn {
    white-space: nowrap;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
}

.calendar-weekday {
    font-weight: bold;
    text-align: center;
    padding: 8px;
    background: #f2f2f2;
    border: 1px solid #ddd;
    border-radius: 8px;
}

.calendar-day {
    min-height: 150px;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 8px;
    background: white;
}

    .calendar-day.other-month {
        background: #f7f7f7;
        opacity: 0.45;
    }

    .calendar-day.past-day {
        background: #eeeeee;
        opacity: 0.75;
    }

    .calendar-day.today {
        background: #dff5e5;
        border: 2px solid #198754;
        opacity: 1;
    }

.calendar-event {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #ffffff;
    border: 1px solid #ddd;
    border-left: 5px solid #16643d;
    border-radius: 8px;
    padding: 6px;
    margin-bottom: 6px;
    font-size: 0.85rem;
}

    .calendar-event:hover {
        background: #f8f9fa;
    }

.calendar-event-time {
    font-weight: bold;
    color: #16643d;
    margin-bottom: 8px;
}

.calendar-event-title {
    font-weight: 600;
    line-height: 1.2;
}

.calendar-event-info {
    font-size: 0.75rem;
    color: #666;
    margin-top: 3px;
}

@media (max-width: 768px) {
    .calendar-topbar {
        flex-direction: column;
    }

    .calendar-grid {
        display: block;
    }

    .calendar-weekday {
        display: none;
    }

    .calendar-day {
        min-height: auto;
        margin-bottom: 12px;
    }

        .calendar-day.other-month {
            display: none;
        }
}

/* DEVEXTREME CHAT */

.boardgames-chat {
    height: min(520px, calc(100dvh - 180px));
    min-height: 360px;
}

.boardgames-chat .dx-scrollable-container {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

#offcanvasChat .offcanvas-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#offcanvasChat .boardgames-chat {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: auto;
    min-height: 0;
}

.boardgames-chat-widget {
    height: 100%;
}

#offcanvasChat .boardgames-chat-widget {
    flex: 1 1 auto;
    min-height: 0;
}

.boardgames-chat-login {
    margin-top: 0.75rem;
}

.chat-page-main {
    --chat-page-height: calc(100vh - var(--site-header-height, 0px) - var(--site-footer-height, 4.5rem) - 3rem);
    display: flex;
    flex-direction: column;
    height: var(--chat-page-height);
    max-height: var(--chat-page-height);
    min-height: 0;
    overflow: visible;
}

@supports (height: 100dvh) {
    .chat-page-main {
        --chat-page-height: calc(100dvh - var(--site-header-height, 0px) - var(--site-footer-height, 4.5rem) - 3rem);
    }
}

.chat-index-shell {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.chat-index-layout {
    flex: 1 1 0;
    height: 100%;
    min-height: 0;
    overflow: visible;
}

.chat-index-sidebar {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.chat-index-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.chat-index-conversation {
    border: 0;
    border-bottom: 1px solid #c7e1da;
    border-radius: 0;
    text-align: left;
    color: var(--bs-dark);
}

.chat-unread-dot {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 0.55rem;
    border-radius: 50%;
    background: var(--bs-warning);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

    .chat-index-conversation.active {
        /*background-color: #212121;
        color: #ffffff;*/
        border: 0;
    }

        .chat-index-conversation.active .text-muted {
            color: rgba(255, 255, 255, .72) !important;
        }

.chat-index-panel {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
}

    .chat-index-panel-content {
        display: flex;
        flex: 1 1 0;
        flex-direction: column;
        min-height: 0;
        overflow: visible;
    }

    .chat-index-panel .boardgames-chat {
        display: flex;
        flex: 1 1 0;
        flex-direction: column;
        height: 100%;
        min-height: 0;
    }

    .chat-index-panel .boardgames-chat-widget {
        flex: 1 1 0;
        height: 100%;
        min-height: 0;
    }

.chat-index-mobile-toolbar {
    display: none;
}

#offcanvasChat .offcanvas-body.p-0 .boardgames-chat .boardgames-chat-widget {
    box-shadow: none !important;
}

@media (max-width: 991.98px) {
    .chat-index-layout {
        --chat-index-mobile-gap: 1.5rem;
        flex-direction: row !important;
        flex-wrap: nowrap;
        gap: var(--chat-index-mobile-gap) !important;
        margin: -0.5rem;
        overflow-x: hidden;
        overflow-y: visible;
        padding: 0.5rem;
    }

    .chat-index-sidebar {
        flex: 0 0 100%;
        height: 100%;
        min-width: 100%;
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        transition: transform 0.28s ease, opacity 0s linear 0s;
        width: 100% !important;
        will-change: transform, opacity;
    }

    .chat-index-panel {
        display: flex;
        flex: 0 0 100%;
        height: 100%;
        min-width: 100%;
        min-height: 0;
        opacity: 0;
        pointer-events: none;
        transform: translateX(0);
        transition: transform 0.28s ease, opacity 0s linear 0.28s;
        width: 100%;
        will-change: transform, opacity;
    }

    .chat-index-layout.chat-index-chat-open .chat-index-sidebar {
        opacity: 0;
        pointer-events: none;
        transform: translateX(calc(-100% - var(--chat-index-mobile-gap)));
        transition: transform 0.28s ease, opacity 0s linear 0.28s;
    }

    .chat-index-layout.chat-index-chat-open .chat-index-panel {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(calc(-100% - var(--chat-index-mobile-gap)));
        transition: transform 0.28s ease, opacity 0s linear 0s;
    }

    .chat-index-mobile-toolbar {
        display: block;
        flex: 0 0 auto;
    }
}

@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
    .chat-index-sidebar,
    .chat-index-panel {
        transition: none;
    }
}

/* LOADING BACKDROP */

.loading-backdrop {
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    z-index: 5000;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
    transition: opacity 300ms ease-in-out, visibility 0s linear 300ms;
}

    .loading-backdrop.is-visible {
        pointer-events: auto;
        opacity: 1;
        visibility: visible;
        transition: opacity 300ms ease-in-out, visibility 0s linear 0s;
    }

.loading-backdrop-bg {
    position: absolute;
    inset: 0;
    background: var(--bs-white);
    opacity: .4;
}

.loading-backdrop .spinner-border {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 1;
    opacity: 1;
    margin-top: calc(var(--bs-spinner-height, 2rem) / -2);
    margin-left: calc(var(--bs-spinner-width, 2rem) / -2);
}
