.mobile-coach {margin:0}
.mobile-header {display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#15171a;z-index:2}
.mobile-header span {margin-left:auto;font-size:12px;color:var(--muted)}
.mobile-main {width:min(100% - 28px,520px);margin:16px auto 40px;padding:0}
.mobile-main h1 {font-size:24px;margin:12px 0}
.mobile-main h2 {font-size:17px;margin-top:18px}
.mobile-main button,.mobile-main input,.mobile-main select,.mobile-main textarea {min-height:44px}
.mobile-main form .primary {width:100%;margin-top:8px}
.mobile-main input,.mobile-main textarea {font-size:16px}
.mobile-video {position:relative}
.mobile-video video {margin:0;max-height:48vh}
#mobileBoxes {position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mobile-frame-controls {display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:10px}
.mobile-frame-controls output {font-size:13px;text-align:center}
.mobile-person,.mobile-video-link {display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:9px 0;border-bottom:1px solid var(--line)}
.mobile-person span {font-size:12px;color:var(--muted);text-align:right}
.mobile-error {color:#ffb5a4}
.mobile-pose .pose-page {width:min(100% - 24px,520px)}
.mobile-pose .pose-layout {grid-template-columns:1fr;gap:12px}
.mobile-pose #poseStage {max-height:42vh}
.mobile-pose #reviewThisFrame {width:100%;min-height:44px}
.mobile-frame-jump {margin-top:10px}
.mobile-frame-jump form {display:flex;align-items:end;gap:8px;padding-top:8px}
.mobile-frame-jump label {flex:1;margin:0}
.mobile-box-code {font-size:24px;font-weight:700;paint-order:stroke;stroke:#15171a;stroke-width:3}
#poseOriginal {margin:12px auto;max-width:200px}
#poseOriginal video {max-height:24vh}
#poseOriginalBox {position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pose-original-loading {visibility:hidden}
#mobileWatch .mobile-video video {max-height:36vh}
.mobile-athlete-controls {margin-top:12px;padding:10px;background:#15171a;border:1px solid var(--line);border-radius:8px}
.mobile-athlete-controls label,.mobile-athlete-controls select {margin:0 0 5px}
.mobile-athlete-controls p {margin:6px 0 0}
.mobile-athlete-actions {display:flex;flex-wrap:wrap;gap:6px}
.mobile-athlete-actions button {flex:1 1 auto;padding-inline:8px}
.mobile-person.is-selected {border-color:#ffd166}
.mobile-account {display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted)}
.mobile-account button {padding:6px 10px}
.mobile-card {display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);align-items:center}
.mobile-card img {width:84px;height:64px;object-fit:cover;border-radius:6px;background:#25272a}
.mobile-card strong {display:block;font-size:17px;line-height:1.5;overflow-wrap:anywhere}
.mobile-card small {display:block;color:var(--muted);margin-top:5px;line-height:1.5}
.mobile-card.is-unavailable {opacity:.8}
#mobileRetry {margin-bottom:12px}
#mobileClip,#mobilePreviewItems video {max-height:42vh}
.mobile-athlete-actions button {flex:1 1 44%;font-size:14px}
.mobile-report-visuals {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.mobile-report-visuals figure {margin:0;padding:10px;background:#1b2026;border:1px solid var(--line);border-radius:10px}
.mobile-report-visuals canvas {display:block;width:100%;height:220px;object-fit:contain;background:#f1f5f8;border-radius:5px}
.mobile-report-visuals figcaption {font-size:13px;line-height:1.6;margin-top:8px}
.mobile-report-visuals .pose-unavailable {height:220px;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;font-size:13px;color:var(--muted)}
.mobile-report-actions {display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.mobile-report-actions button {flex:1;white-space:nowrap;font-size:14px;padding-inline:12px}

.video-workspace .mobile-main{width:100%;max-width:none;margin:0}.video-workspace #mobileAccount,.video-workspace #mobileVideoTitle{display:none}.video-workspace .mobile-video{height:calc(100dvh - 135px);background:#000}.video-workspace #mobileWatch .mobile-video video{width:100%;height:100%;max-height:none;object-fit:contain}.video-workspace .mobile-frame-controls{padding:8px}.person-inspector{width:min(92vw,600px);max-height:92dvh;overflow:auto;background:#15171a;color:white;border:1px solid #526777;border-radius:16px}.person-inspector::backdrop{background:#000c}.person-inspector canvas{display:block;max-width:100%;max-height:65vh;margin:auto;object-fit:contain}
.mobile-video video{position:relative;z-index:0}#mobileBoxes{z-index:1}.person-inspector button{min-height:48px;width:100%}

.person-inspector input,.person-inspector textarea,.person-inspector select{width:100%;font-size:16px;min-height:48px;margin:8px 0}.person-inspector .check-field input{width:24px;min-height:24px}.person-inspector form{margin-top:20px}.person-inspector canvas,#mobileMarkupEditor canvas{width:100%;height:auto;max-height:none;touch-action:manipulation}#mobileMarkupEditor button{min-height:48px}#mobileMarkupEditor input{width:100%}#mobileBoxes rect{touch-action:manipulation}#mobilePlayback{background:#15171a}#mobilePlayback input{min-width:60px;flex:1}#mobilePlayback span{font-size:12px}.video-workspace .mobile-video{height:calc(100dvh - 205px)}

.person-inspector canvas{width:auto;max-width:100%;max-height:55vh;margin:auto}#mobileMarkupEditor canvas{width:auto;max-width:100%;max-height:55vh;margin:auto}

.mobile-upload { margin-bottom: 24px; }
.mobile-upload fieldset { border: 1px solid #454545; border-radius: 10px; margin: 12px 0; padding: 12px; }
.mobile-upload fieldset label { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.mobile-upload input[type=checkbox] { width: 24px; height: 24px; min-height: 24px; margin: 0; flex: 0 0 24px; }
.mobile-upload progress { width: 100%; margin-top: 16px; }
.mobile-upload input[type=file] { max-width: 100%; }

.has-mobile-tabs .mobile-main{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.mobile-bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:#15191f;border-top:1px solid #39434e;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:12px}.mobile-bottom-tabs[hidden]{display:none}.mobile-bottom-tabs a{flex:1;text-align:center;padding:13px 8px;border-radius:12px;color:#aeb8c4;text-decoration:none;font-size:16px}.mobile-bottom-tabs a[aria-current=page]{color:#ff8c47;background:#31251e;font-weight:700}#mobileUploadPanel{margin:16px 0 20px;border:1px solid #454545;border-radius:12px;padding:12px}#mobileUploadPanel summary{cursor:pointer;color:#ff9b60;padding:8px;font-weight:700}#mobileArchiveSearch{width:100%;margin:8px 0 20px}

.profile-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-heading button{min-height:44px;color:#ffab79}.athlete-profile>section{background:#181c22;border:1px solid #343c46;border-radius:16px;padding:16px;margin:12px 0}.athlete-profile h3{margin:0 0 14px;font-size:16px}.athlete-profile dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px 12px;margin:0}.athlete-profile dt{color:#aeb6c1;font-size:14px}.athlete-profile dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.athlete-profile fieldset{border:1px solid #343c46;border-radius:14px;margin:16px 0;padding:14px}.athlete-profile label{display:block;margin:14px 0}.athlete-profile input,.athlete-profile select,.athlete-profile textarea{display:block;width:100%;margin-top:8px;font-size:16px;min-height:48px}.profile-actions{display:flex;gap:12px;margin-top:20px}.profile-actions button{flex:1;min-height:48px}

/* Coach task flow: compact chrome, grouped empty state, progressive forms. */
.mobile-account{font-size:12px;margin-bottom:20px}.mobile-account button{font-size:12px;min-height:36px;padding:4px 10px}.mobile-header{padding:12px 16px}.mobile-main h1{letter-spacing:-.5px;line-height:1.3}.mobile-card{padding:20px 0}.mobile-card:focus-visible,.mobile-bottom-tabs a:focus-visible{outline:2px solid #ffab79;outline-offset:3px}.mobile-action{display:block;text-align:center;text-decoration:none;padding:14px;border-radius:12px;margin:16px 0}.mobile-upload form>label{display:block;font-weight:600;margin:16px 0}.mobile-upload form>label>input{display:block;width:100%;margin-top:10px}.mobile-upload details{border:1px solid #454545;border-radius:12px;padding:12px;margin-bottom:16px}.mobile-upload details summary{min-height:32px;color:#ffab79;cursor:pointer}.mobile-upload details fieldset{border:0;margin:8px 0 0;padding:0;max-height:240px;overflow:auto}.mobile-upload details legend{font-size:12px;color:#aeb8c4}.athlete-profile>section p{margin:0}.profile-draft-note{color:#ffc18e}.profile-edit-group{border:1px solid #343c46;border-radius:14px;margin:14px 0;padding:14px}.profile-edit-group>summary{font-size:16px;font-weight:600;min-height:28px;cursor:pointer}.profile-edit-group fieldset{border:0;margin:0;padding:0}.profile-actions{position:sticky;bottom:calc(82px + env(safe-area-inset-bottom));z-index:5;background:#15191f;padding:12px;border:1px solid #343c46;border-radius:14px}.athlete-profile [role=status] button{margin:10px 10px 0 0}.athlete-profile{scroll-margin-top:80px}

/* Seven usability fixes: one task per screen, one primary action. */
.mobile-header{gap:10px}.mobile-header>span{margin-left:auto}.mobile-header .mobile-account{margin:0;position:relative;color:var(--text)}.mobile-account[hidden]{display:none}.mobile-account summary{cursor:pointer;list-style:none;padding:10px;font-size:14px}.mobile-account-menu{position:absolute;right:0;top:100%;width:220px;z-index:40;background:#20252d;border:1px solid #414a56;border-radius:12px;padding:14px;box-shadow:0 8px 24px #0008}.mobile-account-menu span{display:block;margin:0 0 12px;font-size:13px}.mobile-account-menu button{width:100%;color:#ffb5a4}.mobile-header{z-index:30}.mobile-main>section>h1{margin:20px 0 12px}#mobileHome #mobileListSummary:empty{display:none}.mobile-empty-state{padding:20px 0;color:var(--muted);font-size:15px;line-height:1.7}#mobileStartUpload{margin:20px 0 4px;font-size:16px}#mobileUploadScreen .mobile-upload{margin:0}#mobileUploadScreen form{padding-bottom:100px}#mobileUploadScreen .upload-submit{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(calc(100% - 28px),520px);z-index:25;margin:0;min-height:50px;box-shadow:0 -10px 28px #1119}#mobileArchives .mobile-card{padding:13px 0;min-height:68px}#mobileArchives .mobile-card strong{font-size:16px}#mobileArchives .mobile-card small{font-size:12px;margin-top:3px}#mobileArchives .mobile-card:after{content:'›';font-size:26px;color:#8e99a6;margin-left:auto;padding:0 8px}.profile-empty{margin:12px 0 20px;padding:16px;background:#191e25;border-radius:12px}.profile-editing .mobile-header,.profile-editing #mobileTabs,.profile-editing #mobileArchives>h1,.profile-editing #mobileArchiveSummary,.profile-editing #mobileArchiveSearchLabel{display:none}.profile-editing .mobile-main{margin-top:0;padding-top:calc(68px + env(safe-area-inset-top));padding-bottom:32px}.profile-editor-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#15191f;border-bottom:1px solid #343c46;padding:calc(10px + env(safe-area-inset-top)) 14px 10px}.profile-editor-header h2{margin:0;text-align:center;font-size:16px}.profile-editor-header button{min-height:44px;padding:8px 12px;font-size:15px}.profile-editor-header button.primary{width:auto;margin:0}.profile-editing .athlete-profile{scroll-margin-top:80px}.profile-edit-group label[hidden]{display:none}.mobile-bottom-tabs{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.mobile-bottom-tabs a{padding:10px 8px;font-size:14px}.profile-editing .has-mobile-tabs{padding-bottom:0}
.profile-editing #mobileArchiveList>:not(.athlete-profile){display:none}
.mobile-header .mobile-account{display:block;margin:0;padding:0;border:0;background:transparent}.mobile-header .mobile-account>summary{min-height:44px;box-sizing:border-box;padding:10px 8px;margin:0;line-height:24px}.mobile-header .mobile-account[open]>summary{margin:0}.mobile-action.primary{background:#ff7925;color:#1b100b;border:1px solid #ff7925;font-weight:650;text-decoration:none;border-radius:12px}.mobile-header{min-height:56px;box-sizing:border-box}

/* Immediate input feedback; motion respects the system's accessibility setting. */
.touch-surface{position:relative;overflow:hidden;isolation:isolate}.touch-wave{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;opacity:0;transform:scale(.08);animation:touch-wave .45s ease-out;z-index:0}.mobile-main button,.mobile-action,.mobile-bottom-tabs a,.mobile-card,summary{transition:transform .12s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.mobile-main button:active:not(:disabled),.mobile-action:active,summary:active{transform:scale(.98);filter:brightness(1.16)}.mobile-bottom-tabs a:active,.mobile-card:active{background:#ffffff12;transform:scale(.99)}.mobile-main button:disabled{cursor:wait;opacity:.62}.feedback-busy::before{content:'';display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:8px;vertical-align:-2px;animation:feedback-spin .8s linear infinite}.feedback-toast{position:fixed;top:calc(76px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:12px 18px;border-radius:12px;background:#283c31;color:#dcffe8;box-shadow:0 6px 24px #0008;z-index:100;pointer-events:none;font-size:14px}.feedback-toast[hidden]{display:none}.feedback-toast.is-error{background:#502d27;color:#ffe5df}.mobile-upload label:has(input[type=checkbox]:checked){background:#ff79251a;border-radius:8px;box-shadow:inset 3px 0 #ff8b43;padding:6px 8px}.mobile-main input:focus,.mobile-main textarea:focus,.mobile-main select:focus{border-color:#ff9a61;box-shadow:0 0 0 3px #ff792520}.mobile-main details[open]>summary{color:#ffb789}.mobile-bottom-tabs a[aria-current=page]{box-shadow:inset 0 2px 0 #ff934d}.profile-editor-header button:active{transform:scale(.96)}@keyframes touch-wave{0%{transform:scale(.08);opacity:.24}100%{transform:scale(1);opacity:0}}@keyframes feedback-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.touch-wave{display:none}}
.mobile-main button:disabled{cursor:default}.mobile-main button.feedback-busy{cursor:wait}#mobileUploadScreen .upload-submit:active:not(:disabled){transform:translateX(-50%) scale(.98)}
