/* UBA2 readable type + masthead alignment v5.
   11 pt at 96dpi = 14.67px; all ordinary interface text uses 15px minimum.
   Shared front-end only: data operations and authentication remain unchanged. */
:root{--uba2-type-min:15px;--uba2-type-body:16px;--uba2-type-nav:15px;--uba2-type-section:21px}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html body.uba2-page,html body.uba2-admin{
 font-size:var(--uba2-type-body)!important;
 line-height:1.5!important;
}
/* The banner shares one predictable grid on every page. */
html body.uba2-page .masthead,html body.uba2-admin .masthead{
 display:grid!important;
 grid-template-columns:minmax(0,1fr) minmax(230px,286px)!important;
 align-items:center!important;
 gap:20px!important;
 width:100%!important;
 min-height:148px!important;
 padding:15px 25px!important;
}
html body.uba2-page .masthead .wordmark,html body.uba2-admin .masthead .wordmark{
 min-width:0!important;
 max-width:100%!important;
 flex-wrap:nowrap!important;
}
html body.uba2-page .masthead .wordmark > div,html body.uba2-admin .masthead .wordmark > div{min-width:0!important}
html body.uba2-page .masthead .live-tag,html body.uba2-admin .masthead .live-tag{
 display:flex!important;
 flex-direction:column!important;
 align-items:flex-start!important;
 justify-content:center!important;
 gap:6px!important;
 position:relative!important;
 inset:auto!important;
 transform:none!important;
 justify-self:end!important;
 align-self:center!important;
 width:100%!important;
 max-width:286px!important;
 min-width:0!important;
 height:auto!important;
 margin:0!important;
 padding:12px 14px!important;
 font-size:15px!important;
 line-height:1.4!important;
 text-align:left!important;
 white-space:normal!important;
 word-break:normal!important;
}
html body.uba2-page .masthead .live-tag .scope-kicker,html body.uba2-admin .masthead .live-tag .scope-kicker{
 display:block!important;position:static!important;
 width:100%!important;margin:0!important;
 font:900 15px/1.35 Consolas,'Courier New',monospace!important;
 letter-spacing:.025em!important;
 white-space:normal!important;
}
html body.uba2-page .masthead .live-tag .scope-detail,html body.uba2-admin .masthead .live-tag .scope-detail{
 display:block!important;position:static!important;
 width:100%!important;margin:0!important;
 font:700 15px/1.35 Consolas,'Courier New',monospace!important;
 letter-spacing:0!important;white-space:normal!important;
}
/* Header's short arcade slogan also stays readable on desktop and mobile. */
html body.uba2-page .masthead .micro,html body.uba2-admin .masthead .micro{
 font:700 15px/1.4 Consolas,'Courier New',monospace!important;
 letter-spacing:.02em!important;
 max-width:100%!important;
 overflow-wrap:anywhere!important;
}
/* Consistent main menu, still single-line horizontal-scrolling on narrow screens. */
html body.uba2-page nav.navbar,html body.uba2-admin nav.navbar{scrollbar-width:thin!important}
html body.uba2-page nav.navbar > .navbtn,html body.uba2-admin nav.navbar > .navbtn{
 font:900 15px/1.3 Consolas,'Courier New',monospace!important;
 padding:12px 14px!important;
 min-height:46px!important;
 letter-spacing:0!important;
}
/* The rest of the interface has a consistent 16px base and a hard 15px floor
   on common readable elements; existing large title and scoreboard sizing remains. */
html body.uba2-page :is(p,li,td,th,label,legend,small,summary,footer,caption,blockquote,figcaption),
html body.uba2-admin :is(p,li,td,th,label,legend,small,summary,footer,caption,blockquote,figcaption){
 font-size:max(15px,1em)!important;
 line-height:1.45!important;
}
html body.uba2-page :is(button,input,select,textarea,option),
html body.uba2-admin :is(button,input,select,textarea,option){
 font-size:max(15px,1em)!important;
 line-height:1.4!important;
}
html body.uba2-page :is(.muted,.sub,.tiny,.ghost,.micro,.tag,.pill,.status,.data-count,.notice,.subnav-caption,.formrow,.scoreline,.feed,.meta,.label,.hint,.caption,.data-count,.gm-table,.gm-toolbar,.gm-profile,.mini,.badge,.rowbuttons,.stat-browser,.uba2-sync-bar),
html body.uba2-admin :is(.muted,.sub,.tiny,.ghost,.micro,.tag,.pill,.status,.data-count,.notice,.subnav-caption,.formrow,.feed,.meta,.label,.hint,.caption,.badge){
 font-size:max(15px,1em)!important;
 line-height:1.45!important;
}
html body.uba2-page .panel h2,html body.uba2-page .wrap .panel > h2,
html body.uba2-page .sectionhead h2,html body.uba2-admin .card h2{
 font-size:21px!important;line-height:1.3!important;
}
html body.uba2-page .panel h3,html body.uba2-admin .card h3{font-size:19px!important;line-height:1.3!important}
html body.uba2-admin .admin-page-heading h2{font-size:25px!important}
html body.uba2-page .stat-browser,html body.uba2-page .stat-browser select,
html body.uba2-page .uba2-sync-bar{font-size:15px!important}
html body.uba2-page .stat-browser select{min-height:40px!important}
/* No matter what the original archives request, tables remain comfortably readable. */
html body.uba2-page table,html body.uba2-admin table{font-size:15px!important}
html body.uba2-page .tablewrap,html body.uba2-page .table-scroll,html body.uba2-admin .scroll{overflow-x:auto!important}
html body.uba2-page :is(code,pre,kbd,samp),html body.uba2-admin :is(code,pre,kbd,samp){font-size:max(15px,1em)!important}
/* Mobile: same banner arrangement everywhere, below title rather than overlapping. */
@media(max-width:1100px){
 html body.uba2-page .masthead,html body.uba2-admin .masthead{
  grid-template-columns:minmax(0,1fr)!important;
  justify-items:stretch!important;
  gap:12px!important;
  padding:13px 16px!important;
 }
 html body.uba2-page .masthead .live-tag,html body.uba2-admin .masthead .live-tag{
  justify-self:stretch!important;max-width:none!important;
 }
}
@media(max-width:620px){
 html body.uba2-page .masthead,html body.uba2-admin .masthead{padding:10px!important}
 html body.uba2-page .masthead .micro,html body.uba2-admin .masthead .micro{
  font-size:15px!important;
 }
 html body.uba2-page nav.navbar > .navbtn,html body.uba2-admin nav.navbar > .navbtn{
  font-size:15px!important;padding:11px 12px!important;
 }
 html body.uba2-page .masthead .live-tag,html body.uba2-admin .masthead .live-tag{
  padding:9px 11px!important;
 }
}
/* Replay microcopy and generated event rows also meet the 11pt minimum. */
html body.uba2-page :is(.fixture-sub,.timeline,.replay-note,.event,.event .orig,.event .time-label,.roster div,.roster h3,.gm-metric span,.gm-table small,.gm-profile h4,.scoreboard .mid span){
 font-size:15px!important;line-height:1.4!important;
}


/* UBA2 OFFICIAL RELEASE · CONSISTENT MASTHEAD / PLAYER-DIRECTORY FIT
   Match the desktop landing-page banner height on ALL routes.  The page label
   stays in the same right-hand slot and the logo/title keep a shared scale.
   1pt smaller player-directory rows: 16px base -> 14.667px (11pt floor).
*/
@media (min-width:1101px) {
 html body.uba2-page .masthead, html body.uba2-admin .masthead {
  box-sizing:border-box!important;
  height:244px!important;
  min-height:244px!important;
  max-height:244px!important;
  grid-template-columns:minmax(0,1fr) 286px!important;
  align-items:center!important;
  padding:15px 25px!important;
 }
 html body.uba2-page .masthead .wordmark,html body.uba2-admin .masthead .wordmark {
  align-items:center!important;
  flex-wrap:nowrap!important;
 }
 html body.uba2-page .masthead .pixel-title-art,html body.uba2-admin .masthead .pixel-title-art {
  max-height:78px!important;
 }
}
/* Tablet/mobile keep the same proportions and placement, allowing wrapping to
   avoid clipping on very narrow screens. */
@media (max-width:1100px) {
 html body.uba2-page .masthead,html body.uba2-admin .masthead {
  box-sizing:border-box!important;
  min-height:190px!important;
 }
}
@media (max-width:620px) {
 html body.uba2-page .masthead,html body.uba2-admin .masthead {min-height:165px!important;}
}
/* Limit the exception to the player listing, not navigation, form controls,
   profile text, statistics elsewhere, or the entire site's text scale. */
html body.uba2-gm #player-rows > tr > td,
html body.uba2-gm #team-directory .gm-team-table > tbody > tr > td {
 font-size:14.667px!important;
 line-height:1.42!important;
}
/* A little extra horizontal space for long player names and team labels. */
html body.uba2-gm #player-rows > tr > td,
html body.uba2-gm #team-directory .gm-team-table > tbody > tr > td {
 padding-left:6px!important;
 padding-right:6px!important;
}
