:root{--p:#4b247a;--d:#2c1648;--s:#f8f6fb;--l:#e4d8ef}.tb-dashboard *{box-sizing:border-box}.tb-session,.tb-acc,.tb-stats,.tb-toolbar,.tb-login,.tb-required{box-sizing:border-box}.tb-session{display:flex;justify-content:space-between;align-items:center;background:var(--s);border:1px solid var(--l);border-radius:14px;padding:10px 14px;margin-bottom:14px;color:var(--d)}.tb-session a{color:var(--p);font-weight:900}.tb-acc{background:#fff;border:1px solid var(--l);border-radius:18px;margin:0 0 14px;overflow:hidden}.tb-acc>summary{cursor:pointer;padding:14px 18px;font-weight:900;color:var(--p);background:var(--s)}.tb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:14px}.tb-grid input,.tb-grid select,.tb-toolbar input,.tb-toolbar select,.tb-athlete-form textarea{width:100%;border:1px solid #d8cbe6;border-radius:10px;padding:9px 10px}.tb-grid button,.tb-athlete-form button,.tb-btn,.tb-teams button{border:0;background:var(--p);color:#fff!important;border-radius:10px;padding:10px 14px;font-weight:900;cursor:pointer;text-decoration:none!important}.tb-btn.light{background:#f4eef9;color:var(--p)!important}.tb-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:0 0 16px}.tb-stats div{min-height:46px;padding:8px 14px;border-radius:14px;background:linear-gradient(135deg,#4b247a,#2a1249);color:#fff;display:flex;justify-content:center;align-items:center;gap:8px}.tb-stats b{font-size:22px}.tb-stats span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.tb-tabs,.tb-team-switches{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.tb-tab,.tb-team-switches button{border:1px solid #d9c9e9;background:#f7f1fb;color:#351957!important;border-radius:999px;padding:9px 16px;font-weight:900;cursor:pointer;text-decoration:none!important}.tb-tab.is-active,.tb-team-switches button.is-active{background:var(--p);color:#fff!important}.tb-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 16px}.tb-toolbar input,.tb-toolbar select{max-width:260px}.tb-panel[hidden],.tb-panel:not(.is-active),.tb-team-panel:not(.is-active){display:none!important}.tb-panel.is-active,.tb-team-panel.is-active{display:block!important}.tb-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.tb-card{background:#fff;border:1px solid var(--l);border-radius:18px;padding:12px;text-align:center;box-shadow:0 10px 25px rgba(42,18,73,.08)}.tb-card.zero{background:#f1f1f1;border-color:#d8d8d8}.tb-card h3{margin:0 0 10px;color:var(--d);font-size:17px}.photo{width:96px;height:96px;margin:0 auto 10px;overflow:hidden;border-radius:16px;background:#f2edf7;display:flex;align-items:center;justify-content:center;color:var(--p);font-weight:900}.photo img{width:100%;height:100%;object-fit:cover;display:block}.tb-card p{margin:6px 0}.actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}.actions a{background:var(--p);color:#fff!important;border-radius:10px;padding:7px 10px;text-decoration:none!important;font-weight:800;font-size:12px}.tb-builder{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:18px;align-items:start}.tb-builder aside,.tb-builder section{background:var(--s);border:1px solid var(--l);border-radius:20px;padding:14px}.tb-builder section{display:grid;gap:14px}.tb-group{background:#fff;border:1px solid var(--l);border-radius:18px;padding:12px}.head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;color:var(--d)}.head div{display:grid;gap:5px;justify-items:end}.head span{font-size:11px;font-weight:900;color:var(--p);background:#f4eef9;border-radius:999px;padding:4px 9px}.slots{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.slot{min-height:92px;background:#fafafa;border:2px dashed #d9d3df;border-radius:16px;padding:9px}.slot.is-over{border-color:var(--p);background:#f4eef9}.slot small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#6b6178;margin-bottom:7px}.drag{cursor:grab;user-select:none;border-radius:14px;padding:10px 11px;border:1px solid #ddd;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.08);display:grid;gap:2px;margin:0 0 8px}.drag.is-dragging{opacity:.45}.drag b{font-size:14px;color:#21152d}.drag span{font-size:12px;color:#5e5369}.drag em{font-size:11px;font-style:normal;font-weight:900;color:var(--p)}.pos-flyer{border-left:6px solid #6f35b1}.pos-backspot{border-left:6px solid #fff;box-shadow:inset 0 0 0 1px #d8d8d8,0 6px 16px rgba(0,0,0,.08)}.pos-base{border-left:6px solid #2f80ed}.pos-tumbler{border-left:6px solid #8e8e8e}.tumblers{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.tb-teams{padding:14px}.tb-teams>div{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:12px;background:#fff;border:1px solid var(--l);border-radius:14px;margin-bottom:10px}.danger{color:#a32020}.tb-table{width:calc(100% - 28px);margin:14px;border-collapse:collapse;background:#fff}.tb-table th,.tb-table td{border-bottom:1px solid var(--l);padding:10px;text-align:left}.tb-required{max-width:520px;margin:40px auto;background:#fff;border:1px solid var(--l);border-radius:24px;padding:28px;text-align:center}.tb-login{display:grid;gap:14px;max-width:420px;margin:0 auto;background:#fff;border:1px solid var(--l);border-radius:18px;padding:20px}.tb-login label{display:grid;gap:6px;font-weight:800;color:var(--d)}.tb-login input{border:1px solid #d8cbe6;border-radius:10px;padding:9px 10px}.tb-error{background:#fff1f1;color:#9f1d1d;border:1px solid #ffd0d0;border-radius:12px;padding:10px;font-weight:800}.tb-ok{background:#effaf1;color:#126b2f;border:1px solid #cfeeda;border-radius:12px;padding:10px;font-weight:800}.tb-modal{position:fixed;inset:0;background:rgba(18,10,28,.55);z-index:999999;display:flex;justify-content:center;align-items:flex-start;padding:80px 18px 20px}.tb-modal[hidden]{display:none!important}.tb-modal-panel{background:#fff;border-radius:20px;max-width:720px;width:min(720px,94vw);max-height:80vh;overflow:auto;padding:18px;position:relative}.tb-modal-panel [data-tb-close]{position:absolute;right:12px;top:10px;width:34px;height:34px;border:0;border-radius:50%;background:#f4eef9;color:var(--p);font-size:22px;cursor:pointer}.tb-athlete-form{display:grid;gap:14px}.tb-athlete-form fieldset{border:1px solid var(--l);border-radius:14px;padding:12px}.tb-athlete-form fieldset label{display:block;margin:6px 0}.tb-toast{position:fixed;right:20px;bottom:20px;background:var(--d);color:#fff;border-radius:14px;padding:12px 16px;font-weight:900;z-index:9999999}.tb-toast.error{background:#b42318}@media(max-width:900px){.tb-builder{grid-template-columns:1fr}.slots{grid-template-columns:repeat(2,minmax(120px,1fr))}.tb-stats{grid-template-columns:repeat(2,1fr)}.tb-toolbar input,.tb-toolbar select{max-width:none}}


/* v3.0.1 GUI polish: Add Athlete, Teams, Accounts */
.tb-grid-form .tb-create-athlete-btn,
.tb-grid-form .tb-create-user-btn {
    grid-column: 1 / -1;
    justify-self: start;
    min-width: 220px;
    margin-top: 4px;
}

/* Cleaner Add/Edit Teams section */
.tb-team-settings {
    display: grid;
    gap: 12px;
    padding: 14px;
}

.tb-team-row {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) minmax(130px, .7fr) auto auto;
    gap: 14px;
    align-items: end;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--tb-line);
    border-radius: 18px;
    margin-bottom: 0;
    box-shadow: 0 8px 20px rgba(42,18,73,.05);
}

.tb-team-row label {
    display: grid;
    gap: 6px;
    font-weight: 800;
    color: var(--tb-deep);
}

.tb-team-row input[type="text"],
.tb-team-row select {
    width: 100%;
    min-height: 44px;
    border: 1px solid #d8cbe6;
    border-radius: 12px;
    padding: 9px 12px;
    box-sizing: border-box;
    background: #fff;
}

.tb-team-row .tb-check {
    min-height: 44px;
    align-items: center;
    align-self: end;
    padding: 0 6px;
    white-space: nowrap;
}

.tb-team-row.tb-new-team {
    border-style: dashed;
    background: #fbf9fd;
}

.tb-save-teams-btn {
    justify-self: start;
    min-width: 150px;
    margin-top: 2px;
}

/* Make account creation button row match Add Athlete */
.tb-accordion .tb-grid-form {
    align-items: end;
}

.tb-send-email-check,
.tb-grid-form .tb-check {
    min-height: 44px;
    align-items: center;
}

/* Keep buttons from sitting beside file inputs/selects on wide screens */
.tb-grid-form button[type="submit"] {
    grid-column: 1 / -1;
    justify-self: start;
}

/* Mobile/tablet polish */
@media (max-width: 900px) {
    .tb-team-row {
        grid-template-columns: 1fr 1fr;
    }

    .tb-grid-form .tb-create-athlete-btn,
    .tb-grid-form .tb-create-user-btn,
    .tb-save-teams-btn {
        width: 100%;
        justify-self: stretch;
    }
}

@media (max-width: 600px) {
    .tb-team-row {
        grid-template-columns: 1fr;
    }
}


/* v3.0.2 Cheer Team Builder hard UI polish overrides */
.tb-accordion form.tb-grid-form > button[type="submit"],
.tb-accordion form.tb-grid-form > .tb-create-athlete-btn,
.tb-accordion form.tb-grid-form > .tb-create-user-btn {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    width: 240px !important;
    max-width: 100% !important;
    margin-top: 6px !important;
}

.tb-accordion .tb-team-settings {
    display: grid !important;
    gap: 14px !important;
    padding: 16px !important;
}

.tb-accordion .tb-team-row {
    display: grid !important;
    grid-template-columns: minmax(260px, 1.4fr) minmax(140px, .6fr) minmax(120px, auto) minmax(110px, auto) !important;
    gap: 16px !important;
    align-items: end !important;
    padding: 16px 18px !important;
    margin: 0 !important;
    background: #ffffff !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 22px rgba(42,18,73,.06) !important;
}

.tb-accordion .tb-team-row label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
    font-weight: 800 !important;
    color: var(--tb-deep) !important;
}

.tb-accordion .tb-team-row input[type="text"],
.tb-accordion .tb-team-row select {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 12px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.tb-accordion .tb-team-row .tb-check {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 44px !important;
    white-space: nowrap !important;
    gap: 7px !important;
}

.tb-accordion .tb-team-row.tb-new-team {
    border-style: dashed !important;
    background: #fbf9fd !important;
}

.tb-accordion .tb-save-teams-btn,
.tb-accordion .tb-team-settings > button[type="submit"] {
    justify-self: start !important;
    width: 160px !important;
    margin-top: 4px !important;
}

.tb-accordion form.tb-grid-form label.tb-check {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
}

@media (max-width: 900px) {
    .tb-accordion .tb-team-row {
        grid-template-columns: 1fr 1fr !important;
    }

    .tb-accordion form.tb-grid-form > button[type="submit"],
    .tb-accordion .tb-save-teams-btn,
    .tb-accordion .tb-team-settings > button[type="submit"] {
        width: 100% !important;
        justify-self: stretch !important;
    }
}

@media (max-width: 600px) {
    .tb-accordion .tb-team-row {
        grid-template-columns: 1fr !important;
    }
}


/* v3.0.3 hard UI polish + unique plugin slug */
.tb-accordion form.tb-grid-form > button[type="submit"] {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    width: 240px !important;
    max-width: 100% !important;
    margin-top: 8px !important;
}

.tb-accordion .tb-team-settings {
    display: grid !important;
    gap: 14px !important;
    padding: 16px !important;
}

.tb-accordion .tb-team-row {
    display: grid !important;
    grid-template-columns: minmax(260px,1.4fr) minmax(140px,.6fr) minmax(120px,auto) minmax(110px,auto) !important;
    gap: 16px !important;
    align-items: end !important;
    padding: 16px 18px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 22px rgba(42,18,73,.06) !important;
}

.tb-accordion .tb-team-row label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
}

.tb-accordion .tb-team-row input[type="text"],
.tb-accordion .tb-team-row select {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 12px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.tb-accordion .tb-team-row .tb-check {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    min-height: 44px !important;
    white-space: nowrap !important;
    gap: 7px !important;
}

.tb-accordion .tb-team-row.tb-new-team {
    border-style: dashed !important;
    background: #fbf9fd !important;
}

.tb-accordion .tb-team-settings > button[type="submit"] {
    justify-self: start !important;
    width: 160px !important;
    margin-top: 4px !important;
}

@media(max-width:900px){
    .tb-accordion .tb-team-row{ grid-template-columns:1fr 1fr !important; }
    .tb-accordion form.tb-grid-form > button[type="submit"],
    .tb-accordion .tb-team-settings > button[type="submit"]{
        width:100% !important;
        justify-self:stretch !important;
    }
}

@media(max-width:600px){
    .tb-accordion .tb-team-row{ grid-template-columns:1fr !important; }
}


/* v3.0.7 dashboard UI cleanup */

/* 1) Add Athlete: force submit button below all fields */
.tb-dashboard .tb-accordion:first-of-type form.tb-grid-form,
.tb-dashboard details.tb-accordion form.tb-grid-form {
    align-items: end !important;
}

.tb-dashboard details.tb-accordion form.tb-grid-form > button[type="submit"] {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    width: 240px !important;
    min-width: 220px !important;
    margin-top: 8px !important;
}

/* 2) Add/Edit Teams: smoother, less blocky card layout */
.tb-dashboard .tb-team-settings {
    display: grid !important;
    gap: 14px !important;
    padding: 18px !important;
    background: linear-gradient(180deg, #fbf9fd 0%, #ffffff 100%) !important;
}

.tb-dashboard .tb-team-row {
    display: grid !important;
    grid-template-columns: minmax(260px, 1.5fr) minmax(130px, 0.65fr) 110px 100px !important;
    gap: 18px !important;
    align-items: end !important;
    padding: 18px 20px !important;
    margin: 0 !important;
    border: 1px solid rgba(75,36,122,.16) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 10px 26px rgba(42,18,73,.06) !important;
}

.tb-dashboard .tb-team-row:hover {
    box-shadow: 0 14px 34px rgba(42,18,73,.10) !important;
    transform: translateY(-1px);
    transition: box-shadow .18s ease, transform .18s ease;
}

.tb-dashboard .tb-team-row label {
    display: grid !important;
    gap: 7px !important;
    margin: 0 !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.tb-dashboard .tb-team-row input[type="text"],
.tb-dashboard .tb-team-row select {
    width: 100% !important;
    min-height: 46px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 14px !important;
    background: #fff !important;
    padding: 10px 13px !important;
    box-sizing: border-box !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
}

.tb-dashboard .tb-team-row input[type="text"]:focus,
.tb-dashboard .tb-team-row select:focus {
    outline: none !important;
    border-color: #4b247a !important;
    box-shadow: 0 0 0 3px rgba(75,36,122,.12) !important;
}

.tb-dashboard .tb-team-row .tb-check {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 46px !important;
    gap: 6px !important;
    white-space: nowrap !important;
    text-align: center !important;
    font-weight: 800 !important;
}

.tb-dashboard .tb-team-row .tb-check input[type="checkbox"] {
    margin: 0 !important;
}

.tb-dashboard .tb-team-row .tb-danger {
    color: #b42318 !important;
}

.tb-dashboard .tb-team-row.tb-new-team {
    background: #fcfaff !important;
    border-style: dashed !important;
    border-color: rgba(75,36,122,.26) !important;
}

.tb-dashboard .tb-team-settings > button[type="submit"] {
    justify-self: start !important;
    width: 160px !important;
    margin-top: 4px !important;
    border-radius: 12px !important;
}

/* 3) Add/Edit Accounts: centre Send Email text under checkbox */
.tb-dashboard .tb-grid-form label.tb-check {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
    text-align: center !important;
    min-height: 58px !important;
    white-space: nowrap !important;
}

.tb-dashboard .tb-grid-form label.tb-check input[type="checkbox"] {
    margin: 0 auto !important;
}

/* Keep account create button on its own row too */
.tb-dashboard .tb-grid-form > button[type="submit"] {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
}

/* Responsive */
@media (max-width: 1000px) {
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr 130px 110px 100px !important;
    }
}

@media (max-width: 800px) {
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 560px) {
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr !important;
    }

    .tb-dashboard details.tb-accordion form.tb-grid-form > button[type="submit"],
    .tb-dashboard .tb-team-settings > button[type="submit"] {
        width: 100% !important;
        justify-self: stretch !important;
    }
}



/* v3.0.8 REAL UI FIX - targets current compact rebuild markup */

/* Add Athlete and Add/Edit Accounts forms use .tb-grid in this build */
.tb-dashboard .tb-accordion > form.tb-grid,
.tb-dashboard .tb-accordion form.tb-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(130px, 1fr)) !important;
    gap: 12px !important;
    align-items: end !important;
    padding: 14px !important;
}

.tb-dashboard .tb-accordion form.tb-grid > input,
.tb-dashboard .tb-accordion form.tb-grid > select {
    min-height: 48px !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
}

/* Create Athlete / Create User button below the field row */
.tb-dashboard .tb-accordion form.tb-grid > button,
.tb-dashboard .tb-accordion form.tb-grid > .ctb-create-athlete-btn,
.tb-dashboard .tb-accordion form.tb-grid > .ctb-create-user-btn {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    justify-self: start !important;
    width: 240px !important;
    min-height: 46px !important;
    margin-top: 4px !important;
}

/* Make the file input less cramped */
.tb-dashboard .tb-accordion form.tb-grid input[type="file"] {
    min-height: 48px !important;
    padding: 10px !important;
}

/* Add/Edit Teams actual compact markup */
.tb-dashboard .tb-team-settings {
    display: grid !important;
    gap: 14px !important;
    padding: 16px !important;
    background: linear-gradient(180deg, #fbf9fd 0%, #fff 100%) !important;
}

.tb-dashboard .tb-team-row {
    display: grid !important;
    grid-template-columns: minmax(260px, 1.6fr) minmax(130px, .55fr) minmax(120px, .45fr) minmax(100px, .4fr) !important;
    gap: 16px !important;
    align-items: center !important;
    padding: 18px 20px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    border: 1px solid rgba(75,36,122,.16) !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(42,18,73,.07) !important;
}

/* The compact build puts text and inputs directly inside labels. Make them feel like cards. */
.tb-dashboard .tb-team-row label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
    white-space: nowrap !important;
}

.tb-dashboard .tb-team-row input[type="text"] {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 12px !important;
    box-sizing: border-box !important;
}

.tb-dashboard .tb-team-row select {
    width: 86px !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 10px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.tb-dashboard .tb-team-row .tb-check,
.tb-dashboard .tb-team-row label.tb-check {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    text-align: center !important;
    min-height: 48px !important;
    white-space: nowrap !important;
}

.tb-dashboard .tb-team-row .tb-check input[type="checkbox"] {
    margin: 0 !important;
}

.tb-dashboard .tb-team-row .tb-danger {
    color: #b42318 !important;
}

.tb-dashboard .tb-new-team,
.tb-dashboard .tb-team-row.tb-new-team {
    border-style: dashed !important;
    background: #fcfaff !important;
}

.tb-dashboard .tb-team-settings > button,
.tb-dashboard .tb-team-settings > .ctb-save-teams-btn {
    justify-self: start !important;
    width: 160px !important;
    min-height: 42px !important;
    margin-top: 2px !important;
}

/* Send Email: centre the text under the checkbox in actual compact grid */
.tb-dashboard .tb-accordion form.tb-grid > label.tb-check {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 6px !important;
    min-height: 58px !important;
    white-space: nowrap !important;
}

.tb-dashboard .tb-accordion form.tb-grid > label.tb-check input[type="checkbox"] {
    margin: 0 auto !important;
}

@media (max-width: 1000px) {
    .tb-dashboard .tb-accordion form.tb-grid {
        grid-template-columns: repeat(3, minmax(140px, 1fr)) !important;
    }
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr 120px 110px 90px !important;
    }
}

@media (max-width: 750px) {
    .tb-dashboard .tb-accordion form.tb-grid,
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 520px) {
    .tb-dashboard .tb-accordion form.tb-grid,
    .tb-dashboard .tb-team-row {
        grid-template-columns: 1fr !important;
    }
    .tb-dashboard .tb-accordion form.tb-grid > button,
    .tb-dashboard .tb-team-settings > button {
        width: 100% !important;
        justify-self: stretch !important;
    }
}



/* v3.0.9 structural UI fix — styles target the actual rendered HTML */

/* Remove weird browser/theme focus outline on open accordion headers */
.ctb-section,
.ctb-section summary {
    outline: none !important;
}

.ctb-section summary {
    padding: 15px 18px !important;
    font-weight: 900 !important;
    color: #4b247a !important;
    background: #f8f6fb !important;
    border-bottom: 1px solid #e4d8ef !important;
}

/* Shared form structure */
.ctb-clean-form {
    padding: 14px !important;
}

.ctb-form-fields {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(130px, 1fr)) !important;
    gap: 12px !important;
    align-items: end !important;
}

.ctb-form-fields input,
.ctb-form-fields select {
    width: 100% !important;
    min-height: 48px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.ctb-form-actions {
    display: flex !important;
    justify-content: flex-start !important;
    margin-top: 14px !important;
}

.ctb-form-actions button {
    width: 240px !important;
    min-height: 46px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #4b247a !important;
    color: #fff !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

/* Add/Edit Teams — smoother cards */
.ctb-teams-form {
    padding: 16px !important;
}

.ctb-team-list {
    display: grid !important;
    gap: 14px !important;
}

.ctb-team-card {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.5fr) 120px 110px 100px !important;
    gap: 16px !important;
    align-items: end !important;
    padding: 18px 20px !important;
    background: #fff !important;
    border: 1px solid rgba(75,36,122,.16) !important;
    border-radius: 22px !important;
    box-shadow: 0 10px 26px rgba(42,18,73,.07) !important;
}

.ctb-team-card:hover {
    box-shadow: 0 14px 34px rgba(42,18,73,.10) !important;
}

.ctb-new-team-card {
    background: #fcfaff !important;
    border-style: dashed !important;
}

.ctb-field {
    display: grid !important;
    gap: 7px !important;
    margin: 0 !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
}

.ctb-field span {
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #6b6178 !important;
}

.ctb-field input,
.ctb-field select {
    width: 100% !important;
    min-height: 46px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 14px !important;
    padding: 10px 12px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.ctb-check-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 46px !important;
    margin: 0 !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
    text-align: center !important;
}

.ctb-check-card input {
    margin: 0 !important;
}

.ctb-delete-card {
    color: #b42318 !important;
}

/* Accounts */
.ctb-account-fields {
    grid-template-columns: repeat(5, minmax(140px, 1fr)) !important;
}

.ctb-send-email {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 58px !important;
    margin: 0 !important;
    text-align: center !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
}

.ctb-send-email input {
    margin: 0 auto !important;
    width: auto !important;
    min-height: auto !important;
}

/* Responsive */
@media (max-width: 1000px) {
    .ctb-form-fields {
        grid-template-columns: repeat(3, minmax(140px, 1fr)) !important;
    }
    .ctb-team-card {
        grid-template-columns: 1fr 120px 110px 100px !important;
    }
}

@media (max-width: 780px) {
    .ctb-form-fields,
    .ctb-account-fields,
    .ctb-team-card {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 560px) {
    .ctb-form-fields,
    .ctb-account-fields,
    .ctb-team-card {
        grid-template-columns: 1fr !important;
    }
    .ctb-form-actions button {
        width: 100% !important;
    }
}



/* v3.1.0 clean UI rebuild for dashboard admin panels */
.tb-dashboard .ctb-card{border:1px solid #e4d8ef!important;border-radius:20px!important;background:#fff!important;margin:0 0 16px!important;overflow:hidden!important;box-shadow:0 10px 28px rgba(42,18,73,.045)!important}
.tb-dashboard .ctb-card-title{display:block!important;padding:16px 18px!important;background:#f8f6fb!important;color:#4b247a!important;font-weight:900!important;border-bottom:1px solid #e4d8ef!important;cursor:pointer!important;outline:none!important}
.tb-dashboard .ctb-form,.tb-dashboard .ctb-teams-form{padding:16px!important}
.tb-dashboard .ctb-form-grid{display:grid!important;gap:12px!important;align-items:end!important}
.tb-dashboard .ctb-athlete-grid{grid-template-columns:repeat(6,minmax(130px,1fr))!important}
.tb-dashboard .ctb-account-grid{grid-template-columns:repeat(5,minmax(140px,1fr))!important}
.tb-dashboard .ctb-form-grid>input,.tb-dashboard .ctb-form-grid>select,.tb-dashboard .ctb-file-field,.tb-dashboard .ctb-send-email-box{min-height:50px!important}
.tb-dashboard .ctb-form-grid input:not([type="checkbox"]),.tb-dashboard .ctb-form-grid select,.tb-dashboard .ctb-file-field{width:100%!important;border:1px solid #d8cbe6!important;border-radius:13px!important;background:#fff!important;padding:10px 12px!important;box-sizing:border-box!important;color:#3d3744!important}
.tb-dashboard .ctb-file-field{display:flex!important;align-items:center!important;gap:10px!important;overflow:hidden!important}
.tb-dashboard .ctb-file-field span{display:none!important}
.tb-dashboard .ctb-file-field input[type="file"]{width:100%!important;border:0!important;padding:0!important}
.tb-dashboard .ctb-actions-row{display:flex!important;justify-content:flex-start!important;margin-top:14px!important}
.tb-dashboard .ctb-primary-button{width:240px!important;min-height:46px!important;border:0!important;border-radius:12px!important;background:#4b247a!important;color:#fff!important;font-weight:900!important;cursor:pointer!important;box-shadow:none!important}
.tb-dashboard .ctb-team-list{display:grid!important;gap:14px!important}
.tb-dashboard .ctb-team-card{display:grid!important;grid-template-columns:minmax(280px,1.5fr) 120px 110px 100px!important;gap:16px!important;align-items:end!important;padding:18px 20px!important;border:1px solid rgba(75,36,122,.16)!important;border-radius:22px!important;background:#fff!important;box-shadow:0 10px 26px rgba(42,18,73,.07)!important}
.tb-dashboard .ctb-team-card:hover{box-shadow:0 14px 34px rgba(42,18,73,.10)!important}
.tb-dashboard .ctb-new-team-card{background:#fcfaff!important;border-style:dashed!important}
.tb-dashboard .ctb-input-group{display:grid!important;gap:7px!important;margin:0!important;font-weight:800!important;color:#2c1648!important}
.tb-dashboard .ctb-input-group span{font-size:12px!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:#6b6178!important}
.tb-dashboard .ctb-input-group input,.tb-dashboard .ctb-input-group select{width:100%!important;min-height:46px!important;border:1px solid #d8cbe6!important;border-radius:14px!important;padding:10px 12px!important;background:#fff!important;box-sizing:border-box!important}
.tb-dashboard .ctb-toggle-card,.tb-dashboard .ctb-send-email-box{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:50px!important;margin:0!important;text-align:center!important;font-weight:800!important;color:#2c1648!important;white-space:nowrap!important}
.tb-dashboard .ctb-toggle-card input,.tb-dashboard .ctb-send-email-box input{margin:0 auto!important}
.tb-dashboard .ctb-delete-toggle{color:#b42318!important}
.tb-dashboard .ctb-save-teams-button{width:160px!important}
.tb-dashboard .ctb-send-email-box span{display:block!important;text-align:center!important}
.tb-dashboard .ctb-users-table{margin:16px!important;width:calc(100% - 32px)!important}
@media(max-width:1050px){.tb-dashboard .ctb-athlete-grid{grid-template-columns:repeat(3,minmax(140px,1fr))!important}.tb-dashboard .ctb-account-grid{grid-template-columns:repeat(3,minmax(140px,1fr))!important}.tb-dashboard .ctb-team-card{grid-template-columns:1fr 120px 110px 100px!important}}
@media(max-width:800px){.tb-dashboard .ctb-athlete-grid,.tb-dashboard .ctb-account-grid,.tb-dashboard .ctb-team-card{grid-template-columns:1fr 1fr!important}}
@media(max-width:560px){.tb-dashboard .ctb-athlete-grid,.tb-dashboard .ctb-account-grid,.tb-dashboard .ctb-team-card{grid-template-columns:1fr!important}.tb-dashboard .ctb-primary-button{width:100%!important}}



/* v3.1.1 Dashboard layout fix */

/* Stop the dashboard from stretching edge-to-edge under the site header */
.tb-dashboard {
    max-width: 1180px !important;
    margin: 24px auto 48px !important;
    padding: 0 18px !important;
    box-sizing: border-box !important;
}

/* Session/logout bar should live inside the dashboard width */
.tb-session,
.tb-session-bar {
    max-width: 1180px !important;
    margin: 0 auto 14px !important;
    padding: 10px 14px !important;
    box-sizing: border-box !important;
}

/* Cleaner accordion cards */
.tb-dashboard .tb-acc,
.tb-dashboard .ctb-card {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    background: #fff !important;
    margin: 0 0 16px !important;
    overflow: hidden !important;
    box-shadow: 0 8px 24px rgba(42,18,73,.045) !important;
}

.tb-dashboard .tb-acc > summary,
.tb-dashboard .ctb-card-title {
    padding: 15px 18px !important;
    background: #f8f6fb !important;
    color: #4b247a !important;
    font-weight: 900 !important;
    border-bottom: 1px solid #e4d8ef !important;
    outline: none !important;
}

/* Add Athlete panel: compact 4-column first row, controls below */
.tb-dashboard .ctb-add-athlete-form,
.tb-dashboard .ctb-form {
    padding: 16px !important;
}

.tb-dashboard .ctb-athlete-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
    gap: 12px !important;
    align-items: end !important;
}

.tb-dashboard .ctb-athlete-grid input,
.tb-dashboard .ctb-athlete-grid select,
.tb-dashboard .ctb-athlete-grid .ctb-file-field {
    width: 100% !important;
    min-height: 46px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 10px 12px !important;
    box-sizing: border-box !important;
    color: #3d3744 !important;
}

.tb-dashboard .ctb-athlete-grid .ctb-file-field {
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

.tb-dashboard .ctb-athlete-grid .ctb-file-field span {
    display: none !important;
}

.tb-dashboard .ctb-athlete-grid input[type="file"] {
    border: 0 !important;
    padding: 0 !important;
    min-height: auto !important;
}

.tb-dashboard .ctb-actions-row {
    margin-top: 14px !important;
    display: flex !important;
    justify-content: flex-start !important;
}

.tb-dashboard .ctb-primary-button,
.tb-dashboard .ctb-actions-row button {
    width: 220px !important;
    min-height: 44px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #4b247a !important;
    color: #fff !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

/* Team cards: keep content compact and visually grouped */
.tb-dashboard .ctb-teams-form {
    padding: 16px !important;
}

.tb-dashboard .ctb-team-list {
    display: grid !important;
    gap: 12px !important;
}

.tb-dashboard .ctb-team-card {
    display: grid !important;
    grid-template-columns: minmax(320px, 1fr) 120px 110px 100px !important;
    gap: 16px !important;
    align-items: end !important;
    padding: 16px 18px !important;
    background: #fff !important;
    border: 1px solid rgba(75,36,122,.16) !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 20px rgba(42,18,73,.055) !important;
}

.tb-dashboard .ctb-new-team-card {
    background: #fcfaff !important;
    border-style: dashed !important;
}

.tb-dashboard .ctb-input-group {
    display: grid !important;
    gap: 7px !important;
    margin: 0 !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
}

.tb-dashboard .ctb-input-group span {
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #6b6178 !important;
}

.tb-dashboard .ctb-input-group input,
.tb-dashboard .ctb-input-group select {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 9px 12px !important;
    box-sizing: border-box !important;
}

.tb-dashboard .ctb-toggle-card,
.tb-dashboard .ctb-send-email-box {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 44px !important;
    margin: 0 !important;
    text-align: center !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

.tb-dashboard .ctb-toggle-card input,
.tb-dashboard .ctb-send-email-box input {
    margin: 0 auto !important;
}

.tb-dashboard .ctb-delete-toggle {
    color: #b42318 !important;
}

.tb-dashboard .ctb-save-teams-button {
    width: 150px !important;
}

/* Account form */
.tb-dashboard .ctb-account-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(160px, 1fr)) 120px !important;
    gap: 12px !important;
    align-items: end !important;
}

.tb-dashboard .ctb-account-grid input,
.tb-dashboard .ctb-account-grid select {
    min-height: 46px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 10px 12px !important;
    box-sizing: border-box !important;
}

.tb-dashboard .ctb-send-email-box span {
    display: block !important;
    text-align: center !important;
}

/* Responsive */
@media (max-width: 1050px) {
    .tb-dashboard .ctb-athlete-grid,
    .tb-dashboard .ctb-account-grid {
        grid-template-columns: repeat(3, minmax(150px, 1fr)) !important;
    }

    .tb-dashboard .ctb-team-card {
        grid-template-columns: 1fr 120px 110px 100px !important;
    }
}

@media (max-width: 780px) {
    .tb-dashboard {
        padding: 0 12px !important;
    }

    .tb-dashboard .ctb-athlete-grid,
    .tb-dashboard .ctb-account-grid,
    .tb-dashboard .ctb-team-card {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 540px) {
    .tb-dashboard .ctb-athlete-grid,
    .tb-dashboard .ctb-account-grid,
    .tb-dashboard .ctb-team-card {
        grid-template-columns: 1fr !important;
    }

    .tb-dashboard .ctb-primary-button,
    .tb-dashboard .ctb-actions-row button {
        width: 100% !important;
    }
}



/* v3.1.2 restore dashboard visibility and reduce setup-panel dominance */
.tb-dashboard {
    max-width: 1180px !important;
    margin: 18px auto 48px !important;
    padding: 0 16px !important;
}

/* Keep admin setup panels compact when closed */
.tb-dashboard details.tb-acc:not([open]),
.tb-dashboard details.ctb-card:not([open]) {
    margin-bottom: 10px !important;
}

.tb-dashboard details.tb-acc:not([open]) > summary,
.tb-dashboard details.ctb-card:not([open]) > summary {
    border-bottom: 0 !important;
}

/* Make the setup area less tall and let athletes show sooner */
.tb-dashboard .ctb-card-title,
.tb-dashboard .tb-acc > summary {
    min-height: auto !important;
    padding: 13px 16px !important;
}

/* Force dashboard tabs/stats/athlete panels to display correctly */
.tb-dashboard .tb-stats,
.tb-dashboard .tb-dashboard-tabs,
.tb-dashboard .tb-toolbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
}

.tb-dashboard [data-tb-panel="all"].is-active,
.tb-dashboard .tb-panel.is-active,
.tb-dashboard section.is-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.tb-dashboard [data-tb-panel="all"] .tb-athlete-grid,
.tb-dashboard .tb-athlete-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    gap: 16px !important;
    margin-top: 12px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.tb-dashboard .tb-athlete-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Hide panels only when the hidden attribute is present */
.tb-dashboard [data-tb-panel][hidden] {
    display: none !important;
}

/* If a panel is not hidden, let it render */
.tb-dashboard [data-tb-panel]:not([hidden]) {
    display: block !important;
}

/* Keep Add Athlete form nice when opened */
.tb-dashboard .ctb-athlete-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
}

/* Teams still styled but more compact */
.tb-dashboard .ctb-team-card {
    grid-template-columns: minmax(260px, 1fr) 120px 100px 90px !important;
    padding: 14px 16px !important;
}

/* Fix Evaluation dropdown width/readability */
.tb-dashboard select[name="rostered"] {
    min-width: 0 !important;
}

@media (max-width: 800px) {
    .tb-dashboard .ctb-athlete-grid,
    .tb-dashboard .ctb-team-card {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 560px) {
    .tb-dashboard .ctb-athlete-grid,
    .tb-dashboard .ctb-team-card {
        grid-template-columns: 1fr !important;
    }
}



/* v3.1.3 critical card/grid restore */
.tb-dashboard [data-tb-panel="all"]:not([hidden]) { display:block!important; visibility:visible!important; opacity:1!important; }
.tb-dashboard .tb-card-grid { display:grid!important; grid-template-columns:repeat(auto-fill,minmax(180px,1fr))!important; gap:16px!important; margin-top:16px!important; min-height:80px!important; }
.tb-dashboard .tb-card { display:block!important; min-height:245px!important; background:#fff!important; border:1px solid #e4d8ef!important; border-radius:18px!important; padding:14px!important; text-align:center!important; box-shadow:0 8px 22px rgba(42,18,73,.06)!important; }
.tb-dashboard .tb-card-error { background:#fff7f7!important; color:#9f1d1d!important; }
.tb-dashboard .tb-zero-score { background:#f1f1f1!important; }
.tb-dashboard .tb-card-photo { width:96px!important; height:96px!important; margin:0 auto 10px!important; overflow:hidden!important; border-radius:16px!important; background:#f2edf7!important; display:flex!important; align-items:center!important; justify-content:center!important; }
.tb-dashboard .tb-card-photo img { width:100%!important; height:100%!important; object-fit:cover!important; display:block!important; }
.tb-dashboard .tb-card-actions { display:flex!important; gap:8px!important; justify-content:center!important; flex-wrap:wrap!important; margin-top:10px!important; }
.tb-dashboard .tb-card-actions a { background:#4b247a!important; color:#fff!important; border-radius:10px!important; padding:7px 10px!important; text-decoration:none!important; font-weight:800!important; font-size:12px!important; }



/* v3.1.4 restore rostered builder */
.tb-dashboard [data-tb-panel="rostered"]:not([hidden]) { display:block!important; visibility:visible!important; opacity:1!important; }
.tb-dashboard .tb-team-switcher { display:flex!important; gap:10px!important; flex-wrap:wrap!important; margin:0 0 16px!important; }
.tb-dashboard .tb-team-switch { border:1px solid #d9c9e9!important; background:#f7f1fb!important; color:#351957!important; border-radius:999px!important; padding:10px 16px!important; font-weight:900!important; cursor:pointer!important; }
.tb-dashboard .tb-team-switch.is-active { background:#4b247a!important; color:#fff!important; border-color:#4b247a!important; }
.tb-dashboard .tb-team-panel { display:none!important; }
.tb-dashboard .tb-team-panel.is-active { display:block!important; }
.tb-dashboard .tb-builder { display:grid!important; grid-template-columns:minmax(230px,300px) 1fr!important; gap:18px!important; align-items:start!important; }
.tb-dashboard .tb-pool,.tb-dashboard .tb-groups { background:#f8f6fb!important; border:1px solid #e4d8ef!important; border-radius:20px!important; padding:14px!important; }
.tb-dashboard .tb-groups { display:grid!important; gap:14px!important; }
.tb-dashboard .tb-group { background:#fff!important; border:1px solid #e4d8ef!important; border-radius:18px!important; padding:12px!important; }
.tb-dashboard .tb-group-head { display:flex!important; justify-content:space-between!important; gap:10px!important; align-items:center!important; margin-bottom:10px!important; color:#2c1648!important; }
.tb-dashboard .tb-group-head div { display:grid!important; gap:5px!important; justify-items:end!important; }
.tb-dashboard .tb-group-head span { font-size:11px!important; font-weight:900!important; color:#4b247a!important; background:#f4eef9!important; border-radius:999px!important; padding:4px 9px!important; }
.tb-dashboard .tb-slots { display:grid!important; grid-template-columns:repeat(4,minmax(120px,1fr))!important; gap:10px!important; }
.tb-dashboard .tb-drop-slot { min-height:92px!important; background:#fafafa!important; border:2px dashed #d9d3df!important; border-radius:16px!important; padding:9px!important; }
.tb-dashboard .tb-drop-slot.is-over { border-color:#4b247a!important; background:#f4eef9!important; }
.tb-dashboard .tb-drop-slot small { display:block!important; font-size:10px!important; text-transform:uppercase!important; letter-spacing:.12em!important; font-weight:900!important; color:#6b6178!important; margin-bottom:7px!important; }
.tb-dashboard .tb-drag-card { cursor:grab!important; user-select:none!important; border-radius:14px!important; padding:10px 11px!important; border:1px solid #ddd!important; background:#fff!important; box-shadow:0 6px 16px rgba(0,0,0,.08)!important; display:grid!important; gap:2px!important; margin:0 0 8px!important; }
.tb-dashboard .tb-drag-card.is-dragging { opacity:.45!important; }
.tb-dashboard .tb-drag-card strong { font-size:14px!important; color:#21152d!important; }
.tb-dashboard .tb-drag-card span { font-size:12px!important; color:#5e5369!important; }
.tb-dashboard .tb-drag-card em { font-size:11px!important; font-style:normal!important; font-weight:900!important; color:#4b247a!important; }
.tb-dashboard .tb-pos-flyer { border-left:6px solid #6f35b1!important; }
.tb-dashboard .tb-pos-backspot { border-left:6px solid #fff!important; box-shadow:inset 0 0 0 1px #d8d8d8,0 6px 16px rgba(0,0,0,.08)!important; }
.tb-dashboard .tb-pos-base { border-left:6px solid #2f80ed!important; }
.tb-dashboard .tb-pos-tumbler { border-left:6px solid #8e8e8e!important; }
.tb-dashboard .tb-tumbler-drop { display:grid!important; grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important; gap:10px!important; }
@media(max-width:900px){.tb-dashboard .tb-builder{grid-template-columns:1fr!important}.tb-dashboard .tb-slots{grid-template-columns:repeat(2,minmax(120px,1fr))!important}}

/* v3.1.5 edit/score AJAX toast */
.tb-toast {
    position: fixed !important;
    right: 20px !important;
    bottom: 20px !important;
    z-index: 9999999 !important;
    background: #2c1648 !important;
    color: #fff !important;
    border-radius: 14px !important;
    padding: 12px 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.22) !important;
}
.tb-toast.error { background: #b42318 !important; }

/* v3.1.6 clean JS AJAX fix */
.tb-toast {
    position: fixed !important;
    right: 20px !important;
    bottom: 20px !important;
    z-index: 9999999 !important;
    background: #2c1648 !important;
    color: #fff !important;
    border-radius: 14px !important;
    padding: 12px 16px !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.22) !important;
}
.tb-toast.error { background: #b42318 !important; }



/* v3.1.8 Edit/Score popup layout polish */
.tb-modal {
    align-items: flex-start !important;
    padding-top: 42px !important;
}

.tb-modal .tb-modal-panel {
    width: min(860px, 94vw) !important;
    max-width: 860px !important;
    max-height: 86vh !important;
    padding: 0 !important;
    border-radius: 22px !important;
    overflow: auto !important;
    background: #fff !important;
}

.tb-modal .tb-modal-panel > button,
.tb-modal [data-tb-close] {
    position: sticky !important;
    top: 10px !important;
    float: right !important;
    z-index: 5 !important;
    width: 34px !important;
    height: 34px !important;
    margin: 10px 10px -44px 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f4eef9 !important;
    color: #4b247a !important;
    font-size: 22px !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

.ctb-popup-athlete-form {
    padding: 24px !important;
    display: grid !important;
    gap: 18px !important;
}

.ctb-popup-photo {
    width: 150px !important;
    height: 150px !important;
    margin: 0 auto 4px !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    background: #f4eef9 !important;
    box-shadow: 0 10px 28px rgba(42,18,73,.14) !important;
}

.ctb-popup-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

.ctb-popup-info-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: end !important;
}

.ctb-popup-info-grid label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
    font-size: 13px !important;
}

.ctb-popup-info-grid input,
.ctb-popup-info-grid select {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 11px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    color: #333 !important;
    font-size: 14px !important;
}

.ctb-popup-athlete-form h3 {
    margin: 8px 0 0 !important;
    color: #2c1648 !important;
    font-size: 20px !important;
}

.ctb-popup-athlete-form .tb-score-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
}

.ctb-popup-athlete-form .tb-checklist {
    border: 1px solid #e4d8ef !important;
    border-radius: 16px !important;
    padding: 14px !important;
    background: #fff !important;
}

.ctb-popup-athlete-form .tb-checklist legend {
    color: #2c1648 !important;
    font-weight: 800 !important;
    padding: 0 6px !important;
}

.ctb-popup-athlete-form .tb-checklist label {
    display: block !important;
    margin: 8px 0 !important;
    color: #3d3744 !important;
}

.ctb-popup-athlete-form .tb-score-grid > label {
    display: grid !important;
    gap: 6px !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
}

.ctb-popup-athlete-form .tb-score-grid select {
    width: 100% !important;
    min-height: 42px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 10px !important;
    padding: 8px 10px !important;
}

.ctb-popup-athlete-form > label {
    display: grid !important;
    gap: 6px !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
}

.ctb-popup-athlete-form textarea {
    width: 100% !important;
    min-height: 96px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 14px !important;
    padding: 12px !important;
    box-sizing: border-box !important;
    resize: vertical !important;
}

.ctb-popup-athlete-form button[type="submit"] {
    width: 100% !important;
    min-height: 46px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #4b247a !important;
    color: #fff !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

@media (max-width: 760px) {
    .ctb-popup-info-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .ctb-popup-athlete-form .tb-score-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 520px) {
    .tb-modal {
        padding: 16px 10px !important;
    }

    .ctb-popup-athlete-form {
        padding: 18px !important;
    }

    .ctb-popup-info-grid {
        grid-template-columns: 1fr !important;
    }

    .ctb-popup-photo {
        width: 120px !important;
        height: 120px !important;
    }
}



/* v3.2.0 refreshed modal close button */
.tb-modal .tb-modal-panel > button,
.tb-modal [data-tb-close]{
    position: sticky !important;
    top: 16px !important;
    float: right !important;
    z-index: 50 !important;

    width: 38px !important;
    height: 38px !important;
    margin: 12px 14px -50px 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 1px solid #e6d8f3 !important;
    border-radius: 999px !important;

    background: #f7f1fc !important;
    color: #5a2f8a !important;

    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;

    cursor: pointer !important;

    box-shadow: 0 8px 24px rgba(54, 27, 89, 0.12) !important;
    transition: all .18s ease !important;
}

.tb-modal .tb-modal-panel > button:hover,
.tb-modal [data-tb-close]:hover{
    background: #ede1f8 !important;
    color: #3f176a !important;
    transform: scale(1.06) !important;
    box-shadow: 0 12px 28px rgba(54, 27, 89, 0.18) !important;
}

.tb-modal .tb-modal-panel > button:focus,
.tb-modal [data-tb-close]:focus{
    outline: none !important;
    box-shadow:
        0 0 0 3px rgba(124, 58, 237, 0.18),
        0 12px 28px rgba(54, 27, 89, 0.18) !important;
}



/* v3.2.5 Bulk CSV Import */
.ctb-bulk-import-wrap{padding:16px!important}
.ctb-import-help{margin:0 0 14px!important;color:#3d3744!important}
.ctb-secondary-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;padding:0 14px!important;border-radius:12px!important;border:1px solid #d8cbe6!important;background:#f7f1fb!important;color:#4b247a!important;font-weight:900!important;text-decoration:none!important}
.ctb-bulk-import-form{display:grid!important;grid-template-columns:minmax(240px,1fr) auto auto!important;gap:12px!important;align-items:end!important}
.ctb-file-upload-box{display:grid!important;gap:6px!important;color:#2c1648!important;font-weight:800!important}
.ctb-file-upload-box input{width:100%!important;min-height:44px!important;border:1px solid #d8cbe6!important;border-radius:12px!important;padding:9px 12px!important;background:#fff!important;box-sizing:border-box!important}
.ctb-check-inline{display:flex!important;align-items:center!important;gap:8px!important;min-height:44px!important;color:#2c1648!important;font-weight:800!important;white-space:nowrap!important}
.ctb-import-notice{border-radius:12px!important;padding:10px 12px!important;margin:0 0 14px!important;font-weight:800!important}
.ctb-import-success{background:#effaf1!important;color:#126b2f!important;border:1px solid #cfeeda!important}
.ctb-import-error{background:#fff1f1!important;color:#9f1d1d!important;border:1px solid #ffd0d0!important}
@media(max-width:800px){.ctb-bulk-import-form{grid-template-columns:1fr!important}}



/* v3.2.7 Edit popup photo upload */
.ctb-popup-info-grid .ctb-edit-photo-upload,
.ctb-edit-photo-upload {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
    font-weight: 800 !important;
    color: #2c1648 !important;
    font-size: 13px !important;
}

.ctb-edit-photo-upload input[type="file"] {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 12px !important;
    padding: 9px 11px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.ctb-edit-photo-upload small {
    color: #6b6178 !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
}



/* v3.2.8 account creation feedback */
.ctb-account-notice {
    margin: 14px 16px 0 !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    font-weight: 800 !important;
}
.ctb-account-success {
    background: #effaf1 !important;
    color: #126b2f !important;
    border: 1px solid #cfeeda !important;
}
.ctb-account-error {
    background: #fff1f1 !important;
    color: #9f1d1d !important;
    border: 1px solid #ffd0d0 !important;
}



/* v3.2.9 password change/reset */
.ctb-password-form{padding:16px!important;display:grid!important;gap:12px!important;max-width:520px!important}
.ctb-password-form label{display:grid!important;gap:6px!important;color:#2c1648!important;font-weight:800!important}
.ctb-password-form input{width:100%!important;min-height:44px!important;border:1px solid #d8cbe6!important;border-radius:12px!important;padding:9px 12px!important;background:#fff!important;box-sizing:border-box!important}
.ctb-password-notice{margin:14px 16px 0!important;border-radius:12px!important;padding:10px 12px!important;font-weight:800!important}
.ctb-password-success{background:#effaf1!important;color:#126b2f!important;border:1px solid #cfeeda!important}
.ctb-password-error{background:#fff1f1!important;color:#9f1d1d!important;border:1px solid #ffd0d0!important}
.ctb-reset-box{max-width:520px!important;margin:40px auto!important}



/* v3.3.2 account delete + password set */
.ctb-user-actions {
    display: grid !important;
    gap: 8px !important;
    min-width: 260px !important;
}

.ctb-inline-password-form {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

.ctb-inline-password-form input[type="password"] {
    min-height: 36px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 10px !important;
    padding: 7px 9px !important;
    width: 140px !important;
}

.ctb-inline-password-form button {
    min-height: 36px !important;
    border: 0 !important;
    border-radius: 10px !important;
    padding: 0 10px !important;
    background: #4b247a !important;
    color: #fff !important;
    font-weight: 800 !important;
    cursor: pointer !important;
}

.ctb-account-notice {
    margin: 14px 16px 0 !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    font-weight: 800 !important;
}
.ctb-account-success {
    background: #effaf1 !important;
    color: #126b2f !important;
    border: 1px solid #cfeeda !important;
}
.ctb-account-error {
    background: #fff1f1 !important;
    color: #9f1d1d !important;
    border: 1px solid #ffd0d0 !important;
}



/* v3.3.6 app sidebar navigation */
.tb-dashboard .ctb-app-shell {
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: start !important;
    margin-top: 16px !important;
}

.tb-dashboard .ctb-app-sidebar {
    position: sticky !important;
    top: 18px !important;
    display: grid !important;
    gap: 8px !important;
    padding: 12px !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    background: #f8f6fb !important;
    box-shadow: 0 8px 24px rgba(42,18,73,.045) !important;
}

.tb-dashboard .ctb-app-sidebar button {
    width: 100% !important;
    min-height: 44px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    color: #4b247a !important;
    text-align: left !important;
    padding: 0 14px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

.tb-dashboard .ctb-app-sidebar button:hover {
    background: #eee4f6 !important;
}

.tb-dashboard .ctb-app-sidebar button.is-active {
    background: #4b247a !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(75,36,122,.18) !important;
}

.tb-dashboard .ctb-app-content {
    min-width: 0 !important;
}

.tb-dashboard .ctb-app-section {
    display: none !important;
}

.tb-dashboard .ctb-app-section.is-active {
    display: block !important;
}

.tb-dashboard .ctb-app-section-title {
    display: none !important;
}

.tb-dashboard[data-ctb-active-section="staff"] .ctb-app-section-title,
.tb-dashboard[data-ctb-active-section="teams"] .ctb-app-section-title {
    display: block !important;
    margin-bottom: 12px !important;
}

.tb-dashboard .ctb-app-section-title h2 {
    margin: 0 !important;
    color: #4b247a !important;
    font-size: 28px !important;
    font-weight: 900 !important;
}

/* keep existing cards full-width in the new app content area */
.tb-dashboard .ctb-app-content .tb-acc,
.tb-dashboard .ctb-app-content .ctb-card {
    max-width: 100% !important;
}

@media (max-width: 850px) {
    .tb-dashboard .ctb-app-shell {
        grid-template-columns: 1fr !important;
    }

    .tb-dashboard .ctb-app-sidebar {
        position: relative !important;
        top: auto !important;
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .tb-dashboard .ctb-app-sidebar button {
        text-align: center !important;
        padding: 0 8px !important;
    }
}



/* v3.3.8 profile sidebar section safe */
.tb-dashboard .ctb-profile-card {
    border: 1px solid #e4d8ef !important;
    border-radius: 22px !important;
    background: #fff !important;
    padding: 24px !important;
    display: grid !important;
    gap: 18px !important;
    max-width: 680px !important;
    box-shadow: 0 10px 28px rgba(42,18,73,.055) !important;
}

.tb-dashboard .ctb-profile-avatar {
    width: 76px !important;
    height: 76px !important;
    border-radius: 999px !important;
    background: #4b247a !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 34px !important;
    font-weight: 900 !important;
    box-shadow: 0 10px 22px rgba(75,36,122,.22) !important;
}

.tb-dashboard .ctb-profile-info h3 {
    margin: 0 0 4px !important;
    color: #2c1648 !important;
    font-size: 28px !important;
    font-weight: 900 !important;
}

.tb-dashboard .ctb-profile-info p {
    margin: 0 0 8px !important;
    color: #5f556b !important;
}

.tb-dashboard .ctb-profile-info span {
    display: inline-flex !important;
    border-radius: 999px !important;
    background: #f4eef9 !important;
    color: #4b247a !important;
    padding: 6px 12px !important;
    font-weight: 900 !important;
    font-size: 13px !important;
}

.tb-dashboard .ctb-profile-actions {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.tb-dashboard .ctb-profile-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0 16px !important;
    border-radius: 12px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.tb-dashboard .ctb-profile-button.primary {
    background: #4b247a !important;
    color: #fff !important;
}

.tb-dashboard .ctb-profile-button.light {
    background: #f4eef9 !important;
    color: #4b247a !important;
}



/* v3.3.9 hide legacy top signed-in bar */
.tb-dashboard > .tb-session {
    display: none !important;
}



/* v3.4.0 Teams builder refactor */
.ctb-teams-builder-module {
    margin-top: 18px !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 22px !important;
    background: #fff !important;
    padding: 18px !important;
    box-shadow: 0 10px 28px rgba(42,18,73,.055) !important;
}

.ctb-teams-builder-module > h3 {
    margin: 0 0 14px !important;
    color: #4b247a !important;
    font-size: 22px !important;
    font-weight: 900 !important;
}

.ctb-rostered-card-grid {
    margin-top: 16px !important;
}

.ctb-empty-state {
    grid-column: 1 / -1 !important;
    padding: 18px !important;
    border: 1px dashed #d8cbe6 !important;
    border-radius: 16px !important;
    color: #6b6178 !important;
    background: #faf7fd !important;
    font-weight: 800 !important;
}



/* v3.4.1 Teams UX upgrade */
.ctb-teams-builder-module {
    background: linear-gradient(180deg, #ffffff 0%, #fbf8ff 100%) !important;
}

.tb-dashboard .tb-team-switcher {
    padding: 14px !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    background: #f8f6fb !important;
    margin-bottom: 18px !important;
}

.ctb-team-switcher-title {
    width: 100% !important;
    margin-bottom: 10px !important;
    display: grid !important;
    gap: 2px !important;
}

.ctb-team-switcher-title strong {
    color: #2c1648 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
}

.ctb-team-switcher-title span {
    color: #6b6178 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.tb-dashboard .tb-team-switch {
    min-height: 42px !important;
    padding: 0 16px !important;
    border-radius: 999px !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}

.tb-dashboard .tb-team-switch.is-active {
    transform: translateY(-1px) !important;
}

.ctb-team-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin-bottom: 12px !important;
}

.ctb-team-header h2 {
    margin: 0 !important;
    color: #2c1648 !important;
    font-size: 26px !important;
    font-weight: 900 !important;
}

.ctb-team-stats {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(110px, 1fr)) !important;
    gap: 10px !important;
    margin: 12px 0 18px !important;
}

.ctb-team-stats div {
    border: 1px solid #e4d8ef !important;
    border-radius: 16px !important;
    background: #fff !important;
    padding: 12px !important;
    display: grid !important;
    gap: 2px !important;
    box-shadow: 0 6px 16px rgba(42,18,73,.045) !important;
}

.ctb-team-stats b {
    color: #4b247a !important;
    font-size: 22px !important;
    line-height: 1 !important;
}

.ctb-team-stats span {
    color: #6b6178 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    font-weight: 900 !important;
}

.tb-dashboard .tb-builder {
    grid-template-columns: minmax(260px, 320px) 1fr !important;
}

.tb-dashboard .tb-pool {
    position: sticky !important;
    top: 18px !important;
}

.tb-dashboard .tb-pool h3 {
    margin-top: 0 !important;
    color: #2c1648 !important;
    font-size: 18px !important;
}

.ctb-pool-helper {
    margin: -4px 0 12px !important;
    color: #6b6178 !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
}

.tb-dashboard .tb-group {
    border-radius: 22px !important;
    padding: 16px !important;
    box-shadow: 0 8px 22px rgba(42,18,73,.05) !important;
}

.tb-dashboard .tb-group-head {
    border-bottom: 1px solid #eee7f5 !important;
    padding-bottom: 10px !important;
}

.ctb-group-label {
    display: none !important;
}

.tb-dashboard .tb-drop-slot {
    background: #fbfbfc !important;
    border-color: #ded6e8 !important;
    transition: border-color .15s ease, background .15s ease, transform .15s ease !important;
}

.tb-dashboard .tb-drop-slot.is-over {
    transform: scale(1.015) !important;
}

.tb-dashboard .tb-drag-card {
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease !important;
}

.tb-dashboard .tb-drag-card:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.10) !important;
}

@media (max-width: 1000px) {
    .ctb-team-stats {
        grid-template-columns: repeat(2, minmax(110px, 1fr)) !important;
    }

    .tb-dashboard .tb-builder {
        grid-template-columns: 1fr !important;
    }

    .tb-dashboard .tb-pool {
        position: static !important;
    }
}

@media (max-width: 560px) {
    .ctb-team-stats {
        grid-template-columns: 1fr 1fr !important;
    }
}



/* v3.4.2 drag/drop polish */
body.ctb-is-dragging .tb-drop-slot {
    border-style: solid !important;
    border-width: 2px !important;
}

.tb-dashboard .tb-drag-card {
    cursor: grab !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    touch-action: manipulation !important;
}

.tb-dashboard .tb-drag-card:active {
    cursor: grabbing !important;
}

.tb-dashboard .tb-drag-card.ctb-dragging {
    opacity: .72 !important;
    transform: rotate(-1deg) scale(1.03) !important;
    box-shadow: 0 18px 36px rgba(0,0,0,.18) !important;
    z-index: 999 !important;
}

.tb-dashboard .tb-drag-card.ctb-touch-active {
    transform: scale(1.02) !important;
}

.tb-dashboard .tb-drop-slot {
    position: relative !important;
    min-height: 78px !important;
}

.tb-dashboard .tb-drop-slot::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: inherit !important;
    pointer-events: none !important;
    opacity: 0 !important;
    transition: opacity .18s ease !important;
    box-shadow: inset 0 0 0 2px rgba(75,36,122,.15) !important;
}

.tb-dashboard .tb-drop-slot.is-over {
    background: linear-gradient(180deg,#f6f1fb 0%,#efe5f9 100%) !important;
    border-color: #7d4bb3 !important;
    transform: scale(1.015) !important;
    box-shadow: 0 12px 28px rgba(75,36,122,.12) !important;
}

.tb-dashboard .tb-drop-slot.is-over::after {
    opacity: 1 !important;
}

.tb-dashboard .tb-drop-slot.ctb-drop-success {
    animation: ctbDropPulse .6s ease !important;
}

@keyframes ctbDropPulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(75,36,122,0);
    }
    40% {
        transform: scale(1.02);
        box-shadow: 0 0 0 10px rgba(75,36,122,.08);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(75,36,122,0);
    }
}

/* smoother pool scrolling */
.tb-dashboard .tb-pool {
    scroll-behavior: smooth !important;
}

/* mobile polish */
@media (max-width: 900px) {
    .tb-dashboard .tb-drag-card {
        min-height: 60px !important;
    }

    .tb-dashboard .tb-drop-slot {
        min-height: 88px !important;
    }
}



/* v3.4.3 Team balance analytics */
.ctb-balance-summary {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    margin: -4px 0 16px !important;
    padding: 12px 14px !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 16px !important;
    background: #fff !important;
}

.ctb-balance-summary strong {
    color: #2c1648 !important;
    font-weight: 900 !important;
    margin-right: 6px !important;
}

.ctb-balance-summary span {
    border-radius: 999px !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.ctb-balance-summary .good {
    background: #effaf1 !important;
    color: #126b2f !important;
}

.ctb-balance-summary .warn {
    background: #fff7e8 !important;
    color: #9a5b00 !important;
}

.ctb-balance-badge {
    border-radius: 999px !important;
    padding: 5px 9px !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

.tb-group[data-balance-status="balanced"] .ctb-balance-badge {
    background: #effaf1 !important;
    color: #126b2f !important;
}

.tb-group[data-balance-status="warning"] .ctb-balance-badge {
    background: #fff7e8 !important;
    color: #9a5b00 !important;
}

.tb-group[data-balance-status="empty"] .ctb-balance-badge {
    background: #f1f1f1 !important;
    color: #666 !important;
}

.tb-group[data-balance-status="balanced"] {
    border-color: #cfeeda !important;
}

.tb-group[data-balance-status="warning"] {
    border-color: #f4d39b !important;
}

.ctb-balance-panel {
    margin: 0 0 12px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    background: #faf7fd !important;
    border: 1px solid #eee4f6 !important;
}

.ctb-role-counts {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-bottom: 8px !important;
}

.ctb-role-counts span {
    display: inline-flex !important;
    gap: 5px !important;
    align-items: center !important;
    border-radius: 999px !important;
    background: #fff !important;
    border: 1px solid #e4d8ef !important;
    color: #4b247a !important;
    padding: 5px 9px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.ctb-balance-panel p {
    margin: 0 !important;
    color: #126b2f !important;
    font-weight: 800 !important;
    font-size: 13px !important;
}

.ctb-balance-panel ul {
    margin: 0 !important;
    padding-left: 18px !important;
    color: #7a4c00 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.ctb-balance-panel li {
    margin: 3px 0 !important;
}



/* v3.4.4 rubric enhancements */
.ctb-rubric-note {
    margin-top: 10px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    background: #faf7fd !important;
    border: 1px solid #eadff5 !important;
    color: #4b247a !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}



/* v3.4.6 Stunting rubric fields */
.ctb-stunt-rubric {
    border: 1px solid #e4d8ef !important;
    border-radius: 16px !important;
    padding: 14px !important;
    background: #fff !important;
    display: grid !important;
    gap: 12px !important;
}
.ctb-stunt-rubric legend {
    color: #2c1648 !important;
    font-weight: 900 !important;
    padding: 0 6px !important;
}
.ctb-stunt-rubric legend span {
    color: #6b6178 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}
.ctb-stunt-rubric label {
    display: grid !important;
    gap: 6px !important;
    color: #2c1648 !important;
    font-weight: 800 !important;
}
.ctb-stunt-rubric select {
    width: 100% !important;
    min-height: 42px !important;
    border: 1px solid #d8cbe6 !important;
    border-radius: 10px !important;
    padding: 8px 10px !important;
}



/* v3.4.8 Coachability sizing fix */
.ctb-athlete-modal select[name="coachability"] {
    min-height: 44px !important;
    height: 44px !important;
    max-height: 44px !important;
    padding: 8px 12px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
}

.ctb-athlete-modal label:has(select[name="coachability"]) {
    align-self: start !important;
}



/* v3.4.9 scoring display polish */
.ctb-group-score,
.tb-group-score {
    white-space: nowrap !important;
}


/* v3.5.5 actual rendered No athlete card styling */
.tb-card.tb-card-no {
    background: #fff5f5 !important;
    border-color: #f0caca !important;
    box-shadow: 0 8px 22px rgba(180, 60, 60, 0.07) !important;
    position: relative !important;
}

.tb-card.tb-card-no::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 22px !important;
    bottom: 22px !important;
    width: 5px !important;
    border-radius: 0 999px 999px 0 !important;
    background: #d86a6a !important;
}

.tb-card.tb-card-no h3 {
    color: #5c2323 !important;
}

.tb-card.tb-card-no strong {
    color: #8a2f2f !important;
}

.tb-drag-card.tb-athlete-no {
    background: #fff5f5 !important;
    border-color: #f1caca !important;
    box-shadow: 0 2px 8px rgba(180, 60, 60, 0.05) !important;
}



/* v3.5.6 Team Builder QoL Build 1 */
.ctb-team-qol-controls {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    margin: 12px 0 16px !important;
}

.ctb-team-qol-controls button {
    border: 0 !important;
    border-radius: 999px !important;
    background: #4b247a !important;
    color: #fff !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

.ctb-lock-athlete {
    position: absolute !important;
    top: 6px !important;
    right: 6px !important;
    width: 28px !important;
    height: 28px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f4eef9 !important;
    color: #4b247a !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    cursor: pointer !important;
    z-index: 2 !important;
}

.tb-drag-card { position: relative !important; }

.tb-drag-card.ctb-athlete-locked {
    cursor: not-allowed !important;
    background: #f8f4fc !important;
    border-color: #cdb8e3 !important;
}

.tb-drag-card.ctb-athlete-locked .ctb-lock-athlete {
    background: #4b247a !important;
    color: #fff !important;
}

@keyframes ctbLockShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-3px); }
    50% { transform: translateX(3px); }
    75% { transform: translateX(-2px); }
}

.tb-drag-card.ctb-lock-shake {
    animation: ctbLockShake .35s ease !important;
}

.ctb-unassigned-dock {
    margin: 0 0 16px !important;
    border: 1px solid #e4d8ef !important;
    border-radius: 18px !important;
    background: #fff !important;
    padding: 14px !important;
    box-shadow: 0 6px 18px rgba(42,18,73,.045) !important;
}

.ctb-unassigned-dock h3 {
    margin: 0 0 4px !important;
    color: #2c1648 !important;
    font-size: 17px !important;
    font-weight: 900 !important;
}

.ctb-unassigned-dock p {
    margin: 0 0 12px !important;
    color: #6b6178 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.ctb-unassigned-list {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.ctb-dock-card {
    max-width: 160px !important;
    min-width: 140px !important;
    opacity: .95 !important;
    cursor: default !important;
}

.ctb-dock-empty {
    display: inline-flex !important;
    border-radius: 999px !important;
    background: #effaf1 !important;
    color: #126b2f !important;
    padding: 7px 11px !important;
    font-weight: 900 !important;
    font-size: 13px !important;
}



/* v3.5.7 remove redundant unassigned dock */
.ctb-unassigned-dock,
[data-ctb-refresh-dock] {
    display: none !important;
}

/* keep team score tile compact */
.ctb-team-stats div b {
    white-space: nowrap !important;
}



/* v3.5.8 Group lock + score cleanup */
.ctb-lock-athlete {
    display: none !important;
}

.ctb-group-lock {
    margin-left: auto !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f4eef9 !important;
    color: #4b247a !important;
    min-height: 30px !important;
    padding: 0 11px !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    cursor: pointer !important;
}

.ctb-group-lock:hover {
    background: #e8daf4 !important;
}

.tb-group.ctb-group-locked {
    border-color: #b899d8 !important;
    background: linear-gradient(180deg, #ffffff 0%, #faf6ff 100%) !important;
}

.tb-group.ctb-group-locked .ctb-group-lock {
    background: #4b247a !important;
    color: #fff !important;
}

.tb-group.ctb-group-locked .tb-drop-slot {
    opacity: .96 !important;
}

.tb-drag-card.ctb-group-card-locked {
    cursor: default !important;
}

.tb-group.ctb-group-lock-warning {
    box-shadow: 0 0 0 4px rgba(216, 106, 106, .15) !important;
}

.tb-group.ctb-lock-shake {
    animation: ctbGroupLockShake .35s ease !important;
}

@keyframes ctbGroupLockShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-3px); }
    50% { transform: translateX(3px); }
    75% { transform: translateX(-2px); }
}



/* v3.6.0 four tumbler slots */
.ctb-tumbler-drop-wrapper {
    width: 100% !important;
}

.ctb-tumbler-slots {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
}

.ctb-tumbler-slot {
    min-height: 160px !important;
    padding: 14px !important;
    align-content: start !important;
}

.ctb-tumbler-slot .ctb-slot-label {
    color: #6b6178 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    margin-bottom: 10px !important;
}

.ctb-tumbler-slot .tb-drag-card {
    width: 100% !important;
    max-width: 100% !important;
}

@media (max-width: 1100px) {
    .ctb-tumbler-slots {
        grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .ctb-tumbler-slots {
        grid-template-columns: 1fr !important;
    }
}


/* v3.6.1 cleaner tumbler slot labels/layout */
.ctb-tumbler-slots {
    grid-template-columns: repeat(4, minmax(120px, 1fr)) !important;
    gap: 10px !important;
}

.ctb-tumbler-slot {
    min-height: 140px !important;
    padding: 12px !important;
}

.ctb-tumbler-slot .ctb-slot-label {
    font-size: 11px !important;
    letter-spacing: .06em !important;
    margin-bottom: 8px !important;
}

.ctb-tumbler-slot .tb-drag-card {
    font-size: 13px !important;
}

@media (max-width: 1100px) {
    .ctb-tumbler-slots {
        grid-template-columns: repeat(2, minmax(120px, 1fr)) !important;
    }
}



/* v3.6.2 true independent tumbler slots */
.ctb-tumbler-root-drop {
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    min-height: 0 !important;
}

.ctb-true-tumbler-slots {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(135px, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
}

.ctb-true-tumbler-slot {
    min-height: 175px !important;
    padding: 14px !important;
    border: 2px dashed #d9cceb !important;
    border-radius: 16px !important;
    background: #fbf9fd !important;
    align-content: start !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.ctb-true-tumbler-slot .ctb-slot-label {
    color: #6b6178 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    margin-bottom: 10px !important;
}

.ctb-true-tumbler-slot .tb-drag-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    font-size: 13px !important;
}

.ctb-true-tumbler-slot .tb-drag-card strong {
    font-size: 14px !important;
    line-height: 1.15 !important;
}

.ctb-true-tumbler-slot .tb-drag-card span,
.ctb-true-tumbler-slot .tb-drag-card em {
    font-size: 12px !important;
}

@media (max-width: 1100px) {
    .ctb-true-tumbler-slots {
        grid-template-columns: repeat(2, minmax(135px, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .ctb-true-tumbler-slots {
        grid-template-columns: 1fr !important;
    }
}


/* v3.6.3 tumbler drop feedback */
.ctb-true-tumbler-slot.is-over {
    background: #f4eef9 !important;
    border-color: #4b247a !important;
    box-shadow: 0 8px 20px rgba(75,36,122,.12) !important;
}


/* v3.6.4 tumbler save feedback */
.tb-group.tb-tumblers.ctb-saving-tumblers {
    opacity: .92 !important;
}

.tb-group.tb-tumblers.ctb-save-success {
    box-shadow: 0 0 0 4px rgba(18,107,47,.12) !important;
}

.tb-group.tb-tumblers.ctb-save-error {
    box-shadow: 0 0 0 4px rgba(180,60,60,.14) !important;
}
