:root{--app-height:calc(var(--vh,1vh) * 100);--visual-height:100vh;--visual-offset-top:0px;--ink:#18221f;--muted:#66736c;--faint:#f6f7f2;--paper:#fffefa;--court:#123d35;--court-2:#1d5a4d;--lime:#dfff3f;--clay:#c7643d;--sky:#d8eef1;--line:#d8ded5;--line-dark:#ffffff24;--shadow:0 18px 48px #123d3524;--danger:#a94429;--danger-strong:#87331e;--focus-ring:var(--court-2);--control-height-sm:36px;--control-height-md:44px;--control-height-lg:48px;--control-radius:8px;--control-gap:.45rem;--control-padding-sm:0 .75rem;--control-padding-md:0 1rem;--control-padding-lg:0 1.2rem;--motion-press:.11s;--motion-state:.18s;--ease-out-ui:cubic-bezier(.2, .82, .22, 1);--z-toast:9200;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#18221f;background:#eef1ec;font-family:Aptos,Bahnschrift,Segoe UI,sans-serif}*{box-sizing:border-box}html{overscroll-behavior:none;height:100%;overflow:hidden}body{overscroll-behavior:none;background:linear-gradient(115deg,#123d351f,#0000 34%),linear-gradient(#0000 52%,#c7643d0f),#eef1ec;height:100%;margin:0;overflow:hidden}html.login-screen-active,body.login-screen-active{overscroll-behavior-y:auto;background:var(--paper);height:auto;min-height:100%;overflow-y:auto}body.login-screen-active #root{overscroll-behavior-y:auto;background:var(--paper);min-height:100dvh;overflow-y:auto}body.pull-refresh-active:after{content:"Pull to refresh";z-index:1000;top:calc(.75rem + env(safe-area-inset-top,0px));min-height:34px;color:var(--court);pointer-events:none;opacity:.96;transform:translate(-50%, calc(var(--pull-refresh-distance,0px) * .18));background:#fffefaf0;border:1px solid #123d3529;border-radius:999px;justify-content:center;align-items:center;padding:0 .85rem;font-size:.78rem;font-weight:950;display:inline-flex;position:fixed;left:50%;box-shadow:0 12px 28px #123d3524}body.pull-refresh-ready:after{content:"Release to refresh";background:var(--lime)}html.modal-screen-active,body.modal-screen-active{overscroll-behavior:none;overflow:hidden}body.modal-screen-active .workbench{touch-action:none;overflow:hidden}body.modal-screen-active .modal-backdrop,body.modal-screen-active .create-modal-body,body.modal-screen-active .training-editor{touch-action:auto}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.skip-link{z-index:10000;top:calc(.5rem + env(safe-area-inset-top,0px));background:var(--court);color:#fff;min-height:44px;transform:translateY(calc(-100% - 1rem - env(safe-area-inset-top,0px)));border-radius:8px;align-items:center;padding:0 1rem;font-weight:900;transition:transform .15s ease-out;display:inline-flex;position:fixed;left:.5rem}.skip-link:focus-visible{transform:translateY(0)}:where(a,button,input,select,textarea,[role=button],[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}:where(button,a,[role=button]){touch-action:manipulation}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffefa;border-radius:8px;outline:none;padding:.78rem .85rem}input:focus,select:focus,textarea:focus{border-color:var(--court-2);box-shadow:0 0 0 3px #1d5a4d21}textarea{resize:vertical;min-height:112px}label{color:var(--muted);gap:.35rem;font-size:.86rem;font-weight:800;display:grid}h1,h2,h3,p{margin:0}small{color:var(--muted)}.login-shell{min-height:var(--app-height);place-items:center;padding:clamp(1rem,4vw,2rem);display:grid}.login-stage{width:min(1040px,100%);min-height:620px;box-shadow:var(--shadow);background:var(--paper);border:1px solid #123d351f;border-radius:18px;grid-template-columns:1.1fr 430px;gap:1rem;display:grid;overflow:hidden}.login-copy{background:linear-gradient(150deg, #dfff3f33, transparent 38%), linear-gradient(0deg, #d8eef12e, transparent 64%), var(--court);color:#fff;flex-direction:column;justify-content:flex-end;gap:1rem;min-height:620px;padding:clamp(1.2rem,5vw,3rem);display:flex}.brand-mark,.brand-icon{background:var(--lime);width:54px;height:54px;color:var(--court);border-radius:10px;place-items:center;display:grid}.login-copy h1{letter-spacing:0;max-width:10ch;font-size:clamp(3rem,9vw,6.6rem);line-height:.86}.login-copy p{color:#ffffffc7;max-width:520px;min-height:3.2em;font-size:1.05rem;line-height:1.45}.login-preview{flex-wrap:wrap;align-content:flex-start;gap:.55rem;min-height:88px;margin-top:1rem;display:flex}.login-preview span{border:1px solid var(--line-dark);background:#ffffff1a;border-radius:8px;align-items:center;gap:.45rem;min-height:40px;padding:0 .75rem;font-weight:900;display:inline-flex}.login-panel{box-shadow:none;background:0 0;border:0;align-self:center;padding:clamp(1rem,4vw,2rem)}.login-panel h2{font-size:2rem}.login-role-switch{z-index:3;border:1px solid var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#eef4ef;border-radius:8px;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid;position:relative}.login-role-option{min-height:42px;color:var(--court-2);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;font-weight:950;display:inline-flex;position:relative}.login-role-option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.login-role-option span{z-index:1;pointer-events:none;justify-content:center;align-items:center;gap:.4rem;display:inline-flex;position:relative}.login-role-option.active{background:var(--paper);color:var(--court);box-shadow:0 4px 14px #123d351a}.login-panel .eyebrow{color:var(--court-2)}.login-form-fields{z-index:1;position:relative}.stack{gap:.85rem;display:grid}.primary-action,.secondary-action,.icon-button,.app-nav button{cursor:pointer;border:0}.ui-button{border-radius:var(--control-radius);min-width:0;padding:var(--control-padding-md);color:var(--ink);font:inherit;cursor:pointer;isolation:isolate;transition:transform var(--motion-press) var(--ease-out-ui), background-color var(--motion-state) var(--ease-out-ui), border-color var(--motion-state) var(--ease-out-ui), box-shadow var(--motion-state) var(--ease-out-ui), color var(--motion-state) var(--ease-out-ui), opacity var(--motion-state) var(--ease-out-ui);border:1px solid #0000;justify-content:center;align-items:center;font-weight:900;line-height:1.1;display:inline-flex;position:relative;transform:translateZ(0)}.ui-button--sm{min-height:var(--control-height-sm);padding:var(--control-padding-sm);font-size:.86rem}.ui-button--md{min-height:var(--control-height-md)}.ui-button--lg{min-height:var(--control-height-lg);padding:var(--control-padding-lg)}.ui-button--icon{width:var(--control-height-sm);height:var(--control-height-sm);min-width:var(--control-height-sm);min-height:var(--control-height-sm);padding:0}.ui-button--full{width:100%}.ui-button--primary{background:var(--court);color:#fff;box-shadow:0 5px 12px #123d351f}.ui-button--secondary{color:var(--ink);background:#e6ede6;border-color:#123d3514}.ui-button--ghost{color:inherit;background:0 0}.ui-button--danger{color:var(--danger-strong);background:#a944291a;border-color:#a944292e}.ui-button__content,.ui-button__loading{justify-content:center;align-items:center;gap:var(--control-gap);min-width:0;display:inline-flex}.ui-button.is-loading .ui-button__content{visibility:hidden}.ui-button__loading{padding:inherit;white-space:nowrap;position:absolute;inset:0}.ui-spinner{flex:none;animation:.8s linear infinite ui-spinner-rotate}@keyframes ui-spinner-rotate{to{transform:rotate(360deg)}}.ui-button:disabled,.primary-action:disabled,.secondary-action:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.52;box-shadow:none}:where(.ui-button,.primary-action,.secondary-action,.icon-button,.logout-button,.app-nav button,.record-mini,.segmented-option,.level-pill-select):not(:disabled):active{transition-duration:var(--motion-press);transform:scale(.98)}@media (hover:hover){.ui-button--primary:not(:disabled):hover{background:var(--court-2);box-shadow:0 8px 18px #123d352b}.ui-button--secondary:not(:disabled):hover{background:#dce6dc;border-color:#123d3533}.ui-button--ghost:not(:disabled):hover{background:#123d3514}.ui-button--danger:not(:disabled):hover{background:#a9442929;border-color:#a9442952}}.primary-action,.secondary-action{min-height:var(--control-height-md);border-radius:var(--control-radius);justify-content:center;align-items:center;gap:.45rem;font-weight:900;display:inline-flex}.primary-action{background:var(--court);color:#fff}.secondary-action{color:var(--ink);background:#e6ede6}.secondary-action.compact{min-height:var(--control-height-sm);padding:var(--control-padding-sm)}.secondary-action.danger{color:var(--danger-strong);background:#a944291a;border:1px solid #a944292e}.error-text{color:#a94429;font-weight:800}.success-text{color:#16a34a;font-weight:700}.account-pill,.spot-pill{border:1px solid var(--line);min-height:28px;color:var(--muted);white-space:nowrap;background:#eef4ef;border-radius:8px;align-items:center;gap:.3rem;padding:0 .5rem;font-size:.75rem;font-weight:950;display:inline-flex}.account-pill.connected,.spot-pill{color:var(--court);background:#dfff3f52}.app-shell,.client-shell{overscroll-behavior:none;grid-template-columns:248px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.app-nav{background:linear-gradient(180deg, #dfff3f14, transparent 38%), var(--court);color:#fff;flex-direction:column;gap:.5rem;height:100vh;padding:1rem;display:flex;position:sticky;top:0}.brand-line{align-items:center;gap:.75rem;margin-bottom:1rem;font-weight:950;display:flex}.brand-line span:last-child{gap:.1rem;display:grid}.brand-line small{color:#ffffff94;text-transform:uppercase;font-size:.72rem}.app-nav button{min-height:var(--control-height-md);color:#ffffffad;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border-radius:8px;align-items:center;gap:.65rem;padding:0 .8rem;font-weight:900;display:flex;position:relative}@media (hover:hover){.app-nav button:hover{background:#ffffff14}}.app-nav button.active{background:var(--lime);color:var(--court)}.coach-nav-badge{background:var(--clay);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 .35rem;font-size:.68rem;font-weight:950;line-height:1;display:inline-grid}.nav-stats{grid-template-columns:1fr 1fr;gap:.5rem;margin-top:auto;display:grid}.nav-stats span{border:1px solid var(--line-dark);border-radius:8px;gap:.15rem;padding:.7rem;font-weight:950;display:grid}.nav-stats strong{font-size:1.35rem;line-height:1}.nav-stats small{color:#ffffff94;text-transform:uppercase;font-size:.72rem}.coach-chip{color:#ffffffb8;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.9rem;font-weight:800;display:flex}.coach-footer{gap:.55rem;display:grid}.logout-button{min-height:var(--control-height-md);border:1px solid var(--line-dark);color:#ffffffd1;cursor:pointer;background:#ffffff14;border-radius:8px;justify-content:flex-start;align-items:center;gap:.45rem;padding:0 .8rem;font-weight:900;display:flex}@media (hover:hover){.logout-button:hover{color:#fff;background:#ffffff24}}.workbench{--workbench-y-space:clamp(1.8rem, 4.8vw, 3rem);overscroll-behavior:none;min-width:0;padding:clamp(.9rem,2.4vw,1.5rem);overflow-y:auto}.orientation-lock-overlay{display:none}.workbench-metrics{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.workbench-metrics span,.date-pill,.panel-title>span{background:var(--paper);border:1px solid var(--line);min-height:36px;color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;gap:.35rem;padding:0 .65rem;font-weight:900;display:inline-flex}.workbench-metrics strong{color:var(--court)}.eyebrow{text-transform:uppercase;color:var(--clay);letter-spacing:0;font-size:.75rem;font-weight:950}.panel{border:1px solid var(--line);background:#fffefaf0;border-radius:10px;padding:1rem;box-shadow:0 10px 32px #123d3514}.panel-title,.profile-head,.calendar-toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.panel h2,.calendar-toolbar h2{letter-spacing:0;font-size:clamp(1.25rem,3vw,2rem)}.session-avatars{flex-shrink:0;align-items:center;display:flex}.session-avatar-stack{display:grid}.session-avatar-stack:not(:first-child){margin-left:-8px}.session-avatar-stack .avatar{border:2px solid #fffefa}.session-avatar-overflow{background:var(--line);width:42px;height:42px;color:var(--muted);border:2px solid #fffefa;border-radius:8px;place-items:center;margin-left:-8px;font-size:.72rem;font-weight:950;display:grid}.field-command-grid{grid-template-columns:minmax(280px,.95fr) minmax(320px,1.2fr);align-items:stretch;gap:1rem;display:grid}.field-primary{gap:.75rem;display:grid}@keyframes pulse{50%{transform:scale(.94)}}.today-panel{min-height:100%}.client-list,.compact-list,.timeline{gap:.55rem;display:grid}.client-row{border:1px solid var(--line);width:100%;min-height:76px;color:var(--ink);text-align:left;cursor:pointer;background:#fffefa;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.7rem;display:grid}@media (hover:hover){.client-row:hover{border-color:#123d3561;transform:translateY(-1px)}}.client-row span{gap:.15rem;display:grid}.avatar{background:var(--sky);color:var(--court);border:0;border-radius:8px;flex:none;place-items:center;padding:0;font-weight:950;display:grid;overflow:hidden}button.avatar{cursor:pointer}.avatar-sm{width:42px;height:42px}.avatar-md{width:48px;height:48px}.avatar-lg{width:74px;height:74px}.avatar-xl{width:96px;height:96px}.avatar img{object-fit:cover;width:100%;height:100%}.quick-actions{flex-wrap:wrap;gap:.5rem;display:flex}.quick-actions a{background:#e6ede6;border-radius:8px;align-items:center;gap:.42rem;min-height:40px;padding:0 .8rem;font-weight:900;display:inline-flex}.quick-actions-dark a{background:var(--court);color:#fff}.icon-button{width:var(--control-height-sm);height:var(--control-height-sm);color:var(--ink);background:#e6ede6;border-radius:8px;place-items:center;display:grid}.grid-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.crm-grid{grid-template-columns:minmax(280px,.78fr) minmax(360px,1.25fr) minmax(280px,.82fr);align-items:start;gap:1rem;display:grid}.crm-grid.two-col{grid-template-columns:minmax(340px,1fr) minmax(300px,.82fr)}.training-detail-hero-avatars{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.training-student-avatar{border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:2px;display:flex}.training-student-avatar span{color:#ffffffb3;text-overflow:ellipsis;white-space:nowrap;max-width:52px;font-size:.6rem;font-weight:850;overflow:hidden}.training-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.full-span{grid-column:1/-1}.student-chips{flex-wrap:wrap;gap:.4rem;display:flex}.student-chip-card{min-height:30px;color:var(--court);background:#e6ede6;border-radius:8px;align-items:center;gap:.45rem;padding:.3rem .55rem .3rem .3rem;font-size:.84rem;font-weight:800;display:inline-flex}.student-chip-card .avatar-sm{width:32px;height:32px}.training-notes-editor{border:1px solid var(--line);background:#fffefa;border-radius:10px;gap:.75rem;padding:.85rem;display:grid}.training-notes-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.training-notes-head h3{color:var(--court);font-size:.85rem;font-weight:950}.training-notes-textarea{box-sizing:border-box;width:100%;min-height:200px}.training-notes-readonly{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.6}.training-notes-actions{justify-content:flex-end;gap:.5rem;display:flex}@keyframes note-pulse{0%,to{opacity:.7}50%{opacity:.4}}.client-row{grid-template-columns:auto 1fr;min-height:70px}.profile-panel{background:linear-gradient(180deg, #d8eef170, transparent 34%), var(--paper);min-height:460px}.profile-head{border-bottom:1px solid var(--line);justify-content:flex-start;padding-bottom:1rem}.profile-head h2{font-size:2rem}.notes-copy{color:var(--muted);margin:1rem 0;line-height:1.55}.compact-list div,.timeline-row{border-top:1px solid var(--line);gap:.18rem;padding:.75rem 0;display:grid}.timeline-row{grid-template-columns:auto auto 1fr auto;align-items:center}.calendar-toolbar{border-bottom:1px solid var(--line);background:#fffefaf0;padding:1rem}.week-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.week-scroll{scrollbar-gutter:stable;background:#fbfcf7;min-height:620px;max-height:calc(100vh - 165px);position:relative;overflow:auto}.calendar-loading-status{z-index:30;pointer-events:none;justify-content:center;width:100%;height:0;display:flex;position:sticky;top:.75rem;left:0}.calendar-loading-status>span{min-height:36px;color:var(--court);background:#fffefaf5;border:1px solid #123d352e;border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .8rem;font-size:.82rem;font-weight:800;display:inline-flex;box-shadow:0 10px 24px #123d3524}.calendar-loading-icon{flex:none;animation:.9s linear infinite calendar-loading-spin}@keyframes calendar-loading-spin{to{transform:rotate(360deg)}}.week-track{transform:translate3d(var(--calendar-track-x,0px), 0, 0)}.week-track.is-animating{transition:transform .42s cubic-bezier(.2,.82,.22,1)}.week-grid{min-width:calc(68px + var(--calendar-days) * 128px);grid-template-columns:68px repeat(var(--calendar-days), minmax(128px, 1fr));grid-template-rows:58px calc(var(--calendar-hours) * var(--hour-height));display:grid}.week-corner,.day-head,.time-gutter{z-index:2;background:#f1f5ef;position:sticky;top:0}.week-corner{z-index:4;border-right:1px solid var(--line);border-bottom:1px solid var(--line);left:0}.day-head{border-bottom:1px solid var(--line);border-right:1px solid var(--line);align-content:center;gap:.1rem;padding:.65rem .75rem;display:grid}.day-head span{color:var(--muted);font-size:.82rem;font-weight:850}.day-head.is-today{background:#eff8cb}.mobile-calendar-header{display:none}.time-gutter{z-index:3;grid-area:2/1;grid-template-rows:repeat(var(--calendar-hours), var(--hour-height));border-right:1px solid var(--line);display:grid;left:0}.time-gutter span{color:var(--muted);text-align:right;padding:.35rem .45rem 0 0;font-size:.72rem;font-weight:900}.day-column{height:calc(var(--calendar-hours) * var(--hour-height));min-height:calc(var(--calendar-hours) * var(--hour-height));border-right:1px solid var(--line);background:#fffefab8;position:relative;overflow:hidden}.day-column.is-today{background:#dfff3f14}.calendar-drop-row{height:var(--hour-height);box-sizing:border-box;-webkit-tap-highlight-color:transparent;border-bottom:1px solid #d8ded5cc}@media (hover:hover){.calendar-drop-row:hover{background:#dfff3f2b}}.calendar-event{z-index:1;box-sizing:border-box;border:1px solid #123d353d;border-left:5px solid var(--court);width:auto;color:var(--ink);text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#e6f4e0;border-radius:8px;align-content:start;gap:.15rem;padding:.48rem .55rem;display:grid;position:absolute;left:6px;right:6px;overflow:hidden;box-shadow:0 8px 18px #123d351f}@media (hover:hover){.calendar-event:hover:not(.is-dragging){transform:translateY(-1px);box-shadow:0 12px 24px #123d352e}}.calendar-event:active:not(.is-dragging){transition:transform var(--motion-press) var(--ease-out-ui);transform:scale(.99)}.calendar-event.is-dragging{transition:none;transform:none}.calendar-event:active{cursor:grabbing}.calendar-event.level-beginner{background:#e4f0f4;border-left-color:#6daabd}.calendar-event.level-intermediate{border-left-color:var(--court);background:#e6f4e0}.calendar-event.level-hard{border-left-color:var(--clay);background:#fce8df}.calendar-event.level-none{border-left-color:var(--muted);background:#f3f4f0}.calendar-event strong,.calendar-event span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-event span{color:var(--muted);font-size:.78rem;font-weight:850}.detail-identity{border:1px solid var(--line);background:#fbfcf7;border-radius:8px;align-items:center;gap:.8rem;padding:.75rem;display:flex}.detail-identity div{gap:.2rem;min-width:0;display:grid}.detail-identity strong{font-size:1.1rem}.modal-backdrop{z-index:20;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#0c181573;place-items:center;padding:1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.training-modal{background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto;width:min(640px,100%);max-height:min(860px,92vh);display:grid;overflow:hidden;box-shadow:0 28px 80px #0c18154d}.training-modal .modal-close-button{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:999px;flex:none}.training-modal .modal-close-icon{flex:none;display:block}.training-modal .modal-close-button:not(:disabled):active{background:#123d351a}@media (hover:hover){.training-modal .modal-close-button:not(:disabled):hover{color:var(--ink);box-shadow:none;background:#123d3512;border-color:#0000}}.training-editor{scrollbar-gutter:stable;min-height:0;margin-top:1rem;padding-right:.25rem;overflow-y:auto}.training-editor::-webkit-scrollbar{width:8px}.training-editor::-webkit-scrollbar-thumb{background:#123d3538;border-radius:999px}.training-editor::-webkit-scrollbar-track{background:#123d350d;border-radius:999px}.recurrence-count{color:var(--muted);align-items:center;gap:.5rem;font-size:.84rem;display:flex}.recurrence-count select{border:1px solid var(--line);color:var(--ink);background:#fbfcf7;border-radius:8px;padding:.4rem .6rem;font-size:.9rem;font-weight:600}.editor-actions{flex-wrap:wrap;gap:.6rem;margin-top:.25rem;display:flex}.empty-state{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:8px;padding:1rem}.accent-sky{background:#8ecbd4}.accent-lime{background:#b8d91a}.accent-clay{background:var(--clay)}.accent-muted{background:var(--line)}.ring-sky{border-color:#8ecbd4}.ring-clay{border-color:var(--clay)}.ring-muted{border-color:var(--line)}.pill-sky{color:#1c6d82;background:#d8eef1a6}.pill-lime{color:#4a6d0a;background:#dfff3f59}.pill-clay{color:#8b3a1a;background:#c7643d21}.pill-muted{color:var(--muted);background:#66736c1a}.edit-profile-btn{opacity:0;flex-shrink:0;transition:opacity .2s,transform .2s,background .15s;transform:translate(-4px)}.edit-profile-btn:focus-visible{opacity:1;transform:translate(0)}.next-badge{color:var(--court-2);background:#1d5a4d12;border:1px solid #1d5a4d14;border-radius:6px;align-items:center;gap:.3rem;padding:.22rem .65rem;font-size:.72rem;font-weight:850;display:inline-flex}@media (hover:hover){.chip-whatsapp:hover{background:#e7f7e9;border-color:#25d366}.chip-telegram:hover{background:#e8f1fe;border-color:#2aabee}.chip-phone:hover{border-color:var(--court);background:#edf2e9}.chip-sms:hover{border-color:var(--clay);background:#fef5ea}}.dot-sky{background:#d8eef14d;border-color:#8ecbd4}.dot-lime{background:#dfff3f26;border-color:#b8d91a}.dot-clay{border-color:var(--clay);background:#c7643d14}.dot-muted{border-color:var(--line)}.create-modal-body{-webkit-overflow-scrolling:touch;gap:.55rem;min-height:0;padding:.75rem 1.25rem;display:grid;overflow-y:auto}.photo-input-field{gap:.35rem;min-width:0;display:grid;overflow:hidden}.photo-input-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.78rem;font-weight:700;overflow:hidden}.photo-lightbox-backdrop{z-index:30;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000000eb;justify-content:center;align-items:center;padding:2rem;animation:.2s lightbox-fade-in;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.photo-lightbox-image{cursor:default;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:4px;width:90vw;max-width:1100px;height:85dvh;box-shadow:0 4px 32px #0006}.photo-lightbox-close{z-index:1;width:var(--control-md);height:var(--control-md);color:#fff;cursor:pointer;background:#ffffff24;border:none;border-radius:50%;place-items:center;transition:background .15s;display:grid;position:absolute;top:1rem;right:1rem}@media (hover:hover){.photo-lightbox-close:hover{background:#ffffff3d}}@media (width<=720px){.photo-lightbox-backdrop{padding:1rem;padding-top:max(3.5rem, env(safe-area-inset-top,0px));align-items:flex-start}.photo-lightbox-close{top:max(.75rem, env(safe-area-inset-top,0px));right:max(.75rem, env(safe-area-inset-right,0px))}.photo-lightbox-backdrop img{max-width:94vw;max-height:75dvh}}.photo-input-field input[type=file],.android-photo-trigger{color:var(--text);background:var(--bg);border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;width:100%;padding:.45rem .6rem;font-size:.85rem;overflow:hidden}.android-photo-trigger-button{background:var(--card);color:var(--text);cursor:pointer;border:none;border-radius:5px;margin-right:.6rem;padding:.25rem .6rem;font-family:inherit;font-size:.8rem}.photo-input-field input[type=file]::file-selector-button{background:var(--card);color:var(--text);cursor:pointer;border:none;border-radius:5px;margin-right:.6rem;padding:.25rem .6rem;font-family:inherit;font-size:.8rem}.android-photo-trigger{text-align:left;cursor:pointer;align-items:center;gap:0;font-family:inherit;display:flex}.android-photo-trigger-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.photo-input-hidden{display:none}.android-photo-sheet-backdrop{z-index:1200;background:#123d3547;align-items:end;padding:.75rem;display:grid;position:fixed;inset:0}.android-photo-sheet{background:var(--paper);border:1px solid var(--line);border-radius:12px;gap:.35rem;width:min(100%,420px);margin:0 auto;padding:.55rem;display:grid;box-shadow:0 18px 44px #123d352e}.android-photo-sheet button{background:var(--faint);min-height:48px;color:var(--ink);border:0;border-radius:8px;justify-content:flex-start;align-items:center;gap:.65rem;padding:0 .9rem;font-family:inherit;font-weight:900;display:flex}.android-photo-sheet .android-photo-cancel{background:#e6ede6;justify-content:center}.photo-crop-modal{border:1px solid var(--line);background:var(--paper);border-radius:10px;gap:.85rem;width:min(100%,460px);padding:1rem;display:grid;box-shadow:0 24px 60px #123d3538}.photo-crop-stage{aspect-ratio:1;cursor:grab;-webkit-user-select:none;user-select:none;background:#0f211d;border-radius:8px;position:relative;overflow:hidden}.photo-crop-stage:active,.photo-crop-stage.dragging{cursor:grabbing}.photo-crop-stage img{object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute;top:50%;left:50%}.photo-crop-frame{pointer-events:none;border:2px solid #ffffffeb;border-radius:4px;position:absolute;inset:0}.student-search-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;border:1px solid var(--line);background:var(--paper);border-radius:8px;gap:.3rem;max-height:clamp(170px,30vh,260px);padding:.3rem;display:grid;overflow-y:auto}.student-search-list::-webkit-scrollbar{width:8px}.student-search-list::-webkit-scrollbar-thumb{background:#123d3538;border-radius:999px}.student-search-list::-webkit-scrollbar-track{background:#d8ded55c;border-radius:999px}.settings-profile{gap:1rem;display:grid}.settings-identity{background:linear-gradient(135deg, #dfff3f29, transparent 58%), linear-gradient(225deg, #8ecbd43d, transparent 52%), var(--faint);border:1px solid var(--line);border-radius:12px;align-items:center;gap:1rem;padding:1rem;display:flex}.settings-identity-copy{gap:.2rem;min-width:0;display:grid}.settings-identity-copy strong{color:var(--court);text-overflow:ellipsis;white-space:nowrap;font-size:1.2rem;overflow:hidden}.settings-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.push-setting{border:1px solid var(--line);background:#fbfdf8;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.push-setting-copy{align-items:flex-start;gap:.75rem;min-width:0;display:flex}.push-setting-icon{width:36px;height:36px;color:var(--court);background:#e6ede6;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.push-setting.enabled .push-setting-icon{color:#4f6500;background:#b8d91a38}.push-setting.blocked .push-setting-icon,.push-setting.error .push-setting-icon{color:#a94429;background:#a944291f}.push-setting-copy div{gap:.18rem;min-width:0;display:grid}.push-setting-copy strong{color:var(--court);font-size:.98rem}.push-setting-copy small{color:var(--ink);font-weight:900}.push-setting-copy p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.35}.push-setting button{flex:none}.push-setting button:disabled{cursor:not-allowed;opacity:.72}.maps-link-inline{color:var(--court);font-size:.78rem;font-weight:600;text-decoration:none}@media (hover:hover){.maps-link-inline:hover{text-decoration:underline}}.client-hero{background:linear-gradient(125deg, #dfff3f38, transparent 42%), linear-gradient(0deg, #d8eef13d, transparent 70%), var(--court);color:#fff;align-content:end;gap:.75rem;min-height:260px;display:grid}.client-hero h2{font-size:clamp(2rem,6vw,4rem);line-height:.95}.client-hero p:not(.eyebrow){color:#ffffffc2}.client-notifications{grid-column:1/-1;gap:.75rem;min-width:0;display:grid}.client-session-list{gap:.75rem;display:grid}.client-session-card{border:1px solid var(--line);background:#fbfcf7;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:.8rem;padding:.85rem;display:grid}.client-session-card div{gap:.25rem;display:grid}.client-session-detail{gap:.85rem;margin-top:1rem;display:grid}.client-session-info-grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.client-session-students{align-items:center;gap:0;min-height:34px;display:flex!important}.client-session-message{border:1px solid var(--line);color:var(--muted);background:#fbfcf7;border-radius:8px;padding:.8rem;line-height:1.45}.client-session-meta{grid-template-columns:repeat(2,1fr);gap:.65rem;display:grid}.client-session-meta span{border:1px solid var(--line);background:#fbfcf7;border-radius:8px;place-items:center;gap:.1rem;min-height:72px;font-weight:950;display:grid}.client-session-meta small{text-transform:uppercase;font-size:.72rem}@keyframes rosterFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.app-shell,.client-shell{height:var(--app-height);min-height:var(--app-height);grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;position:fixed;inset:0 0 auto;overflow:hidden}.app-nav{z-index:3;height:auto;padding:.5rem .5rem calc(.7rem + env(safe-area-inset-bottom,0px));border-top:1px solid #123d352e;order:2;grid-template-columns:repeat(5,minmax(54px,1fr));display:grid;position:static;top:auto;bottom:auto}.brand-line,.coach-footer,.nav-stats,.app-nav .nav-desktop-only{display:none}.app-nav button{flex-direction:column;justify-content:center;gap:.2rem;min-height:56px;padding:.35rem .2rem;font-size:.7rem}.app-nav button svg{flex-shrink:0;width:20px;height:20px}.app-nav .coach-nav-badge{min-width:18px;height:18px;margin:0;padding:0 .28rem;font-size:.62rem;position:absolute;top:3px;left:calc(50% + 6px)}.workbench{-webkit-overflow-scrolling:touch;overscroll-behavior-y:none;flex-direction:column;min-height:0;display:flex;overflow-y:auto}.app-shell.landscape-locked .orientation-lock-overlay,.client-shell.landscape-locked .orientation-lock-overlay{z-index:60;color:var(--ink);background:#fbfcf7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.orientation-lock-overlay div{text-align:center;justify-items:center;gap:.55rem;max-width:280px;display:grid}.orientation-lock-overlay svg{color:var(--court)}.orientation-lock-overlay h2{margin:0;font-size:1.15rem}.orientation-lock-overlay p{color:var(--muted);margin:0;font-weight:800;line-height:1.4}.crm-grid,.crm-grid.two-col{flex:1;grid-template-columns:1fr;min-height:0;overflow-y:auto}.client-session-card,.client-session-info-grid{grid-template-columns:1fr}.week-scroll{max-height:none}}@media (width<=720px){:root{--mobile-modal-bottom-gap:calc(1.25rem + env(safe-area-inset-bottom,0px))}html.login-screen-active,body.login-screen-active{background:var(--paper)}body.modal-screen-active .app-nav{display:none}.client-shell{grid-template-rows:minmax(0,1fr) auto}.client-session-modal .detail-identity{min-width:0}.modal-backdrop{padding:calc(.75rem + env(safe-area-inset-top,0px)) .75rem var(--mobile-modal-bottom-gap);place-items:start center;display:grid;overflow:hidden}.modal-backdrop:focus-within{padding-bottom:var(--mobile-modal-bottom-gap)}.training-modal{width:100%;max-width:100%;max-height:calc(var(--app-height) - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));grid-template-rows:auto minmax(0,1fr) auto;margin:0 auto;display:grid;overflow:hidden}.training-modal .panel-title{padding-bottom:.75rem}.training-modal .training-editor{-webkit-overflow-scrolling:touch;min-height:0;margin-top:0;padding:.25rem .75rem .35rem;overflow:hidden auto}.training-modal label,.training-modal input,.training-modal select,.training-modal textarea,.training-modal .grid-two{min-width:0;max-width:100%}.training-modal .grid-two{grid-template-columns:minmax(0,1fr);gap:.65rem;overflow:visible}.training-modal .grid-two>label{width:100%;min-width:0;max-width:100%;overflow:hidden}.training-modal input[type=date],.training-modal input[type=time]{box-sizing:border-box;inline-size:100%;min-inline-size:0;max-inline-size:100%;width:100%;max-width:100%;display:block;min-width:0!important}@supports (-webkit-touch-callout:none){.training-modal input[type=date],.training-modal input[type=time]{inline-size:-webkit-fill-available;max-inline-size:-webkit-fill-available}}.training-modal .editor-actions{z-index:1;background:var(--paper);border-top:1px solid var(--line);padding:.75rem 1rem calc(.9rem + env(safe-area-inset-bottom,0px));border-radius:0 0 10px 10px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:stretch;gap:.5rem;margin:0;display:grid;overflow:hidden;box-shadow:0 -10px 24px #123d3514}.training-modal .editor-actions button{white-space:nowrap;gap:.25rem;width:100%;min-width:0;min-height:44px;padding:0 .45rem;font-size:.78rem;line-height:1.1}.training-modal .editor-actions button svg{flex-shrink:0;width:15px;height:15px}@media (display-mode:standalone){.training-modal .editor-actions{padding-top:.65rem;padding-bottom:max(.7rem, calc(env(safe-area-inset-bottom,0px) - 10px))}}.create-modal-body{-webkit-overflow-scrolling:touch;min-height:0;padding:.65rem 1rem;overflow-y:auto}.login-shell{height:auto;min-height:max(100svh, var(--app-height));background:var(--paper);-webkit-overflow-scrolling:touch;padding:calc(.75rem + env(safe-area-inset-top,0px)) .75rem calc(2rem + env(safe-area-inset-bottom,0px));place-items:start center;overflow:visible}.login-stage{background:var(--paper);grid-template-columns:1fr;min-height:auto;overflow:visible}.login-copy{min-height:280px}.login-panel{padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));align-self:stretch}@media (display-mode:standalone){html.login-screen-active,body.login-screen-active{overscroll-behavior-y:auto;background:var(--paper);height:auto;min-height:100%;overflow-y:auto}body.login-screen-active #root{min-height:var(--app-height);overscroll-behavior-y:auto;background:var(--paper);overflow-y:auto}.login-shell{min-height:var(--app-height);overscroll-behavior-y:auto;padding:calc(.75rem + env(safe-area-inset-top,0px)) .75rem calc(1rem + env(safe-area-inset-bottom,0px));place-items:start center;overflow-y:auto}.login-stage{box-shadow:none;border:0}.login-copy{min-height:220px;padding:1rem;display:flex}html.keyboard-active .login-stage:focus-within .login-copy{display:none}.login-panel{padding-top:calc(.5rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.login-panel h2{font-size:clamp(1.8rem,10vw,2.35rem)}}html.standalone-app.login-screen-active body.login-screen-active,html.standalone-app.login-screen-active body.login-screen-active #root{overscroll-behavior-y:auto;min-height:100%;overflow-y:auto}html.standalone-app.login-screen-active .login-shell{min-height:var(--app-height);overscroll-behavior-y:auto;overflow-y:auto}html.standalone-app.login-screen-active .login-copy{min-height:220px;padding:1rem;display:flex}html.standalone-app.login-screen-active.keyboard-active .login-stage:focus-within .login-copy{display:none}html.standalone-app.login-screen-active.keyboard-active .login-shell{height:var(--visual-height);min-height:var(--visual-height);padding-top:calc(.55rem + env(safe-area-inset-top,0px));padding-bottom:1rem}html.standalone-app.login-screen-active.keyboard-active .login-stage{min-height:auto;box-shadow:none;border:0}html.standalone-app.login-screen-active.keyboard-active .login-copy{display:none}.calendar-toolbar{flex-direction:column;align-items:flex-start}.week-scroll{touch-action:pan-y;-webkit-user-select:none;user-select:none;height:100%;min-height:0;max-height:none;overflow:hidden auto}.mobile-week-corner{z-index:10;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f1f5ef;width:54px;height:58px;margin-bottom:-58px;display:block;position:sticky;top:0;left:0}.mobile-calendar-header{z-index:8;pointer-events:none;background:#f1f5ef;height:58px;margin-bottom:-58px;margin-left:54px;display:block;position:sticky;top:0;overflow:hidden}.mobile-calendar-header-track{width:calc(100% * var(--calendar-track-days) / var(--calendar-visible-days));will-change:transform;height:100%;display:flex}.mobile-calendar-header-track.is-animating{transition:transform .42s cubic-bezier(.2,.82,.22,1)}.mobile-calendar-day{flex:0 0 calc(100% / var(--calendar-track-days));border-right:1px solid var(--line);border-bottom:1px solid var(--line);box-sizing:border-box;background:#f1f5ef;align-content:center;gap:.1rem;padding:.55rem .45rem;display:grid}.mobile-calendar-day span{color:var(--muted);font-size:.82rem;font-weight:850}.mobile-calendar-day.is-today{background:#eff8cb}.mobile-time-gutter{z-index:3;width:54px;height:calc(var(--calendar-hours) * var(--hour-height));pointer-events:none;position:absolute;top:58px;left:0}.week-track{width:calc((100% - 54px) * var(--calendar-track-days) / var(--calendar-visible-days));will-change:transform;margin-left:54px;display:flex}.week-track>.week-grid{flex:0 0 100%;width:100%}.day-head{padding:.55rem .45rem}.week-grid{grid-template-columns:repeat(var(--calendar-days), minmax(0, 1fr));min-width:0}.week-grid>.day-head{opacity:0;pointer-events:none}.time-gutter span{padding-right:.3rem;font-size:.66rem}.calendar-event{padding:.42rem .45rem;left:4px;right:4px}.workbench-metrics{justify-content:flex-start}.session-avatar-stack:not(:first-child){margin-left:-10px}.grid-two,.timeline-row,.training-detail-grid{grid-template-columns:1fr}.settings-identity{align-items:flex-start}.push-setting{flex-direction:column;align-items:stretch}.push-setting button,.settings-actions .primary-action{width:100%}.app-nav button svg{width:18px;height:18px}.training-detail-hero-avatars{order:-1}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:1rem}}@supports (-webkit-touch-callout:none){@media (width<=720px){html.ios-login-keyboard-active.login-screen-active,html.ios-login-keyboard-active body.login-screen-active,html.ios-login-keyboard-active body.login-screen-active #root{height:var(--visual-height);min-height:var(--visual-height);overscroll-behavior:none;overflow:hidden}html.ios-login-keyboard-active.login-screen-active .login-shell{height:var(--visual-height);min-height:var(--visual-height);padding:calc(.55rem + env(safe-area-inset-top,0px)) .75rem calc(.75rem + env(safe-area-inset-bottom,0px));place-items:start center;overflow:hidden}html.ios-login-keyboard-active.login-screen-active .login-stage{min-height:auto;box-shadow:none;border:0}html.ios-login-keyboard-active.login-screen-active .login-copy{display:none}html.ios-login-keyboard-active.login-screen-active .login-panel{padding-top:calc(.5rem + env(safe-area-inset-top,0px));padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px));align-self:start}.login-copy{transition:min-height .2s,padding .2s}html.keyboard-active .login-stage:focus-within .login-copy{min-height:104px;padding:1rem}html.keyboard-active .login-stage:focus-within .brand-mark{width:44px;height:44px}html.keyboard-active .login-stage:focus-within .login-copy h1,html.keyboard-active .login-stage:focus-within .login-copy>p:not(.eyebrow),html.keyboard-active .login-stage:focus-within .login-preview{display:none}}}@media (pointer:coarse){.ui-button--sm,.ui-button--icon,.secondary-action.compact,.primary-action.compact,.icon-button,button.avatar-sm{min-width:44px;min-height:44px}.login-role-option{min-height:44px}}.route-fallback{min-height:70vh;color:var(--muted);justify-content:center;align-items:center;gap:.75rem;font-weight:700;display:flex}.route-fallback-pulse{background:var(--court-2);border-radius:50%;width:12px;height:12px;animation:1s ease-in-out infinite route-fallback-pulse}@keyframes route-fallback-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.error-boundary{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:70vh;padding:2rem 1.5rem;display:flex}.error-boundary h1{font-size:1.4rem}.error-boundary p{max-width:34rem;color:var(--muted)}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.offline-banner{z-index:9000;left:50%;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));background:var(--ink);color:#fff;min-height:44px;box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:.5rem;padding:0 1rem;font-size:.85rem;font-weight:700;display:inline-flex;position:fixed;transform:translate(-50%)}.ui-toast-viewport{z-index:var(--z-toast);right:max(.75rem, env(safe-area-inset-right,0px));bottom:calc(.75rem + env(safe-area-inset-bottom,0px));pointer-events:none;gap:.6rem;width:min(390px,100vw - 1.5rem);display:grid;position:fixed}.ui-toast{min-height:var(--control-height-lg);background:var(--paper);color:var(--ink);pointer-events:auto;animation:ui-toast-enter var(--motion-state) var(--ease-out-ui);border:1px solid #123d3529;border-left-width:4px;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.5rem .55rem .5rem .75rem;display:grid;box-shadow:0 16px 42px #123d3533}.ui-toast--success{border-left-color:var(--court-2)}.ui-toast--error{border-left-color:var(--danger)}.ui-toast--info{border-left-color:#6daabd}.ui-toast--success .ui-toast__icon{color:var(--court-2)}.ui-toast--error .ui-toast__icon{color:var(--danger)}.ui-toast--info .ui-toast__icon{color:#397f92}.ui-toast__message{min-width:0;font-weight:800;line-height:1.3}.ui-toast__action{min-height:var(--control-height-sm);border-radius:var(--control-radius);color:var(--court);padding:var(--control-padding-sm);cursor:pointer;background:#123d3514;border:0;font-weight:950}.ui-toast__actions{align-items:center;gap:.35rem;display:inline-flex}.ui-toast__dismiss{color:var(--muted)}@keyframes ui-toast-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ui-spinner{animation:none!important}}
