/* Shared typography and aligned field rows for editable player/centre cards.
   This sheet changes presentation only: native controls, names and DOM order stay intact. */
:root{
 --ctm-form-title:22px;
 --ctm-form-section:19px;
 --ctm-form-category:17px;
 --ctm-form-subcategory:16px;
 --ctm-form-label:15px;
 --ctm-form-help:13px;
 --ctm-form-gap:16px;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form{
 min-width:0;max-width:100%;box-sizing:border-box;
 text-align:start;
}
body :is(main,dialog) :is(#clubForm,#playerProfileForm,#standardPreferencesForm,#centerRegistrationForm,#centerCourtManagementForm,#centerServicesForm){
 container-name:ctm-form;container-type:inline-size;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form :is(h2,h3,h4,h5){
 font-family:Manrope,Arial,sans-serif;font-weight:750;line-height:1.4;
 letter-spacing:normal;text-align:start;white-space:normal;word-break:normal;
 overflow-wrap:break-word;margin:0 0 14px;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form h2{font-size:var(--ctm-form-title)!important}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form h3{font-size:var(--ctm-form-section)!important}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form h4{font-size:var(--ctm-form-category)!important}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form h5{font-size:var(--ctm-form-subcategory)!important}
/* Numbered court categories are peers; 2.1 remains visibly subordinate. */
body :is(main,dialog) form .court-category .court-outdoor-season>h4{
 font-size:var(--ctm-form-label)!important;font-weight:650;margin-bottom:10px;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form :is(.field,.address-editor-field){
 display:flex;flex-direction:column;align-items:stretch;min-width:0;max-width:100%;
 margin:0;gap:0;font-size:var(--ctm-form-label)!important;font-weight:650;line-height:1.5;
 letter-spacing:normal;text-align:start;white-space:normal;word-break:normal;
 overflow-wrap:break-word;float:none;
}
body :is(main,dialog) form .address-editor-field>span{font-size:inherit!important;font-weight:inherit}
body :is(main,dialog) form legend{
 font-size:var(--ctm-form-label)!important;font-weight:650;line-height:1.5;
 white-space:normal;letter-spacing:normal;float:none;max-width:100%;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form :is(.field,.address-editor-field)>:is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]):not(.ctm-time-input){
 width:100%;max-width:100%;min-width:0;min-height:48px;box-sizing:border-box;
 margin:8px 0 0;padding:11px 12px;font-size:16px!important;font-weight:400;
 line-height:1.5;letter-spacing:normal;text-align:start;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form .field textarea{
 min-height:104px;resize:vertical;
}
body :is(main,dialog:not(.ctm-time-wheel-dialog)) form :is(.field small,.address-editor-help,.subtle,.origin-load-status){
 font-size:var(--ctm-form-help)!important;line-height:1.55;font-weight:400;
 letter-spacing:normal;text-align:start;white-space:normal;word-break:normal;
}
body :is(main,dialog) form .field small{margin-top:7px}
body :is(main,dialog) form .field>.ctm-time-control{margin-top:8px;min-height:48px}
body :is(main,dialog) form .ctm-time-control>input.ctm-time-input{
 min-height:48px;padding:11px 12px;font-size:16px!important;font-weight:400;
}
body :is(main,dialog) form .ctm-time-control>.ctm-time-wheel-trigger{min-height:48px}
/* Every two-column row has the same outer edges and a single shared gutter. */
body :is(main,dialog) form :is(.form-grid,.origin-area-grid,.origin-coordinate-grid,.geo-province-row,.court-season-dates,.center-service-climate){
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:var(--ctm-form-gap);width:100%;min-width:0;max-width:100%;
 align-items:start;box-sizing:border-box;
}
body :is(main,dialog) form :is(.form-grid,.origin-area-grid,.origin-coordinate-grid,.geo-province-row,.court-season-dates,.center-service-climate)>*{min-width:0;max-width:100%}
body :is(main,dialog) form .form-grid>:is(h2,h3,h4,h5,p,section,fieldset,.note,.days,.form-grid,.center-court-facilities){grid-column:1/-1!important}
body :is(main,dialog) form .form-grid>.field:nth-child(odd of .field:not([hidden])):nth-last-child(1 of :not([hidden])){grid-column:1/-1}
/* Keep larger blocks sequential rather than squeezed beside a single input. */
body :is(main,dialog) form .court-facility-row{
 display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;
}
body :is(main,dialog) form .court-feature-options{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;
}
body :is(main,dialog) form :is(.court-feature,.center-service-choice){
 min-width:0;margin:0;padding:12px;border-radius:9px;box-sizing:border-box;
}
body :is(main,dialog) form :is(.court-feature,.center-service-choice)>legend{
 float:none;max-width:100%;font-size:var(--ctm-form-label)!important;
 font-weight:650;line-height:1.5;white-space:normal;letter-spacing:normal;
}
body :is(main,dialog) form .search-origin-fields>legend{
 font-family:Manrope,Arial,sans-serif;font-size:var(--ctm-form-section)!important;
 font-weight:750;line-height:1.4;max-width:100%;
}
body :is(main,dialog) form :is(.center-service-check,.confirmation-check,.geo-choice){
 font-size:var(--ctm-form-label)!important;line-height:1.5;letter-spacing:normal;
}
body :is(main,dialog) form .center-service-quantity{max-width:100%}
body :is(main,dialog) form .center-service-unit-list{display:grid;gap:16px}
body :is(main,dialog) form .center-service-unit{margin:0}
body :is(main,dialog) form .center-service-unit>:is(.center-service-choice,.confirmation-check){margin-block:12px}
body :is(main,dialog) form .court-convertible-subsection{margin-inline:0;border-left-width:4px}
body :is(main,dialog) form .origin-radius-section{
 display:grid;grid-template-columns:minmax(0,1fr);gap:12px;
}
body :is(main,dialog) form :is(.days,.availability-days){
 display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));
 gap:6px;width:100%;max-width:100%;min-width:0;
}
body :is(main,dialog) form :is(.days,.availability-days)>label{min-width:0;max-width:none;margin:0}
body :is(main,dialog) form :is(.days,.availability-days)>label>span{
 min-height:44px;padding:9px 3px;text-align:center;box-sizing:border-box;
}
body :is(main,dialog) form>.field+ .field{margin-top:16px}
body :is(main,dialog) form>.form-grid+ :is(.field,.form-grid,section,fieldset){margin-top:20px}
body :is(main,dialog) form :is(.event-fields,.availability-schedule,.search-origin-fields){margin-top:24px}
body :is(main,dialog) form .center-profile-footer{gap:12px;margin-top:24px}
/* Native hidden state must always win over the display rules above. */
body :is(main,dialog) form [hidden]{display:none!important}
/* Day availability: a compact colored square and symbol, with the day above. */
body :is(main,dialog) form .profile-addresses{margin-top:24px}
body :is(main,dialog) form .profile-addresses .profile-address-point{min-width:0;padding:16px;border:1px solid #cfdee5;border-radius:12px;margin:18px 0}
body :is(main,dialog) form .profile-addresses .profile-address-point>legend{font-weight:700;font-size:17px;padding:0 6px}
body :is(main,dialog) form .profile-addresses .address-point-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;margin-top:14px}
body :is(main,dialog) form .profile-addresses .address-editor-field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;font-size:15px;font-weight:650}
body :is(main,dialog) form .profile-addresses .address-editor-field :is(input,select){box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid #b9cbd8;border-radius:9px;padding:10px;background:white;color:#203f53;font:inherit;font-size:16px}
body :is(main,dialog) form .profile-addresses :is(.address-editor-help,.address-editor-position){grid-column:1/-1;font-size:14px;font-weight:400;line-height:1.5}
body :is(main,dialog) form .profile-addresses .address-editor-position>summary{font-size:15px;font-weight:650;cursor:pointer;padding:10px 0}
body :is(main,dialog) form .profile-addresses .address-editor-position>.address-editor-field{margin:12px 0}
@media(max-width:760px){body :is(main,dialog) form .profile-addresses .address-point-fields{grid-template-columns:minmax(0,1fr)}body :is(main,dialog) form .profile-addresses .profile-address-point{padding:12px}}
body :is(main,dialog) form .favorite-selected-center{display:grid;gap:4px;margin:10px 0 0;padding-left:30px;overflow-wrap:anywhere}
body :is(main,dialog) form .favorite-selected-center>span{font-size:13px;line-height:1.5;color:#526976}
body :is(main,dialog) form .favorite-selected-center>strong{font-size:16px;line-height:1.5;color:#254963}
body :is(main,dialog) form .geo-province-row{border:1px solid #d6e1e8;border-radius:12px;padding:14px;margin:14px 0;min-width:0}
body :is(main,dialog) form .geo-province-row>legend{padding:0 6px;font-size:16px;font-weight:700}
body :is(main,dialog) form [data-origin-gps-controls]>small{display:block;margin-top:4px;color:#607687;line-height:1.5}
body :is(main,dialog) form [data-radius-picker]{max-width:240px;min-height:44px}
body :is(main,dialog) form .availability-days{
 display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;
}
body :is(main,dialog) form .availability-days label>span,
body :is(main,dialog) form .availability-days input:checked+span{
 background:transparent!important;border:0!important;border-radius:0;
 padding:4px 0!important;min-height:62px;gap:6px;
}
body :is(main,dialog) form .availability-days label>span>i,
.player-settings-packages .habitual-availability .availability-schedule .availability-days label>span>i{
 width:28px;height:28px;
 border-radius:7px;font:800 20px/1 Arial,sans-serif;
 align-items:center;justify-content:center;box-sizing:border-box;
}
body :is(main,dialog) form .availability-days label>span>.day-yes{display:none;background:#edfbef;color:#14772c;border:1px solid #a9d6b4}
body :is(main,dialog) form .availability-days label>span>.day-no{display:flex;background:#fff5f5;color:#bf2323;border:1px solid #e9bebe}
body :is(main,dialog) form .availability-days input:checked+span>.day-yes{display:flex}
body :is(main,dialog) form .availability-days input:checked+span>.day-no{display:none}
body :is(main,dialog) form .availability-days label>span>b{font-size:12px;line-height:1.3}
@container ctm-form (max-width:520px){
 body :is(main,dialog) form :is(.form-grid,.origin-area-grid,.origin-coordinate-grid,.geo-province-row,.court-season-dates,.center-service-climate,.court-feature-options){grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:760px){
 :root{--ctm-form-title:20px;--ctm-form-section:18px;--ctm-form-gap:14px}
 body :is(main,dialog) form :is(.form-grid,.origin-area-grid,.origin-coordinate-grid,.geo-province-row,.court-season-dates,.center-service-climate,.court-feature-options){grid-template-columns:minmax(0,1fr)!important}
 body :is(main,dialog) form :is(.form-grid,.origin-area-grid,.origin-coordinate-grid,.geo-province-row,.court-season-dates,.center-service-climate)>*{grid-column:1/-1!important}
}

/* Targeted search uses one light form surface inside the branded dark header.
   Scope every reset to this form: switches and the time picker retain their UI. */
body #searchForm{
 display:grid;grid-template-columns:minmax(0,1fr);gap:20px;
 padding:20px;background:#fff;color:#203f53;border-radius:12px;
 width:100%;min-width:0;max-width:100%;color-scheme:light;
}
body #searchForm :is(fieldset,.search-localization,[data-origin-custom],[data-geo-radius-mode]){
 min-inline-size:0;min-width:0;max-width:100%;box-sizing:border-box;
}
body #searchForm .search-period{
 margin:0;padding:16px;border:1px solid #cbd9e3;background:#f6f9fb;
}
body #searchForm legend{color:#203f53;font-size:17px!important;padding:0 6px}
body #searchForm :is(p,small,.fixed-gender){color:#526b7c;font-size:14px;line-height:1.55}
body #searchForm strong{color:#203f53;font:700 16px/1.5 Manrope,Arial,sans-serif}
body #searchForm label{color:#203f53;min-width:0;font-size:15px;line-height:1.5}
body #searchForm :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]):not(.ctm-time-input){
 width:100%;max-width:100%;min-width:0;min-height:48px;
 margin:8px 0 0;padding:11px 10px;border:1px solid #adc3d2;border-radius:8px;
 background:#fff;color:#203f53;-webkit-text-fill-color:#203f53;
 color-scheme:light;font-size:16px;line-height:1.4;box-sizing:border-box;
}
body #searchForm :is(input,select,textarea):disabled{
 background:#eef2f5;color:#657581;-webkit-text-fill-color:#657581;
}
body #searchForm :is(input[type=checkbox],input[type=radio]){
 display:block;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;
 flex:0 0 20px;margin:2px 0 0;padding:0;accent-color:#786500;color-scheme:light;
}
body #searchForm :is(.period-choices,.geo-source-choices){
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;
}
body #searchForm :is(.period-choices label,.geo-choice,.all-times,.keep-location){
 display:flex;align-items:flex-start;gap:10px;min-width:0;
 white-space:normal;word-break:normal;overflow-wrap:break-word;
}
body #searchForm :is(.period-choices label,.geo-choice){
 padding:12px;border:1px solid #b9cbd8;border-radius:9px;background:#fff;
}
body #searchForm :is(.period-choices label,.geo-choice):has(input:checked){
 background:#fff8d0;border-color:#a58a00;
}
body #searchForm :is(.period-choices label,.geo-choice):has(input:disabled){opacity:.65}
body #searchForm .search-localization{border-top:1px solid #d6e1e8;padding-top:20px}
body #searchForm [data-search-saved-origin]{
 margin:0 0 16px;padding:14px;background:#fff8d0;color:#3e491f;
 border:1px solid #e2d47e;white-space:normal;overflow-wrap:anywhere;
}
body #searchForm [data-search-saved-origin] strong{color:inherit}
body #searchForm .keep-location{margin:0 0 16px}
body #searchForm .search-origin-fields{margin:0;padding:16px;background:#f6f9fb}
body #searchForm .search-origin-fields>legend{font-size:18px!important}
body #searchForm .search-origin-question{margin:0 0 12px}
body #searchForm .origin-area-grid{margin-top:16px}
body #searchForm .search-origin-precise{padding:12px;margin-top:16px}
body #searchForm .search-origin-precise>summary{padding:0;font-size:15px}
body #searchForm .search-origin-precise[open]>.origin-coordinate-grid{margin-top:14px}
body #searchForm .text-button{min-height:44px;font-size:14px;color:#355f50;white-space:normal}
body #searchForm .automatic-timezone-note{margin-top:16px;padding:12px;background:#eaf0f5;border-radius:8px}
body #searchForm .search-fields{width:100%;max-width:none;min-width:0}
body #searchForm .search-form-footer{border-top:1px solid #d6e1e8;padding-top:16px;gap:16px}
body #searchForm .ctm-time-input{background:#fff;color:#203f53;-webkit-text-fill-color:#203f53;color-scheme:light;border-color:#adc3d2}
body #searchForm [hidden]{display:none!important}
@media(max-width:760px){
 body #searchForm{padding:14px;gap:20px}
 body #searchForm :is(.search-period,.search-origin-fields){padding:12px}
 body #searchForm :is(.period-choices,.geo-source-choices,.search-fields){grid-template-columns:minmax(0,1fr)}
 body #searchForm .search-form-footer{display:grid;grid-template-columns:minmax(0,1fr)}
 body #searchForm .search-form-footer>button{width:100%;min-height:48px}
 /* The grid item default min-width:auto also affects nested cards, not just forms. */
 body main :is(.panel,.office-package-body,.player-settings-packages,.ctm-panel-page-body,.publish-package-content,.card,.roster-grid)>*{min-width:0;max-width:100%}
 body main :is(.center-office-package,.player-settings-packages details,.publish-package)>summary{gap:10px;line-height:1.5}
 body main :is(.center-office-package,.player-settings-packages details,.publish-package)>summary>span:first-child{min-width:0;overflow-wrap:break-word}
 body main :is(.office-identity-data,.roster-grid,.request-details){grid-template-columns:minmax(0,1fr)}
 body :is(main,dialog) :is(input[type=date],input[type=time]){min-inline-size:0;box-sizing:border-box}
 body main :is(.center-profile-footer,.address-preset-actions){flex-wrap:wrap;gap:12px}
 body main :is(.center-profile-footer,.address-preset-actions)>button{min-height:44px;white-space:normal}
}

/* Search steps share visible titles, including the origin and independent radius. */
body #searchForm>.search-period>legend{font-size:19px!important;font-weight:750;line-height:1.45}
body #searchForm .search-location-section>.search-localization{padding-top:0;border-top:0}
body #searchForm .targeted-gps-action{display:grid;gap:8px;margin:16px 0}
body #searchForm .targeted-gps-action>button{min-height:48px;width:100%;background:#fff8d0;color:#203f53;border:1px solid #a58a00;font-weight:700}
body #searchForm .targeted-gps-action>p{margin:0}
body #searchForm>.origin-radius-section{display:grid;gap:12px}
body #searchForm>.origin-radius-section [data-radius-picker]{max-width:none}
body #searchForm .search-origin-fields{background:#fff}
body #searchForm .search-origin-fields>legend{background:#fff;font-size:16px!important}

body :is(main,dialog) form .field .player-level-error{display:block;margin-top:10px;padding:12px;background:#fff0ee;border:1px solid #d99891;border-radius:8px;color:#922c25!important;font-size:14px!important;font-weight:650;line-height:1.5}
body :is(main,dialog) form #playerLevelInput[aria-invalid="true"]{border:2px solid #b3352b;background:#fff9f8}
body :is(main,dialog) form .player-level-error[hidden]{display:none!important}

body :is(main,dialog) form .match-start-note{display:grid;gap:7px;padding:14px;margin:14px 0 16px;background:#fff8d0;color:#3e491f;border:1px solid #e2d47e;font-size:15px;line-height:1.55}
body :is(main,dialog) form .match-start-note strong{font-size:15px;font-weight:750;color:inherit}
body :is(main,dialog) form .match-start-note span{font-size:14px;font-weight:400;color:inherit}
body #searchForm .match-start-note,body #searchForm .match-start-note strong{color:#3e491f}
