/* V11 — consistent compact proportions. Presentation only; no data/forms logic changed.
   Loaded LAST by public, school, admin, and committee templates. */

/* Shared logged-in workspaces: headings, panels, and field rhythm. */
body.admin-body .admin-content,
body.user-body .user-content{font-size:13px;line-height:1.55;}
body.admin-body .admin-content .admin-panel,
body.user-body .user-content .user-panel{
  padding:15px 17px!important;
  margin-bottom:13px!important;
  border-radius:15px!important;
}
body.admin-body .admin-content :is(.admin-panel h1,.admin-panel-heading-line h1,.admin-welcome h1),
body.user-body .user-content :is(.user-panel h1,.user-panel-heading h1,.user-welcome-card h1){
  font-size:22px!important;line-height:1.35!important;letter-spacing:0!important;
}
body.admin-body .admin-content :is(.admin-panel h2,.admin-panel-heading-line h2,.admin-modal-header h2),
body.user-body .user-content :is(.user-panel h2,.user-panel-heading h2,.user-section-title){
  font-size:18px!important;line-height:1.4!important;letter-spacing:0!important;
  margin-top:0;
}
body.admin-body .admin-content :is(.admin-panel h3,.admin-panel h4),
body.user-body .user-content :is(.user-panel h3,.user-panel h4){font-size:14.5px!important;line-height:1.4!important;}
body.admin-body .admin-content :is(.admin-panel p,.admin-panel .muted,.admin-panel small),
body.user-body .user-content :is(.user-panel p,.user-panel .muted,.user-panel small){line-height:1.55;}
body.admin-body .admin-content :is(.admin-panel label,.admin-modal-form label),
body.user-body .user-content .user-panel label{font-size:12px!important;line-height:1.45!important;margin-bottom:4px!important;}

/* A single 38px visual baseline for portal input/select/textarea controls. */
body.admin-body .admin-content :is(.admin-panel,.admin-modal-form,.admin-search) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea),
body.user-body .user-content .user-panel :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea){
  box-sizing:border-box!important;
  min-height:38px!important;
  font-size:13px!important;
  line-height:1.4!important;
  padding:7px 10px!important;
  max-width:100%;
}
body.admin-body .admin-content :is(.admin-panel,.admin-modal-form) textarea,
body.user-body .user-content .user-panel textarea{min-height:76px!important;}
body.admin-body .admin-content :is(.admin-panel,.admin-modal-form) :is(.btn,.small-action,button:not(.sport-facet-chip):not(.sport-filter):not(.admin-modal-close):not(.admin-page-btn)),
body.user-body .user-content .user-panel :is(.btn,.small-action,button:not(.sport-facet-chip):not(.sport-filter)){
  font-size:12.5px!important;
  line-height:1.4!important;
  padding:8px 11px!important;
  min-height:36px!important;
  letter-spacing:0!important;
}
body.admin-body .admin-content :is(.admin-panel,.admin-modal-form) :is(.admin-form-grid,.admin-modal-grid,.admin-two-col),
body.user-body .user-content .user-panel :is(.user-form-grid,.user-staff-grid){gap:10px!important;}
body.admin-body .admin-content .admin-search,
body.user-body .user-content .user-search{gap:8px!important;margin-bottom:11px!important;}

/* Lists and registration cards should follow the same dense form scale. */
body.user-body .user-content .user-panel-heading{gap:10px;margin-bottom:12px;align-items:center;}
body.user-body .user-content .user-card-list{gap:10px;}
body.user-body .user-content :is(.user-registration-card,.user-result-card,.user-edit-person-card,.user-staff-card,.user-certificate-card,.user-match-card){
  padding:12px 14px!important;
  border-radius:12px!important;
}
body.user-body .user-content .user-registration-card h3{font-size:15px!important;}
body.user-body .user-content .user-registration-meta{gap:7px;margin:10px 0;}
body.user-body .user-content .user-registration-meta>div{padding:8px;}
body.user-body .user-content .user-summary-grid{gap:10px;margin-bottom:13px;}
body.user-body .user-content .user-summary-card{padding:12px 14px;border-radius:12px;}
body.user-body .user-content .user-summary-card strong{font-size:27px;margin-top:3px;}
body.user-body .user-content .user-welcome-card{padding:16px 18px;margin-bottom:13px;gap:14px;}
body.admin-body .admin-content .admin-summary-grid{gap:10px;margin-bottom:13px;}
body.admin-body .admin-content .admin-summary-card{padding:13px 15px;border-radius:13px;}
body.admin-body .admin-content .admin-summary-card strong{font-size:28px;margin-top:4px;}
body.admin-body .admin-content .admin-modal-header{padding:13px 17px 12px;}
body.admin-body .admin-content .admin-modal-form{padding:10px 17px 16px;}
body.admin-body .admin-content .admin-modal-actions{margin-top:12px;padding-top:11px;}
body.admin-body .admin-content .admin-page-actions{gap:8px;}
body.admin-body .admin-content .admin-add-button{min-height:36px;padding:7px 11px;}

/* Tables retain their data and column structure, only typography/row spacing changes. */
body.admin-body .admin-content table :is(th,td),
body.user-body .user-content table :is(th,td){font-size:12px!important;line-height:1.45!important;padding:8px 9px!important;}
body:is(.admin-body,.user-body) :is(.admin-content,.user-content) .pagination :is(a,button,span){font-size:12px;}

/* Sidebar navigation and portal topbar: same scale in all three roles. */
body:is(.admin-body,.user-body) .portal-nav-v4{gap:3px!important;}
body:is(.admin-body,.user-body) .portal-nav-v4>a{
  font-size:12px!important;line-height:1.4!important;
  min-height:36px!important;padding:7px 10px!important;gap:9px!important;
}
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-group>summary{
  font-size:12px!important;line-height:1.4!important;min-height:38px!important;
  padding:7px 10px!important;gap:9px;
}
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-group-links>a{
  font-size:11.7px!important;min-height:34px!important;padding:7px 9px 7px 20px!important;
}
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-link-icon,
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-group-icon{
  width:25px;height:25px;flex-basis:25px;font-size:14px;border-radius:7px;
}
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-section-label{font-size:10px;margin:6px 12px 4px;}
body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-search{min-height:36px;}
body:is(.admin-body,.user-body) .portal-topbar-title>strong,
body:is(.admin-body,.user-body) .admin-topbar>strong,
body:is(.admin-body,.user-body) .user-topbar>strong{font-size:15px!important;line-height:1.3!important;}
body:is(.admin-body,.user-body) .portal-topbar-title>span{font-size:11px!important;}
body:is(.admin-body,.user-body) .portal-topbar-logout{font-size:12px!important;min-height:35px!important;padding:7px 11px!important;}

/* Compact sports directory: title, category + age facets, match-type filters, and events. */
body.public-site:not(.page-index) .section-heading{margin-bottom:14px!important;gap:11px!important;}
body.public-site:not(.page-index) .section-heading .section-title{
  font-size:clamp(22px,2.2vw,28px)!important;line-height:1.35!important;
  letter-spacing:0!important;margin-top:3px!important;
}
body.public-site:not(.page-index) .section-heading .eyebrow{font-size:11px!important;}
body.public-site:not(.page-index) .section-heading .muted{font-size:13px!important;line-height:1.6!important;}
body.public-site .sport-facet-panel,
body.public-site .schedule-facet-panel{
  padding:12px 14px!important;margin-bottom:13px!important;border-radius:15px!important;
}
body.public-site .sport-facet-panel .facet-heading,
body.public-site .schedule-facet-panel .facet-heading{
  font-size:12px!important;margin:9px 0 7px!important;gap:7px!important;
}
body.public-site .sport-facet-panel .facet-heading:first-child,
body.public-site .schedule-facet-panel .facet-heading:first-child{margin-top:0!important;}
body.public-site .sport-facet-panel .facet-heading small,
body.public-site .schedule-facet-panel .facet-heading small{font-size:11px!important;}
body.public-site .sport-facet-buttons{gap:6px!important;}
body.public-site .sport-facet-panel .sport-facet-buttons>.sport-facet-chip,
body.public-site .schedule-facet-panel .sport-facet-buttons>.sport-facet-chip{
  min-height:33px!important;padding:6px 10px!important;font-size:12px!important;
  font-weight:720!important;line-height:1.3!important;border-radius:999px!important;
  gap:6px!important;
}
body.public-site .sport-facet-panel .sport-facet-chip small,
body.public-site .schedule-facet-panel .sport-facet-chip small{font-size:10.5px!important;}
body.public-site .sport-facet-panel .sport-facet-chip .facet-dot{width:7px;height:7px;flex-basis:7px;}
body.public-site .sport-directory-filters{
  padding:10px 12px!important;border-radius:14px!important;
  gap:7px!important;margin-bottom:13px!important;
}
body.public-site .sport-directory-filters>.sport-filter{
  min-height:34px!important;padding:7px 10px!important;
  font-size:12px!important;line-height:1.35!important;border-radius:9px!important;
}
body.public-site .sport-directory-filters>.sport-directory-search{
  min-height:35px!important;padding:7px 11px!important;
  font-size:12px!important;line-height:1.4!important;
}
body.public-site .sports-menu-grid{gap:9px!important;}
body.public-site .sport-menu-card{border-radius:13px!important;}
body.public-site .sport-menu-card>summary{
  padding:11px 13px!important;min-height:52px!important;gap:10px!important;
}
body.public-site .sport-menu-card>summary strong{font-size:15px!important;line-height:1.35!important;}
body.public-site .sport-menu-card>summary span{font-size:11px!important;}
body.public-site .sport-event-row{padding:10px 13px!important;gap:10px!important;}
body.public-site .sport-event-main strong{font-size:13px!important;line-height:1.45!important;}
body.public-site .sport-event-main span{font-size:11px!important;}
body.public-site .sport-event-badges{gap:6px!important;}
body.public-site .sport-event-badges .small-action{font-size:11px!important;padding:6px 9px!important;}
body.public-site .sport-event-badges .sport-mode{font-size:10.5px!important;min-height:24px!important;padding:4px 8px!important;}

/* Slightly denser public forms and page titles while preserving touch targets and the navbar. */
body.public-site:not(.page-index) .public-page-hero .section-title{font-size:clamp(23px,2.4vw,30px)!important;}
body.public-site:not(.page-index) :is(.form-panel,.registration-panel,.apply-form,.form-card) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea){font-size:13px!important;min-height:39px!important;padding:8px 11px!important;}
body.public-site:not(.page-index) :is(.form-panel,.registration-panel,.apply-form,.form-card) label{font-size:12px!important;}

@media(max-width:820px){
  body.admin-body .admin-content .admin-panel,body.user-body .user-content .user-panel{padding:13px!important;}
  body:is(.admin-body,.user-body) .portal-nav-v4>a{min-height:39px!important;}
  body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-group>summary{min-height:40px!important;}
  body:is(.admin-body,.user-body) .portal-nav-v4 .portal-nav-group-links>a{min-height:38px!important;}
}
@media(max-width:620px){
  body.public-site:not(.page-index) .section-heading .section-title{font-size:22px!important;}
  body.public-site .sport-facet-panel,body.public-site .schedule-facet-panel{padding:11px!important;border-radius:13px!important;}
  body.public-site .sport-facet-panel .sport-facet-buttons>.sport-facet-chip,
  body.public-site .schedule-facet-panel .sport-facet-buttons>.sport-facet-chip{min-height:34px!important;font-size:11.5px!important;padding:7px 9px!important;}
  body.public-site .sport-directory-filters{padding:9px!important;gap:6px!important;}
  body.public-site .sport-event-row{padding:8px 12px!important;gap:6px!important;}
  body.public-site .sport-event-badges{gap:8px!important;}
  body.public-site .sport-directory-filters>.sport-filter{min-height:37px!important;padding:8px 9px!important;}
  body.admin-body .admin-content :is(.admin-panel,.admin-modal-form,.admin-search) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea),
  body.user-body .user-content .user-panel :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea){min-height:40px!important;}
  body.admin-body .admin-content :is(.admin-panel,.admin-modal-form) :is(.btn,.small-action,button:not(.admin-modal-close)),
  body.user-body .user-content .user-panel :is(.btn,.small-action,button){min-height:38px!important;}
  body.admin-body .admin-content .admin-panel :is(.admin-form-grid,.admin-modal-grid),
  body.user-body .user-content .user-panel .user-form-grid{grid-template-columns:1fr;gap:9px!important;}
  body.user-body .user-content .user-registration-meta{grid-template-columns:1fr 1fr;}
  body.user-body .user-content .user-panel-heading{align-items:flex-start;flex-wrap:wrap;}
}
