.gym-wallet-wrap{max-width:1000px;margin:30px auto;font-family:Arial,sans-serif;color:#172033}
.gym-wallet-wrap *{box-sizing:border-box}
.gym-wallet-card,.gym-wallet-stat{background:#fff;border:1px solid #dfe5ec;border-radius:14px;padding:22px;box-shadow:0 5px 20px rgba(20,35,55,.06);margin-bottom:18px}
.gym-wallet-wrap label{display:block;font-weight:700;margin:14px 0}
.gym-wallet-wrap input,.gym-wallet-wrap textarea,.gym-wallet-wrap select{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #c8d0da;border-radius:8px}
.gym-wallet-wrap button{background:#1769e0;color:#fff;border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer}
.gym-wallet-secondary{background:#596579!important}
.gym-wallet-notice,.gym-wallet-test{padding:13px 15px;border-radius:10px;background:#eef6ff;border:1px solid #b9d8ff;margin:15px 0}
.gym-wallet-memberbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}
.gym-wallet-stats,.gym-wallet-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.gym-wallet-stat span{display:block;color:#667085}
.gym-wallet-stat strong{font-size:1.5rem;display:block;margin-top:6px}
.gym-wallet-actions{display:flex;flex-wrap:wrap;gap:10px}
.gym-wallet-price{font-size:1.35rem;font-weight:800;margin:12px 0}
.gym-wallet-table{overflow:auto}
.gym-wallet-table table{width:100%;border-collapse:collapse}
.gym-wallet-table th,.gym-wallet-table td{text-align:left;padding:10px;border-bottom:1px solid #e6eaf0}
.gym-wallet-link{margin-top:18px}
@media(max-width:600px){.gym-wallet-memberbar{align-items:flex-start;flex-direction:column}.gym-wallet-wrap{margin:15px}}


/* Gym Wallet 3.3.15: unified sticky brown header with mobile dropdown */
.gym-wallet-site-nav {
    position: sticky;
    top: 0;
    z-index: 99999;
    width: 100%;
    margin: 0 0 20px;
    padding: 12px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #6f4e37;
    border: 0;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
    box-sizing: border-box;
}

.gym-wallet-site-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gym-wallet-site-brand {
    color: #ffffff !important;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
}

.gym-wallet-site-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.gym-wallet-site-links a {
    display: inline-block;
    padding: 9px 12px;
    border-radius: 8px;
    color: #ffffff !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gym-wallet-site-links a:hover,
.gym-wallet-site-links a:focus,
.gym-wallet-site-brand:hover,
.gym-wallet-site-brand:focus {
    background: rgba(255, 255, 255, .14);
    color: #ffffff !important;
}

.gym-wallet-menu-toggle {
    display: none;
}

/* Hide the theme's broken mobile menu button.
   Gym Wallet provides its own dropdown instead. */
@media (max-width: 768px) {

    .menu-toggle,
    .navbar-toggler,
    .mobile-menu-toggle,
    .wp-block-navigation__responsive-container-open,
    button[aria-label*="menu"]:not(.gym-wallet-menu-toggle),
    button[aria-label*="navigation"] {
        display: none !important;
    }

    .gym-wallet-site-nav {
        display: block;
        padding: 10px 12px;
    }

    .gym-wallet-site-top {
        width: 100%;
    }

    .gym-wallet-site-brand {
        font-size: 16px;
        white-space: normal;
    }

    .gym-wallet-menu-toggle {
        display: inline-block;
        flex: 0 0 auto;
        padding: 8px 12px;
        border: 1px solid rgba(255, 255, 255, .55);
        border-radius: 8px;
        background: rgba(255, 255, 255, .12);
        color: #ffffff;
        font: inherit;
        font-weight: 700;
        cursor: pointer;
    }

    .gym-wallet-site-links {
        display: none;
        width: 100%;
        padding-top: 10px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .gym-wallet-site-links.is-open {
        display: grid;
    }

    .gym-wallet-site-links a {
        text-align: center;
        background: rgba(255, 255, 255, .08);
    }
}

/* 3.3.16 mobile home header */
@media (max-width: 768px) {

    .home .menu-toggle,
    .home .navbar-toggler,
    .home .mobile-menu-toggle,
    .home .wp-block-navigation__responsive-container-open,
    .home button[aria-label*="menu"]:not(.gym-wallet-menu-toggle),
    .home button[aria-label*="navigation"] {
        display: none !important;
    }

    .home .gym-wallet-site-nav {
        position: sticky !important;
        top: 0;
        display: block !important;
        z-index: 99999;
    }
}

/* Gym Wallet 3.3.17: mobile Home-page fallback header only */
.gym-wallet-mobile-home-fallback {
    display: none;
}

@media (max-width: 768px) {
    .home .gym-wallet-mobile-home-fallback {
        display: block;
        position: sticky;
        top: 0;
        z-index: 99999;
    }

    .home .gym-wallet-mobile-home-fallback .gym-wallet-site-nav {
        display: block !important;
        position: sticky !important;
        top: 0;
        margin: 0 0 20px;
    }
}


/* Annual membership status — 3.4.0 */
.gym-wallet-membership-stat small{display:block;margin-top:8px;line-height:1.5;font-size:.82rem;opacity:.85}
.gym-wallet-membership-stat em{display:block;margin-top:8px;font-style:normal;font-weight:800;font-size:.86rem}
.gym-wallet-membership-active{border-left:6px solid #238636}
.gym-wallet-membership-soon{border-left:6px solid #d99a00}
.gym-wallet-membership-expired{border-left:6px solid #c62828}
.gym-wallet-membership-none{border-left:6px solid #777}
.gym-wallet-membership-warning{margin:16px 0}


/* Compact training-pass selector — 3.4.3 */
.gym-wallet-pass-picker{min-height:0}
.gym-wallet-pass-picker h4{margin-top:0}
.gym-wallet-pass-picker label{margin:10px 0 14px}
.gym-wallet-pass-picker select{margin-top:6px}
.gym-wallet-pass-picker button{width:100%}

/* Training-pass date readability — 3.4.4 */
.gym-wallet-membership-stat small + em{display:block}


/* Member portal polish — 3.4.5 */
.gym-wallet-days-remaining{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #e6eaf0}
.gym-wallet-days-remaining span{display:block;font-size:.82rem;font-weight:700;color:#667085}
.gym-wallet-days-remaining strong{display:block;margin-top:4px;font-size:1rem}
.gym-wallet-purchase-history{margin-top:18px}

/* Compact balance top-up — 3.4.6 */
.gym-wallet-balance-stat .gym-wallet-inline-topup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: end;
    margin-top: 14px;
}
.gym-wallet-inline-topup label {
    display: grid;
    gap: 5px;
    min-width: 0;
}
.gym-wallet-inline-topup label > span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}
.gym-wallet-inline-topup select,
.gym-wallet-inline-topup input {
    width: 100%;
    min-width: 0;
    margin: 0;
}
.gym-wallet-inline-topup button {
    margin: 0;
    white-space: nowrap;
}
.gym-wallet-inline-topup .gym-wallet-other-amount {
    grid-column: 1 / -1;
}
.gym-wallet-inline-topup .gym-wallet-other-amount[hidden] {
    display: none;
}

/* PT module 3.5.3 */
.gym-wallet-trainer-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}.gym-wallet-trainer-summary>div{padding:16px;border:1px solid rgba(0,0,0,.1);border-radius:12px}.gym-wallet-trainer-summary strong,.gym-wallet-trainer-summary span{display:block}.gym-wallet-trainer-summary span{margin-top:8px;font-size:1.05rem}.gym-wallet-availability-grid{display:grid;gap:10px;margin:16px 0}.gym-wallet-availability-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(2,minmax(125px,.8fr));gap:12px;align-items:center;padding:12px;border:1px solid rgba(0,0,0,.1);border-radius:10px}.gym-wallet-availability-row input[type=time]{width:100%}.gym-wallet-trainer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.gym-wallet-trainer-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:14px}.gym-wallet-trainer-card details summary{display:inline-block;cursor:pointer;list-style:none}.gym-wallet-trainer-card details summary::-webkit-details-marker{display:none}.gym-wallet-trainer-availability{margin-top:12px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1)}@media(max-width:640px){.gym-wallet-availability-row{grid-template-columns:1fr}.gym-wallet-day{margin-bottom:4px}}

/* PT hourly availability — 3.5.4 */
.gym-wallet-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gym-wallet-availability-day{margin:0;padding:14px;border:1px solid rgba(0,0,0,.1);border-radius:12px}
.gym-wallet-availability-day legend{padding:0 7px;font-weight:800}
.gym-wallet-hour-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.gym-wallet-hour-slots label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid rgba(0,0,0,.08);border-radius:8px;cursor:pointer}
.gym-wallet-hour-slots input{margin:0}
@media(max-width:760px){.gym-wallet-name-grid{grid-template-columns:1fr}.gym-wallet-hour-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.gym-wallet-hour-slots label{justify-content:center;gap:3px;padding:6px 3px;font-size:.75rem;white-space:nowrap}.gym-wallet-hour-slots input{width:13px;height:13px;flex:0 0 auto}}

/* PT compact availability — 3.5.5: five slots per row, fifteen slots per day */

/* PT compact availability — 3.5.6: force exactly five slots per row */
.gym-wallet-hour-slots{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.gym-wallet-hour-slots label span{white-space:nowrap}


/* PT compact availability — 3.5.7: three physical rows of five in Trainer Portal */
.gym-wallet-hour-slot-rows{display:flex;flex-direction:column;gap:8px;width:100%}
.gym-wallet-hour-slot-row{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px;width:100%}
.gym-wallet-hour-slot-row label{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:8px 4px;border:1px solid rgba(0,0,0,.1);border-radius:8px;cursor:pointer;box-sizing:border-box}
.gym-wallet-hour-slot-row label span{white-space:nowrap;font-size:.82rem}
.gym-wallet-hour-slot-row input{margin:0;flex:0 0 auto}
@media(max-width:760px){.gym-wallet-hour-slot-row{gap:4px}.gym-wallet-hour-slot-row label{padding:7px 2px}.gym-wallet-hour-slot-row label span{font-size:.7rem}}
.gw-book-slot-selected {
    background: #111 !important;
    color: #fff !important;
    border-color: #111 !important;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.18);
}

/* Trainer Portal mobile fixes */
@media (max-width: 768px) {

    .gym-wallet-wrap {
        width: auto;
        max-width: 100%;
        margin-left: 10px;
        margin-right: 10px;
        box-sizing: border-box;
    }

    .gym-wallet-wrap * {
        box-sizing: border-box;
    }

    .gym-wallet-card,
    .gym-wallet-stat {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Trainer availability: two slots per row on phones */
    .gym-wallet-hour-slot-row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .gym-wallet-hour-slot-row label {
        width: 100%;
        min-width: 0;
        padding: 8px 4px !important;
        box-sizing: border-box;
    }

    .gym-wallet-hour-slot-row label span {
        font-size: .75rem;
        white-space: nowrap;
    }

    /* Older availability grid fallback */
    .gym-wallet-hour-slots {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .gym-wallet-card input,
    .gym-wallet-card select,
    .gym-wallet-card textarea {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /* Trainer bookings: keep table inside card and allow sideways swipe */
    .gym-wallet-table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
    }

    .gym-wallet-table table {
        width: max-content;
        min-width: 100%;
        border-collapse: collapse;
    }

    .gym-wallet-table th,
    .gym-wallet-table td {
        white-space: nowrap;
        padding: 7px 5px;
        font-size: 12px;
    }
}

@media (max-width: 768px) {
    #gym-wallet-slot-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 5px !important;
    }

    #gym-wallet-slot-grid .gym-wallet-slot {
        min-width: 0 !important;
        padding: 8px 3px !important;
    }

    #gym-wallet-slot-grid .gym-wallet-slot span {
        font-size: 11px !important;
        white-space: nowrap;
    }
}

/* Trainer bookings - mobile cards only */
@media (max-width: 768px) {

    table.gym-wallet-table {
        display: block;
        width: 100%;
    }

    table.gym-wallet-table thead {
        display: none;
    }

    table.gym-wallet-table tbody {
        display: block;
        width: 100%;
    }

    table.gym-wallet-table tr {
        display: block;
        width: 100%;
        margin-bottom: 12px;
        padding: 12px;
        border: 1px solid #dfe5ec;
        border-radius: 10px;
        background: #fff;
    }

    table.gym-wallet-table td {
        display: grid;
        grid-template-columns: 75px minmax(0, 1fr);
        gap: 8px;
        width: 100%;
        padding: 6px 0;
        border-bottom: 1px solid #eef1f4;
        white-space: normal;
    }

    table.gym-wallet-table td:last-child {
        border-bottom: 0;
    }

    table.gym-wallet-table td:nth-child(1)::before {
        content: "Date";
        font-weight: 700;
    }

    table.gym-wallet-table td:nth-child(2)::before {
        content: "Time";
        font-weight: 700;
    }

    table.gym-wallet-table td:nth-child(3)::before {
        content: "Trainer";
        font-weight: 700;
    }

    table.gym-wallet-table td:nth-child(4)::before {
        content: "Member";
        font-weight: 700;
    }

    table.gym-wallet-table td:nth-child(5)::before {
        content: "Status";
        font-weight: 700;
    }
}