:root{--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{min-width:0;overflow-x:hidden}
img,video{max-width:100%;height:auto}
button,a,input,select,textarea{touch-action:manipulation}
button,.btn,input,select,textarea{min-height:44px}
button:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #f2b84b;outline-offset:2px}
.shell>main{min-width:0}
.shell>main>header{gap:12px;flex-wrap:wrap}
.table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.table table{min-width:680px}
td,th{vertical-align:top}
.formgrid>*{min-width:0}
.formgrid input,.formgrid select,.formgrid textarea,.stack input,.stack select,.stack textarea{width:100%;max-width:100%}
.inline{max-width:100%}
dialog{width:min(680px,calc(100vw - 32px));max-height:min(88dvh,900px);overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:rgb(8 27 21 / .62);backdrop-filter:blur(2px)}
.modal-head{position:sticky;top:0;z-index:2;background:#fff;padding-top:2px}
.mobile-menu{min-width:44px}

@media(max-width:900px){
 .shell{grid-template-columns:230px minmax(0,1fr)}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:700px){
 body{padding-bottom:var(--safe-bottom)}
 .shell{display:block;min-height:100dvh}
 .shell>aside{max-height:100dvh;overflow-y:auto;overscroll-behavior:contain}
 .shell>main{width:100%;padding:12px}
 .shell>main>header{position:sticky;top:0;z-index:20;margin:-12px -12px 14px;padding:10px 12px;background:rgb(244 248 246 / .96);backdrop-filter:blur(8px)}
 .cards,.formgrid,.twocol,.reportgrid{grid-template-columns:1fr}
 .formgrid .wide{grid-column:auto}
 article,.panel{max-width:100%;overflow-wrap:anywhere}
 .inline{display:flex;flex-wrap:wrap;gap:8px}
 .inline>*{flex:1 1 145px;min-width:0}
 .table{margin-inline:-2px;border-radius:8px}
 dialog{width:100%;max-width:none;max-height:calc(100dvh - 16px);margin:auto 8px 8px;padding:16px;border-radius:16px}
 .modal-actions{position:sticky;bottom:0;background:#fff;padding:10px 0 calc(2px + var(--safe-bottom))}
 .member-finance-card dl{gap:7px}
 .pubnav{flex-wrap:wrap;gap:10px}
 .pubnav nav{width:100%;overflow-x:auto;justify-content:flex-start;padding-bottom:4px}
 .hero{min-height:auto;padding-block:54px}
}

@media(max-width:430px){
 .shell>main{padding:9px}
 .shell>main>header{margin:-9px -9px 12px;padding:9px}
 .cards{grid-template-columns:1fr}
 .row-actions,.modal-actions{grid-template-columns:1fr}
 .row-actions>*{width:100%}
 dialog{margin:auto 4px 4px;padding:14px}
 .login form{width:min(100% - 24px,420px);padding:22px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media print{.mobile-menu,.row-actions,.module-toolbar,dialog{display:none!important}.shell{display:block}.shell>aside{display:none}.shell>main{padding:0}.table{overflow:visible}.table table{min-width:0}}
