/* Insets remain available on notched native screens and mobile browsers. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%}
/* Keep the flight path clear; yardage and wind remain in the side cards. */
#chipT,#chipL{display:none!important}
/* The swing meter sits above the thumb's pull-and-flick path. */
@media(orientation:portrait){
 #glArc{left:calc(50% + 23px);top:42%;bottom:auto;width:min(calc(100vw - 170px),330px);height:auto;aspect-ratio:660/245;transform:translateX(-50%)}
 #glArc .ctr,body.putting #glArc .ctr{left:50%;top:69%;font-size:clamp(13px,3.5vw,19px)}
 #glArc .ctr.live,#glArc .ctr.pure,#glArc .ctr.miss{font-size:clamp(16px,4.2vw,23px)}
 #coachTxt{top:calc(42% - 84px)!important;bottom:auto}
}
#appPause{display:none;position:fixed;inset:0;z-index:100000;background:rgba(6,17,30,.92);align-items:center;justify-content:center;padding:32px;text-align:center;color:#fff}
#appPause.show{display:flex}
#appPause>div{max-width:320px}#appPause h2{font:32px 'Lilita One',sans-serif;margin:0 0 8px}#appPause p{font:16px Manrope,sans-serif;line-height:1.5}
#appPause button{min-height:52px;border:0;border-radius:14px;padding:12px 28px;background:#f2c14e;color:#142237;font:800 17px Manrope,sans-serif}
#glHead{padding-top:var(--safe-top)}
#glNav{padding-bottom:var(--safe-bottom)}
#menu{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 90px);overflow:auto}
.page{padding-top:calc(18px + var(--safe-top));padding-bottom:calc(90px + var(--safe-bottom))}
@media (orientation:portrait){#glClubC{min-width:72px}#glNav button{min-height:48px}}
@media (max-width:360px){#glClubC{font-size:12px}#glHole{max-width:94px}#glHead{font-size:12px}}

#sceneError{position:fixed;inset:0;display:grid;place-content:center;gap:18px;background:#102339;color:white;text-align:center;z-index:99999}
#performanceReport{position:fixed;inset:calc(10px + var(--safe-top)) 10px calc(10px + var(--safe-bottom));z-index:100001;background:#102339;color:#fff;padding:20px;border-radius:16px;overflow:auto;font:15px Manrope,sans-serif}
#performanceReport pre{font:13px/1.6 monospace;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}
#performanceReport button{min-height:44px;padding:8px 18px;margin:8px;border-radius:8px;border:0;font:800 15px Manrope,sans-serif}

/* Keep the original art, with readable type and reachable targets on phones. */
@media(max-width:600px){
 body.gl-on #menu{min-width:240px;right:12px}body.gl-on #menu button{height:44px;font-size:15px}
 .todayRow #passCard{display:none!important}
 .todayRow>button{min-height:96px;height:auto;padding:10px!important;gap:5px!important}
 .todayRow #daily .dT,.todayRow #cmpCard .cT{font-size:14px;padding-right:0}
 .todayRow #daily .dS,.todayRow #daily .dR,.todayRow #cmpCard .cS{font-size:11px;line-height:1.25;-webkit-line-clamp:3}
 .todayRow #daily::after{display:none}
 #homeAct #play,#homeAct #practice{min-height:64px}
 #homeAct #play b{font-size:24px}#homeAct #play small{font-size:11px;letter-spacing:0}
 #homeAct #practice{font-size:20px!important}
 #homeMid #rank .rnext{font-size:11px!important}#homeMid #fmt button{min-height:32px;font-size:14px!important}
 body.gl-on .crsMid small{font-size:11px}body.gl-on #title .holeln{font-size:12px}
 #glNav button{min-height:48px;font-size:11px}
 #glGear,#crsPrev,#crsNext{min-width:44px;min-height:44px}
 #coachTxt{font-size:16px!important;line-height:1.4!important;max-width:calc(100vw - 32px)}
}
@media(max-width:600px){
 .glTag{display:none}
 #glPillA{left:auto;right:132px;width:70px}#glPillB{left:auto;right:52px;width:70px}
 .glPill{height:24px;top:calc(var(--safe-top) + 8px);font-size:12px}
 .glPill b{font-size:12px}
}
@media(max-width:600px) and (orientation:portrait){
 #coachTxt{left:108px;right:62px;transform:none;width:auto;max-width:none;box-sizing:border-box;padding:10px;font-size:14px!important;line-height:1.4!important}
 #glHole{left:8px;width:90px;height:134px}
 #glHole .hn{font-size:14px;padding-left:4px}#glHole .pr{font-size:12px;padding-left:4px}
 #glHole .cn{font-size:13px;white-space:normal;line-height:1.1}
 #glHole .ln{display:block;font-size:10px;letter-spacing:0;padding-left:2px;white-space:normal}
 #glHole .ln .crw,#glHole .ln br,#glHn{display:none}
 #glClubC{left:8px;top:calc(var(--safe-top) + var(--u)*145 + 142px);width:90px;height:148px;padding:6px}
 #glClubC .nm{font-size:12px;line-height:1.15;padding:0}#glClubC .sw{display:none}
 #glClubC .im{height:27px;margin:0}#glClubC .lv{position:static;font-size:12px;text-align:right}
 #glClubC .bar,#glClubC .bar:first-of-type{margin-top:5px}
 #glClubC .bar span{font-size:10px;margin-bottom:3px;padding-left:0}#glClubC .bar i{height:3px}
 #glDaily{left:108px;right:62px;top:calc(var(--safe-top) + 104px);transform:none;justify-content:center;flex-wrap:wrap;gap:4px 10px;padding:6px;font-size:11px;white-space:normal}
 #glDaily b{width:100%;text-align:center;font-size:12px}
 #glBallC .tx{left:70px;right:10px;top:15px}#glClubB .tx{left:82px;right:12px;top:15px}
 #glBallC .gcN,#glClubB .gcN{font-size:13px;white-space:normal}
 #glBallC .gcS,#glClubB .gcS{font-size:12px;white-space:normal}#glClubB .gcLv{font-size:14px}
 #glBallC .gcL,#glClubB .gcL{display:none}
}

/* UX pass 2026-10-02: readable minimums, full-size tap targets, fewer duplicate readouts. */
body.title #mReset,body.title #mHome{display:none}
@media(max-width:600px){
 /* The home rank card already shows the rating; a trophy icon beside it read as a trophy count. */
 #glPillB{display:none}#glPillA{right:52px}
 .glPlus{position:relative}.glPlus::after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
 body.gl-on .ltLbl{font-size:10px}
 body.gl-on #homeMid #rank .lg{font-size:10px!important}
 body.gl-on #pgLb .lbTabs button{font-size:12px}
 body.gl-on #pgLb .lbHead span{font-size:11.5px;line-height:1.4}
 body.gl-on #pgLb .lbMsg{font-size:12px;line-height:1.45}
 body.gl-on #pgLb .lbRow .nm{font-size:12px}
 body.gl-on #pgShop .gsDemo{font-size:10px}
 body.gl-on #pgShop .gsTabs button{font-size:11px!important}
 body.gl-on #pgShop .gsNote{font-size:11.5px;line-height:1.45}
 body.gl-on #gsHeroC .gsCap span{font-size:10px}
 body.gl-on #pgProfile .gpTop .sm{font-size:11.5px}body.gl-on #pgProfile .gpTop .lg{font-size:10px!important}
 body.gl-on #pgProfile .gpRow span,body.gl-on #pgProfile .gpRow b{font-size:12px}
 body.gl-on #pgProfile .gpTr span{font-size:11px}
}
@media(max-width:600px) and (orientation:portrait){
 #glWind{width:54px}#glWind .sp{font-size:10.5px;letter-spacing:0}
}
/* One readout per thing in a round: the bottom cards carry club and ball; balls and the shop wait for the home screen. */
body.gl-on:not(.title):not(.paged) #glClubC,body.gl-on:not(.title):not(.paged) #glPillA{display:none!important}
/* Players' settings: no developer items unless this is a profile build or a #dev URL. */
html:not(.loft-dev) #mDbg,html:not(.loft-dev) #mPerf{display:none}
/* Pause screen: leaving is quieter than resuming. */
#appPause .quit{display:block;margin:14px auto 0;background:transparent;color:#cfe4ff;border:2px solid rgba(124,196,255,.55)}
#appPause.home .quit{display:none}
/* Hole card: Home is a quiet third choice under the two main buttons. */
body.gl-on #card #btnHome{height:36px!important;font-size:16px!important;background:transparent!important;border:2px solid rgba(124,196,255,.6)!important;box-shadow:none!important;text-shadow:none!important;color:#dceaff!important;animation:none!important}
/* First visit: a single Play button; rank and format appear after the coach. */
#title .tb.first #practice,#title .tb.first #homeMid{display:none!important}
/* Type: two families in the app UI. Lilita One for headings and names, Nunito for everything else (no handwriting, no thin weights). */
body.gl-on,body.gl-on .sct td:first-child,#appPause p,#appPause button{font-family:Nunito,system-ui,sans-serif}
body.gl-on .page{font-weight:600}
body.gl-on .bName{font-family:'Lilita One',sans-serif!important;font-weight:400!important;letter-spacing:.01em}
body.gl-on #glHole .cn{font-family:'Lilita One',sans-serif;font-weight:400;letter-spacing:.01em}
body.gl-on #title .holeln{font-style:normal!important;font-weight:700!important}
body.gl-on #rank .lg{font-family:Nunito,sans-serif!important;font-weight:900!important}
@media(max-width:600px){
 body.gl-on #vsYs{font-size:11px}body.gl-on #vsYr{font-size:11px}
 body.gl-on #glWind .lb{font-size:10.5px}
}
