/* iPhone portrait layout, including the 430 CSS-pixel iPhone 14 Pro Max. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-bottom:110px}
body{font-size:16px;line-height:1.5;font-variant-numeric:tabular-nums}
button,input,select,textarea{-webkit-tap-highlight-color:transparent;font-size:16px;min-height:48px}
input,select,textarea{min-width:0}input[type=date],input[type=month]{display:block;min-width:0;max-width:100%;width:100%;min-height:48px}input[type=checkbox]{min-height:24px;width:24px;height:24px;vertical-align:middle}
textarea{min-height:96px;resize:vertical}button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #8ea97a;outline-offset:3px}
small,.muted{font-size:14px;line-height:1.55}.member>span{min-width:0}.member .amount{flex-shrink:0}.note,.record .member{overflow-wrap:anywhere}.record-actions button{min-height:44px;min-width:64px;font-size:14px}
#report{font-family:inherit;font-size:15px;line-height:1.8;overflow-wrap:anywhere}
#serverStatus{overflow-wrap:anywhere}#toast{max-width:calc(100% - 32px);width:max-content;font-size:14px;top:max(14px,env(safe-area-inset-top))}
#attendanceTable{font-size:14px}#attendanceTable th,#attendanceTable td{padding:13px 10px}#attendanceTable th:first-child{min-width:74px}#attendanceTable td:nth-child(2){min-width:88px}.attendance-scroll{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
@media screen and (max-width:600px){
 main{width:100%;padding:max(18px,calc(env(safe-area-inset-top) + 12px)) 18px calc(106px + env(safe-area-inset-bottom))}
 header{gap:12px;align-items:center;margin-bottom:18px}header>div{min-width:0}header h1{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin:7px 0 0;white-space:nowrap}header small{font-size:13px}
 #month{width:132px;min-height:48px;padding:10px 9px;flex-shrink:0}
 h2{font-size:19px;line-height:1.4}section>h2{margin-top:24px}.meeting-card{padding:18px}.meeting-card h2{font-size:17px}.map-link{min-height:44px}
 .hero{margin:18px 0;padding:22px;border-radius:22px}.hero strong{font-size:clamp(29px,8.3vw,36px);letter-spacing:-.8px;white-space:nowrap}.hero small{font-size:14px}
 .stats{gap:10px}.stat{padding:16px 14px}.stat b{font-size:clamp(20px,5.35vw,24px);letter-spacing:-.6px}.stat .bar{align-items:flex-start;flex-wrap:wrap}.stat .bar>b{margin-top:0}.stat p{margin-bottom:0}
 .member{padding:16px 14px;gap:10px}.member b{font-size:16px}.member small{font-size:13px}.amount b{white-space:nowrap}.amount small{white-space:nowrap}
 .note{padding:14px;font-size:14px;line-height:1.65;margin:16px 0}.bar{gap:8px}.bar h2{flex:1;min-width:0}#attendancePeriod{max-width:132px;padding:10px 8px;font-size:16px}.record{margin-bottom:24px}
 .nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom));background:rgba(255,254,249,.97);z-index:20}
 .nav button{min-width:0;min-height:48px;padding:10px 4px;font-size:14px;font-weight:600;white-space:nowrap;border-radius:13px}
 dialog{position:fixed;inset:auto 0 0;width:100%;max-width:100%;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - max(16px,env(safe-area-inset-top)));border-radius:24px 24px 0 0;padding:22px 20px max(22px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 dialog h2{margin-top:0}dialog label{font-size:15px}dialog select{width:100%}dialog .actions{gap:10px;margin-top:22px}dialog .actions button{min-height:50px}html:has(dialog[open]){overflow:hidden}
 #authOverlay{padding:max(30px,calc(env(safe-area-inset-top) + 20px)) 20px calc(30px + env(safe-area-inset-bottom))!important}#authOverlay>div{margin:4vh auto!important}#authOverlay button{width:100%;margin-top:12px}
 #report{padding:18px;font-size:15px}
}
@media screen and (max-width:374px){main{padding-left:12px;padding-right:12px}header{gap:8px}header h1{font-size:23px}#month{width:118px;font-size:16px}.nav button{font-size:13px}.stat b{font-size:19px}}
