.ot-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin:24px 0; }
.ot-intro h3 { margin:0; font-size:1.6rem; }
.ot-search,.ot-editor { display:grid; gap:16px; color:var(--ink); }
.ot-search details { border-block:1px solid var(--line); padding-block:16px; }
.ot-search summary { cursor:pointer; padding:12px 0; font-weight:600; }
.ot-search fieldset,.ot-editor fieldset { margin:16px 0; padding:0; border:0; }
.ot-search legend,.ot-editor legend { margin-bottom:12px; font-weight:600; }
.ot-choices { display:flex; flex-wrap:wrap; gap:8px; }
.ot-chip { display:flex; align-items:center; gap:8px; min-height:48px; padding:10px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); cursor:pointer; }
.ot-chip:has(input:checked) { background:var(--soft); border-color:var(--primary-dark); color:var(--primary-dark); }
.ot-chip input { width:18px; height:18px; accent-color:var(--primary-dark); flex-shrink:0; }
.ot-chip:focus-within { outline:2px solid var(--primary-dark); outline-offset:3px; }
.ot-times { display:flex; gap:16px; flex-wrap:wrap; }
.ot-times label { flex:1; min-width:120px; }
.ot-search input[type=search],.ot-editor input[type=text],.ot-times input,.ot-search select,.ot-editor input:not([type]) { width:100%; min-height:48px; margin-top:8px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:12px; }
.ot-results { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:16px; margin:24px 0; }
.ot-result { border:1px solid var(--line); background:var(--surface); border-radius:16px; padding:20px; }
.ot-result header { display:flex; align-items:center; gap:12px; }
.ot-result header h4 { margin:0; font-size:1.15rem; overflow-wrap:anywhere; }
.ot-result header p { margin:6px 0; color:var(--primary-dark); }
.ot-result img,.ot-avatar { border-radius:50%; width:56px; height:56px; object-fit:cover; flex-shrink:0; background:var(--soft); }
.ot-summary { border-left:3px solid var(--primary-dark); padding-left:16px; margin:20px 0; }
.ot-summary h4 { margin-bottom:12px; }
#openTrainingEditor { max-width:640px; width:calc(100% - 32px); max-height:calc(100dvh - 40px); overflow:auto; }
#openTrainingEditor::backdrop { background:rgba(0,0,0,.65); }
.ot-editor button,.ot-search button,.ot-result button { min-height:48px; }

[data-ot-more][hidden] { display:none !important; }

.ot-intro .button.primary,.ot-search .button.primary,.ot-editor .button.primary { background:var(--primary-dark); color:#fff; }
html[data-theme="dark"] .ot-intro .button.primary,html[data-theme="dark"] .ot-search .button.primary,html[data-theme="dark"] .ot-editor .button.primary { color:#0b1220; }

.ot-avatar { display:grid; place-items:center; font-weight:700; color:var(--ink); }
#training-community .training-community-tabs button { min-height:48px; padding-inline:12px; }
#training-community .training-community-tabs button:focus-visible { outline:2px solid var(--primary-dark); outline-offset:-3px; }

.ot-sport-options { max-height:220px; overflow:auto; margin-top:12px; padding:4px; }
.ot-chip[hidden] { display:none !important; }
.ot-editor input[type=search] { width:100%; min-height:48px; margin-block:8px; padding:12px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:10px; }
.ot-chip { box-sizing:border-box; padding:8px 10px; }
.ot-editor p,.ot-editor fieldset { margin:0; }
.ot-editor p:empty { display:none; }
.ot-editor legend { margin-bottom:8px; }
.ot-editor .ot-sport-options { max-height:176px; }

#openTrainingRequest { width:calc(100% - 32px); max-width:600px; max-height:calc(100dvh - 40px); overflow:auto; }
#openTrainingRequest::backdrop { background:rgba(0,0,0,.65); }
.ot-request-thread { display:flex; flex-direction:column; gap:12px; max-height:40dvh; overflow:auto; margin-block:16px; }
.ot-request-bubble { max-width:88%; align-self:flex-start; padding:12px; border-radius:16px; background:var(--surface); border:1px solid var(--line); overflow-wrap:anywhere; }
.ot-request-bubble.outgoing { align-self:flex-end; background:var(--soft); }
.ot-request-bubble p { margin:0 0 8px; white-space:pre-wrap; }
.ot-request-bubble small { color:var(--ink-muted); }
.ot-request-form { display:grid; gap:12px; margin-block:16px; }
.ot-request-form textarea { width:100%; padding:12px; min-height:90px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.ot-request-form[hidden] { display:none; }
#openTrainingRequest button { min-height:48px; }
#openTrainingRequest .button.primary,.ot-result .button.primary { background:var(--primary-dark); color:#fff; }
html[data-theme="dark"] #openTrainingRequest .button.primary,html[data-theme="dark"] .ot-result .button.primary { color:#0b1220; }
.ot-result [data-ot-request-recipient] { margin-block:8px; }
#openTrainingDetails,#openTrainingSelection { width:calc(100% - 32px); max-width:600px; max-height:calc(100dvh - 40px); overflow:auto; }
#openTrainingDetails::backdrop,#openTrainingSelection::backdrop { background:rgba(0,0,0,.65); }
.ot-detail-photo { display:block; width:100%; height:280px; object-fit:cover; border-radius:24px; }
.ot-description { white-space:pre-wrap; overflow-wrap:anywhere; }
.ot-symbol { width:48px; height:48px; min-height:48px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.ot-result button { min-height:48px; }
.ot-result [data-ot-request-recipient] { display:inline-flex; align-items:center; gap:8px; }
.ot-selection-options { display:grid; gap:8px; max-height:50dvh; overflow:auto; margin-block:16px; }
.ot-level-rows>div { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:8px; border-bottom:1px solid var(--line); }
.ot-level-rows button,#openTrainingSelection button { min-height:48px; }
.ot-editor textarea { width:100%; padding:12px; min-height:100px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:12px; }

.ot-wizard-progress { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-block:20px; }
.ot-wizard-progress progress { flex:1; min-width:120px; height:8px; accent-color:var(--primary-dark); }
.ot-wizard-step { display:grid; gap:20px; }
.ot-wizard-step[hidden],.ot-wizard-footer button[hidden],.ot-editor fieldset[hidden] { display:none; }
.ot-wizard-footer { display:flex; flex-wrap:wrap; gap:12px; position:sticky; bottom:0; padding-block:16px; background:var(--surface); border-top:1px solid var(--line); }
.ot-wizard-footer button { flex:1; }
.ot-wizard-footer [role=status] { width:100%; }
.ot-wizard-review { display:grid; gap:12px; padding:16px; border:1px solid var(--line); border-radius:20px; }

/* Athlete public profile: photo and training readiness lead the page. */
.profile-detail-modal .ot-athlete-hero{position:relative;min-height:260px;height:280px;overflow:hidden;border-radius:24px;background:var(--surface);margin-bottom:12px}
.profile-detail-modal .ot-athlete-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:72px}
.profile-detail-modal .ot-athlete-identity{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:14px;background:rgba(3,10,24,.84);color:#fff}
.profile-detail-modal .ot-athlete-avatar{width:68px;height:68px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.7);flex-shrink:0;display:grid;place-items:center}
.profile-detail-modal .ot-athlete-identity h3{margin:0;font-size:25px;overflow-wrap:anywhere;color:#fff}
.profile-detail-modal .ot-athlete-identity p{margin:4px 0 0;font-size:13px;color:#d5e2ef}
.profile-detail-modal .ot-athlete-contact{display:flex;gap:10px;margin-bottom:12px}
.profile-detail-modal .ot-athlete-contact>.button{flex:1;min-height:48px}
.profile-detail-modal .ot-athlete-contact>.ot-icon-button{width:48px;min-height:48px;border-radius:50%;flex-shrink:0}
.profile-detail-modal .ot-athlete-contact svg,.profile-detail-modal .ot-profile-request svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.profile-detail-modal .ot-profile-request{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:44px;margin:8px 0 16px}
@media(max-width:480px){.profile-detail-modal .ot-athlete-hero{height:300px;min-height:260px}}

.profile-detail-modal .ot-icon-button{display:grid;place-items:center;background:var(--soft);color:var(--primary-dark);border:1px solid var(--primary-dark);cursor:pointer}
.profile-detail-modal .ot-icon-button:disabled{opacity:.6;cursor:default}
.profile-detail-modal .ot-icon-button:focus-visible{outline:2px solid var(--primary-dark);outline-offset:3px}
.profile-detail-modal .ot-athlete-hero .placeholder svg{width:88px;height:88px}
.profile-detail-modal .ot-athlete-avatar.placeholder svg{width:32px;height:32px}

.profile-detail-modal .ot-athlete-contact>.button.primary{background:#075cce;color:#fff}
html[data-theme="dark"] .profile-detail-modal .ot-athlete-contact>.button.primary{background:var(--primary-dark);color:#071426}

