/* Phone-first controls, loaded after the page theme. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,input,select,summary{touch-action:manipulation}
@media screen and (max-width:850px){
 .club-header nav.open{max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 .club-header nav>a{min-height:48px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;min-height:48px;max-width:100%;border-radius:8px}
 button,.button,summary,.text-link{min-height:44px}
 .button{white-space:normal;text-align:center;line-height:1.35;gap:10px}
 .text-link{display:inline-flex;align-items:center}
 .content-section>*,.program-grid>*,.member-heading>*,.access-controls,.access-input,.field-pair>*,.session-plan>*,.gym-grid>*,.gym-landing>*{min-width:0}
 .club-footer{gap:24px;flex-wrap:wrap}.club-footer>div{display:flex;flex-wrap:wrap;gap:12px 22px}.club-footer a{padding-block:8px}
 .admin-shell input,.admin-shell textarea{max-width:100%}.admin-item-actions{gap:10px}.admin-item-actions button,.admin-item-actions a{min-height:44px}
}
@media screen and (max-width:760px){
 .content-section{padding:38px 5vw}.page-banner{padding:130px 5vw 40px;min-height:0}.page-banner h1{font-size:clamp(2.1rem,9vw,3rem)}
 .program-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .member-area{width:calc(100% - 24px);max-width:100%;padding:24px 0;margin-inline:auto}
 .member-heading{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.member-heading h2{font-size:1.7rem;overflow-wrap:anywhere}
 .member-card{padding:18px;border-radius:12px;width:100%}.member-card h3{overflow-wrap:anywhere;font-size:1.25rem}.member-card .eyebrow{margin-bottom:10px}
 .member-card .pdf-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .member-card .pdf-actions>button{grid-column:1/-1;min-height:52px;font-size:16px}.member-card .pdf-actions .button{margin:0;padding:12px 8px;min-width:0}
 .learner-account{width:calc(100% - 24px);margin-top:16px;padding:16px;gap:12px;flex-direction:column;align-items:stretch}
 .learner-account p{font-size:.875rem;line-height:1.5}.learner-account .button{width:100%}
 .access-bar,.access-choices,.account-box{width:calc(100% - 24px);margin-inline:auto;padding:18px;border-radius:12px;gap:16px}
 .access-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
 .access-choice-grid button{padding:12px;min-height:72px;border-radius:10px}.access-choice-grid button strong{font-size:1rem;margin-bottom:4px}.access-choice-grid button span{font-size:.75rem;line-height:1.4}
 .access-input{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.access-input input,.access-input .button{width:100%}
 .session-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.session-actions .button{width:100%}
 .code-toggle{min-height:44px}.account-box form{min-width:0}.account-box form input,.account-box form .button{width:100%}
 .workout-diary{width:calc(100% - 16px);margin:20px auto;padding:16px 12px;border-radius:14px;min-width:0}
 .workout-diary .member-heading{gap:10px}.workout-diary .member-heading h2{font-size:1.45rem;line-height:1.25}.workout-diary .member-heading .eyebrow{margin-bottom:6px}
 #diary-close{padding:10px 14px;min-height:44px}.workout-diary>p{font-size:.875rem;line-height:1.45;margin-top:12px}
 #diary-form{margin-top:16px}#diary-fields{min-width:0}#diary-week{width:100%;min-width:0;max-width:100%;font-size:16px;white-space:normal;margin-bottom:10px}
 #diary-open .session-plan{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none;padding:12px;gap:10px;border-radius:10px}
 #diary-open .session-plan label{font-size:.8rem;margin-bottom:5px}#diary-open .session-plan input{font-size:20px!important;min-height:50px;margin:0}
 #diary-course-help,#diary-week-focus{font-size:.8rem;line-height:1.4;margin:8px 0}
 #diary-open .exercise-cards{gap:10px;margin:14px 0}
 #diary-open .exercise-result-card{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px;border-radius:12px;min-width:0}
 #diary-open .exercise-result-card h3{font-size:1rem;line-height:1.35;margin:0}
 #diary-open .exercise-choice{max-width:none;width:100%;margin:0}
 #diary-open .exercise-choice select{font-size:16px;min-height:46px;padding:8px 10px;margin:0}
 #diary-open .series-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(55px,1fr));gap:8px;width:100%;margin:0}
 #diary-open .series-grid label{font-size:.72rem;line-height:1.35;margin:0;min-width:0}
 #diary-open .series-grid input{width:100%;min-width:0;min-height:52px;font-size:22px!important;line-height:1.2;padding:8px 2px;margin-top:4px;border:1px solid #8a9e90;background:#faf8f3;font-variant-numeric:tabular-nums}
 #diary-open input:focus-visible,#diary-open select:focus-visible{outline:3px solid #174936;outline-offset:2px;background:#fff}
 #diary-open input,#diary-week{scroll-margin-block:100px 150px}
 #diary-open .exercise-result-card details{width:100%;font-size:.85rem}
 #diary-open .exercise-result-card summary{display:flex;align-items:center;min-height:44px;padding:6px 0;font-size:.8rem}
 #diary-open .exercise-extra{grid-template-columns:minmax(0,1fr);gap:10px}#diary-open .exercise-extra input{width:100%;min-height:48px;padding:10px}
 .diary-save-bar{position:sticky;bottom:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:10px 0 max(10px,env(safe-area-inset-bottom));background:#f2eee5;box-shadow:0 -6px 12px #233c3010;z-index:6}
 .diary-save-bar #diary-save,.diary-save-bar .button{min-height:50px;width:100%;font-size:.875rem;padding:12px 6px;margin:0}
 .diary-save-bar .small-note{display:none}.diary-save-bar #diary-status{grid-column:1/-1;margin:0!important;padding:4px 8px;font-size:.78rem;line-height:1.35;min-height:0;overflow-wrap:anywhere}
 .diary-history-heading{gap:12px;margin-top:24px}.diary-history-heading .button{width:100%}
 .diary-history{max-width:100%;min-width:0}.diary-history .diary-table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 /* Custom programs use exercise cards instead of a wide editing table. */
 #diary-generic{border:0;overflow:visible;margin:12px 0}#diary-generic table,#diary-generic tbody{display:block;min-width:0;width:100%}
 #diary-generic thead{display:none}#diary-generic tr:not([hidden]){display:block;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#faf8f3}
 #diary-generic th,#diary-generic td{display:block;border:0;padding:0;min-width:0;width:100%}#diary-generic th{font-size:1rem;margin-bottom:10px}
 #diary-generic td{margin-top:10px}#diary-generic td::before{content:attr(data-label);display:block;font-size:.8rem;margin-bottom:5px;color:#52675b}
 #diary-generic input{width:100%;min-width:0;padding:12px;min-height:48px}#diary-generic .monthly-results{min-width:0;grid-template-columns:repeat(auto-fit,minmax(55px,1fr));gap:8px}
 .booking-options{gap:8px}.booking-options button{padding:14px}.booking-detail{padding:18px}.booking-detail .button{width:100%}
 .gym-card{padding:20px}.gym-card .button{width:100%}.gym-landing h1{font-size:2.3rem}
 .admin-form,.admin-list{padding:16px}.admin-shell{width:calc(100% - 24px)}.admin-tabs{gap:8px}.admin-tabs button{flex:1;padding:12px 8px;min-height:48px}.program-checklist{max-height:45dvh}
}
@media screen and (max-width:360px){
 .club-header{padding-inline:12px;gap:8px}.club-header .brand{gap:8px}.club-header .brand>span:last-child{font-size:.85rem}
 #diary-open .series-grid{grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:6px}.workout-diary{padding-inline:10px}.access-choice-grid button span{display:none}
}
@media screen and (max-width:760px) and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
