/* Public booking flow — v3.0.6. Scope all styles to avoid interfering with the tournament pages. */
.topaz-public-app{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#183343;max-width:840px;margin:20px auto 45px;padding:0 12px;box-sizing:border-box}
.topaz-public-app *,.topaz-public-app *:before,.topaz-public-app *:after{box-sizing:border-box}
.topaz-public-app [hidden]{display:none!important}
.topaz-public-app .tb-hero{background:linear-gradient(125deg,#07263e,#0a7176);padding:30px 33px;color:#fff;border-radius:19px;margin-bottom:16px}
.topaz-public-app .tb-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:1.4px;color:#a8e9df}
.topaz-public-app .tb-hero h2{font-size:clamp(23px,3.8vw,34px);line-height:1.18;color:white;margin:10px 0 8px;font-weight:800}
.topaz-public-app .tb-hero p{color:#d5f1ef;margin:0;font-size:13px;line-height:1.65}
.topaz-public-app .tb-panel{background:white;border:1px solid #dbe7ea;border-radius:18px;padding:29px;box-shadow:0 10px 35px #09263816}
.topaz-public-app .tb-step-title{display:flex;align-items:flex-start;gap:13px;margin:0 0 19px}
.topaz-public-app .tb-step-number{width:32px;height:32px;min-width:32px;display:grid;place-items:center;border-radius:10px;background:#d8f2ef;color:#08746e;font-size:17px;font-weight:850}
.topaz-public-app .tb-step-title h3{font-size:21px;line-height:1.3;color:#14384a;margin:0 0 2px;font-weight:800}
.topaz-public-app .tb-step-title p{color:#738c98;font-size:12px;margin:0}
.topaz-public-app .tb-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.topaz-public-app label{display:block!important;font-size:14px!important;line-height:1.4;font-weight:750;color:#314d5e;margin:14px 0 8px!important}
.topaz-public-app input,.topaz-public-app select,.topaz-public-app textarea{display:block;width:100%;max-width:100%;min-height:51px;border:1px solid #c7d8df;border-radius:11px;padding:12px 13px;color:#1c3c4c;background:#fff;font-family:inherit;font-size:16px;box-shadow:none}
.topaz-public-app input:focus,.topaz-public-app select:focus,.topaz-public-app textarea:focus{outline:3px solid #8ce2cd91;border-color:#048776}
.topaz-public-app input[readonly]{background:#f0f6f7;color:#15565b;font-weight:800}
.topaz-public-app select:disabled{background:#f0f4f5;color:#7c8b95}
.topaz-public-app .tb-primary{display:flex;align-items:center;justify-content:center;gap:10px;margin:21px 0 0;width:100%;min-height:52px;padding:13px 17px;border-radius:11px!important;border:none!important;background:#087b79!important;color:white!important;font-family:inherit;font-size:16px!important;font-weight:800;line-height:1.4;cursor:pointer;box-shadow:none}
.topaz-public-app .tb-primary:hover:not(:disabled){background:#076768!important}
.topaz-public-app .tb-primary:disabled{background:#9fb6bd!important;color:#fff!important;cursor:not-allowed}
.topaz-public-app .tb-helper{margin:12px 0 0;font-size:13px;line-height:1.6;color:#526c78}
.topaz-public-app .tb-result{border-top:1px solid #dce7eb;margin-top:23px;padding-top:23px}
.topaz-public-app .tb-result .tb-step-title{margin-bottom:9px}
.topaz-public-app .tb-times-row{margin:6px 0 14px}
.topaz-public-app .tb-selection{padding:14px 16px;border-radius:10px;background:#e7f7f4;border:1px solid #b3dcd4;color:#126e69;font-size:14px;font-weight:800;line-height:1.6;margin:14px 0}
.topaz-public-app .tb-mini{font-size:12px!important;line-height:1.65!important;color:#657d89!important;margin:11px 0!important}
.topaz-public-app .tb-alert{border-radius:10px;padding:14px 16px;margin-top:15px;line-height:1.55;font-size:13px}
.topaz-public-app .tb-alert-ok{background:#def5e8;color:#12603a}
.topaz-public-app .tb-alert-error{background:#fee7e9;color:#9c1635}
.topaz-public-app .tb-manage-link{display:inline-block;margin:12px 0;color:#087b79;font-weight:800;text-decoration:underline}
.topaz-public-app .tb-honey{position:absolute!important;left:-99999px!important;height:0!important;overflow:hidden!important}
.topaz-public-app.tb-portal{position:fixed;inset:0;max-width:none;margin:0;padding:0;z-index:999999;pointer-events:none}
.topaz-public-app .tb-modal{pointer-events:auto;position:fixed;z-index:999999;inset:0;display:flex;justify-content:center;align-items:center;padding:15px}
.topaz-public-app .tb-modal-backdrop{position:absolute;inset:0;background:rgba(2,15,28,.73)}
.topaz-public-app .tb-modal-card{position:relative;width:min(100%,520px);max-height:min(92dvh,820px);overflow:auto;overscroll-behavior:contain;border-radius:18px;background:#fff;box-shadow:0 25px 80px #0006}
.topaz-public-app .tb-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 25px 15px;border-bottom:1px solid #e2e9ed}
.topaz-public-app .tb-modal-head h3{font-size:22px;line-height:1.25;font-weight:800;color:#123a4c;margin:7px 0 6px}
.topaz-public-app .tb-modal-head p{font-size:12px;color:#67818b;margin:0}
.topaz-public-app .tb-modal-head .tb-eyebrow{color:#078780}
.topaz-public-app .tb-modal-close{flex:0 0 auto;width:35px;height:35px;min-width:35px;border-radius:50%;background:#eef4f5;border:none;font-size:27px;line-height:1;cursor:pointer;color:#2f4c56}
.topaz-public-app .tb-modal-body{padding:5px 25px 24px}
.topaz-public-app .tb-modal-body textarea{min-height:72px;resize:vertical}
.topaz-public-app .tb-soft{font-weight:500;color:#71818d}
.topaz-public-app .tb-status-page{max-width:750px}
.topaz-public-app .tb-status-tag{font-weight:800;text-transform:capitalize;border-radius:20px;padding:6px 12px;background:#e9f8ef;color:#166d45}
.topaz-public-app .tb-status-tag.tb-pending{background:#fff2d9;color:#8e641d}
.topaz-public-app .tb-status-tag.tb-cancelled,.topaz-public-app .tb-status-tag.tb-rejected{background:#f7e7e8;color:#a84d5e}
.topaz-public-app .tb-danger{border:0;border-radius:9px;padding:12px 18px;background:#bb3048;color:white;cursor:pointer;font-size:15px;font-weight:750}
@media(max-width:650px){
 .topaz-public-app{margin:14px auto 31px;padding:0 7px}
 .topaz-public-app .tb-hero{padding:24px 22px}
 .topaz-public-app .tb-panel{padding:22px 18px}
 .topaz-public-app .tb-fields{grid-template-columns:1fr;gap:4px}
 .topaz-public-app .tb-times-row{grid-template-columns:1fr 1fr;gap:10px}
 .topaz-public-app .tb-modal{padding:10px}
 .topaz-public-app .tb-modal-card{max-height:94dvh}
 .topaz-public-app .tb-modal-head{padding:20px 18px 14px}
 .topaz-public-app .tb-modal-body{padding:3px 18px 19px}
 .topaz-public-app .tb-modal-head h3{font-size:19px}
 .topaz-public-app .tb-step-title h3{font-size:19px}
}
@media(max-width:355px){.topaz-public-app .tb-times-row{grid-template-columns:1fr}}

/* A compact start selector; end time is selected in a focused modal. */
#tb-continue[hidden],#tb-end[hidden]{display:none!important}

/* V3.1 customer-first time selection, touch friendly */
.tb-accessible-select{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.tb-start-tiles,.tb-finish-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.tb-time-tile,.tb-finish-tile{min-height:53px;border-radius:11px;border:1px solid #b3e0cc;background:#e9faf1;color:#075c40;font-weight:750;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px 14px}
.tb-time-tile:hover,.tb-time-tile:focus-visible,.tb-finish-tile:hover,.tb-finish-tile:focus-visible,.tb-finish-tile.is-selected{background:#0b7651;color:white;border-color:#0b7651}
.tb-finish-tile{justify-content:center}
@media(max-width:380px){.tb-start-tiles,.tb-finish-tiles{grid-template-columns:1fr}}

.tb-until{display:block;font-size:11px;font-weight:500;opacity:.9;text-align:left;margin-top:4px}
