/* TOKENS / THEME */
:root {
    --font-family: "Rubik", sans-serif;
    --font-weight-light: 200;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --js-black: #000;
    --js-grey: #1A1A1A;
    --js-white: #fff;
    --js-light-pink: #FFC8F9;
    --js-grey-hover: #222222;
}

/* Vortex Pie */

.vortex-wheel-option {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    overflow: hidden;
}

.wheel-group {
    display: flex;
    align-items: center;
    justify-content: center;
}

.wheel {
    transition: transform 220ms ease, opacity 220ms ease;
    transform-origin: center;
}

.wheel.is-updating {
    transform: scale(1.00);
    opacity: 1;
}

.vortex-wheel-option .wheel {
    --size: 58px;
    --percent: 18;
    --wheel-bg: black;
    --fill: white;
    --stroke: black;
    --stroke-width: 2.5;
    width: var(--size);
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
}

.wheel-group .wheel + .wheel {
    margin-left: -18px; /* overlap */
}

.wheel-group .wheel svg {
    width: 100%;
    height: 100%;
    display: block;
}
/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: #000 #111;
}

/* Chrome, Edge, Safari */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #111;
}

::-webkit-scrollbar-thumb {
    background: #000;
    border-radius: 6px;
}

::-webkit-scrollbar-thumb:hover {
    background: #333;
}

/* VORTEX ACCENT THEMING */

#panel-vortex {
    --accent: #b2ff8e;
}

#panel-vortex.bonus-blue {
    --accent: #47FFEA;
}

#panel-vortex.bonus-green {
    --accent: #A3FF7C;
}

#panel-vortex.bonus-yellow {
    --accent: #FFD968;
}

#panel-vortex.bonus-red {
    --accent: #FF8B68;
}

/* GLOBAL STYLES / RESETS */

html, body {
    scroll-behavior: smooth;
    overscroll-behavior: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    margin: 0;
    padding: 0;
    min-height: 100vh;
    height: 100%;
    font-family: var(--font-family);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    touch-action: auto;
}

canvas {
    touch-action: none;
}

a:any-link {
    text-decoration-line: none;
}

h1 {
    margin-top: 0;
}

/* PANELS (LAYOUT / OPEN STATE */

div.panel {
    position: fixed;
    inset: 0;
    display: none;
    height: calc(100vh - 20px);
    z-index: 999;
    overflow: hidden;
}

.panel-body {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

/* WHEN PANEL IS OPEN */

div.panel.active {
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    pointer-events: none;
}

div.panel.active .panel-body {
    pointer-events: auto;
}

/* PANEL BODY PADDING WHEN BASE BET EXISTS */

.panel:has(.component-base-bet) .panel-body {
    padding-bottom: calc(65px + env(safe-area-inset-bottom));
}

/* Legacy / header selectors (kept as-is) */

div.panel > header {
    background: #f5f5f5;
    padding: 0px;
    border-bottom: 1px solid #ddd;
}

div.panel header button {
    border: none;
    background: none;
    font-size: 16px;
}

/* BACKGROUND / OVERLAY */

.background-blur {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 998;
    pointer-events: none;
}

/* RULES CONTENT / GENERATED CONTENT */

#rules-content {
    width: 100%;
    align-self: stretch;
}

#rules-content, #rules-content p, #rules-content h2, #rules-content ul, #rules-content li {
    text-align: left;
}

#rules-content p + p {
    margin-top: 16px;
}

#rules-content h2 {
    padding: 20px 0;
}

#rules-content h2:first-child {
    margin-top: 0;
}

#rules-content ul {
    list-style: decimal;
    padding: 10px 0 10px 20px;
    margin: 0;
}

#rules-content ul ul {
    list-style: disc;
    padding-left: 20px;
    margin-top: 6px;
}

.content-image {
    padding: 20px 0;
    overflow: hidden;
}

.content-image img {
    width: 100%;
    height: auto;
    display: block; /* removes inline-image bottom gap */
}

.sub-item {
    margin-left: 15px;
    list-style: disc;
}

/* STICKY HEADER / CLOSE BAR */

.component-sticky-header {
    position: sticky;
    width: 100%;
    top: 0;
    z-index: 1000;
    background: black;
    flex-shrink: 0;
    height: 80px;
    border-bottom: 1px solid #1A1A1A;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.9);
}

.component-sticky-close {
    position: absolute;
    width: 100%;
    z-index: 1000;
    flex-shrink: 0;
    height: 80px;
}

.icon-close {
    width: 30px;
    height: 30px;
    position: absolute;
    right: 20px;
    top: 50%;
    translate: 0 -50%;
    overflow: visible;
    cursor: pointer;
}

/* PILLS (SECTION NAVIGATION */

.pills-container {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: flex-start;
    width: 330px;
    position: absolute;
    left: 20px;
    top: 50%;
    translate: 0 -50%;
}

.atom-section-pill {
    background: #1A1A1A;
    border-radius: 10px;
    padding: 18px 18px 18px 18px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.atom-section-pill:hover {
    background: #333333;
}

.atom-section-pill p {
    color: var(--js-white);
    text-align: center;
    font-weight: var(--font-weight-regular);
    font-size: 12px;
    text-transform: uppercase;
    position: relative;
    padding: 0;
    margin: 0;
}

.atom-section-pill a {
    text-decoration: none;
}

.atom-section-pill a:link {
    text-decoration: none;
}

/* CONTENT CONTAINER / PANEL BODY CONTENT WRAPPER  */

.content-container {
    max-width: 100vw;
    background: rgba(0, 0, 0, 0.75); /* must be semi-transparent */
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px); /* Safari */
    padding: 30px 35px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    overflow: visible;
}

/* SECTION HEADER / TITLES  */

.heading-container {
    display: flex;
    flex-direction: row;
    gap: 11px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.section-icon {
    border-radius: 3px;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    position: relative;
}

.section-icon img {
    width: 100%;
}

.section-content-container {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: flex-start;
    justify-content: flex-start;
    flex: 1;
    position: relative;
}

.section-title {
    width: 100%;
    display: flex;
    justify-content: space-between; /* left + right */
    align-items: center; /* vertical center */
    color: var(--js-white);
    text-align: left;
    font-size: 15px;
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
}

.section-description {
    color: var(--js-white);
    text-align: left;
    font-size: 13px;
    font-weight: 300;
    position: relative;
    align-self: stretch;
    height: 12px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.p-top-20px {
    padding-top: 20px;
}

/* BONUS BUY / FEATURES STRIP */

.container-bonus {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex: 1;
    position: relative;
}

.features-container {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-snap-align: start;
    margin-right: -30px;
    padding-right: 30px;
    /* Hide scrollbar */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE / Edge legacy */
}

.features-container::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

.atom-feature-container {
    background: var(--js-grey);
    border-radius: 3px;
    flex-shrink: 0;
    width: 110px;
    height: 150px;
    position: relative;
    overflow: hidden;
    border: 2px solid #1A1A1A;
    scroll-snap-align: start; /* snap per box */
    scroll-snap-stop: always; /* optional: stronger snap */
    cursor: pointer;
}

.atom-feature-container:hover {
    background: var(--js-grey-hover);
}

.atom-feature-value {
    height: 40px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    border-top: 1px solid #4B4B4B;
    display: flex;
    align-items: center;
    justify-content: center;
}

.atom-feature-value p {
    color: var(--js-white);
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1;
    margin: 0;
    transform: translateY(-1px);
}

.bonus-image {
    height: 110px;
    position: absolute;
    right: 0px;
    left: 0px;
    top: 0px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bonus-image img {
    width: 80%;
}

/* VORTEX FEATURE BILLBOARD */
.component-vortex-billboard {
    background-image: url("assets/html-new/assets/vortex-background.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    border-style: solid;
    border-color: rgba(244, 91, 216, 0.25);
    border-width: 1px;
    align-self: stretch;
    flex-shrink: 0;
    height: 125px;
    position: relative;
    overflow: hidden;
}

.button-vortex {
    position: absolute;
    right: 27px;
    top: calc(50% - 23px);
    width: 70px;
    height: 42px;
    padding: 0 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(0, 0, 0, 0.7);
    border-radius: 100px;
    overflow: hidden;
    z-index: 0;
    background: var(--js-black);
    cursor: pointer;
}

.button-vortex span {
    color: var(--js-white);
    font-size: 11px;
    text-transform: uppercase;
}

.button-vortex span img {
    width: 25px;
    margin-top: 3px;
    margin-left: 5px;
}

/* Animated border layer */
.button-vortex::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    z-index: -2;
}

.vortex-billboard-logo-component {
    width: 150px;
    height: auto;
    position: absolute;
    left: 32px;
    top: 50%;
    translate: 0 -50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vortex-billboard-logo-component img {
    width: 100%;
}

/*  BASE BET / STICKY BOTTOM BAR */
.base-bet-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex: 1;
    position: relative;
    height: 65px;
}

.base-bet-content {
    display: flex;
    flex-direction: row;
    gap: 23px;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex-shrink: 0;
    height: 22px;
    position: relative;
}

.atom-bet-change {
    border-radius: 3px;
    flex-shrink: 0;
    width: 35px;
    height: 35px;
    position: relative;
    overflow: hidden;
}

.atom-bet-change img {
    width: 100%;
}

.atom-bet-content {
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: 22px;
    position: relative;
}

.atom-bet-title {
    color: white;
    text-align: center;
    font-size: 10px;
    line-height: 15px;
    font-weight: 400;
    text-transform: uppercase;
    position: relative;
    width: 79px;
    height: 13px;
}

.atom-bet-title-value {
    color: var(--js-white);
    text-align: center;
    font-size: 15px;
    line-height: 21px;
    font-weight: 500;
    position: relative;
    align-self: stretch;
}

/* VALUE BUTTONS / BET SIZING + AUTOPLAY */
.value-buttons-container {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 5px;
    margin: 20px 0 0 0;
}

.value-buttons-row {
    display: flex;
    flex-direction: row;
    gap: 5px;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
}

.atom-button-value {
    background: #212121;
    color: var(--js-white);
    border-radius: 5px;
    padding: 20px 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    border: 1px solid black;
    cursor: pointer;
}

#panel-vortex .atom-button-value {
    padding:0px 15px;
}

.atom-button-value:hover {
    background: var(--js-light-pink);
    color: var(--js-black);
}

.atom-button-value p {
    font-weight: var(--font-weight-light);
    color: inherit;
    padding: 0;
    font-size: 14px;
    margin: 0;
}

.atom-button-value img {
    height: 11px;
    object-fit: contain;
}

.atom-button-value.active, .atom-button-value[data-selected="true"] {
    background: var(--js-light-pink);
    color: var(--js-black);
}

.atom-button-value.active p {
    color: var(--js-black);
}

/* BUTTONS / PRIMARY / SECONDARY / VORTEX VARIANTS */
.buttons-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
    padding: 40px 0 0 0;
}

.button-primary {
    background: var(--js-white);
    border-radius: 5px;
    padding: 25px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
}

.button-primary p, .button-primary span {
    margin: 0;
    padding: 0;
    color: #000;
    font-weight: var(--font-weight-medium);
    font-size: 15px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em; /* optional */
}

.button-primary:hover {
    background: var(--js-light-pink);
}

.button-secondary {
    background: var(--js-grey);
    border-radius: 5px;
    padding: 25px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
}

.button-secondary p, .button-secondary span {
    margin: 0;
    padding: 0;
    font-weight: var(--font-weight-medium);
    font-size: 15px;
    line-height: 1;
    text-transform: uppercase;
    color: var(--js-white);
}

.button-secondary:hover {
    background: #393939;
}

.button-vortex-large {
    background: var(--js-grey);
    border-radius: 5px;
    padding: 25px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    z-index: 0;
}

.button-vortex-large p, .button-vortex-large span {
    margin: 0;
    padding: 0;
    color: var(--js-white);
    font-weight: var(--font-weight-medium);
    font-size: 15px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.button-vortex-large::before {
    content: "";
    position: absolute;
    inset: 0; /* fills button exactly */
    pointer-events: none; /* doesn’t affect interaction */
    background: linear-gradient(120deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.35) 50%, rgba(255, 255, 255, 0) 70%);
    transform: translateX(-150%) skewX(-20deg);
    animation: shineSweep 3s ease-in-out infinite;
}

@keyframes shineSweep {
    0% {
        transform: translateX(-150%) skewX(-20deg);
    }
    60% {
        transform: translateX(150%) skewX(-20deg);
    }
    100% {
        transform: translateX(150%) skewX(-20deg);
    }
}

.button-vortex-bonus {
    background: var(--js-grey);
    border-radius: 5px;
    padding: 25px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
}

.button-vortex-bonus p, .button-vortex-bonus span {
    margin: 0;
    padding: 0;
    color: #000;
    font-weight: var(--font-weight-medium);
    font-size: 15px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.button-vortex-bonus p {
    padding: 0;
    margin: 0;
    text-transform: uppercase;
}

/* DATA BINDING SPACING */
.button-primary p, .button-primary p span + span {
    display: inline-flex;
    gap: 6px;
}

.vortex-summary-container.grey p span + span {
    margin-left: 6px;
}

/* CONFIRM MODALS (BONUS / HOTSPIN / REELS */
.bonus-image-big {
    width: 100%;
    height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
}

.bonus-image-big img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.vortex-information-container {
    width: 80%;
    padding: 0 20px 30px 20px;
    text-align: center; /* center the sentence */
}

.vortex-information-container span + span {
    margin-left: 5px;
    line-height: 25px;
}

/* GAME INFORMATION */
/* (kept; may be unused in markup) */
.game-information, .game-information * {
    box-sizing: border-box;
}

.game-information {
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: flex-start;
    justify-content: flex-start;
    position: relative;
    overflow-y: auto;
}

.game-information-text {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}

.game-information-text h1, .game-information-text h2, .game-information-text p {
    position: relative;
    align-self: stretch;
    padding: 0;
    margin: 0;
}

.game-information-text h1 {
    color: var(--js-white);
    text-align: center;
    font-size: 27px;
    line-height: 32px;
    text-transform: uppercase;
    padding: 40px 0 60px 0;
    font-weight: 200;
}

.game-information-text h2 {
    color: var(--js-light-pink);
    text-align: left;
    font-size: 20px;
    text-transform: uppercase;
    padding: 20px 0;
}

.game-information-text h2 {
    font-weight: var(--font-weight-medium);
}

.game-information-text p {
    color: var(--js-white);
    text-align: left;
    font-weight: var(--font-weight-regular);
    line-height: 25px;
}

.game-information-text ul {
    list-style: decimal;
    margin: 0;
}

.game-information-text li {
    color: var(--js-white);
    text-align: left;
    font-size: 15px;
    line-height: 25px;
    margin-bottom: 4px;
}

.built-by-justslots {
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.built-by-justslots img {
    max-width: 80%;
    height: auto;
    display: block;
}

.game-version {
    width: 100%;
    align-items: center;
    justify-content: center;
    color: var(--js-white);
    font-size: 13px;
    text-transform: uppercase;
    text-align: center;
}

.game-version p {
    gap: 6px;
    align-items: center;
    justify-content: center;
}

/* ==========================================================================
   PAYTABLE
   ========================================================================== */
.paytable-container {
    width: 100%;
    height: auto;
}

.paytable {
    width: 100%;
    margin: 0 auto;
    color: var(--js-white);
    padding-bottom: 20px;
}

.pay-row {
    display: grid;
    align-items: flex-start;
    column-gap: 10px;
}

.pay-row--3 {
    grid-template-columns: repeat(3, 1fr);
}

.pay-row--4 {
    grid-template-columns: repeat(4, 1fr);
}

.pay-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.paytable-symbol {
    height: 100%;
    display: grid;
    place-items: center;
    margin-bottom: 14px;
}

.paytable-symbol img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.paytable-symbol-small {
    height: 95px;
}

.paytable-symbol-small img {
    width: 70px;
    height: 70px;
}

.payouts {
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* (kept, but selector likely incorrect: ".payouts ul" - payouts is already a UL in markup) */
.payouts ul {
    padding: 0;
    margin: 0;
}

.payouts li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    font-size: 12px;
    line-height: 1;
}

.payouts li + li {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

/* shorter tables at bottom still look balanced */
.payouts--short li {
    padding: 12px 0;
}

/* SETTINGS SWITCHES */
.settings-option span {
    color: white;
}

.auto-layout-game-settings {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    position: relative;
}

.settings-option {
    display: flex;
    flex-direction: row;
    gap: 0px;
    padding: 7px 0;
    align-items: center;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
    justify-content: space-between;
}

.auto-layout-game-settings .settings-option:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.21);
}

.settings-option:last-child {
    border-bottom: none;
}

.switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #373737;
    -webkit-transition: .4s;
    transition: .4s;
}

.slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: var(--js-white);
    -webkit-transition: .4s;
    transition: .4s;
}

input:checked + .slider {
    background-color: #F19ECB;
}

input:focus + .slider {
    box-shadow: 0 0 1px #F19ECB;
}

input:checked + .slider:before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
}

.slider.round {
    border-radius: 34px;
}

.slider.round:before {
    border-radius: 50%;
}

/* VORTEX PANEL (LAYOUT + SLIDER + SUMMARY) */
#panel-vortex .probability-content {
    color: var(--accent);
}

#panel-vortex .button-vortex-bonus {
    background-color: var(--accent);
}

#panel-vortex .buttons-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
    padding: 20px 0 0 0;
}

#panel-vortex .value-buttons-container {
    margin: 0px;
}

#panel-vortex .atom-button-value[data-selected="true"] {
    background-color: var(--accent);
    color: black;
}

#panel-vortex .atom-button-value.is-selected p {
    color: black;
}

/* (kept; may be unused in markup) */
.slider-fill {
    background: var(--accent);
}

.vortex-logo-header {
    width: 100%;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vortex-logo-header svg {
    display: block;
    height: 100%;
    max-height: 50px;
}

.bonus-1-text {
    color: var(--accent);
    font-size: 18px;
}

/* (kept; may be unused in markup) */
.vortex-header {
    display: flex;
    flex-direction: row;
    height: 60px;
}

/* (kept; may be unused in markup) */
.minus {
    background: #000000;
    border-radius: 100px;
    width: 10px;
    height: 2px;
    position: absolute;
    left: 50%;
    translate: -50% -50%;
    top: 50%;
}

.vortex-progress-container {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.atom-vortex-bet-button {
    background: var(--js-white);
    border-radius: 100px;
    flex-shrink: 0;
    width: 35px;
    height: 35px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.atom-vortex-bet-button img {
    width: 70%;
}

.atom-progress-bar {
    background: var(--js-grey, #272927);
    border-radius: 100px;
    border: 1px solid var(--js-grey, #272927);
    flex: 1;
    height: 65px;
    position: relative;
    padding: 6px; /* controls equal space around progress */
    display: flex;
    align-items: center;
}

.progress-area {
    height: 100%;
    border-radius: 100px;
    background: var(--accent);
    transition: width 160ms ease;
    cursor: pointer;
    /* Width should represent progress */
    width: 50%; /* example */
}

.progress-number {
    color: var(--js-black, #000000);
    text-align: left;
    font-size: 15px;
    position: absolute;
    left: 23px;
    top: calc(50% - 9px);
    width: 67px;
}

.vortex-summary-container {
    width: 100%;
    text-align: center;
}

.vortex-summary-container p {
    text-align: center;
    font-size: 14px;
    line-height: 18px;
    padding: 10px 0;
    text-transform: uppercase;
}

.vortex-summary-container h2 {
    padding: 10px 0px;
    text-align: center;
    font-size: 13px;
    line-height: 14px;
    text-transform: uppercase;
}

.grey {
    color: #C2C2C2;
}

.white {
    color: white;
}

#panel-vortex .atom-button-value p {
    padding: 0;
    font-size: 13px;
    margin: 0;
}

#panel-vortex .atom-button-value.active p {
    color: black;
    text-align:center;
}

#panel-vortex .atom-button-value.active, #panel-vortex .atom-button-value[data-selected="true"] {
    background: var(--accent);
    color: var(--js-black);
}

#panel-vortex .atom-button-value:hover {
    background: var(--accent);
    color: var(--js-black);
}

/* REPLAY */
.replay-container {
    width: 100%;
}

#replay-indicator {
    position: fixed;
    top: 18px;
    left: 18px;
    z-index: 2147483647;
    display: none;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    pointer-events: none;
}

.replay-indicator__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #f42a89;
    box-shadow: 0 0 0 6px rgba(255, 42, 42, 0.16);
    flex-shrink: 0;
}

.replay-indicator__label {
    color: #ffffff;
    font-family: "Rubik", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.replay-grid {
    display: grid;
    grid-template-columns: 2.5fr 2.5fr 2.5fr 2.5fr;
    align-items: center;
    column-gap: 24px;
    font-size: 15px;
    padding-bottom: 15px;
}

.replay-loadmore {
    margin-top: 16px;
    width: 100%;
}

.replay-loadmore .button-secondary {
    width: 100%;
}

/* Make sure the panel is the scrolling container */
#panel-replay .panel-body {
    position: relative;
}

#panel-replay .replay-heading {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--js-white);
    margin-bottom: 20px;
}

.replay-heading .hcell:nth-child(2), .replay-heading .hcell:nth-child(3) {
    text-align: center;
}

/* header */
.replay-heading .hcell {
    text-transform: uppercase;
    color: white;
}

.hcell--right {
    text-align: right;
}

/* (kept; may be unused in markup) */
.hcell--actions {
    text-align: right;
}

/* row cells */
.replay-row .replay-cell {
    color: white;
    min-width: 0; /* prevents grid overflow weirdness */
}

/* time stack */
.time {
    display: flex;
    flex-direction: column;
}

/* money alignment */
.value-center {
    text-align: center;
}

.value-right {
    text-align: right;
}

/* (kept; may be unused in markup) */
.actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.replay-actions-full {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
}

.replay-actions-full a {
    flex: 1;
    display: block;
}

.replay-actions-full .replay-icon {
    width: 100%;
}

/* icon buttons */
.replay-icon {
    height: 55px;
    background: var(--js-grey);
    cursor: pointer;
    border:1px solid white;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    border-radius: 100px;
    text-align: center; /* <-- important */
}

/* Ensure inner text is centered and not inheriting odd alignment */
.replay-icon p,
.replay-icon span {
    margin: 0;
    padding: 0;
    width: 100%; /* <-- makes centering perfect */
    text-align: center; /* <-- guarantees horizontal centering */
    display: block;
}

.replay-row .replay-cell.replay-actions-full {
    grid-column: 1 / -1;
    width: 100%;
    padding-top: 20px;
}

.replay-icon p, .replay-icon span {
    margin: 0;
    padding: 0;
    font-weight: var(--font-weight-medium);
    font-size: 11px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em; /* optional */
}

.replay-icon span,
.replay-icon p {
    color: var(--js-white);
}

.replay-seperator {
    height: 1px;
    background: rgba(255, 255, 255, 0.18);
    margin: 20px 0;
}

.replay-copy-feedback {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;
    padding: 12px 18px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.8);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #ffffff;
}

/* PANEL HEIGHT OVERRIDES (IDs) */

#panel-bonus-confirm {
    height: 780px;
}

/* MEDIA QUERIES  */
@media (max-width: 749px) {
    .vortex-wheel-option .wheel {
        width: 40px;
        height: 40px;
    }

    .vortex-wheel-option .wheel-group {
        gap: 4px;
    }
    .content-container {
        background: rgba(0, 0, 0, 0.85);
        max-width: 100vw;
        padding: 30px 30px 60px 30px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        position: relative;
        overflow: visible;
    }

    .panel.panel-centered .panel-body {
        height: 100dvh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        display: flex;
        flex-direction: column;
    }

    .panel.panel-centered .content-container {
        min-height: 100%;
        justify-content: center;
    }

    .game-information-text h1 {
        padding: 40px;
    }

    .div.panel {
        background: rgba(0, 0, 0, 0.60);
        height: 100vh;
    }

    .component-base-bet {
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        z-index: 2147483647;
        background-color: rgba(0, 0, 0, 0.92);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
        transform: translateZ(0);
        isolation: isolate;
        /* ADD THIS */
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

@media (min-width: 750px) {
    .vortex-information-container {
        width: 60%;
    }

    .background-blur {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.7);
        z-index: 998;
        pointer-events: auto;
    }

    .atom-feature-container {
        width: 147px;
        height: 190px;
        border-radius: 6px;
    }

    .bonus-image {
        height: 150px;
    }

    div.panel {
        position: fixed;
        inset: 8% auto auto 50%;
        transform: translateX(-50%);
        width: min(700px, 100%);
        height: auto;
        max-height: min(90vh, 85%);
        overflow: hidden;
        box-shadow: 0px 50px 90px rgba(255, 147, 233, 0.20);
    }

    .panel:has(.component-base-bet) > .panel-body {
        height: 100%;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        display: flex;
        flex-direction: column;
        min-height: 0;
        min-height: 0
    }

    .panel:has(.component-base-bet) > .panel-body > .content-container {
        overflow: visible;
        flex: 1 0 auto;
        padding-bottom: calc(65px + env(safe-area-inset-bottom));
    }

    .panel:has(.component-base-bet) > .panel-body > .component-base-bet {
        position: sticky;
        bottom: 0;
        z-index: 1001;
        background-color: rgba(0, 0, 0, 0.92);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }
}
