:root{--blue:#0966ec;--deep:#073779;--ink:#142c4f;--muted:#536981;--yellow:#ffe276;--bg:#f2f7ff;--line:#d9e6f6;--radius:24px;--shadow:0 14px 42px rgba(29,75,134,.07)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 4%,#e0edff 0,transparent 35%),var(--bg);color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,'Segoe UI',sans-serif}a{color:var(--deep);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1466c9;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(32px,4vw,54px);letter-spacing:-.045em;line-height:1.1;margin-bottom:18px;font-weight:850}h1 span{color:var(--blue)}h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.025em;line-height:1.2}h3{line-height:1.3;font-size:20px}small,.small{font-size:13px;color:var(--muted)}[hidden]{display:none!important}.shell{width:min(1180px,calc(100% - 48px));margin:auto}.topbar{background:#ffffffd9;border-bottom:1px solid #ffffff;backdrop-filter:blur(18px)}.topbar-inner{min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:inline-flex;gap:9px;align-items:center;text-decoration:none;font-size:25px;font-weight:850;letter-spacing:-1.2px}.brand-mark{height:38px;width:38px;display:grid;place-content:center;position:relative;background:var(--blue);color:white;border-radius:12px;font-size:27px}.brand-mark span{position:absolute;right:4px;bottom:0;font-size:20px;color:var(--yellow)}nav{display:flex;gap:24px;align-items:center;flex-wrap:wrap}nav a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:650;text-decoration:none}.pill{border:1px solid var(--line);border-radius:99px;padding:9px 18px;background:white}.page-heading{padding:55px 0 32px;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.eyebrow{font-size:11px;font-weight:850;letter-spacing:.15em;color:var(--blue);margin-bottom:17px}.lead{max-width:600px;color:var(--muted);margin:0}.zone-label{white-space:nowrap;font-size:12px;padding:9px 13px;background:#e6effc;border-radius:99px;color:var(--deep);margin-bottom:5px}.card{background:white;border:1px solid #e1ebf8;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);min-width:0;overflow-wrap:anywhere}.layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px;align-items:start}.stack{display:grid;gap:20px;min-width:0}.grid{display:grid;gap:16px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-card{color:white;background:radial-gradient(circle at 100% 0%,#42a4ff66,transparent 55%),linear-gradient(135deg,#074aaf,#0876ef);border:0}.hero-card p,.hero-card small{color:#e0efff}.hero-card h2{color:white}.hero-card .eyebrow{color:var(--yellow)}.hero-card a{color:white}.price{font-size:42px;letter-spacing:-.055em;font-weight:850;line-height:1.1;margin:20px 0 6px}.price small{font-size:14px;font-weight:500;letter-spacing:0}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 19px;background:var(--blue);color:white;border:1px solid transparent;border-radius:13px;font-weight:700;text-decoration:none;transition:background .18s,box-shadow .18s}.button:hover,button:hover{background:#0751c0}.button.secondary,button.secondary{background:#eef5ff;color:var(--deep);border-color:var(--line)}.button.secondary:hover,button.secondary:hover{background:#daeaff}.button.yellow,button.yellow{background:var(--yellow);color:#18386a}.button.wide,button.wide{width:100%}.danger{color:#9c2222!important;background:#fff2f2!important;border-color:#f3cece!important}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.service-option{min-width:0;text-align:left;display:block;padding:18px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:17px}.service-option:hover{background:#f2f7ff}.service-option.selected{border:2px solid var(--blue);padding:17px;background:#edf5ff}.service-option strong,.service-option span{display:block}.service-option span{font-size:13px;margin-top:4px;color:var(--muted)}.service-option .option-price{font-size:23px;color:var(--deep);font-weight:850}.step-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.step-heading h2{font-size:21px;margin:0}.step-number{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#e6f0ff;color:var(--blue);font-weight:850}.form-field{display:grid;gap:7px;margin-bottom:16px}.form-field label,.field-label{font-size:14px;font-weight:700}.form-field input,.form-field select,.form-field textarea,input,select,textarea{width:100%;max-width:100%;min-height:46px;border:1px solid #c8d9ed;border-radius:12px;padding:11px 13px;background:white;color:var(--ink)}textarea{min-height:95px;resize:vertical}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:12px 0}.day{padding:8px 4px;min-height:58px;background:white;color:var(--ink);border-color:var(--line);border-radius:12px;display:grid;gap:0;font-size:12px}.day strong{font-size:19px}.day.selected{background:var(--blue);color:white}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:18px}.slot{padding:10px 5px;color:var(--deep);background:#edf5ff;border-color:var(--line)}.slot.selected{background:var(--blue);color:white}.empty{padding:24px 14px;border:1px dashed #c4d7ef;border-radius:16px;text-align:center;color:var(--muted);background:#f9fbff}.message{margin-bottom:22px;padding:16px 20px;background:#fff4d2;border:1px solid #e9d08b;border-radius:16px;color:#5b410a}.message.error{background:#fff0ef;border-color:#f3c2be;color:#8b211a}.message.success{background:#e4f7ee;border-color:#addfc6;color:#155339}.check{display:flex;align-items:flex-start;gap:11px;font-size:13px;margin:15px 0;line-height:1.5}.check input{accent-color:var(--blue);min-height:22px;width:22px;flex:0 0 22px;margin:0}.check a{font-weight:650}.check-list{padding:0;list-style:none;color:var(--muted);font-size:14px}.check-list li{padding:10px 0;border-bottom:1px solid var(--line)}.summary-line{display:flex;justify-content:space-between;gap:20px;margin:8px 0}.summary-total{border-top:1px solid var(--line);padding-top:16px;font-size:24px;font-weight:850;letter-spacing:-.03em}.discount{color:#15704a}.tag{display:inline-block;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:750;background:#eaf2ff;color:var(--deep)}.tag.success{background:#dff6eb;color:#176544}.tag.warning{background:#fff1ca;color:#765512}.tag.test{background:#f0e8ff;color:#61319c}.booking-card{border-left:4px solid var(--blue)}.booking-card h3{margin:9px 0}.list-item{padding:18px 0;border-bottom:1px solid var(--line)}.list-item:first-child{padding-top:0}.list-item:last-child{border:0;padding-bottom:0}.metric{font-size:36px;font-weight:850;line-height:1.15;letter-spacing:-.04em}.metric-label{font-size:13px;color:var(--muted);margin-top:5px}.section-title{margin:44px 0 22px}.section-title .eyebrow{margin-bottom:10px}.product-card{padding:24px;border:1px solid var(--line);border-radius:22px;background:#e9f1ff77;text-decoration:none}.product-card h3{margin:17px 0 8px}.product-card p{font-size:14px;color:var(--muted)}.product-card>span:last-child{font-size:13px;font-weight:750}.product-icon{display:inline-grid;width:36px;height:36px;place-items:center;color:var(--blue);background:white;border-radius:10px;font-size:12px;font-weight:850}.crosssell{margin-top:60px}.footer{display:flex;gap:20px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding:32px 0;margin-top:60px;font-size:12px;color:var(--muted)}.footer p{margin:0;flex:1}.footer .brand{font-size:21px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.tabs a{min-height:44px;padding:10px 15px;border-radius:12px;text-decoration:none;font-weight:650;font-size:14px;background:white;border:1px solid var(--line)}.tabs a.active{background:var(--deep);color:white}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:11px}details{margin:12px 0}summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;overflow-wrap:anywhere}.muted{color:var(--muted)}.divider{border:0;border-top:1px solid var(--line);margin:24px 0}.skip-link{position:fixed;left:12px;top:-80px;padding:12px;background:white;z-index:9}.skip-link:focus{top:12px}.skeleton{color:var(--muted);min-height:220px}.balance-bar{height:6px;background:#e9f1ff;border-radius:8px;margin:16px 0;overflow:hidden}.balance-bar span{height:100%;display:block;background:var(--blue);max-width:100%}.legal-note{font-size:12px;color:var(--muted);margin:16px 0 0}.admin-form{display:grid;gap:12px}.admin-form label{display:grid;gap:5px;font-size:13px;font-weight:650}.admin-form .check{display:flex}.admin-form .check input{width:22px}.admin-form button{justify-self:start}.admin-notice{border-left:4px solid #ecc338}.status-symbol{width:64px;height:64px;display:grid;place-items:center;font-size:30px;font-weight:850;border-radius:22px;background:#e8f1ff;color:var(--blue);margin-bottom:24px}.mono{font-family:ui-monospace,monospace;font-size:12px}.admin-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.calendar-day{display:grid;gap:10px}.calendar-date{font-size:12px;font-weight:750;color:var(--muted)}
@media(max-width:900px){.layout{grid-template-columns:1fr 290px}.three{grid-template-columns:1fr}.page-heading{display:block}.zone-label{display:inline-block;margin-top:22px}.admin-layout{grid-template-columns:1fr}.topbar-inner{gap:12px}nav{gap:12px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.shell{width:calc(100% - 28px)}.topbar-inner{min-height:76px;flex-wrap:wrap;padding:12px 0}.brand{font-size:22px}.brand-mark{width:32px;height:32px}nav{width:100%;justify-content:space-between;gap:3px}nav a{font-size:12px}.pill{padding:8px 10px}.page-heading{padding:32px 0 24px}h1{font-size:34px}.lead{font-size:14px}.layout{grid-template-columns:1fr}.card{padding:21px;border-radius:20px}.two{grid-template-columns:1fr}.day-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.price{font-size:36px}.footer{display:grid;gap:14px}.crosssell{margin-top:40px}.inline-form{grid-template-columns:1fr}.actions>.button,.actions>button{flex:1 1 auto}.tabs{gap:6px}.tabs a{font-size:12px;padding:9px 12px}.grid.three.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zone-label{white-space:normal}.page-heading h1{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.hero-card .check-list{color:#e0efff}.hero-card .check-list li{border-color:#ffffff40}

/* Trainer surfaces share the system typography of the public storefront. */
:root{--ink:#1d1d1f;--muted:#6e6e73;--bg:#f5f5f7;--line:#e5e5ea;--deep:#1d1d1f}body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",sans-serif;background:#f5f5f7;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:600}.brand-logo{display:block;object-fit:contain;width:36px;height:36px}.hero-card{background:#fff;color:var(--ink)}.hero-card .check-list{color:var(--muted)}.hero-card .check-list li{border-color:var(--line)}.hero-card .price{color:var(--ink)}.product-card,.service-option.selected{background:white}.service-option.selected{box-shadow:0 0 0 1px #a1a1a6;border-color:#a1a1a6}.booking-card{border-left:1px solid var(--line)}button,.button{font-weight:600}

.trainer-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-block:16px}.calendar-weekday{text-align:center;color:var(--muted);font-size:11px}.calendar-cell{display:grid;gap:3px;padding:9px 2px;background:#f5f5f7;color:var(--ink);border:1px solid transparent;border-radius:11px;min-height:59px}.calendar-cell.selected{background:white;border-color:#86868b}.calendar-cell strong{font-size:15px;font-weight:600}.calendar-cell small{font-size:9px;font-weight:400}.card>.actions>select,.card>.actions>input[type=date]{width:auto;max-width:160px}.card>.actions{flex-wrap:wrap}@media(max-width:420px){.trainer-month-grid{gap:3px}.calendar-cell{min-height:48px;border-radius:8px}.calendar-cell strong{font-size:13px}.calendar-cell small{font-size:8px}}

/* Purchase-first and private Google-dot booking surfaces. */
.training-balances{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.balance-item{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.balance-item strong{display:block;font-size:32px;letter-spacing:-.04em;font-weight:600}.balance-item span{font-size:12px;color:var(--muted)}.purchase-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.purchase-option{background:#f5f5f7;color:var(--ink);border:1px solid transparent;text-align:left;padding:22px;border-radius:18px;display:block}.purchase-option:hover{background:#ededf0}.purchase-option.chosen{background:white;border-color:#86868b;box-shadow:0 4px 18px #1d1d1f0a}.purchase-option span,.purchase-option strong{display:block}.purchase-option strong{font-size:27px;font-weight:600;letter-spacing:-.04em;margin:8px 0}.training-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:22px}.training-selection{position:sticky;top:20px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.calendar-toolbar label{font-size:12px;color:var(--muted);display:grid;gap:5px}.calendar-toolbar input{max-width:170px}.segmented{display:flex;background:#ededf0;border-radius:14px;padding:4px;gap:4px}.segmented button{background:transparent;color:var(--muted);font-size:13px;border:0;min-height:40px;padding:8px 15px}.segmented button.active{background:white;color:var(--ink);box-shadow:0 2px 7px #0000000a}.training-week,.training-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:18px 0 28px}.training-date{display:grid;gap:4px;padding:12px 2px;background:#f5f5f7;color:var(--ink);border:1px solid transparent;min-height:90px}.training-date span{font-size:11px;color:var(--muted)}.training-date strong{font-size:21px;font-weight:600}.training-date small{font-size:9px;font-weight:400}.training-date:hover,.training-date.selected{background:white;border-color:#86868b}.training-month .training-date{min-height:76px}.training-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-block:20px}.time-option{background:#f5f5f7;color:var(--ink);border:1px solid var(--line);font-weight:500;min-height:52px}.time-option.selected{background:#1d1d1f;color:white;border-color:#1d1d1f}.time-option:hover{border-color:#86868b;background:#e9e9ed;color:#1d1d1f}.time-option.selected:hover{background:#333;color:white}.selected-date{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.selected-dates{margin-bottom:20px}.text-button{padding:4px 6px;min-height:44px;background:transparent!important;color:#06c!important;font-size:12px;font-weight:500}.training-selection button:not(.text-button){width:100%}#app>.actions{margin-bottom:24px}#app>.tabs{margin-bottom:20px}.page-heading h1 span{color:var(--ink)}
@media(max-width:1000px){.training-calendar-layout{grid-template-columns:minmax(0,1fr) 250px}.training-times{grid-template-columns:repeat(3,minmax(0,1fr))}.training-date small{font-size:8px}}
@media(max-width:760px){.training-calendar-layout{grid-template-columns:1fr}.training-selection{position:sticky;bottom:0;top:auto;z-index:4;padding-bottom:env(safe-area-inset-bottom);background:#f5f5f7dd;backdrop-filter:blur(20px);margin-bottom:-10px}.training-selection>.card{padding:18px 20px;box-shadow:0 -6px 30px #00000008}.training-selection h2{font-size:20px;margin-bottom:8px}.selected-dates{max-height:130px;overflow:auto;margin-bottom:10px}.training-balances{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.balance-item{padding:14px 17px;border-radius:16px}.balance-item strong{font-size:27px}.balance-item span{font-size:11px}.training-week{display:flex;overflow-x:auto;gap:6px;padding-bottom:8px}.training-week .training-date{flex:0 0 65px}.training-month{gap:4px}.training-month .training-date{padding:8px 1px;min-height:65px;border-radius:10px}.training-month .training-date strong{font-size:16px}.training-month .training-date small{font-size:7px}.purchase-option{padding:16px}.purchase-option strong{font-size:24px}.training-times{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-toolbar{gap:10px}.calendar-toolbar input{max-width:150px}.segmented button{padding-inline:12px}}
@media(max-width:360px){.purchase-options{grid-template-columns:1fr}.training-times{grid-template-columns:repeat(2,minmax(0,1fr))}.training-month .training-date small{font-size:6px}.calendar-toolbar{display:grid;grid-template-columns:1fr}.calendar-toolbar input{max-width:100%}}
@media(max-width:760px){.training-selection{display:none;position:static}.has-training-selection .training-selection{display:block;position:fixed;bottom:0;left:0;right:0;width:100%;padding:0 14px env(safe-area-inset-bottom);margin:0}.has-training-selection .training-selection>.card{padding:14px 18px;border-radius:22px 22px 0 0}.has-training-selection{padding-bottom:260px}.training-selection .selected-dates{max-height:80px}.training-selection h2{font-size:17px}.training-selection p{margin-bottom:8px}.has-training-selection .training-selection .card>p.small{display:none}}
.balance-total{grid-column:1/-1;font-size:12px;color:var(--muted);margin:0 2px}.calendar-empty{min-height:1px}

/* Direct purchase and a public read-only calendar, same FitPush tokens. */
.purchase-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;align-items:start}.purchase-panel h2,.calendar-preview h2{font-size:25px;font-weight:600;letter-spacing:-.035em}.purchase-buy-options{gap:10px}.purchase-buy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:106px;padding:19px;background:#f5f5f7;color:var(--ink);border:1px solid #dcdce1;border-radius:18px;text-align:left;font-weight:500;box-shadow:0 2px 3px #00000002}.purchase-buy span{font-size:13px;line-height:1.4}.purchase-buy strong{font-size:26px;font-weight:600;letter-spacing:-.04em;line-height:1.15}.purchase-buy:disabled{opacity:1;color:var(--ink);cursor:default}.purchase-buy:hover:not(:disabled){background:#eaeaf0;border-color:#93939a;transform:translateY(-1px)}.purchase-consents{display:grid;gap:8px;margin-top:18px}.purchase-consents .check{margin:0;font-size:12px;line-height:1.55;gap:9px}.purchase-consents .check input{width:19px;height:19px;min-height:19px;flex-basis:19px;margin-top:1px}.purchase-consents .check a{font-weight:500}.purchase-rules{font-size:11px;line-height:1.6;color:var(--muted);margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line)}.preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.preview-heading h2{margin-bottom:10px}.preview-heading span{white-space:nowrap}.calendar-preview .training-week{gap:5px;margin-block:16px 22px}.calendar-preview .training-date{min-height:80px;border-radius:12px}.calendar-preview .training-date strong{font-size:20px}.calendar-preview .training-times{grid-template-columns:repeat(3,minmax(0,1fr))}.preview-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:13px 4px;border:1px solid var(--line);border-radius:14px;background:#f8f8fa;font-size:19px;font-weight:500;font-variant-numeric:tabular-nums}.preview-lock{font-size:9px;color:var(--muted);font-weight:400}.calendar-preview h3{font-size:19px;font-weight:500}.calendar-preview>.muted{font-size:13px}.purchase-panel,.calendar-preview{box-shadow:0 8px 32px #1d1d1f03}.purchase-layout .stack{min-width:0}
@media(max-width:1000px){.purchase-layout{grid-template-columns:1fr 1fr}.purchase-layout .card{padding:22px}.calendar-preview .training-week{display:flex;overflow:auto}.calendar-preview .training-date{flex:0 0 53px}.purchase-buy{padding:14px}.purchase-buy strong{font-size:23px}}
@media(max-width:760px){.purchase-layout{grid-template-columns:1fr}.purchase-layout .card{padding:23px}.purchase-buy{min-height:100px;padding:16px}.purchase-buy strong{font-size:25px}.calendar-preview .training-date{flex:1 0 40px;min-width:40px}.calendar-preview .training-date small{font-size:8px}.preview-heading{gap:8px}.purchase-panel h2,.calendar-preview h2{font-size:23px}.purchase-consents{gap:8px;margin-top:16px}}
@media(max-width:360px){.purchase-buy-options{grid-template-columns:1fr 1fr}.purchase-buy{padding:12px;min-height:98px}.purchase-buy span{font-size:11px}.purchase-buy strong{font-size:21px}.purchase-layout .card{padding:18px}.calendar-preview .training-date{flex:0 0 43px}.preview-heading h2{font-size:21px}.preview-heading span{font-size:10px}}
.purchase-buy:last-child:nth-child(odd){grid-column:1/-1}.calendar-preview .training-date small{white-space:nowrap}.purchase-panel,.calendar-preview{border-color:var(--line)}.skip-link:not(:focus){width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}.skip-link:focus{width:auto;height:auto;clip-path:none}

/* Owner workspace, using the existing FitPush neutral system. */
.owner-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.owner-tools a{min-height:72px;font-size:14px;justify-content:flex-start;padding:20px;background:#f5f5f7;color:var(--ink);border-color:var(--line)}.trainer-email-form{max-width:420px}.trainer-email-form button[type=submit]{width:100%;margin-block:4px 14px}.managed-client-list{display:grid;gap:0}.managed-client{padding:18px 0;border-bottom:1px solid var(--line);min-width:0}.managed-client p{margin:6px 0}.client-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.notification-client{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.notification-client .managed-client{border:0}.notification-client>input{width:20px;min-height:20px;height:20px;accent-color:#0071e3}.manager-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-block:20px 28px}.manager-day{display:grid;gap:3px;min-height:70px;padding:9px 4px;background:#f5f5f7;color:var(--ink);border-color:var(--line)}.manager-day:hover,.manager-day.selected{background:white;color:var(--ink);border-color:#86868b}.manager-day strong{font-size:21px;font-weight:500}.manager-day small{font-size:11px}.managed-booking{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fafafa}.managed-booking[draggable=true]{cursor:grab}.managed-booking h3{margin:8px 0}.managed-booking .actions{margin-top:16px}.management-dialog{position:fixed;margin:auto;width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #ffffffaa;border-radius:28px;padding:32px;background:#fff;box-shadow:0 30px 100px #0003;color:var(--ink)}.management-dialog::backdrop{background:#16161655;backdrop-filter:blur(7px)}.management-dialog h2{padding-right:42px;font-size:27px}.management-dialog .modal-close{position:absolute;right:17px;top:17px;width:36px;height:36px;min-height:36px;border:0;border-radius:50%;padding:0;background:#f2f2f5;color:#65656b}.management-dialog .modal-close::before,.management-dialog .modal-close::after{content:'';position:absolute;width:14px;height:1.6px;background:currentColor;border-radius:2px;left:11px;top:17px;transform:rotate(45deg)}.management-dialog .modal-close::after{transform:rotate(-45deg)}.management-dialog-body{display:grid;gap:12px}.management-dialog .training-times{margin:0}.assigned-code{display:block;font-size:30px;letter-spacing:.06em;overflow-wrap:anywhere}.notification-template{padding:17px 0;border-bottom:1px solid var(--line)}.notification-template summary{cursor:pointer;font-size:17px;font-weight:500;min-height:32px}.notification-template .form-field{margin-top:15px}.notification-template textarea{min-height:150px;font-size:14px}.message-preview{padding:18px;border-radius:16px;background:#f5f5f7;white-space:pre-wrap;overflow-wrap:anywhere}.tab-link{padding:10px 14px;min-height:44px;text-decoration:none;border:1px solid var(--line);border-radius:13px;background:white;color:var(--ink);font-size:13px}.tab-link.active{background:#1d1d1f;color:white}body[data-trainer-mode=email_login] #app{max-width:540px;margin:0 auto 80px}body[data-trainer-mode=email_login] .page-heading{max-width:540px;margin:auto;padding-top:45px}body[data-trainer-mode=email_login] .card{padding:32px}
@media(max-width:760px){.owner-tools{grid-template-columns:1fr 1fr;gap:8px}.owner-tools a{font-size:12px;padding:14px;min-height:68px}.manager-days{gap:5px}.manager-day{min-height:62px}.manager-day strong{font-size:18px}.manager-day small{font-size:9px}.managed-booking{padding:16px}.managed-booking .actions button{font-size:12px;padding-inline:12px}.notification-client{grid-template-columns:20px minmax(0,1fr);gap:9px}.notification-client>button{grid-column:2;justify-content:flex-start}.management-dialog{padding:25px 20px}.management-dialog h2{font-size:24px}.client-title{display:grid;gap:4px}body[data-trainer-mode=email_login] .card{padding:24px}}

.purchase-buy-options .purchase-buy{position:relative;min-height:104px;border:1px solid #d4d6df;border-bottom:4px solid #c8cbd6;background:linear-gradient(165deg,#fff 5%,#f1f2f7 95%);box-shadow:0 5px 12px #26365710,inset 0 1px 0 #fff;border-radius:19px;padding:19px 20px;transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer;color:#202024}.purchase-buy-options .purchase-buy:hover{transform:translateY(-2px);border-color:#a4afc4;background:linear-gradient(165deg,#fff,#edf1f8);box-shadow:0 9px 18px #2636571a}.purchase-buy-options .purchase-buy:active{transform:translateY(2px);border-bottom-width:1px;box-shadow:0 1px 3px #26365714}.purchase-buy-options .purchase-buy strong{font-size:25px}.purchase-buy-options .purchase-buy>span{font-size:12px;font-weight:600}.purchase-consents .check{padding:8px;border-radius:11px;border:1px solid transparent;transition:background .15s,border-color .15s}.purchase-consents .consent-missing{border-color:#d64141;background:#fff1f1;color:#a52020}.consent-missing input{outline:2px solid #d64141;outline-offset:2px}.consent-error{font-size:13px;color:#ad2525;margin:7px 8px}.purchase-consents{scroll-margin-top:100px}@media(prefers-reduced-motion:reduce){.purchase-buy-options .purchase-buy{transition:none;transform:none}}

.tariff-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;margin-bottom:30px;align-items:start}.tariff-workspace>.card{min-width:0}.tariff-sidebar{position:sticky;top:100px}.tariff-sidebar h2{font-size:23px}.tariff-client-list{display:grid;gap:7px;margin-top:16px;max-height:600px;overflow:auto}.tariff-client{display:grid;gap:5px;text-align:left;width:100%;padding:14px;border-radius:14px;background:#f7f7f9;color:#34343b;border:1px solid #e5e5eb;overflow-wrap:anywhere}.tariff-client strong{font-size:13px}.tariff-client span{font-size:11px}.tariff-client small{font-size:10px;color:#80808a}.tariff-client.selected{border-color:#90909b;background:white;box-shadow:0 3px 8px #00000008}.tariff-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tariff-muted{opacity:.6}.tariff-price-grid .form-field{margin:0}.dialog-status.error{color:#a72424;background:#fff0f0;border-radius:11px;padding:10px;font-size:13px}.tariff-workspace form>button{width:100%;margin-top:20px}@media(max-width:850px){.tariff-workspace{grid-template-columns:1fr}.tariff-sidebar{position:static}.tariff-client-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.tariff-client span{word-break:break-word}}@media(max-width:390px){.tariff-client-list{grid-template-columns:1fr}.tariff-price-grid{grid-template-columns:1fr}}

/* Package cells reflect credit reservations and trainer-confirmed outcomes. */
.package-progress-panel{margin:18px 0 24px;padding:24px}.package-progress-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.package-progress-heading h2{font-size:22px;margin:0}.package-progress-heading p{margin:0;color:#787883}.package-legend{display:flex;gap:17px;flex-wrap:wrap;margin:17px 0}.package-legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:#6b6b75}.package-legend-dot{display:inline-flex;width:18px;height:16px;align-items:center;justify-content:center;border:1px solid #d4d7de;border-radius:5px;background:white;font-size:11px;line-height:1}.package-legend-dot.completed{background:#d5efdf;border-color:#64ac7d;color:#257442}.package-legend-dot.planned{background:#fff0b9;border-color:#d8b74b;color:#7e6316}.package-legend-dot.missed{background:#f9d9dc;border-color:#d78c95;color:#9a3542}.package-progress-pack{padding:20px 0 8px;border-top:1px solid #ececf1}.package-progress-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.package-progress-title h3{font-size:16px;margin:0;font-weight:600;letter-spacing:-.3px}.package-progress-fraction{font-size:12px;white-space:nowrap;color:#666671}.package-segments{display:grid;grid-template-columns:repeat(var(--segment-columns),minmax(0,1fr));gap:6px}.package-segment{display:flex;align-items:center;justify-content:center;min-height:27px;height:27px;padding:0;border:1px solid #cbd0d8;border-radius:7px;background:linear-gradient(#fff,#f9fafc);color:#5f6570;box-shadow:0 1px 2px #00000005;font-size:13px;line-height:1;cursor:pointer;transition:box-shadow .15s,transform .15s}.package-segment>span{pointer-events:none}.package-segment.completed{background:linear-gradient(#dff4e7,#c2e6d0);border-color:#67ad81;color:#246e3f}.package-segment.planned{background:linear-gradient(#fff5cf,#ffe9a3);border-color:#d6b34f;color:#806319}.package-segment.missed{background:linear-gradient(#fce4e6,#f2c9cd);border-color:#ce8a93;color:#9e3e4a}.package-segment.awaiting{border-style:dashed;background:#fff;color:#727a88}.package-segment.pending{border-style:dashed}.package-segment:hover{box-shadow:0 3px 8px #00000016;transform:translateY(-1px);color:inherit}.package-segment:focus-visible{outline:2px solid #0071e3;outline-offset:3px}.package-progress-counts{display:flex;gap:13px;flex-wrap:wrap;color:#777781;font-size:11px;margin:12px 0 0}.package-segment-detail{font-size:11px;line-height:1.5;color:#72727b;margin:12px 0 0;min-height:17px}.package-progress-note{font-size:12px;line-height:1.5;color:#73737d;margin:10px 0 0}.package-progress-empty{font-size:13px;color:#777781;line-height:1.6;margin:0}@media(max-width:620px){.package-progress-panel{padding:20px;margin-block:16px 20px}.package-progress-heading{display:block}.package-progress-heading h2{font-size:21px}.package-progress-heading p{margin-top:6px;font-size:11px}.package-legend{gap:10px 14px;margin-block:15px}.package-legend-item{font-size:10px}.package-segments{grid-template-columns:repeat(var(--segment-columns-small),minmax(0,1fr));gap:6px}.package-segment{height:28px;min-height:28px}.package-progress-title{gap:6px}.package-progress-title h3{font-size:14px}.package-progress-fraction{font-size:11px}.package-progress-counts{gap:8px 12px;font-size:10px}}@media(prefers-reduced-motion:reduce){.package-segment{transition:none;transform:none}}

.booking-help,.booking-access-control{padding:16px 18px;border:1px solid #ead6ac;background:#fffaf0;border-radius:18px;margin:12px 0;line-height:1.5}.booking-help p,.booking-access-control p{margin:7px 0 10px}.booking-help.success{background:#f0faf4;border-color:#c5e5d0}.booking-help a{max-width:100%;white-space:normal;overflow-wrap:anywhere}.booking-access-control input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:var(--blue,#007aff)}

.booking-access-control label.consent{display:flex;align-items:center;gap:10px;margin:0;min-height:32px}.booking-access-control label.consent strong{margin:0}.attendance-done{background:#e3f4e9;color:#14623c;border:1px solid #a9d2b9}.attendance-done:hover{background:#d5eddf}

/* Independent action groups retain spacing when buttons wrap onto a new row. */
.actions{gap:10px}.actions+.actions{margin-top:10px}.list-item>.actions{margin-top:10px}.list-item>button+.actions,.list-item>.button+.actions{margin-top:10px}.management-dialog-body>.actions,.management-dialog-body>button{margin-top:10px}.booking-row-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.client-booking-row .booking-row-actions{margin-top:12px}.confirm-delete-actions{gap:12px}.confirm-delete-actions button{flex:1;min-width:100px}.managed-client>.actions{margin-top:12px}

.recurring-booking{margin:16px 0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.recurring-booking>summary{cursor:pointer;padding:17px 20px;font-weight:650;min-height:52px;list-style-position:inside}.recurring-booking[open]>summary{border-bottom:1px solid var(--line)}.recurring-content{padding:18px;display:grid;gap:14px}.recurring-content p{margin:0}.recurring-content .form-field{margin:0}.recurring-patterns{display:grid;gap:10px}.recurring-pattern{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;align-items:center;gap:10px}.recurring-pattern input,.recurring-pattern select{min-width:0}.recurring-pattern:not(:has(button)){grid-template-columns:minmax(0,1fr) 110px}.recurring-result{display:grid;gap:14px}.recurring-result:empty{display:none}.recurring-dates{display:flex;flex-wrap:wrap;gap:8px}.recurring-warning{padding:14px;border:1px solid #ead6ac;background:#fffaf0;border-radius:14px;display:grid;gap:10px}.recurring-content>.text-button{justify-self:start}.recurring-content .actions{gap:12px}.recurring-content button{white-space:normal}@media(max-width:480px){.recurring-pattern{grid-template-columns:minmax(0,1fr) 100px}.recurring-pattern>.text-button{grid-column:1/-1;justify-self:start;min-height:36px}.recurring-pattern:not(:has(button)){grid-template-columns:minmax(0,1fr) 100px}.recurring-content{padding:14px}}

.tabs{gap:10px}.segmented{gap:8px}


.training-week,.training-month{gap:8px}

.calendar-preview .training-week,.manager-days{gap:8px}


.card>.actions{margin-top:16px}

/* Connection status remains visible before the training balances. */
.telegram-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0}.telegram-banner h2{margin:0 0 6px;font-size:20px}.telegram-banner p{margin:0;max-width:620px}.telegram-connect{min-height:48px;white-space:normal;flex-shrink:0}.telegram-connect.unlinked{background:#c92838;color:#fff;border:1px solid #af2030;box-shadow:0 3px 8px #c9283820}.telegram-connect.unlinked:hover{background:#af2030}.telegram-connect.linked{background:#e7f5ed;color:#16683c;border:1px solid #b7dfc9}.telegram-connect.linked:hover{background:#d5efdf}@media(max-width:560px){.telegram-banner{align-items:stretch;flex-direction:column;gap:14px}.telegram-banner .telegram-connect{width:100%}}

/* A clear, keyboard-accessible entry to the weekly/monthly booking form. */
.recurring-booking{border-color:#d6deef;box-shadow:0 5px 16px #16294e0c}.recurring-booking>summary.recurring-trigger{display:flex;align-items:center;gap:14px;padding:18px 20px;list-style:none;background:linear-gradient(135deg,#172b50,#293c62);color:#fff;min-height:88px;border:0}.recurring-trigger::-webkit-details-marker{display:none}.recurring-trigger::marker{content:''}.recurring-trigger:hover{filter:brightness(1.08)}.recurring-trigger:focus-visible{outline:3px solid #007aff;outline-offset:4px}.recurring-trigger-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:13px;background:#ffffff1f;border:1px solid #ffffff35}.recurring-trigger-icon svg{width:26px;height:26px}.recurring-trigger-copy{display:grid;gap:5px;min-width:0;flex:1}.recurring-trigger-copy strong{font-size:18px;line-height:1.3;letter-spacing:-.3px}.recurring-trigger-copy>span{font-size:13px;line-height:1.4;font-weight:400;color:#e2e9f5}.recurring-trigger-action{padding:9px 13px;background:#fff;color:#172b50;border-radius:10px;font-size:13px;font-weight:650;white-space:nowrap}.recurring-booking[open]>summary.recurring-trigger{border-bottom:1px solid #ffffff30}.recurring-shortcut{background:linear-gradient(135deg,#172b50,#293c62);color:#fff;border:1px solid #172b50;min-height:46px;box-shadow:0 3px 8px #172b5020}.recurring-shortcut:hover{background:#172b50}.recurring-owner-actions{margin:16px 0 20px}
@media(max-width:480px){.recurring-booking>summary.recurring-trigger{padding:16px;gap:12px;flex-wrap:wrap}.recurring-trigger-copy strong{font-size:17px}.recurring-trigger-copy>span{font-size:12px}.recurring-trigger-action{margin-left:56px}.recurring-owner-actions>button{flex:1 1 100%}}

.cabinet-trainer-profile{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--ink);margin:16px 0}.cabinet-trainer-profile>img{width:76px;height:86px;object-fit:cover;border-radius:16px;flex-shrink:0}.cabinet-trainer-profile>div{flex:1;min-width:0;display:grid;gap:5px}.cabinet-trainer-profile strong{font-size:21px}.cabinet-trainer-profile p{margin:0;line-height:1.5}.trainer-profile-action{font-size:13px;color:#0068d9}.client-link-editor{padding:16px;border:1px solid var(--line);border-radius:16px;margin:16px 0}.client-link-editor h3{margin-top:0}.client-personal-link{margin-top:6px;overflow-wrap:anywhere}.client-link-editor .actions{margin:12px 0}@media(max-width:480px){.cabinet-trainer-profile{gap:12px;padding:16px}.cabinet-trainer-profile .trainer-profile-action{display:none}.cabinet-trainer-profile strong{font-size:20px}}
.client-room-content>button:not(.text-button),.client-room-content>.button{width:100%;min-height:52px;font-size:17px;text-align:center;justify-content:center}.client-room-content>.small{margin:12px 0 0}

/* The room appears only inside the server-verified entry window. */
.client-live-room[hidden]{display:none}.client-live-room{border-color:#b8d5ff}.room-enter{animation:trainer-room-pulse 2.4s ease-in-out infinite}
@keyframes trainer-room-pulse{0%,100%{box-shadow:0 0 0 0 #0878f633}50%{box-shadow:0 0 0 7px #0878f600}}
@media(prefers-reduced-motion:reduce){.room-enter{animation:none}}

/* Availability colors retain their meaning when a day is selected or focused. */
.calendar-column{min-width:0}.training-date.has-booking,.own-time,.calendar-status-dot.has-booking{--status-bg:#e5f5eb;--status-border:#a7d7b8;--status-ink:#165c35}
.training-date.has-availability,.preview-time,.time-option:not(.own-time),.calendar-status-dot.has-availability{--status-bg:#e7f3ff;--status-border:#b4d8f7;--status-ink:#145386}
.training-date.no-availability,.calendar-status-dot.no-availability{--status-bg:#fff0f0;--status-border:#efc6ca;--status-ink:#9b303d}
.training-date.has-booking,.training-date.has-availability,.training-date.no-availability,.training-times .time-option,.preview-time{background:var(--status-bg);border:1px solid var(--status-border);color:var(--status-ink)}
.training-date span,.training-date small{color:inherit}.training-date.selected{outline:2px solid var(--status-ink);outline-offset:1px}.training-date:hover{filter:brightness(.97)}
.training-times .time-option.selected{background:#086bdc;color:#fff;border-color:#075dc1;box-shadow:0 0 0 2px #086bdc22}.training-times .time-option.selected::after{content:' ✓'}.training-times .time-option:focus-visible{outline-offset:3px}.training-times .time-option:not(.own-time):hover{filter:brightness(.96)}
.training-times .own-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px;border-radius:12px;text-align:center}.own-time strong{font-size:16px;font-weight:600}.own-time .small{font-size:11px;color:inherit}
.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:12px;margin:0 0 12px}.calendar-legend>div{display:flex;align-items:center;gap:6px}.calendar-status-dot{width:11px;height:11px;border-radius:4px;background:var(--status-bg);border:1px solid var(--status-border)}
.calendar-no-availability{font-size:13px;color:#9b303d;background:#fff0f0;border:1px solid #efc6ca;border-radius:12px;padding:12px 14px}
.calendar-booking-help{padding:12px 14px;border-radius:14px;margin:10px 0 0;font-size:12px}.calendar-booking-help>strong{font-size:13px}.calendar-booking-help p{font-size:12px;line-height:1.5;margin:5px 0 7px}.calendar-booking-help .button{display:inline;min-height:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media(max-width:480px){.calendar-legend{gap:7px 12px;font-size:11px}.training-month .training-date small{font-size:8px}.calendar-booking-help{padding:10px 12px}}

.purchase-layout-single{grid-template-columns:minmax(0,1fr);max-width:880px;margin-inline:0}

.promo-code-input.applied{background:#f4f4f6;box-shadow:inset 0 2px 4px #1d1d1f10,inset 0 -1px 0 #fff;border-color:#e1e1e6}.promo-code-input.applied::placeholder{color:#73737c;text-shadow:0 1px 0 #fff;opacity:1;font-size:13px}

.training-date small{overflow-wrap:normal;word-break:normal;line-height:1.3}

/* Keep booking inside the calendar, with recurring booking underneath. */
.calendar-inline-layout{grid-template-columns:minmax(0,1fr)}.calendar-booking-footer{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.calendar-booking-summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin-bottom:8px}.calendar-booking-summary>strong{font-size:15px;font-weight:600}.calendar-booking-footer>p{margin:8px 0 14px}.calendar-booking-footer .selected-dates:empty{display:none}.calendar-booking-footer .selected-dates{margin:0 0 14px}.calendar-booking-footer .selected-date:last-child{border-bottom:0}.calendar-booking-footer>#confirm-slots{display:block;min-width:210px;margin-left:auto}.calendar-inline-layout .recurring-booking{margin:14px 0 0}
@media(max-width:760px){.calendar-booking-summary{align-items:flex-start;flex-direction:column;gap:4px}.calendar-booking-footer>#confirm-slots{width:100%;min-width:0}.calendar-booking-footer .selected-date{gap:12px}}

/* Stronger color separation, with adjacent-month dates completing each week. */
.training-date.has-booking,.own-time,.calendar-status-dot.has-booking{--status-bg:#bce8c8;--status-border:#58a96f;--status-ink:#154e2b}.training-date.has-availability,.preview-time,.time-option:not(.own-time),.calendar-status-dot.has-availability{--status-bg:#d2e5ff;--status-border:#73a7e6;--status-ink:#174778}.training-date.has-booking{border-width:2px}.training-date.outside-month{opacity:.65}.training-date.outside-month:hover,.training-date.outside-month:focus-visible{opacity:1}

.training-date{position:relative}.training-date>.calendar-picked-count{position:absolute;top:4px;right:4px;padding:1px 5px;border-radius:8px;background:#086bdc;color:#fff;font-size:10px;font-weight:600;line-height:1.5}.training-date.has-selection{box-shadow:inset 0 0 0 1px #086bdc}.calendar-booking-footer .selected-dates{max-height:none;overflow:visible}
@media(max-width:480px){.training-date>.calendar-picked-count{top:2px;right:2px;padding:0 3px;font-size:8px}}
/* Working hours, in Moscow time; rows fit a 320px screen. */
.working-hours-dialog{width:min(680px,calc(100vw - 24px))}
.working-week{display:grid;gap:10px;margin:16px 0}
.working-day{border:1px solid #dce3ed;border-radius:14px;padding:12px;background:#f8faff}
.working-day-title{font-weight:600;margin:0;min-height:28px}
.working-day-content{padding-top:8px}
.working-day-content[hidden]{display:none}
.working-windows{display:grid;gap:8px}
.working-window{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:8px}
.working-window select{min-width:0;width:100%;margin:0}
.working-window .text-button{padding:8px 4px;font-size:12px}
.working-dates{margin-top:24px;border-top:1px solid #dce3ed;padding-top:18px}
.working-dates summary{cursor:pointer;font-weight:600;padding:8px 0}
.working-date-editor{margin:12px 0}
.working-date-list{display:grid;gap:10px;margin-top:16px}
.working-date-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #dce3ed;padding-top:8px;font-size:13px}
.working-hours-hint{padding:12px;border-radius:10px;background:#fff2d6;font-size:13px}
@media(max-width:480px){.working-window{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.working-window .text-button{grid-column:1/-1;justify-self:end;min-height:32px;padding:4px 8px}.working-window select{padding:8px 6px;font-size:14px}.manager-day{padding:8px 2px;min-width:0;overflow-wrap:normal}.manager-day strong{white-space:nowrap}}
.booking-details-dialog{width:min(420px,calc(100% - 28px));padding:32px 24px 24px}.booking-details-dialog h2{font-size:24px;margin:8px 0 18px}.booking-details-date{color:#202024!important;font-size:18px!important;font-weight:600;margin-bottom:8px}.booking-details-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 14px}.booking-details-actions button{width:100%;padding-inline:10px}.booking-change-status{margin:12px 0;font-size:13px!important;line-height:1.5}.booking-change-status:empty{display:none}.booking-change-status.error{color:#c52232!important}.booking-change-status.success{color:#197247!important}.booking-support-link{font-size:13px;color:#086bd6}.booking-details-dialog button:disabled{cursor:default;opacity:.45}.booking-details-dialog .trainer-account-close{min-height:34px;width:34px;height:34px;padding:0}.time-option.own-time{cursor:pointer}.time-option.own-time:hover{filter:brightness(.97)}

.compact-booking{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0!important;min-height:0}.compact-booking-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.compact-booking .booking-date{font-size:15px;font-weight:600;text-align:left;padding:5px 0;min-height:32px;color:var(--ink,#15171c)}.compact-booking .compact-booking-actions{display:flex;flex-wrap:nowrap;gap:6px;margin:0}.compact-booking .compact-booking-actions button{padding:7px 11px;min-height:34px;font-size:12px;border-radius:11px}@media(max-width:480px){.compact-booking{flex-wrap:wrap;gap:5px}.compact-booking .compact-booking-actions{margin-left:auto}}
.client-list-intro{display:flex;align-items:center;justify-content:space-between;gap:18px}.client-list-intro h2{margin:0}.client-list-intro p{margin:6px 0 0}.compact-client-list .managed-client{padding:13px 0}.client-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.client-heading-main{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;min-width:0}.client-name-inline{display:inline-flex;align-items:center;gap:3px;min-width:0}.client-name-inline strong{font-size:14px;overflow-wrap:anywhere}.client-row-tools{display:flex;align-items:center;gap:3px;flex:none}.client-icon-button{display:inline-grid;place-items:center;min-height:36px;width:36px;height:36px;border:0!important;border-radius:8px;padding:9px!important;background:transparent!important;color:#8b919b!important;box-shadow:none!important}.client-icon-button svg{display:block;width:17px;height:17px;flex:none}.client-icon-button:hover{color:#575e69!important;background:#f4f5f7!important}.client-name-input{box-sizing:border-box;width:210px;max-width:100%;min-height:34px;height:34px;padding:5px 8px!important;font-size:14px;margin:0!important}.client-email{overflow-wrap:anywhere}.managed-client .client-summary{margin:2px 0 8px;font-size:11px;line-height:1.6;color:#747b87}.managed-client>.client-primary-actions{margin-top:7px;gap:7px}.client-primary-actions button{min-height:36px;padding:8px 12px;font-size:12px;border-radius:10px}.client-promotion-dialog{width:min(700px,calc(100vw - 28px))}.client-promotion-dialog .card{padding:0;border:0;box-shadow:none}.client-promotion-dialog .assigned-code{font-size:21px}.client-promotion-dialog input[readonly]{background:#f5f6f8;color:#747b87}.client-notification-dialog{width:min(620px,calc(100vw - 28px))}.client-notification-list{max-height:48dvh;overflow:auto;border-top:1px solid #e6e8ed}.client-notification-row{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid #eef0f3}.client-notification-row>input,.client-notifications-master>input{flex:none;width:18px;height:18px;min-height:18px;margin:0;accent-color:#557ca9}.client-notification-title{min-height:34px;justify-content:flex-start;text-align:left;background:transparent;border:0;padding:6px 0;color:#4d5664;font-size:13px;font-weight:400;box-shadow:none}.client-notification-title:hover{text-decoration:underline}.client-notification-row small{font-size:10px;color:#8b919b}.client-notifications-master{display:flex;align-items:center;gap:12px;font-size:13px}.client-notification-text{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f7f9;border-radius:12px;padding:14px;font:13px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0}.client-notification-status{min-height:18px;color:#747b87}@media(max-width:600px){.client-heading-main{display:grid;gap:1px}.client-heading{gap:5px}.client-row-tools{gap:0}.client-icon-button{width:40px;height:40px;min-height:40px}.client-name-inline .client-icon-button{width:32px}.client-list-intro{align-items:flex-start;flex-direction:column;gap:12px}.managed-client>.client-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.client-primary-actions button{min-height:40px;padding:8px;font-size:11px}.client-email{font-size:10px}.client-notification-dialog .management-dialog-body{gap:9px}}
